學(xué)生成績管理系統(tǒng)java課程設(shè)計_第1頁
已閱讀1頁,還剩23頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、<p><b>  目 錄</b></p><p>  1 引言............................................................2</p><p>  3 需求分析........................................................3</p>&

2、lt;p>  2.1 問題陳述3</p><p>  2.2 需求分析4</p><p>  2.3 可行性研究4</p><p>  3 系統(tǒng)總體設(shè)計5</p><p>  3.1 數(shù)據(jù)需求設(shè)計5</p><p>  3.2 功能模塊設(shè)計7</p><p>  4 詳細(xì)設(shè)計與

3、實現(xiàn)8</p><p>  4.1 開發(fā)環(huán)境9</p><p>  4.2 功能實現(xiàn)9</p><p>  4.2.1 登錄管理模塊的實現(xiàn)9</p><p>  4.2.2 用戶管理模塊的實現(xiàn)10</p><p>  4.2.3 花卉管理模塊的實現(xiàn)11</p><p>  4.2.4

4、定退貨管理模塊的實現(xiàn)11</p><p>  4.2.5庫存管理模塊的實現(xiàn)11</p><p>  5 系統(tǒng)測試與性能分析12</p><p>  5.1 登陸管理模塊測試12</p><p>  5.2用戶管理模塊測試13</p><p>  5.3 花卉管理模塊測試15</p><p

5、>  5.5 定退貨管理模塊測試16</p><p>  庫存管理模塊測試16</p><p><b>  6 總結(jié)16</b></p><p><b>  7 參考文獻(xiàn)17</b></p><p><b>  附錄18</b></p><p

6、><b>  設(shè)計題目</b></p><p><b>  學(xué)生成績管理系統(tǒng)</b></p><p><b>  2.設(shè)計目的</b></p><p>  本學(xué)生成績管理系統(tǒng)模塊是為了實現(xiàn)學(xué)校人力資源的優(yōu)化和學(xué)生成績管理的科學(xué)管理而設(shè)計的,通過試用本系統(tǒng),可以更加有效的管理學(xué)生成績信息,<

7、/p><p>  用數(shù)據(jù)庫對大量數(shù)據(jù)的復(fù)雜操作進(jìn)行保存,其中包括學(xué)生的基本信息,成績信息和班級成績信息并且具有信息的增加,查詢,修改和修改等功能。</p><p><b>  設(shè)計分析</b></p><p>  3.1 可行性研究</p><p>  (1)利用面向?qū)ο蟮腏AVA語言來進(jìn)行系統(tǒng)開發(fā),可以很方便的根據(jù)實際定

8、義各個所需要的對象,并對這些對象進(jìn)行操作。同時由于本系統(tǒng)是在用戶圖形界面進(jìn)行各種用戶操作,可以使界面多樣化滿足人們的對美觀的要求,更易懂、更方便操,能夠更方便驗證用戶的輸入是否正確,并進(jìn)行相應(yīng)的提示,這些需求和功能在目前情況下利用所學(xué)知識完全可以實現(xiàn)。并且本系統(tǒng)采用文件來存儲數(shù)據(jù),操作比較簡單,方便學(xué)生成績的導(dǎo)出與打印,省去了人力的大量抄寫,但是在一定程度上限制數(shù)據(jù)量和系統(tǒng)的運(yùn)行速度。 </p><p&g

9、t;  該學(xué)生成績管理系統(tǒng)可以在Microsoft Windows XP 和 Windows 7系統(tǒng)下進(jìn)行開發(fā)和運(yùn)行的,這些系統(tǒng)目前已經(jīng)比較普及,用戶在該系統(tǒng)中可以方便的進(jìn)行各種操作,實現(xiàn)預(yù)期的目的。該系統(tǒng)的開發(fā)成本比較低,符合了人們對低資源高效率的追求,利用較低的成本換取更高的回報。</p><p>  (2)具體的定義問題: </p><p>  此次開發(fā)的項目是一個學(xué)生成績管理系統(tǒng),

10、進(jìn)行學(xué)生信息的增刪改查、學(xué)生成績的管理和班級成績的管理,在進(jìn)入系統(tǒng)之前需要登陸,登陸成功后即可進(jìn)入系統(tǒng)的相應(yīng)的用戶界面。</p><p>  本系統(tǒng)的身份主要分為教務(wù)處、老師和學(xué)生。</p><p> ?、偃羰墙虅?wù)處登錄可以進(jìn)行多條件查詢學(xué)生的信息,也可以增加、刪除、修改、學(xué)生的信息,并可多條件查詢學(xué)生成績的信息,以及成績的增加和修改,查詢班級成績,可按班級查詢或按日期查詢。</p&

11、gt;<p> ?、谌羰抢蠋煹卿洠瑒t可以查詢所有的學(xué)生信息、學(xué)生成績和班級成績。</p><p> ?、廴羰菍W(xué)生登錄,則只可以查詢自己的信息和成績,不可進(jìn)行對任何信息的任何修。</p><p>  ④在登錄界面有注冊功能,并以學(xué)號為線索貫穿整個系統(tǒng)。</p><p>  系統(tǒng)的基本流程圖,如圖3.1所示:</p><p>  圖

12、3.1 系統(tǒng)流程圖</p><p><b>  3.2 需求分析</b></p><p>  (1) 用戶需求:學(xué)生成績管理系統(tǒng)的用戶類,其屬性有用戶名密碼以及身份,用戶必須登錄成功后才可進(jìn)入主界面,用戶再實現(xiàn)學(xué)生信息的查詢、添加刪除、修改,以及學(xué)生成績的查詢管理等功能,管理好這些用戶對系統(tǒng)安全有十分重要的影響。</p><p><b

13、>  (2) 功能需求:</b></p><p>  ① 登錄模塊:主要登錄,系統(tǒng)自動根據(jù)用戶的身份權(quán)限進(jìn)行判斷再彈出不同的用戶界面。 </p><p>  ② 注冊模塊:此模塊用于添加用戶并設(shè)定登錄密碼。</p><p> ?、?學(xué)生信息管理模塊:使教務(wù)處實現(xiàn)對學(xué)生信息的添加、刪除、修改、查找,以及對外鍵密碼的查詢;教師和學(xué)生則只可以查看。<

14、;/p><p> ?、?學(xué)生成績管理模塊:教務(wù)處可以實現(xiàn)對學(xué)生成績添加、修改、查找學(xué)生成績可以進(jìn)行學(xué)生成績的操作;教師和學(xué)生只可以查看。</p><p> ?、?班級成績管理模塊:此模塊主要是按條件查詢功能,不能手動添加記錄,只能在添加學(xué)生成績時,有系統(tǒng)自動調(diào)用方法對此表進(jìn)行按班級并繼承此班級的成績添加記錄,如沒有此班級的記錄則不用繼承任何數(shù)據(jù)此學(xué)生的總成績和平均成績就是此條記錄的總成績和平均

15、成績。</p><p><b>  概念結(jié)構(gòu)設(shè)計</b></p><p>  學(xué)生成績管理系統(tǒng)的設(shè)計,主要解決的是對系統(tǒng)中的學(xué)生的基本信息,學(xué)生成績的基本信息,以及班級成績管理工作。首先,需要定義各個所需要的數(shù)據(jù)對象,然后在這些對象上進(jìn)行操作;其次,實現(xiàn)功能模塊時,采用先模塊化,后集成化,即對系統(tǒng)各個功能模塊分別獨(dú)立設(shè)計和調(diào)試,在創(chuàng)建系統(tǒng)主登錄界面時再將各個功能模塊通

16、過主菜單對各個模塊的調(diào)用集成到一起,最后進(jìn)行系統(tǒng)整體設(shè)計調(diào)試。在數(shù)據(jù)存儲和操作方面,采用文件的讀寫導(dǎo)出數(shù)據(jù)庫,并在讀出數(shù)據(jù)之后放入鏈表進(jìn)行操作;并在數(shù)據(jù)更新之后將數(shù)據(jù)存到數(shù)據(jù)庫中,這樣可以減少對磁盤的直接操作次數(shù),從而提高系統(tǒng)設(shè)計的效率。</p><p>  4.1 概念模型(系統(tǒng)E-R圖)</p><p><b>  (1)局部E-R圖</b></p>

17、<p>  學(xué)生實體E-R圖,如圖4.1所示:</p><p>  圖4.1 學(xué)生實體圖</p><p>  登錄用戶(此實體圖包括教務(wù)處、老師和學(xué)生)實體E-R圖,如圖4.2所示:</p><p>  圖4.2 登錄用戶實體圖</p><p>  學(xué)生成績實體,如圖4.3所示:</p><p>  圖4

18、.3 學(xué)生成績實體圖</p><p>  班級實體E-R圖,如圖4.4所示:</p><p>  圖4.4 班級實體圖</p><p>  (2)整體E-R圖,如圖4.5所示:</p><p><b>  1n</b></p><p><b>  11</b></

19、p><p><b>  n</b></p><p><b>  n</b></p><p><b>  11</b></p><p>  圖4.5 整體E-R圖</p><p>  這些類之間對于同一個學(xué)生來說,重復(fù)定義的數(shù)據(jù)是相同的,在功能調(diào)用時采用

20、數(shù)據(jù)耦合,降低系統(tǒng)中的耦合度。</p><p>  4.2 類設(shè)計和數(shù)據(jù)存儲</p><p><b>  (1)類設(shè)計 </b></p><p> ?、儆脩纛悾菏紫榷x一個用戶類Logininfo,擁有私有屬性用戶名和密碼,實現(xiàn)用戶的登陸,將數(shù)據(jù)存入數(shù)據(jù)庫。</p><p> ?、趯W(xué)生信息類:里面是一個學(xué)生信息類,包含

21、學(xué)生姓名、學(xué)號、性別和籍貫等一些基本信息。</p><p> ?、蹖W(xué)生成績類:主要記錄學(xué)生成績信息。</p><p> ?、馨嗉壋煽冾悾河脕碛涗涬S學(xué)生成績修改添加而隨之添加的班級成績記錄,并自動把班級成績累加計算。</p><p>  ⑤數(shù)據(jù)庫連接類:主要實現(xiàn)與數(shù)據(jù)庫的連接,實現(xiàn)數(shù)據(jù)的操作。</p><p>  ⑥dao包:主要是包含用戶信息

22、以、學(xué)生信息和學(xué)生成績信息的增刪改查的操作方法的一些類。</p><p> ?、遶iew包:此包中主要實現(xiàn)用戶界面,各種GUI設(shè)計 </p><p> ?、嘀黝悾菏浅绦虻娜肟冢绦驈拇祟愰_始執(zhí)行。</p><p>  類中數(shù)據(jù)不可被其他類訪問的數(shù)據(jù)權(quán)限設(shè)為private,符合信息隱藏原理,能更好的實現(xiàn)模塊獨(dú)立化。</p><p><b&

23、gt;  (2)數(shù)據(jù)存儲</b></p><p>  ①數(shù)據(jù)存儲主要是通過用MySQL數(shù)據(jù)庫來實現(xiàn)的,將數(shù)據(jù)庫中的信息借助</p><p>  List這個接口,通過接口回調(diào)得到一個list對象,將從文件中讀取到的所有對象都放到list對象中,然后通過對list進(jìn)行遍歷,實現(xiàn)增刪改查操作。</p><p>  ②學(xué)生成績也可以導(dǎo)出到文本文檔中保存,使用B

24、ufferedWriter類把list中的內(nèi)容寫到文本文檔中,使用File類實現(xiàn)文件的創(chuàng)建和選擇。</p><p>  4.3 功能模塊設(shè)計</p><p><b> ?。?)登陸管理模塊</b></p><p>  實現(xiàn)用戶的登錄,如圖4.6所示:</p><p>  圖4.6 用戶登錄模塊</p>

25、<p> ?。?)學(xué)生信息管理模塊</p><p>  實現(xiàn)對學(xué)生信息增加、刪除、修改、查找功能。如圖4.7所示: </p><p>  圖4.7 學(xué)生信息管理模塊</p><p>  (3)學(xué)生成績管理模塊</p><p>  用戶可以實現(xiàn)對學(xué)生成績的查詢、添加和修改,其操作如下圖4.8所示:</p><p&

26、gt;  圖4.8 學(xué)生成績管理模塊</p><p>  (4) 班級成績管理模塊</p><p>  主要實現(xiàn)班級成績的自動添加與統(tǒng)計,其操作如下圖4.9所示 :</p><p>  圖4.9 班級成績管理模塊</p><p><b>  5. 邏輯結(jié)構(gòu)設(shè)計</b></p><p><

27、b>  5.1 開發(fā)環(huán)境</b></p><p> ?。?) 開發(fā)語言:面向?qū)ο蟮母呒壘幊陶Z言JAVA,一種可以撰寫跨平臺應(yīng)用軟件的面向?qū)ο蟮某绦蛟O(shè)計語言,JAVA 技術(shù)具有卓越的通用性、高效性、平臺移植性和安全性,廣泛應(yīng)用于個人PC、數(shù)據(jù)中心、游戲控制臺、科學(xué)超級計算機(jī)、移動電話和互聯(lián)網(wǎng),同時擁有全球最大的開發(fā)者專業(yè)社群。在全球云計算和移動互聯(lián)網(wǎng)的產(chǎn)業(yè)環(huán)境下,JAVA更具備了顯著優(yōu)勢和廣闊前景

28、。</p><p> ?。?) 開發(fā)工具:Eclipse Eclips是一個開放源代碼的、基于 Java 的可擴(kuò)展開發(fā)平臺。</p><p>  E-R圖轉(zhuǎn)換的關(guān)系模式</p><p>  學(xué)生(學(xué)號,姓名,性別,院系,班級,籍貫,民族,入學(xué)年分,出生年月)</p><p>  登錄用戶(用戶id,用戶名,用戶密碼)</p>

29、<p>  學(xué)生成績(學(xué)號,姓名,班級,院系,英語成績,操作系統(tǒng)成績,軟件工程成績,Java成績,總成績,平均成績,日期)</p><p>  班級成績(班級號,總成績,平均成績,日期)</p><p><b>  6. 表結(jié)構(gòu)定義</b></p><p>  登錄用戶t_login表結(jié)構(gòu)定義,如下圖6.1所示:</p>

30、<p>  圖6.1 登錄用戶表結(jié)構(gòu)定義圖</p><p>  學(xué)生t_srudentinfo表結(jié)構(gòu)定義,如下圖6.2所示:</p><p>  圖6.2 學(xué)生表結(jié)構(gòu)定義</p><p>  (3) 學(xué)生成績t_grade表結(jié)構(gòu)定義,如圖6.3所示:</p><p>  圖6.3 學(xué)生成績表結(jié)構(gòu)定義圖</p>&

31、lt;p>  4. 班級成績t_tongji表結(jié)構(gòu)定義,如圖6.4所示:</p><p>  圖6.4 班級成績表結(jié)構(gòu)定義圖</p><p><b>  七、具體功能實現(xiàn)</b></p><p><b>  1.登錄功能的實現(xiàn)</b></p><p>  (1) 登錄界面該界面可以對用戶名和

32、密碼進(jìn)行驗證如不正確則會顯示錯誤信息,如圖7.1所示:</p><p>  圖7.1 登錄界面</p><p>  (2)登錄功能的實現(xiàn)代碼,此段代碼通過連接數(shù)據(jù)庫用sql語句查找符合條件的用戶,返回值為Logininfo類的對象,在調(diào)用此方法的程序中驗證此對象是否為空,如為空,則沒有該用戶顯示錯誤信息;如不為空,則該用戶存在,可直接用此對象的getRole()方法進(jìn)入不同的界面。<

33、;/p><p>  public Logininfo querybyUsernameAndPassword(Logininfo user){</p><p>  Logininfo u =new Logininfo();</p><p>  String name=user.getName();</p><p>  String pwd=user

34、.getPassword();</p><p>  String sql="select * from t_login where name ='"+name+"'and password='"+pwd+"'";</p><p>  DBConnection conn=new DBConnectio

35、n();</p><p>  ResultSet rs=conn.doQuery(sql);</p><p><b>  try {</b></p><p>  if(rs.next()){</p><p>  u.setName(rs.getString("name"));</p>&

36、lt;p>  u.setPassword(rs.getString("password"));</p><p>  u.setRole(rs.getInt("role"));</p><p><b>  }</b></p><p>  } catch (SQLException e) {</p

37、><p>  e.printStackTrace();</p><p><b>  }</b></p><p>  conn.queryclose();</p><p><b>  return u;</b></p><p><b>  }</b><

38、/p><p>  2. 學(xué)生信息查詢功能的實現(xiàn)</p><p>  (1) 學(xué)生信息查詢功能界面,如圖7.2所示:</p><p>  圖7.2 學(xué)生信息查詢界面</p><p>  (2) 學(xué)生信息查詢功能的實現(xiàn)代碼</p><p>  public List<Studentinfo> queryAll(

39、) {</p><p>  DBConnection conn = new DBConnection();</p><p>  String sql = "select * from t_studentinfo";</p><p>  ResultSet rs = conn.doQuery(sql);</p><p>  

40、List<Studentinfo> list = new ArrayList<Studentinfo>();</p><p><b>  try {</b></p><p>  while (rs.next()) {</p><p>  Studentinfo student = new Studentinfo();

41、 student.setId(rs.getInt("id"));</p><p>  student.setName(rs.getString("name"));</p><p>  student.setClasses(rs.getInt("classes"));</p><p>  student.

42、setSex(rs.getString("sex"));</p><p>  student.setRace(rs.getString("race"));</p><p>  student.setNativeplace(rs.getString("nativeplace"));</p><p>  stu

43、dent.setDepartment(rs.getString("department"));</p><p>  student.setSchoolyear(rs.getString("schoolyear"));</p><p>  student.setBirth(rs.getString("birth"));<

44、;/p><p>  list.add(student);</p><p><b>  }</b></p><p>  } catch (SQLException e) {</p><p>  e.printStackTrace();</p><p><b>  }</b><

45、;/p><p>  conn.queryclose();</p><p>  return list;}</p><p>  3. 學(xué)生信息添加功能的實現(xiàn)</p><p>  (1) 學(xué)生信息添加功能界面,如圖7.3所示:</p><p>  圖7.3 學(xué)生信息添加界面</p><p>  (2)

46、 學(xué)生信息添加功能的實現(xiàn)代碼</p><p>  public boolean insertStudent(Studentinfo student) {</p><p>  DBConnection conn = new DBConnection();</p><p>  String name = student.getName();</p><

47、;p>  int classes = student.getClasses();</p><p>  String sex=student.getSex();</p><p>  String race=student.getRace();</p><p>  String nativeplace=student.getNativeplace();</p

48、><p>  String department=student.getName();</p><p>  String schoolyear=student.getSchoolyear();</p><p>  String birth=student.getBirth();</p><p>  String sql = "inser

49、t into t_studentinfo (name,classes,sex,race,nativeplace,department,schoolyear,birth) values('"+ name + "'," + classes + ",'" + sex + "','"+race+"','&quo

50、t;+nativeplace+"','"+department+"','"+schoolyear+"','"+birth+"')";</p><p>  int count = conn.Update(sql);</p><p>  if (count &

51、gt; 0) {</p><p>  conn.updateclose();</p><p>  return true;</p><p><b>  } else {</b></p><p>  conn.updateclose();</p><p>  return false;</p&

52、gt;<p><b>  }</b></p><p><b>  }</b></p><p>  4.學(xué)生信息修改功能的實現(xiàn)</p><p>  (1)學(xué)生信息修改功能界面,如圖7.4所示:</p><p>  圖7.4 學(xué)生信息修改界面</p><p>  

53、(2)學(xué)生信息修改功能的實現(xiàn)代碼</p><p>  public boolean Alteruser(Studentinfo s){</p><p>  String name=s.getName();</p><p>  int classes=s.getClasses();</p><p>  String sex=s.getSex()

54、;</p><p>  String race=s.getRace();</p><p>  String nativeplace=s.getNativeplace();</p><p>  String department=s.getDepartment();</p><p>  String schoolyear=s.getSchool

55、year();</p><p>  String birth=s.getBirth();</p><p>  DBConnection conn=new DBConnection();</p><p>  String sql="update t_studentinfo set name='"+name+"',clas

56、ses="+classes+",sex='"+sex+"',race='"+race+"',nativeplace='"+nativeplace+"'," + "department='"+department+"', schoolyear=

57、9;"+schoolyear+"',birth='"+birth+"' where id="+s.getId();</p><p>  int count=conn.Update(sql);</p><p>  if(count>0){</p><p>  conn.updateclos

58、e();</p><p>  return true;</p><p><b>  }else{</b></p><p>  conn.updateclose();</p><p>  return false;</p><p><b>  }</b></p>

59、<p><b>  }</b></p><p>  5.學(xué)生信息刪除功能的實現(xiàn)</p><p>  (1)學(xué)生信息刪除功能界面,如圖7.5所示:</p><p>  圖7.5 學(xué)生信息刪除界面</p><p>  (2)學(xué)生信息刪除功能的實現(xiàn)代碼</p><p>  public bo

60、olean deletebyID(int id){</p><p>  DBConnection conn=new DBConnection();</p><p>  String sql="delete from t_studentinfo where id=" + id;</p><p>  int count=conn.Update(sql

61、);</p><p>  if(count>0){</p><p>  conn.updateclose();</p><p>  return true;</p><p><b>  }else{</b></p><p>  conn.updateclose();</p>&

62、lt;p>  return false;</p><p><b>  }</b></p><p><b>  }</b></p><p>  6.學(xué)生成績查詢功能的實現(xiàn)</p><p>  (1)學(xué)生成績查詢功能界面,如圖7.6所示:</p><p>  圖7.6

63、學(xué)生成績查詢功能界面</p><p>  (2) 學(xué)生成績查詢功能的實現(xiàn)代碼</p><p>  public List<Grade> queryAll() {</p><p>  DBConnection conn = new DBConnection();</p><p>  String sql = "selec

64、t * from t_grade";</p><p>  ResultSet rs = conn.doQuery(sql);</p><p>  List<Grade> list = new ArrayList<Grade>();</p><p><b>  try {</b></p><p

65、>  while (rs.next()) {</p><p>  Grade grade = new Grade(); </p><p>  grade.setId(rs.getInt("id"));</p><p>  grade.setName(rs.getString("name"));</p>&l

66、t;p>  grade.setDepartment(rs.getString("department"));</p><p>  grade.setClasses(rs.getInt("classes"));</p><p>  grade.setEnglish(rs.getFloat("english"));</p&

67、gt;<p>  grade.setSoft(rs.getFloat("soft"));</p><p>  grade.setOs(rs.getFloat("os"));</p><p>  grade.setJava(rs.getFloat("Java"));</p><p>  grad

68、e.setSum(rs.getFloat("sum"));</p><p>  grade.setAverage(rs.getFloat("average"));</p><p>  grade.setDates(rs.getString("dates"));</p><p>  list.add(gra

69、de);</p><p><b>  }</b></p><p>  } catch (SQLException e) {</p><p>  e.printStackTrace();</p><p><b>  }</b></p><p>  conn.queryclos

70、e();</p><p>  return list;</p><p><b>  }</b></p><p>  7.學(xué)生成績添加功能的實現(xiàn)</p><p>  (1)學(xué)生成績添加功能界面,如圖7.7所示:</p><p>  圖7.7 學(xué)生成績添加界面</p><p>

71、;  (2) 學(xué)生成績添加功能的實現(xiàn)代碼</p><p>  public List<Grade> queryAll() {</p><p>  DBConnection conn = new DBConnection();</p><p>  String sql = "select * from t_grade";</p&

72、gt;<p>  ResultSet rs = conn.doQuery(sql);</p><p>  List<Grade> list = new ArrayList<Grade>();</p><p><b>  try {</b></p><p>  while (rs.next()) {</

73、p><p>  Grade grade = new Grade(); grade.setId(rs.getInt("id"));</p><p>  grade.setName(rs.getString("name"));</p><p>  grade.setDepartment(rs.getString("

74、department"));</p><p>  grade.setClasses(rs.getInt("classes"));</p><p>  grade.setEnglish(rs.getFloat("english"));</p><p>  grade.setSoft(rs.getFloat("

75、soft"));</p><p>  grade.setOs(rs.getFloat("os"));</p><p>  grade.setJava(rs.getFloat("Java"));</p><p>  grade.setSum(rs.getFloat("sum"));</p>

76、;<p>  grade.setAverage(rs.getFloat("average"));</p><p>  grade.setDates(rs.getString("dates"));</p><p>  list.add(grade);</p><p><b>  }</b>&

77、lt;/p><p>  } catch (SQLException e) {</p><p>  e.printStackTrace();</p><p><b>  }</b></p><p>  conn.queryclose();</p><p>  return list;</p>

78、;<p><b>  }</b></p><p>  8.學(xué)生成績修改功能的實現(xiàn)</p><p>  (1)學(xué)生成績修改功能界面,如圖7.8所示:</p><p>  圖7.8 學(xué)生成績修改界面</p><p>  (2) 學(xué)生成績修改功能的實現(xiàn)代碼</p><p>  publi

79、c boolean AlterGrade(Grade g){</p><p>  float english=g.getEnglish();</p><p>  float soft=g.getSoft();</p><p>  float os=g.getOs();</p><p>  float java=g.getJava();<

80、/p><p>  float sum=english+soft+os+java;</p><p>  float average=sum/4;</p><p>  DBConnection conn=new DBConnection();</p><p>  String sql="update t_grade set English

81、="+english+",soft="+soft+",os="+os+",Java="+java+",sum="+sum+",average="+average+" where id="+g.getId();</p><p>  int count=conn.Update(sql);&

82、lt;/p><p>  if(count>0){</p><p>  conn.updateclose();</p><p>  return true;</p><p><b>  }else{</b></p><p>  conn.updateclose();</p><

83、p>  return false;</p><p><b>  }</b></p><p><b>  }</b></p><p>  9.學(xué)生成績導(dǎo)出功能的實現(xiàn)</p><p>  (1)學(xué)生成績導(dǎo)出功能界面,如圖7.9所示:</p><p>  圖7.9 學(xué)生成

84、績導(dǎo)出功能界面</p><p>  (2) 學(xué)生成績導(dǎo)出功能的實現(xiàn)代碼</p><p>  GradeDao data=new GradeDao();</p><p>  List list=data.queryAll();</p><p>  GradeTable table=new GradeTable();</p><

85、;p>  JTable table1=new JTable();</p><p>  table1=table.GradeTable(table1, list);</p><p>  int p=fileDialog.showSaveDialog(this);</p><p>  File file=fileDialog.getSelectedFile();&

86、lt;/p><p>  String s=" 學(xué)號 "+" 姓名 "+" 院系 "+" 班級 "+" 英語 "+" 軟件工程 "+" 操縱系統(tǒng) "+" Java "+" 總成績 "+&

87、quot; 平均成績 "+" 日期 "+"\n ";</p><p><b>  try{</b></p><p>  FileWriter write=new FileWriter(file);</p><p>  BufferedWriter write1=new

88、BufferedWriter(write); //從內(nèi)存寫出到硬盤</p><p>  write1.write(s);</p><p>  write1.newLine();</p><p>  for(int i=0;i<list.size();i++){</p><p>  Grade g=new Grade();</p&g

89、t;<p>  g=(Grade) list.get(i);</p><p>  String s1 = " "+g.getId()+" "+g.getName()+" "+g.getDepartment()+" "+g.getClasses()+" "+g.getEngl

90、ish()+" "+g.getSoft()+" "+g.getOs()+" "+g.getJava()+" "+g.getSum()+" "+g.getAverage()+" "+g.getDates()+" \n";</p><p>  Sy

91、stem.out.println(s1); //從內(nèi)存寫出到硬盤</p><p>  write1.write(s1);</p><p>  write1.newLine();</p><p><b>  }</b></p><p>  write1.close();</p><p>  writ

92、e.close();</p><p><b>  }</b></p><p>  catch(IOException a){</p><p><b>  }</b></p><p>  10.班級成績查詢功能的實現(xiàn)</p><p>  (1)班級成績查詢功能界面,如圖7.1

93、0所示:</p><p>  圖7.10 班級成績查詢界面</p><p>  (2)班級成績查詢功能的實現(xiàn)代碼</p><p>  public List<Tongji> queryAll() {</p><p>  DBConnection conn = new DBConnection();</p><

94、;p>  String sql = "select * from t_tongji";</p><p>  ResultSet rs = conn.doQuery(sql);</p><p>  List<Tongji> list = new ArrayList<Tongji>();</p><p><b>

95、;  try {</b></p><p>  while (rs.next()) {</p><p>  Tongji t = new Tongji();</p><p>  t.setId(rs.getInt("id"));</p><p>  t.setClasses(rs.getInt("cla

96、sses"));</p><p>  t.setSum(rs.getFloat("sum"));</p><p>  t.setAverage(rs.getFloat("average"));</p><p>  t.setDates(rs.getString("dates"));</p&g

97、t;<p>  list.add(t);</p><p><b>  }</b></p><p>  } catch (SQLException e) {</p><p>  e.printStackTrace();</p><p><b>  }</b></p>&l

98、t;p>  conn.queryclose();</p><p>  return list;</p><p><b>  }</b></p><p><b>  八、總結(jié)</b></p><p>  經(jīng)過四個多星期的系統(tǒng)設(shè)計與代碼編寫,基本完成了學(xué)生成績管理系統(tǒng)(主要是權(quán)限分配、學(xué)生信息管理

99、、學(xué)生成績管理、班級成績管理)的設(shè)計與實現(xiàn)。在這個系統(tǒng)中,可實現(xiàn)由計算機(jī)代替人工執(zhí)行一系列諸如學(xué)生信息、學(xué)生成績和班級成績信息的增、刪、查、改和導(dǎo)出等操作以及個人信息的更新等等,這樣就使管理人員從繁重的工作中解脫出來,同時實現(xiàn)管理工作的規(guī)范化、效率化、國際化。</p><p>  在設(shè)計過程中,我首先考慮到了本系統(tǒng)各個大的功能模塊,然后進(jìn)行更加詳細(xì)的劃分,逐步完善各個模塊的具體內(nèi)容。在進(jìn)行具體代碼的編寫時,突然會

100、發(fā)現(xiàn)有很多邊界條件沒有考慮到,各種各樣的漏洞導(dǎo)致系統(tǒng)容易崩潰不能正常運(yùn)行,這就需要補(bǔ)充很多的邊界控制條件,這時才明白寫出能運(yùn)行的程序和寫出健壯的程序是完全不同的兩個概念,這些都是需要牢記和掌握的。在信息提示方面,需要給用戶一些溫馨的提示,而不是諸如“錯誤編號0x704820”這類的冰冷警告。我們要讓用戶對系統(tǒng)感到親切和易使用,并能通過溫馨提示讓用戶自己解決問題,這也可以減少維護(hù)人員的工作量,我們需要的就是一個健壯、友好的系統(tǒng)。</

101、p><p>  總之,本次設(shè)計是對自己以前所學(xué)的知識進(jìn)行系統(tǒng)的綜合實踐,使自己收獲匪淺,更加深刻的理解了課本知識,并學(xué)以致用。在本次畢業(yè)設(shè)計過程中,在老師的耐心指導(dǎo)及同學(xué)們幫助下,基本上完成了預(yù)定目標(biāo)。</p><p><b>  九、參考文獻(xiàn)</b></p><p>  (1)Java語言程序設(shè)計 張振領(lǐng)編 中國電力出版社</p&g

溫馨提示

  • 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. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(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

提交評論