JAVA課程設計(論文)學生成績管理系統_第1頁
JAVA課程設計(論文)學生成績管理系統_第2頁
JAVA課程設計(論文)學生成績管理系統_第3頁
JAVA課程設計(論文)學生成績管理系統_第4頁
JAVA課程設計(論文)學生成績管理系統_第5頁
已閱讀5頁,還剩13頁未讀 繼續免費閱讀

下載本文檔

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

文檔簡介

1、目 錄1 需求分析.21.1 系統功能要求分析.21.2 其它要求分析31.3 數據庫需求分析32概要結構設計32.1系統功能結構設計32.2 概要結構設計43 詳細設計及實現.53.1 用戶登陸界面.53.2 管理員界.73.3 用戶界面.93.4 添加模塊123.5 刪除模塊153.5.1 代碼實現:154設計總結.175 參考文獻 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .181 需求分析1.1系統功能要求分析:(1)具有新用戶注冊功能。(2)具有注冊用

2、戶登錄功能。(3)具有學生成績的錄入功能,要求只錄入各科成績,自動計算每個學生的總成績。(4)具有數據查詢功能,可以實現查詢全部信息和按條件執行查詢。(5)具有按條件刪除數據功能。具體功能的詳細描述如下1.1.1 選擇學生基本維護菜單命令,即可進入 學生基本維護功能窗體,在其中輸入學生的相關信息,如果需要添加或修改學生信息,則單擊相應的按紐,輸入新信息后單擊添加就可以了。需要刪除一條信息,則只要選擇這條信息再點擊 刪除。在搜索條件中輸入相關的條件,單擊 查詢就可查找信息。1.1.2 選擇學生信息查詢菜單命令,即可進入學生信息查詢功能窗體,在其中的下拉列表中選擇你要看的信息,則在下面的表格中顯示

3、你要的信息。1.1.3 選擇成績管理 添加成績菜單命令,即可進入 添加成績功能窗體,此功能權限只有管理員和教師。1.1.4 選擇成績管理 輸入成績菜單命令,即可進入 輸入成績功能窗體,此功能權限只有管理員和教師。 1.1.5 選擇成績管理 修改成績 界面,此功能規管理員所有。 1.1.6 選擇成績管理 查詢成績界面此界面對學生也是可見的,它的權限規所有用戶所有。1.1.7 選擇登陸 重新登陸 則會返回登陸界面,為用戶提供方便。1.1.8 選擇退出將退出整個系統。1.2其它要求分析:(1)只能使用java語言,采用面向對象方法進行設計,要求源程序要有適當的注釋,使程序容易閱讀。(2)程序必須與數

4、據庫進行通信。(3)系統必須是圖形用戶界面的形式并連接數據庫。(4)學生可根據自身情況酌情增加新功能(視情況可另外加分)。(5)獨立完成課程設計,并完成課程設計報告,報告應記錄設計的過程,尤其是分析/設計/實現過程中的決策。1.3 數據庫需求分析在系統中功能模塊主要牽涉到的信息包括:是學生信息(student)、課程信息(course)、成績表(sc).學生信息:包含學號(stno)、姓名(sname)、年齡(sage)、性別(ssex)、系別(sdept)課程信息:包括課程編號(cno)、課程名稱(cname)、先行課(cpno)成績表;學號(stno)、課程號(cno)、成績(grade)

5、2概要結構設計2.1系統功能結構設計根據需求分析階段得到的功能需求,管理員、學生和教師用戶通過輸入口令號和密碼進下該系統后,可以進行一些學生基礎信息查詢(學生信息查詢、班級信息查詢、課程信息查詢)、學生信息維護、成績管理(成績查詢、計算平均分)重新登陸系統、退出。 模塊功能大概可以分為如下4個方面:這幾個模塊學生基礎維護、成績管理、登陸、退出。其中基礎維護還要包括學生信息維護、班級信息維護、課程信息維護。成績管理包括成績查詢、添加成績、成績輸入等。綜上所述,得到客戶端功能模塊圖如下2.1所示。2.2 概要結構用戶登陸登陸管理員登陸增加信息查詢信息查詢信息刪除信息e-r 圖:開課系別 名稱成績姓

6、名先行課課名課程選課學號系別年齡學生含有裝訂線長 春 大 學 課程設計紙3詳細設計及實現3.1用戶登陸模塊3.1.1 代碼實現package com.mkx;import java.awt.*;import java.awt.event.*;import javax.swing.*;public class login extends jframe textfield f1;textfield f2;/文本域jbutton b1;jbutton b2;jbutton b3; string power; /表示權限login() container cp=getcontentpane(); cp

7、.setlayout(new gridlayout(4,1); label l1=new label(用戶名);/設置標簽名 label l2=new label(密 碼); panel p1=new panel();/添加面板 panel p2=new panel(); panel p3=new panel(); f1=new textfield(10); f2=new textfield(10); f2.setechochar(*); b1=new jbutton(登錄); b2=new jbutton(重置); b3=new jbutton(退出); p1.add(l1); p1.add

8、(f1); p2.add(l2); p2.add(f2); p3.add(b1); p3.add(b2); p3.add(b3); cp.add(p1); cp.add(p2); cp.add(p3); b1.addactionlistener(new enter(); b2.addactionlistener(new rewrite(); b3.addactionlistener(new close();public static void main(string args) login log=new login(); log.settitle(系統登錄); log.setbounds(2

9、00, 200, 300, 300); log.setbackground(color.blue); log.setvisible(true);class enter implements actionlistener /對登陸具體進行處理 public void actionperformed(actionevent e) if(f1.gettext().equals(1100)&(f2.gettext().equals(mkx) joptionpane.showmessagedialog(null, 登錄成功!用戶權限是管理員); power=管理員; xuesheng frame1 =

10、new xuesheng(); frame1.setvisible(true); else if(f1.gettext().equals(abc)&(f2.gettext().equals(123456) joptionpane.showmessagedialog(null, 登錄成功!用戶權限是學生); power=學生; find f2 = new find(); f2.setvisible(true); else joptionpane.showmessagedialog(null, 登錄失敗,請重新登錄!); class rewrite implements actionlistene

11、r public void actionperformed(actionevent e) f1.settext(); f2.settext(); f1.requestfocus(); class close implements actionlistenerpublic void actionperformed(actionevent e) if(e.getsource()=b3) system.exit(0) ; 3.2 管理員界面3.2.1 代碼實現:package com.mkx;import java.awt.*;import java.awt.event.*;import javax

12、.swing.*;import javax.swing.jframe;public class xuesheng extends jframe implements actionlistener jbutton cx, zj, tc, sc;xuesheng() setbounds(100, 100, 600, 600);jpanel panel2 = new jpanel(); /創建新面板setcontentpane(panel2);panel2.setlayout(null); /設計布局為空jlabel label1 = new jlabel(歡迎進入學生信息管理界面); /創建標簽l

13、abel1.setfont(new font(bold, font.bold, 28); /設計字體顏色大小panel2.add(label1);label1.setbounds(50, 20, 400, 100);cx = new jbutton(查詢);panel2.add(cx);cx.setbounds(50, 200, 80, 50);zj = new jbutton(增加);panel2.add(zj);ianzj.setbounds(150, 200, 80, 50);sc = new jbutton(刪除);panel2.add(sc);sc.setbounds(250, 20

14、0, 80, 50);tc = new jbutton(退出);panel2.add(tc);tc.setbounds(350, 200, 80, 50);cx.addactionlistener(this);/添加監聽zj.addactionlistener(this);sc.addactionlistener(this);tc.addactionlistener(this);setvisible(true);public void actionperformed(actionevent e) /對監聽具體處理方法if (e.getsource() = cx) find f = new fi

15、nd(); if(e.getsource()=zj) addfi f = new addfi(); if(e.getsource()=sc) delet d = new delet(); if(e.getsource()=tc)shutdown();private void shutdown()this.dispose();3.3 用戶界面3.3.1 代碼實現:package com.mkx;import java.awt.*;import java.awt.event.*;import java.sql.connection;import java.sql.drivermanager;imp

16、ort java.sql.preparedstatement;import java.sql.resultset;import java.sql.sqlexception;import javax.swing.*;public class find extends jframe implements actionlistener jtextfield t1;string stno, r1, r2, r3, r4, r5, r6;jbutton b1, b2;xuesheng xue;find() super(查詢學生信息);container c1 = this.getcontentpane(

17、);/獲得默認面板setbackground(new color(215, 215, 215);c1.setlayout(new gridlayout(3, 2);jpanel pp = new jpanel();jlabel label0 = new jlabel(請輸入你的學號);label0.setforeground(color.blue);pp.add(label0);jpanel p1 = new jpanel();t1 = new jtextfield(10);p1.add(new label();p1.add(t1);c1.add(p1);jpanel p2 = new jpa

18、nel();b1 = new jbutton(查詢);b2 = new jbutton(退出);b1.addactionlistener(this);b2.addactionlistener(this);p2.add(b1);p2.add(b2);c1.add(p2);this.setvisible(true);this.setbounds(200, 200, 400, 300);public void actionperformed(actionevent e) try if (e.getsource() = b1) try stno = t1.gettext();class.forname

19、(com.microsoft.sqlserver.jdbc.sqlserverdriver).newinstance();string url = jdbc:sqlserver:/localhost:1433; /數據庫所在地址 databasename=ss;string username = sa; / 默認用戶名string userpwd = sa;connection cn = drivermanager.getconnection(url, username,userpwd);string str = select student.sname,student.sage,studen

20、t.ssex,student.stno,course.cname,sc.grade from student,course ,sc where student.stno = sc.stno and sc.cno = course.cno and student.stno =+stno+;preparedstatement ps = cn.preparestatement(str);/創建結果處理類resultset rs = ps.executequery();system.out.println(stno= + stno);if (rs.next() r1 = rs.getstring(st

21、no);r2 = rs.getstring(sname);r3 = rs.getstring(sage);r4 = rs.getstring(ssex);r5 = rs.getstring(cname);r6 = rs.getstring(grade); else joptionpane.showmessagedialog(null, 你輸入的學號有誤);cn.close(); catch (sqlexception g) system.out.println(error + g.geterrorcode();system.out.println(merrage= + g.getmessage

22、(); catch (exception f) f.printstacktrace();file f = new file();this.dispose();if (e.getsource() = b2) t1.settext();t1.repaint(); catch (numberformatexception ex) joptionpane.showmessagedialog(null, 數據轉換錯誤);class file extends jframe implements actionlistener jtextfield tt1, t2, t3, t4, t5, t6;jbutto

23、n b3;file() super(查詢學生信息);container c2 = this.getcontentpane();setbackground(new color(215, 215, 215);c2.setlayout(new gridlayout(3, 1);tt1 = new jtextfield(r1);t2 = new jtextfield(r2);t3 = new jtextfield(r3);t4 = new jtextfield(r4);t5 = new jtextfield(r5);t6 = new jtextfield(r6);tt1.seteditable(fal

24、se);t2.seteditable(false);t3.seteditable(false);t4.seteditable(false);t5.seteditable(false);t6.seteditable(false);jpanel pp1 = new jpanel();jlabel label2 = new jlabel(學號為 + stno + 學生的信息);pp1.add(label2);label2.setfont(new font(bold, font.bold, 28);c2.add(pp1);jpanel pp2 = new jpanel(new gridlayout(6

25、, 2);pp2.add(new jlabel(學號, swingconstants.center);tt1.settext(stno);pp2.add(tt1);pp2.add(new jlabel(姓名, swingconstants.center);pp2.add(t2);pp2.add(new jlabel(年齡, swingconstants.center);pp2.add(t3);pp2.add(new jlabel(性別, swingconstants.center);pp2.add(t4);pp2.add(new jlabel(課程, swingconstants.center

26、);pp2.add(t5);pp2.add(new jlabel(成績, swingconstants.center);pp2.add(t6);c2.add(pp2);jpanel pp3 = new jpanel();b3 = new jbutton(返回);b3.addactionlistener(this);pp3.add(b3);c2.add(pp3);this.setbounds(200, 200, 600, 400);setvisible(true);public void actionperformed(actionevent f) if (f.getsource() = b3)

27、 this.dispose();3.4 添加模塊3.4.1 添加模塊代碼實現:package com.mkx;import java.awt.*;import java.awt.event.*;import javax.swing.*;import java.sql.*;public class addfi extends jframe implements actionlistener jtextfield stnotext, snametext, sagetext, ssextext, sdepttext;jbutton b1, b2, b3;string stno, sname, sag

28、e, ssex, sdept;public addfi() container c = this.getcontentpane(); /獲得默認面板c.setlayout(new gridlayout(3, 1);jpanel center = new jpanel(new gridlayout(5, 2);jpanel low = new jpanel(new flowlayout();jlabel label1 = new jlabel(添加學生信息, swingconstants.center);label1.setfont(new font(true, font.truetype_fo

29、nt, 20);c.add(label1);stnotext = new jtextfield(30);snametext = new jtextfield(30);ssextext = new jtextfield(30);sagetext = new jtextfield(30);sdepttext = new jtextfield(30);center.add(new jlabel(學號, swingconstants.center);center.add(stnotext);center.add(new jlabel(姓名, swingconstants.center);center.

30、add(snametext);center.add(new jlabel(性別, swingconstants.center);center.add(ssextext);center.add(new jlabel(年齡, swingconstants.center);center.add(sagetext);center.add(new jlabel(系別, swingconstants.center);center.add(sdepttext);c.add(center);b1 = new jbutton(添加);b2 = new jbutton(清除);b3 = new jbutton(退

31、出);low.add(b1);low.add(b2);low.add(b3);c.add(low);/ 為按鈕添加jiantingb1.addactionlistener(this);b2.addactionlistener(this);b3.addactionlistener(this);this.setbounds(200, 200, 600, 400);this.setvisible(true);this.settitle(添加學生信息);public void actionperformed(actionevent e) if (e.getsource() = b1) addfi();

32、if (e.getsource() = b2) clearform();if (e.getsource() = b3) shutdown();private void addfi() stno = stnotext.gettext();sname = snametext.gettext();ssex = ssextext.gettext();sage = sagetext.gettext();sdept = sdepttext.gettext();if (stno.length() = 0 | sname.length() = 0 | sage.length() = 0| sdept.leng

33、th() = 0 | ssex.length() = 0)joptionpane.showmessagedialog(this, 請添加完全信息);else try class.forname(com.microsoft.sqlserver.jdbc.sqlserverdriver).newinstance();string url = jdbc:sqlserver:/localhost:1433; databasename=ss;string username = sa; / 默認用戶名string userpwd = sa;connection cn = drivermanager.get

34、connection(url, username,userpwd);string str = insert into student values(?,?,?,?,?);preparedstatement ps = cn.preparestatement(str);ps.setstring(1, stno);ps.setstring(2, sname);ps.setstring(3, ssex);ps.setstring(4, sage);ps.setstring(5, sdept);ps.executeupdate();cn.close();joptionpane.showmessagedi

35、alog(this, 添加成功);clearform(); catch (sqlexception e) system.out.println(ecode + e.geterrorcode();system.out.println(e m= + e.getmessage(); catch (exception e) e.printstacktrace();private void clearform() stnotext.settext();snametext.settext();sagetext.settext();ssextext.settext();sdepttext.settext()

36、;private void shutdown() this.dispose();3.5 刪除模塊3.5.1 代碼實現:package com.mkx;import java.awt.*;import java.awt.event.*;import java.sql.connection;import java.sql.drivermanager;import java.sql.preparedstatement;import java.sql.sqlexception;import javax.swing.*;public class delet extends jframe implemen

37、ts actionlistenerjbutton yes;jbutton cancle;jtextfield text1;string stno;delet()container c = this.getcontentpane();c.setlayout(new gridlayout(3, 1);c.setfont(new font(true,font.truetype_font,13);jpanel p1 = new jpanel();jpanel p2 = new jpanel();jlabel label1 = new jlabel(刪除學生信息,swingconstants.cente

38、r);label1.setfont(new font(true,font.truetype_font,13);label1.setforeground(color.blue);c.add(label1);jlabel label2 = new jlabel(請輸入學號); text1 = new jtextfield(10);p1.add(label2);p1.add(text1);c.add(p1); yes = new jbutton(確定); cancle = new jbutton(退出);p2.add(yes);p2.add(cancle);c.add(p2);yes.addactionlistener(this);cancle.addactionlistener(this);this.settitle(刪除學生信息);this.setbounds(200,200,400,300);this.setvisible(true); public void a

溫馨提示

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

評論

0/150

提交評論