java課設(shè)學(xué)生成績管理系統(tǒng)_第1頁
java課設(shè)學(xué)生成績管理系統(tǒng)_第2頁
java課設(shè)學(xué)生成績管理系統(tǒng)_第3頁
java課設(shè)學(xué)生成績管理系統(tǒng)_第4頁
java課設(shè)學(xué)生成績管理系統(tǒng)_第5頁
已閱讀5頁,還剩14頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、 課程設(shè)計說明書 NO.19學(xué)生成績管理系統(tǒng)1.課程設(shè)計的目的 由于高等學(xué)校的快速發(fā)展,高校規(guī)模越來越大,學(xué)生數(shù)量與課程數(shù)量都在迅速地增長,管理上的手工操作不僅僅會耗費學(xué)生與工作人員大量的時間和精力,效率以及準確性也很低。如何使同學(xué)們方便,快捷、準確地選課,已經(jīng)成為一個重要的問題。利用計算機進行學(xué)生選課方面的管理,不僅能夠保證準確、無誤、快速輸出,而且還可以利用計算機對有關(guān)信息進行查詢,檢索迅速、查找方便、可靠性高、存儲量大、保密性好。要科學(xué)地實現(xiàn)信息化管理,開發(fā)一個適合學(xué)校的,能夠進行信息存儲、查詢、修改等功能的管理系統(tǒng)是十分重要的。2.設(shè)計方案論證2.1設(shè)計思路根據(jù)對系統(tǒng)進行的需求分析,本

2、系統(tǒng)將分為4個模塊:分別是學(xué)生管理模塊、課程管理模塊、成績管理模塊、信息查詢模塊。實現(xiàn)的功能有:(1)增加學(xué)生信息系統(tǒng)操作人員打開學(xué)生信息增加界面,輸入相關(guān)信息,在數(shù)據(jù)庫中添加相關(guān)數(shù)據(jù)。(2)修改學(xué)生信息根據(jù)學(xué)生學(xué)號查詢出該學(xué)生的相關(guān)信息,修改相關(guān)條目后保存在數(shù)據(jù)庫中。(3)刪除學(xué)生信息根據(jù)學(xué)生學(xué)號查詢出該學(xué)生的相關(guān)信息,確定刪除后,在數(shù)據(jù)庫中刪除該信息。(4)學(xué)生選課選擇學(xué)生學(xué)號與需要選擇的課程,確認無誤后保存,數(shù)據(jù)庫中將自動添加新的選課記錄。(5)增加課程信息系統(tǒng)操作人員根據(jù)打開課程信息增加界面,輸入相關(guān)信息,在數(shù)據(jù)庫中添加相關(guān)數(shù)據(jù)。(6)修改課程信息根據(jù)課程號查詢出課程的相關(guān)信息,修改相

3、關(guān)條目后保存在數(shù)據(jù)庫中。(7)刪除課程信息根據(jù)課程號查詢出該課程的相關(guān)信息,確定刪除后,在數(shù)據(jù)庫中刪除該信息。(8)登記成績根據(jù)學(xué)號,以及該學(xué)生所選擇的課程,進行成績登記,未選課的學(xué)生無法進行登記。(9)修改成績對登記的成績信息進行修改。(10)學(xué)生查詢可以根據(jù)學(xué)生學(xué)號、學(xué)生姓名、學(xué)生性別、學(xué)生所學(xué)專業(yè)、學(xué)生所屬學(xué)院、來對學(xué)生信息進行查詢,所有符合查詢條件的學(xué)生信息都將會被顯示出來。(11)課程查詢可以按照課程名稱,授課教師的姓名,對課程的詳細信息進行查詢,所有符合查詢條件的課程信息都將會被顯示出來。(12)成績查詢 根據(jù)學(xué)生的學(xué)號來查詢該學(xué)生所有課程的成績。2.2數(shù)據(jù)庫設(shè)計數(shù)據(jù)庫中應(yīng)包含3個

4、表,即課程信息表(Course)、學(xué)生信息表(Student)、和學(xué)生選課表(SC)。設(shè)計表如表1,表2,表3所示。表1 課程信息表(Course)名稱字段名稱數(shù)據(jù)類型主鍵非空課程編號CnumChar(4)YesYes課程名稱CnameVarchar2NoYes授課教師CteacherVarchar2NoNo上課地點CplaceVarchar2NoNo課程類別CtypeChar(1)NoNo表2學(xué)生信息表(Student)名稱字段名稱數(shù)據(jù)類型主鍵非空學(xué)號SnumChar(10)YesYes學(xué)生姓名SnameVarchar2NoYes性別SsexChar(2)NoNo民族SethnicChar(

5、2)NoNo籍貫ShomeVarchar2NoNo入學(xué)年份SyearChar(4)NoNo專業(yè)SmajorVarchar2NoNo學(xué)院ScollegeVarchar2NoNo出生日期SbirthChar(8)NoNo表3 學(xué)生選課表(SC)名稱字段名稱數(shù)據(jù)類型主鍵非空學(xué)號SnumChar(10)YesYes課程編號CnumChar(4)YesYes成績GradeNumber(4,1)NoNo2.3設(shè)計方法(1)學(xué)生管理系統(tǒng)主界面模塊學(xué)生管理系統(tǒng)主界面模塊包括StuMS.java和StuMain.java兩個文件。StuMS是學(xué)生管理系統(tǒng)的主運行類,其中有運行整個程序的main方法,該文件生成了

6、StuMain類的一個實例,從而生成了學(xué)生管理系統(tǒng)的界面。StuMain類繼承自JFrame類,實現(xiàn)了事件偵聽的接口,它有一個不帶參數(shù)的構(gòu)造方法StuMain(),用來生成StuMain的實例。StuMain類將所有的功能集中到菜單欄中,并通過調(diào)用其他模塊來實現(xiàn)學(xué)生管理系統(tǒng)的各個功能。(2)學(xué)生信息管理模塊學(xué)生信息管理模塊主要由StuInfo.java、AddStuInfo.java、EditStuInfo.java、DelStuInfo.java、SelectCourse.java和StuInfoSearchSnum.java共6個文件組成。StuInfo是AddStuInfo、EditSt

7、uInfo、DelStuInfo這3個類的超類,由于AddStuInfo、EditStuInfo和DelStuInfo的界面顯示有共同之處,所以編寫包含共有界面的StuInfo類,可以快速實現(xiàn)其3個子類的界面顯示。它們之間的構(gòu)成關(guān)系如圖1所示。這6個類文件組成了主界面中“學(xué)生管理”菜單的內(nèi)容,其中包括增加、修改、刪除和學(xué)生選課功能。圖1 學(xué)生信息管理功能結(jié)構(gòu)圖其中StuInfoSearchSnum類是選擇學(xué)號的類,該類利用getSnum()方法將選擇出的學(xué)號返回給調(diào)用它的類。調(diào)用它的類包括EditStuInfo類和DelStuInfo類。(3)課程信息管理模塊課程信息管理模塊主要由Course

8、Info.java、AddCourseInfo.java、EditCourseInfo.java、DelCourseInfo.java、CourseInfoSearchCnum.java這5個文件組成,它們組成了主界面中“課程管理”菜單的內(nèi)容,其中包括增加、修改和刪除功能。CourseInfo是AddCourseInfo、EditCourseInfo、DelCourseInfo這3個類的超類,由于AddCourseInfo、EditCourseInfo和DelCourseInfo的界面顯示有共同之處,所以編寫包含共有的CourseInfo類,可以快速實現(xiàn)其3個類的界面顯示。它們之間的構(gòu)成關(guān)系如

9、圖2所示。圖2 課程信息管理功能結(jié)構(gòu)圖CourseInfoSearchCnum類是選擇課程號的類,該類利用getCnum()方法將選擇出的學(xué)號返回給調(diào)用它的類。調(diào)用它的類包括EditCourseInfo類和DelCourseInfo類。(4)成績信息管理系統(tǒng)成績信息管理模塊主要由GradeInfo.java、AddGradeInfo.java、EditGradeInfo.java這3個文件組成,這3個文件組成了主界面中“成績管理”菜單的內(nèi)容,其中包括增加和修改功能。GradeInfo類是AddGradeInfo、EditGradeInfo這兩個類的超類,由于AddGradeInfo和EditG

10、radeInfo的界面顯示有共同之處,所以編寫包含共有界面的GradeInfo類,可以快速實現(xiàn)其兩個子類的界面顯示。3個文件構(gòu)成的關(guān)系如圖3所示。圖3 成績信息管理功能結(jié)構(gòu)圖(5)信息查詢模塊信息查詢模塊主要包括學(xué)生查詢、課程查詢和成績查詢3個部分。學(xué)生查詢由StuSearchSnum.java、StuSearchSname.java、StuSearchSsex.java、StuSearchScollege.java、StuSearchSmajor.java和ResultStudent.java這6個文件組成,包括:按照學(xué)號查詢、按照學(xué)生姓名查詢、按照性別查詢、按照學(xué)院查詢與按照專業(yè)查詢。St

11、uSearchSnum.java類是按照學(xué)學(xué)號查詢學(xué)生信息的類,支持學(xué)號在一定范圍內(nèi)搜索。操作者只需輸入需要查詢的學(xué)號范圍,系統(tǒng)會將范圍內(nèi)的信息顯示在屏幕上。StuSearchSname.java類是按照學(xué)生姓名查詢學(xué)生信息的類,支持根據(jù)學(xué)生姓名進行搜索。操作者輸入需要查詢的學(xué)生姓名,系統(tǒng)會將符合條件的信息顯示在屏幕上。同時,如果操作者不輸入任何信息,系統(tǒng)將會搜索出所有的學(xué)生信息。StuSearchSsex.java類、StuSearchScollege.java類、StuSearchSmajor.java類和ResultStudent.java類的實現(xiàn)功能與StuSearchSname.ja

12、va類功能相似。(6)數(shù)據(jù)庫操作模塊Database.java類是對數(shù)據(jù)庫進行操作的類,包括:連接數(shù)據(jù)庫、執(zhí)行SQL語句、關(guān)閉數(shù)據(jù)庫連接等;StuBean.java類是用語對學(xué)生相關(guān)信息進行數(shù)據(jù)庫操作的類,包括:學(xué)生信息的增加、修改、刪除、查詢等;CrsBean.java類似乎用于對課程相關(guān)信息進行數(shù)據(jù)庫操作的類,包括:課程信息的增加、修改、刪除、查詢等;csBean.java類是用語對選課信息及成績的相關(guān)信息進行數(shù)據(jù)庫操作的類,包括:選課信息的 、修改、查詢,以及成績的登記、修改、查詢等。3.設(shè)計結(jié)果與分析(1)學(xué)生管理系統(tǒng)的主界面,如圖4所示。圖4 主界面(2)添加學(xué)生信息界面,如圖5所示

13、。圖5 添加學(xué)生信息界面(3)若要修改學(xué)生信息,先單擊“學(xué)號查詢”選擇要修改的學(xué)生學(xué)號,點擊確定后,對所顯示的學(xué)生信息進行修改。運行界面如圖6所示。圖6 修改學(xué)生信息界面(4)選擇“學(xué)號”和所要選擇的“課程”進行學(xué)生選課操作,運行界面如圖7所示。圖7 學(xué)生選課界面(5)添加課程信息,運行效果如圖8所示。圖8 添加課程界面(6)若要修改課程信息,單擊“查詢”按鈕,選擇所要修改課程的課程編號,之后該信息會自動顯示出來,此時可進行信息的修改,運行效果如圖9所示。圖9 修改課程信息界面(7)若要添加成績信息,下拉列表中選擇學(xué)號,課程名稱,之后對該同學(xué)的成績進行錄入,運行效果如圖10所示。圖10 添加成

14、績界面(8)信息查詢包括學(xué)生查詢、課程查詢、成績查詢。若按學(xué)號查詢,則彈出輸入學(xué)號的界面,如圖11所示。單擊“確定“后,則顯示所要查詢的信息結(jié)果。如圖12所示。圖11 按學(xué)號索引界面圖12 學(xué)生信息查詢結(jié)果界面4.設(shè)計體會通過這次課程設(shè)計,使我對JAVA這門課又做了一次系統(tǒng)的復(fù)習(xí),對各個知識點也都有了更深刻的理解,讓我掌握的更扎實,同時也增強了實際操作能力,了解了學(xué)生信息管理系統(tǒng)的工作流程以及工作模式,程序開發(fā)過程中涉及到了數(shù)據(jù)庫的相關(guān)知識,使我對數(shù)據(jù)庫的使用也更加的熟練,另一方面也對編程語言有了新的認識,為以后的學(xué)習(xí)打下了基礎(chǔ)。在本系統(tǒng)的開發(fā)過程中,在知識、經(jīng)驗方面都存在著不足。另外,在整個

15、開發(fā)的過程中,時間也比較倉促不能對學(xué)生信息管理系統(tǒng)的整個流程完全熟悉,在需求分析時未能做到完全滿足用戶的需求。5.參考文獻1丁振凡.Java語言實用教程M.北京:北京郵電大學(xué)出版社,2005.2:105-1212宛延闿.實用Java程序設(shè)計教程M.北京:機械工業(yè)出版社,2006.4:234-2503張廣彬,孟紅蕊,張永寶.Java課程設(shè)計案例精編M.北京:清華大學(xué)出版社,2005.2:355-3634朱喜福.Java程序設(shè)計M.北京:人民郵電出版社,2005.9:179-203附錄(1)StuMS.javaimport javax.swing.UIManager;import java.awt

16、.*;public class StuMS boolean packFrame = false;public StuMS() StuMain frame = new StuMain(); if (packFrame) frame.pack(); else frame.validate();/設(shè)置運行時窗口的位置Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();Dimension frameSize = frame.getSize();if (frameSize.height > screenSize.he

17、ight) frameSize.height = screenSize.height;if (frameSize.width > screenSize.width) frameSize.width = screenSize.width;frame.setLocation(screenSize.width - frameSize.width) / 2, (screenSize.height - frameSize.height) / 2);frame.setVisible(true);public static void main(String args) /設(shè)置運行風格try UIMan

18、ager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName();catch(Exception e) e.printStackTrace();new StuMS();(2)AddStuInfo.javaimport java.awt.event.*;import java.awt.*;import javax.swing.*;public class AddStuInfo extends StuInfo StuBean getSnum = new StuBean();public AddStuInfo() this.setTitle(

19、"添加學(xué)生信息");this.setResizable(false);sNum.setEditable(false);sNum.setText(""+getSnum.getStuId();sName.setEditable(true);sSex.setEditable(true);sSethnic.setEditable(true);sBirth.setEditable(true);sYear.setEditable(true);sMajor.setEditable(true);sCollege.setEditable(true);sHome.setEd

20、itable(true);/設(shè)置運行時窗口的位置Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();this.setLocation(screenSize.width - 400) / 2, (screenSize.height - 300) / 2 + 45);public void downInit()addInfo.setText("增加");addInfo.setFont(new Font("Dialog",0,12);downPanel.add(addInfo);

21、clearInfo.setText("清空");clearInfo.setFont(new Font("Dialog",0,12);downPanel.add(clearInfo);eixtInfo.setText("退出");eixtInfo.setFont(new Font("Dialog",0,12);downPanel.add(eixtInfo);/添加事件偵聽addInfo.addActionListener(this);clearInfo.addActionListener(this);eixtInfo

22、.addActionListener(this);this.contentPane.add(downPanel,BorderLayout.SOUTH);public void actionPerformed(ActionEvent e) Object obj = e.getSource();if (obj = eixtInfo) /退出this.dispose();else if (obj = addInfo) /增加sNum.setEnabled(false);sName.setEnabled(false);sSex.setEnabled(false);sSethnic.setEnabled

23、(false);sBirth.setEnabled(false);sYear.setEnabled(false);sMajor.setEnabled(false);sCollege.setEnabled(false);sHome.setEnabled(false);addInfo.setEnabled(false);clearInfo.setEnabled(false);eixtInfo.setEnabled(false);StuBean addStu = new StuBean();addStu.stuAdd(sName.getText(), sSex.getText(), sBirth.g

24、etText(), sHome.getText(), sSethnic.getText(), sYear.getText(), sMajor.getText(), sCollege.getText();this.dispose();AddStuInfo asi = new AddStuInfo();asi.downInit();asi.pack();asi.setVisible(true);else if (obj = clearInfo) /清空setNull();sNum.setText(""+getSnum.getStuId();(3)EditStuInfo.java

25、mport java.awt.*;import java.sql.*;import java.awt.event.*;import javax.swing.*;public class EditStuInfo extends StuInfo String sNum_str = ""public EditStuInfo() this.setTitle("修改學(xué)生信息");this.setResizable(false);sNum.setEditable(false);sNum.setText("請查詢學(xué)號");sName.setEdit

26、able(false);sSex.setEditable(false);sSethnic.setEditable(false);sBirth.setEditable(false);sYear.setEditable(false);sMajor.setEditable(false);sCollege.setEditable(false);sHome.setEditable(false);/設(shè)置運行時窗口的位置Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();this.setLocation(screenSize.

27、width - 400) / 2, (screenSize.height - 300) / 2 + 45);public void downInit()searchInfo.setText("學(xué)號查詢");searchInfo.setFont(new Font("Dialog",0,12);downPanel.add(searchInfo);modifyInfo.setText("修改");modifyInfo.setFont(new Font("Dialog",0,12);downPanel.add(modify

28、Info);clearInfo.setText("清空");clearInfo.setFont(new Font("Dialog",0,12);downPanel.add(clearInfo);eixtInfo.setText("退出");eixtInfo.setFont(new Font("Dialog",0,12);downPanel.add(eixtInfo);searchInfo.setEnabled(true);modifyInfo.setEnabled(false);clearInfo.setEnabl

29、ed(true);eixtInfo.setEnabled(true);/添加事件偵聽searchInfo.addActionListener(this);modifyInfo.addActionListener(this);clearInfo.addActionListener(this);eixtInfo.addActionListener(this);this.contentPane.add(downPanel,BorderLayout.SOUTH);public void actionPerformed(ActionEvent e) Object obj = e.getSource();

30、String s = new String8;if (obj = eixtInfo) /退出this.dispose();else if (obj = modifyInfo) /修改StuBean modifyStu = new StuBean();modifyStu.stuModify(sNum.getText(), sName.getText(), sSex.getText(), sBirth.getText(), sHome.getText(), sSethnic.getText(), sYear.getText(), sMajor.getText(), sCollege.getText

31、();modifyStu.stuSearch(sNum.getText();s = modifyStu.stuSearch(sNum_str);sName.setText(s0);sSex.setText(s1);sSethnic.setText(s2);sHome.setText(s3);sYear.setText(s4);sMajor.setText(s5);sCollege.setText(s6);sBirth.setText(s7);else if (obj = clearInfo) /清空setNull();sNum.setText("請查詢學(xué)號");else if (obj = searchInfo) /學(xué)號查詢StuInfoSearchSnum siss = new StuInfoSearchSnum(this);siss.pack();siss.setVisible(true);trysNum_str = siss.getSnum();catch(Exception ex)JOptionPane.showMessageDialog(null, "沒有查找到該學(xué)號!"

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論