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

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

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

2、81. 背景簡介隨著科學技術的不斷提高,計算機科學日漸成熟,其強大的功 能已為人們深刻認識,它已進入人類社會的各個領域并發(fā)揮著越來 越重要的作用。作為計算機應用的一部分,使用計算機對學生成績 進行管理,具有手工管理無法比擬的優(yōu)點。例如:檢索迅速、查找 方便、可靠性高、存儲量大、成本低、效率高等。這些優(yōu)點能夠極 大地提高學生選課系統(tǒng)的效率,也是企業(yè)、學校的科學化、正規(guī)化 管理和與世界接軌的重要條件。因此,開發(fā)這樣一套管理系統(tǒng)已成 為很有必要的事情。學生成績管理系統(tǒng)是一個學校中不可缺少的部分。成績管理系 統(tǒng)應該能夠為用戶提供充足的信息和快捷的查詢手段。但一直以來 人們使用傳統(tǒng)人工的方式對課程進行查

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

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

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

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

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

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

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

10、型長度主鍵否是否為空描述CourseIDChar16主鍵不為空課程編號CourseNameChar16不為空課程名Poi ntChar8不為空學分StuNumberDatetime4不為空選課人數(shù)3.4代碼設計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();/調用背景方法Container c = getContentPane(); /

12、 獲取 JFrame面板JPanel jp = new JPanel(); / 創(chuàng)建個 JPaneljp.setOpaque(false);/把JPanel設置為透明這樣就不會遮住后面的背景這樣你就能在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)建對象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();/窗口適應組件大小setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); / 用來關閉窗口的 */ setVisible(true);setTitle(學生成績管理系統(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,用戶名或密碼錯誤, 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();/調用背景方法Container c = getContentPane(); / 獲取 JFrame面板JPanel jp = new JPanel(); / 創(chuàng)建個 JPaneljp.setOpaque(false);/把JPanel設置為透明這樣就不會遮住后面的背景這樣你就能在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)建對象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();/窗口適應組件大小setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); / 用來關閉窗口的 */ s

21、etVisible(true);setTitle(學生成績管理系統(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,用戶名或密碼錯誤, Error,JOptio nPa neNFORMATION_MESSAGE);else if(e.getActionCommand()=退出)System.exit(O);4. 系統(tǒng)實現(xiàn)與測試4.1功能模塊測試由于時間和自身能力所限,我們只進行了功能測試(黑盒測試)。1)登陸界面測試2)學生信息查詢,刪除,修改,添加及導入導出功能的測試3)課程

25、信息查詢,刪除,修改,添加及導入導出功能的測試4)成績信息查詢,刪除,修改,添加及導入導出功能的測試 經(jīng)過測試本系統(tǒng)基本實現(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按班級查詢頁面5. 總結與展望該系統(tǒng)主要實現(xiàn)了學生成績管理的功能,從需求分析,界面的 搭建,到數(shù)據(jù)庫的連接,表格,存儲過程和存儲過程等的建立,在 這段時間的摸索中,我確實學到了很多東西,特別是對以前不太了 解的Java Swing組件有了更深刻的了解。比如JTabl對于它的用法 我在網(wǎng)上找了很多資料,jTabF建立有各種不同的方法,可以使 用 DefaultTableModel 類來實現(xiàn);然后再 table.setModel(dtm); 或者繼 承AbstractTableModel類,還有對于如何在JTable中添加Swing組 件,原本我是直接新建一個JcheckBoX對象直接添加到表格的單兀格里,結果發(fā)現(xiàn)只能顯示出一串字符串,上網(wǎng)查找后才知道,要用 DefaultCellEditor來添加 Swing組件,再設置 setCelIRend

溫馨提示

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

評論

0/150

提交評論