基于SWING和MyBatis的學(xué)生成績管理系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)(20210314193653)_第1頁
基于SWING和MyBatis的學(xué)生成績管理系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)(20210314193653)_第2頁
基于SWING和MyBatis的學(xué)生成績管理系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)(20210314193653)_第3頁
基于SWING和MyBatis的學(xué)生成績管理系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)(20210314193653)_第4頁
基于SWING和MyBatis的學(xué)生成績管理系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)(20210314193653)_第5頁
已閱讀5頁,還剩17頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、java高級(jí)開發(fā)課程設(shè)計(jì)java高級(jí)開發(fā)課程設(shè)計(jì)題目:基于SWING和MyBatis的學(xué)生成績管理系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)學(xué)號(hào):2012姓名:鄭瑩瑩專業(yè):計(jì)算機(jī)應(yīng)用班級(jí):應(yīng)用1班2014年6月20日ijava高級(jí)開發(fā)課程設(shè)計(jì)目錄1. 背景簡介22需求分析32.1功能需求32.2性能需求42.3使用技術(shù)和開發(fā)平臺(tái) 53. 系統(tǒng)設(shè)計(jì) 53.1界面設(shè)計(jì)53.2功能設(shè)計(jì)63.3數(shù)據(jù)庫表設(shè)計(jì)73.3.1 E-R 圖73.3.2關(guān)系模式93.3.3數(shù)據(jù)庫管理系統(tǒng)93.3.4數(shù)據(jù)庫命名 93.3.5數(shù)據(jù)庫表93.4代碼設(shè)計(jì)104. 系統(tǒng)實(shí)現(xiàn)與測試144.1功能模塊測試 144.2系統(tǒng)測試截圖 155. 總結(jié)與展望 1

2、81. 背景簡介隨著科學(xué)技術(shù)的不斷提高,計(jì)算機(jī)科學(xué)日漸成熟,其強(qiáng)大的功 能已為人們深刻認(rèn)識(shí),它已進(jìn)入人類社會(huì)的各個(gè)領(lǐng)域并發(fā)揮著越來 越重要的作用。作為計(jì)算機(jī)應(yīng)用的一部分,使用計(jì)算機(jī)對(duì)學(xué)生成績 進(jìn)行管理,具有手工管理無法比擬的優(yōu)點(diǎn)。例如:檢索迅速、查找 方便、可靠性高、存儲(chǔ)量大、成本低、效率高等。這些優(yōu)點(diǎn)能夠極 大地提高學(xué)生選課系統(tǒng)的效率,也是企業(yè)、學(xué)校的科學(xué)化、正規(guī)化 管理和與世界接軌的重要條件。因此,開發(fā)這樣一套管理系統(tǒng)已成 為很有必要的事情。學(xué)生成績管理系統(tǒng)是一個(gè)學(xué)校中不可缺少的部分。成績管理系 統(tǒng)應(yīng)該能夠?yàn)橛脩籼峁┏渥愕男畔⒑涂旖莸牟樵兪侄?。但一直以?人們使用傳統(tǒng)人工的方式對(duì)課程進(jìn)行查

3、詢、更新等,這種管理方式 存在著許多缺點(diǎn),如:效率低、執(zhí)行速度慢,另外時(shí)間一長,將產(chǎn) 生大量的文件和數(shù)據(jù),這對(duì)于查找、更新和維護(hù)都帶來了不少困難。JAVA是 一門很優(yōu)秀的編程語言,具有面向?qū)ο?、與平臺(tái)無關(guān)、 安全、穩(wěn)定和多線程等特點(diǎn),是目前軟件設(shè)計(jì)中極為健壯的編程語 言。使用JAVA語言建立一個(gè)課程管理系統(tǒng),使學(xué)生成績信息管理工 作規(guī)范化,系統(tǒng)化,程序化,提高信息處理的速度和準(zhǔn)確性,能夠 及時(shí),準(zhǔn)確,有效的查詢和修改成績。2. 需求分析2.1功能需求本次設(shè)計(jì)的學(xué)生選課系統(tǒng)是一個(gè)面向管理員、學(xué)生和 教師這三個(gè)對(duì)象的教務(wù)平臺(tái)。對(duì)學(xué)生的課程成績進(jìn)行錄入、 修改查詢等基本功能。對(duì)教師或系統(tǒng)管理人員可以

4、登錄系 統(tǒng)進(jìn)行成績錄入等管理,學(xué)生只能登錄系統(tǒng)進(jìn)行成績查詢。學(xué)生成績管理系統(tǒng)的要求是能夠管理學(xué)生成績信息, 主要涉及到學(xué)生的基本信息、成績信息和學(xué)校的授課計(jì)劃 信息的管理。學(xué)生的成績是需要由人工錄入的,因此系統(tǒng)就需要設(shè) 計(jì)一個(gè)學(xué)生成績信息錄入的窗口來錄入期考成績,并且在 這個(gè)窗口中放入一個(gè)數(shù)據(jù)窗口來實(shí)現(xiàn)錄入這方面信息的功 能。系統(tǒng)還要求具有查詢期考成績的功能,因此為了顯示 查詢結(jié)果,就要設(shè)計(jì)一個(gè)數(shù)據(jù)窗口,并將其放在查詢期考 成績的窗口中實(shí)現(xiàn)查詢功能。由于查詢成績和錄入成績有區(qū)別,因此為了更好的實(shí) 現(xiàn)相應(yīng)的功能,設(shè)計(jì)的數(shù)據(jù)窗口也要不同,分別采用兩種 風(fēng)格的數(shù)據(jù)窗口實(shí)現(xiàn)。系統(tǒng)要求能夠錄入授課計(jì)劃和

5、學(xué)生基本信息,必須設(shè) 計(jì)錄入授課計(jì)劃窗口和錄入學(xué)生基本信息窗口來實(shí)現(xiàn)相應(yīng) 功能。由于該系統(tǒng)是學(xué)校管理學(xué)生成績信息的系統(tǒng),因此必 須具有一定的保密性,需要特定的人員才可以修改,因此 需要設(shè)計(jì)一個(gè)用戶登陸的窗口,使具有訪問權(quán)限的用戶才 能登錄此系統(tǒng)。為了簡單化,我們的用戶名和用戶密碼和 數(shù)據(jù)庫本身的用戶名密碼相同。系統(tǒng)的主窗口要能夠在用 戶選中相應(yīng)操作后,調(diào)出相應(yīng)的窗口來使用戶在窗口中完 成相應(yīng)的功能。2.2性能需求一般用戶并不具備計(jì)算機(jī)專業(yè)知識(shí),若程序性能有一 定的缺陷或可對(duì)其隱藏,但一旦異常暴露,對(duì)于計(jì)算機(jī)專 業(yè)知識(shí)較少的用戶來說將一發(fā)不可收拾。對(duì)于一個(gè)專業(yè)的 開發(fā)人員來講,其項(xiàng)目在滿足用戶提

6、出的功能實(shí)現(xiàn)外,首 先應(yīng)保證性能良好。綜上所屬,本系統(tǒng)的性能需求大致如 下:系統(tǒng)的多數(shù)模塊(尤其是后臺(tái)幾乎所有的)都有相應(yīng) 的特殊操作,所以在進(jìn)入模塊之前要對(duì)用戶所具有的權(quán)限 等用戶信息做出嚴(yán)格檢測,預(yù)防非法操作。數(shù)據(jù)庫的連接應(yīng)采用連接池技術(shù),合理、有效的分配、 回收資源。系統(tǒng)運(yùn)行過程中會(huì)產(chǎn)生許多異常(其中大多數(shù) 是預(yù)期效果),要有良好的異常處理機(jī)制,即要顯示界面友 好又要體現(xiàn)程序嚴(yán)謹(jǐn)。學(xué)生在查詢成績時(shí),系統(tǒng)設(shè)計(jì)要充分考慮到線程之間的并發(fā)與沖突。注重系統(tǒng)所需時(shí)間與空間上的資源消耗和運(yùn)行效果。2.3使用技術(shù)和開發(fā)平臺(tái)鑒于數(shù)據(jù)庫的選擇,本系統(tǒng)僅能在Win dows系統(tǒng)上運(yùn)行,需裝有MySQL。在工

7、程中,本系統(tǒng)采用MyEclipse作為開發(fā)及測試環(huán)境。3. 系統(tǒng)設(shè)計(jì)3.1界面設(shè)計(jì)登錄界面有賬號(hào),密碼,管理員賬號(hào)以字母A開頭,教師賬號(hào)以字母T開頭,學(xué)生賬號(hào)以字母 S開頭,登錄賬號(hào)或密碼輸入錯(cuò)誤會(huì)彈出相應(yīng)的提示對(duì)話框。3.2功能設(shè)計(jì)圖3-1系統(tǒng)功能結(jié)構(gòu)圖各模塊功能:學(xué)生信息管理模塊:管理員用于添加和刪除學(xué)生信息的模塊。教師信息管理模塊:管理員用于添加和刪除教師信息的 模塊。教師密碼修改模塊和學(xué)生密碼修改模塊:管理員添加的 用戶帳號(hào)的初始密碼與用戶的帳號(hào)相同,用戶通過密碼 修改模塊可以自己需改密碼。教師錄入成績模塊:教師可以瀏覽選修自己課程的學(xué)生 的信息并且錄入該學(xué)生的成績。學(xué)生查詢成績模塊:

8、通過表格的形式將該學(xué)生選擇了的 課程列出來,如果教師有錄入成績,則可以看到自己的 課程成績。3.3數(shù)據(jù)庫表設(shè)計(jì) 3.3.1 E-R 圖22圖3-2學(xué)生管理E-R圖圖3-4成績管理E-R圖3.3.2關(guān)系模式學(xué)生信息(學(xué)號(hào),姓名,性別,生日,年級(jí),班別,語文,數(shù)學(xué),英語,專業(yè))學(xué)生管理(增加學(xué)生,刪除學(xué)生,修改學(xué)生,單個(gè)查詢)學(xué)生查找(查看全體,按年級(jí)查找,按班別查找,按專業(yè)查找)成績管理(單科排名,總分排名,合格學(xué)生,各科學(xué)生)3.3.3數(shù)據(jù)庫管理系統(tǒng)MySQL3.3.4數(shù)據(jù)庫命名stude ntma nagerme nt3.3.5數(shù)據(jù)庫表Logo n登錄帳號(hào)密碼)(主要用來保存用戶登錄信息)字

9、段名數(shù)據(jù)類型長度是否為空是否主鍵userchar10不為空主鍵passwordchar10StudentTablel學(xué)生信息表)(主要用來保存成績信息)字段名數(shù)據(jù)類型長度主鍵否是否為空描述NumChar10主鍵:不為空學(xué)生學(xué)號(hào)1NameChar10不為空學(xué)生姓名SexChar2不為空學(xué)生性別BirthDatetime8學(xué)生生日Classchar16所在班級(jí)GradeChar20學(xué)生成績:MajorChar10主修Chin eseFloat10語文成績En glishFloatM0英語成績MathsFloat10數(shù)學(xué)成績TotalFloat10總成績CourseTable課程信息表)字段名數(shù)據(jù)類

10、型長度主鍵否是否為空描述CourseIDChar16主鍵不為空課程編號(hào)CourseNameChar16不為空課程名Poi ntChar8不為空學(xué)分StuNumberDatetime4不為空選課人數(shù)3.4代碼設(shè)計(jì)Logi n.javapackage scoreMa nageme nt;import java.awt.*;import java.awt.eve nt.*;import javax.swi ng.*;/登錄界面public class Logi n exte nds JFrame impleme nts Actio nListe nerJButton b1= new JButton(

11、登錄);JButton b2=new JButton(退出);JLabel la仁new JLabel(用戶名);JLabel la2=new JLabel(密碼);JPanel p1= new JPanel();JPa nel p2=new JPa nel();JPa nel p3=new JPa nel();JTextField n ame=new JTextField(15);JPasswordField pw=new JPasswordField(15);public Logi n()/*setBak();/調(diào)用背景方法Container c = getContentPane(); /

12、 獲取 JFrame面板JPanel jp = new JPanel(); / 創(chuàng)建個(gè) JPaneljp.setOpaque(false);/把JPanel設(shè)置為透明這樣就不會(huì)遮住后面的背景這樣你就能在JPanel隨意加組件了c.add(jp);setSize(540, 450);setVisible(true);*/*JLabel p=new JLabel();p.setOpaque(true);p.setBackgro un d(Color.red);*/*JLabel p=new JLabel();JLabel l=new JLabel();Icon icon=new ImageIcon

13、(D:a.jpg);/ 在此直接創(chuàng)建對(duì)象l.setIc on (ic on);l.setBounds(0, 0, icon.getIconWidth(),icon.getIconHeight();p.add(l,new Integer(Integer.MIN_VALUE);getC onten tPa ne().add(p);pack();/窗口適應(yīng)組件大小setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); / 用來關(guān)閉窗口的 */ setVisible(true);setTitle(學(xué)生成績管理系統(tǒng));getC onten tPa ne().set

14、Layout (new GridLayout(3,1);getCo nte ntPa ne().add(p1);getCo nte ntPa ne().add(p2);getCo nte ntPa ne().add(p3);p1.add(la1);p1.add( name);p2.add(la2);p2.add(pw);p3.add(b1);p3.add(b2);setBou nds(500, 250, 100, 100);pack();setVisible(true);pw.setEchoChar(*);b1.addAct ion Liste ner(this);b2.addAct ion

15、Liste ner(this);/* public void setBak()(JPa nel)this.getCo nten tPa ne().setOpaque(false);ImageIcon img = new ImageIcon(D:/a.jpg); / 添加圖片JLabel background = new JLabel(img);this.getLayeredPane().add(background, new In teger(I nteger.MIN_VALUE);backgro un d.setBo un ds(0, 0, img.getIc on Width(), img

16、.getIc onH eight();*/public void action Performed(Acti onEvent e) if(e.getActionCommand()=登錄)String password=pw.getText();Stri ng user =n ame.getText();if(user.equals(wujingjing) & password.equals(201231526)Fun cti on function=new Function。;fun ctio n.setDefaultCloseOperati on (JFrame.EXIT_ON_CLOSE)

17、; setVisible(false);elseJOptionPane.showMessageDialog(null,用戶名或密碼錯(cuò)誤, Error,JOptio nPa neNFORMATION_MESSAGE);else if(e.getActionCommand()=退出)System.exit(O);DateBaseCreate.javapackage scoreMa nageme nt;import java.awt.*;import java.awt.eve nt.*;import javax.swi ng.*;/登錄界面public class Logi n exte nds J

18、Frame impleme nts Actio nListe nerJButton b1= new JButton(登錄);JButton b2=new JButton(退出);JLabel la仁new JLabel(用戶名);JLabel la2=new JLabel(密碼);JPanel p1= new JPanel();JPa nel p2=new JPa nel();JPa nel p3=new JPa nel();JTextField n ame=new JTextField(15);JPasswordField pw=new JPasswordField(15);public L

19、ogi n()/*setBak();/調(diào)用背景方法Container c = getContentPane(); / 獲取 JFrame面板JPanel jp = new JPanel(); / 創(chuàng)建個(gè) JPaneljp.setOpaque(false);/把JPanel設(shè)置為透明這樣就不會(huì)遮住后面的背景這樣你就能在JPanel隨意加組件了c.add(jp);setSize(540, 450);setVisible(true);*/*JLabel p=new JLabel();p.setOpaque(true);p.setBackgro un d(Color.red);*/*JLabel p=

20、new JLabel();JLabel l=new JLabel();Icon icon=new ImageIcon(D:a.jpg);/ 在此直接創(chuàng)建對(duì)象l.setIc on (ic on);l.setBounds(0, 0, icon.getIconWidth(),icon.getIconHeight();p.add(l,new Integer(Integer.MIN_VALUE);getC onten tPa ne().add(p);pack();/窗口適應(yīng)組件大小setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); / 用來關(guān)閉窗口的 */ s

21、etVisible(true);setTitle(學(xué)生成績管理系統(tǒng));getC onten tPa ne().setLayout (new GridLayout(3,1);getCo nte ntPa ne().add(p1);getCo nte ntPa ne().add(p2);getCo nte ntPa ne().add(p3);p1.add(la1);p1.add( name);p2.add(la2);p2.add(pw);p3.add(b1);p3.add(b2);setBou nds(500, 250, 100, 100);pack();setVisible(true);pw.s

22、etEchoChar(*);b1.addAct ion Liste ner(this);b2.addAct ion Liste ner(this);/* public void setBak()(JPa nel)this.getCo nten tPa ne().setOpaque(false);ImageIcon img = new ImageIcon(D:/a.jpg); / 添加圖片JLabel background = new JLabel(img);this.getLayeredPane().add(background, new In teger(I nteger.MIN_VALUE

23、);backgro un d.setBo un ds(0, 0, img.getIc on Width(), img.getIc onH eight();*/public void action Performed(Acti onEvent e) if(e.getActionCommand()=登錄)String password=pw.getText();Stri ng user =n ame.getText();if(user.equals(wujingjing) & password.equals(201231526)Fun cti on function=new Function。;f

24、un ctio n.setDefaultCloseOperati on (JFrame.EXIT_ON_CLOSE); setVisible(false);elseJOptionPane.showMessageDialog(null,用戶名或密碼錯(cuò)誤, Error,JOptio nPa neNFORMATION_MESSAGE);else if(e.getActionCommand()=退出)System.exit(O);4. 系統(tǒng)實(shí)現(xiàn)與測試4.1功能模塊測試由于時(shí)間和自身能力所限,我們只進(jìn)行了功能測試(黑盒測試)。1)登陸界面測試2)學(xué)生信息查詢,刪除,修改,添加及導(dǎo)入導(dǎo)出功能的測試3)課程

25、信息查詢,刪除,修改,添加及導(dǎo)入導(dǎo)出功能的測試4)成績信息查詢,刪除,修改,添加及導(dǎo)入導(dǎo)出功能的測試 經(jīng)過測試本系統(tǒng)基本實(shí)現(xiàn)了所要求的功能,能夠比較方便的,快捷 的完成所執(zhí)行操作。4.2系統(tǒng)測試截圖部分截圖如下:圖4.1-1登錄頁面圖4.1-2主界面圖4.1-3增刪改查頁面圖4.1-4查看全體成績頁面圖4.1-5按成績查找頁面圖4.1-6按班級(jí)查詢頁面5. 總結(jié)與展望該系統(tǒng)主要實(shí)現(xiàn)了學(xué)生成績管理的功能,從需求分析,界面的 搭建,到數(shù)據(jù)庫的連接,表格,存儲(chǔ)過程和存儲(chǔ)過程等的建立,在 這段時(shí)間的摸索中,我確實(shí)學(xué)到了很多東西,特別是對(duì)以前不太了 解的Java Swing組件有了更深刻的了解。比如JTabl對(duì)于它的用法 我在網(wǎng)上找了很多資料,jTabF建立有各種不同的方法,可以使 用 DefaultTableModel 類來實(shí)現(xiàn);然后再 table.setModel(dtm); 或者繼 承AbstractTableModel類,還有對(duì)于如何在JTable中添加Swing組 件,原本我是直接新建一個(gè)JcheckBoX對(duì)象直接添加到表格的單兀格里,結(jié)果發(fā)現(xiàn)只能顯示出一串字符串,上網(wǎng)查找后才知道,要用 DefaultCellEditor來添加 Swing組件,再設(shè)置 setCelIRend

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論