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

下載本文檔

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

文檔簡介

1、學(xué)習(xí) 好資料Java高級開發(fā)課程設(shè)計題目:基于SWING和MyBatis的學(xué)生成績管理系統(tǒng)設(shè)計與實現(xiàn)學(xué)號:2012姓名:鄭瑩瑩專業(yè):計算機(jī)應(yīng)用班級:應(yīng)用1班2014年6月20日目錄1 .背景簡介22 .需求分析32.1 功能需求32.2 性能需求42.3 使用技術(shù)和開發(fā)平臺53 .系統(tǒng)設(shè)計53.1 界面設(shè)計53.2 功能設(shè)計63.3 數(shù)據(jù)庫表設(shè)計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è)計104 .系統(tǒng)實現(xiàn)與測試144.1 功能模塊測試144.2 系統(tǒng)測試截圖155 .總結(jié)與展望191 .背景簡介隨著科

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

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

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

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

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

7、員賬號以字母A開頭,教更多精品文檔學(xué)習(xí)-好資料師賬號以字母T開頭,學(xué)生賬號以字母S開頭,登錄賬號或密碼輸入錯誤會彈出相應(yīng)的提示對話框。3.2 功能設(shè)計學(xué)生成績管理系統(tǒng)圖3-1系統(tǒng)功能結(jié)構(gòu)圖各模塊功能:學(xué)生信息管理模塊:管理員用于添加和刪除學(xué)生信息的模塊。教師信息管理模塊:管理員用于添加和刪除教師信息的模塊。教師密碼修改模塊和學(xué)生密碼修改模塊:管理員添加的用戶帳號的初始密碼與用戶的帳號相同,用戶通過密碼修改模塊可以自己需改密碼。教師錄入成績模塊:教師可以瀏覽選修自己課程的學(xué)生的信息并且錄入該學(xué)生的成績。學(xué)生查詢成績模塊:通過表格的形式將該學(xué)生選擇了的課程列由來,如果教師有錄入成績,則可以看到自己

8、的課程成績。更多精品文檔3.3數(shù)據(jù)庫表設(shè)計3.3.1 E-R圖名C數(shù)學(xué)學(xué)性別)Trv=一語文)圖3-2學(xué)生信息E-R圖圖3-2學(xué)生管理E-R圖圖3-3學(xué)生查找E-R圖圖3-4成績管理E-R圖3.3.2 關(guān)系模式學(xué)生信息(學(xué)里姓名,性別,生日,年級,班別,語文,數(shù)學(xué),英語,專業(yè))學(xué)生管理(增加學(xué)生,刪除學(xué)生,修改學(xué)生,單個查詢)學(xué)生查找(查看全體,按年級查找,按班別查找,按專業(yè)查找)成績管理(單科排名,總分排名,合格學(xué)生,各科學(xué)生)3.3.3 數(shù)據(jù)庫管理系統(tǒng)MySQL3.3.4 數(shù)據(jù)庫命名studentmanagerment3.3.5 數(shù)據(jù)庫表Logon(登錄帳號密碼)(主要用來保存用戶登錄信息

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

10、主鍵否是否為空描述CourseIDChar16主鍵不為空課程編號CourseNameChar16不為空課程名PointChar8不為空學(xué)分StuNumberDatetime4不為空選課人數(shù)3.4代碼設(shè)計Login.javapackagescoreManagement;importjava.awt.*;importjava.awt.event.*;importjavax.swing.*;/登錄界面publicclassLoginextendsJFrameimplementsActionListenerJButtonb1=newJButton("登錄");JButtonb2=n

11、ewJButton("退出");JLabella1=newJLabel("用戶名");JLabella2=newJLabel("密碼");JPanelp1=newJPanel();JPanelp2=newJPanel();JPanelp3=newJPanel();JTextFieldname=newJTextField(15);JPasswordFieldpw=newJPasswordField(15);publicLogin()/*setBak();/調(diào)用背景方法Containerc=getContentPane();獲取JFram

12、e面板JPaneljp=newJPanel();/創(chuàng)建個JPaneljp.setOpaque(false);把JPanel設(shè)置為透明這樣就不會遮住后面的背景這樣你就能在JPanel隨意加組件了c.add(jp);setSize(540,450);setVisible(true);*/*JLabelp=newJLabel();p.setOpaque(true);p.setBackground(Color.red);*/*JLabelp=newJLabel();JLabell=newJLabel();Iconicon=newImageIcon("D:a.jpg");/在此直接創(chuàng)

13、建對象l.setIcon(icon);l.setBounds(0,0,icon.getIconWidth(),icon.getIconHeight();p.add(l,newInteger(Integer.MIN_VALUE);getContentPane().add(p);pack();窗口適應(yīng)組件大小setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);/用來關(guān)閉窗口的*/setVisible(true);setTitle("學(xué)生成績管理系統(tǒng)");getContentPane().setLayout(newGridLayout(3

14、,1);getContentPane().add(p1);getContentPane().add(p2);getContentPane().add(p3);p1.add(la1);p1.add(name);p2.add(la2);p2.add(pw);p3.add(b1);p3.add(b2);setBounds(500,250,100,100);pack();setVisible(true);pw.setEchoChar('*');b1.addActionListener(this);b2.addActionListener(this);/*publicvoidsetBak

15、()(JPanel)this.getContentPane().setOpaque(false);ImageIconimg=newImageIcon("D:a.jpg");/添力口圖片JLabelbackground=newJLabel(img);this.getLayeredPane().add(background,newInteger(Integer.MIN_VALUE);background.setBounds(0,0,img.getIconWidth(),img.getIconHeight();*/publicvoidactionPerformed(ActionE

16、vente)if(e.getActionCommand()="登錄")Stringpassword=pw.getText();Stringuser=name.getText();if(user.equals("wujingjing")&&password.equals("201231526")Functionfunction=newFunction。;function.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);setVisible(false);elseJOption

17、Pane.showMessageDialog(null,"用戶名或密碼錯誤","Error",JOptionPane.INFORMATION_MESSAGE);elseif(e.getActionCommand()="退出")System.exit(0);DateBaseCreate.javapackagescoreManagement;importjava.awt.*;importjava.awt.event.*;importjavax.swing.*;/登錄界面publicclassLoginextendsJFrameimplem

18、entsActionListenerJButtonb1=newJButton("登錄");JButtonb2=newJButton("退出");JLabella1=newJLabel("用戶名");JLabella2=newJLabel("密碼)JPanelp1=newJPanel();JPanelp2=newJPanel();JPanelp3=newJPanel();JTextFieldname=newJTextField(15);JPasswordFieldpw=newJPasswordField(15);publicL

19、ogin()/*setBak();/調(diào)用背景方法Containerc=getContentPane();獲取JFrame面板JPaneljp=newJPanel();/創(chuàng)建個JPaneljp.setOpaque(false);把JPanel設(shè)置為透明這樣就不會遮住后面的背景這樣你就能在JPanel隨意加組件了c.add(jp);setSize(540,450);setVisible(true);*/*JLabelp=newJLabel();p.setOpaque(true);p.setBackground(Color.red);*/*JLabelp=newJLabel();JLabell=ne

20、wJLabel();Iconicon=newImageIcon("D:a.jpg");/在此直接創(chuàng)建對象l.setIcon(icon);l.setBounds(0,0,icon.getIconWidth(),icon.getIconHeight();p.add(l,newInteger(Integer.MIN_VALUE);getContentPane().add(p);pack();窗口適應(yīng)組件大小setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);/用來關(guān)閉窗口的*/setVisible(true);setTitle("

21、;學(xué)生成績管理系統(tǒng)");getContentPane().setLayout(newGridLayout(3,1);getContentPane().add(p1);getContentPane().add(p2);getContentPane().add(p3);p1.add(la1);p1.add(name);p2.add(la2);p2.add(pw);p3.add(b1);p3.add(b2);setBounds(500,250,100,100);pack();setVisible(true);pw.setEchoChar('*');bl.addActionL

22、istener(this);b2.addActionListener(this);/*publicvoidsetBak()(JPanel)this.getContentPane().setOpaque(false);Imageiconimg=newImageIcon("D:a.jpg");/添力口圖片JLabelbackground=newJLabel(img);this.getLayeredPane().add(background,newInteger(Integer.MIN_VALUE);background.setBounds(0,0,img.getIconWidt

23、h(),img.getIconHeight();*/publicvoidactionPerformed(ActionEvente)if(e.getActionCommand()="登錄")Stringpassword=pw.getText();Stringuser=name.getText();if(user.equals("wujingjing")&&password.equals("201231526")Functionfunction=newFunction。;function.setDefaultCloseOp

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

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

溫馨提示

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

最新文檔

評論

0/150

提交評論