版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
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è)計(jì)5</p><p> 3.1 數(shù)據(jù)需求設(shè)計(jì)5</p><p> 3.2 功能模塊設(shè)計(jì)7</p><p> 4 詳細(xì)設(shè)計(jì)與
3、實(shí)現(xiàn)8</p><p> 4.1 開發(fā)環(huán)境9</p><p> 4.2 功能實(shí)現(xiàn)9</p><p> 4.2.1 登錄管理模塊的實(shí)現(xiàn)9</p><p> 4.2.2 用戶管理模塊的實(shí)現(xiàn)10</p><p> 4.2.3 花卉管理模塊的實(shí)現(xiàn)11</p><p> 4.2.4
4、定退貨管理模塊的實(shí)現(xiàn)11</p><p> 4.2.5庫(kù)存管理模塊的實(shí)現(xiàn)11</p><p> 5 系統(tǒng)測(cè)試與性能分析12</p><p> 5.1 登陸管理模塊測(cè)試12</p><p> 5.2用戶管理模塊測(cè)試13</p><p> 5.3 花卉管理模塊測(cè)試15</p><p
5、> 5.5 定退貨管理模塊測(cè)試16</p><p> 庫(kù)存管理模塊測(cè)試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è)計(jì)題目</b></p><p><b> 學(xué)生成績(jī)管理系統(tǒng)</b></p><p><b> 2.設(shè)計(jì)目的</b></p><p> 本學(xué)生成績(jī)管理系統(tǒng)模塊是為了實(shí)現(xiàn)學(xué)校人力資源的優(yōu)化和學(xué)生成績(jī)管理的科學(xué)管理而設(shè)計(jì)的,通過試用本系統(tǒng),可以更加有效的管理學(xué)生成績(jī)信息,<
7、/p><p> 用數(shù)據(jù)庫(kù)對(duì)大量數(shù)據(jù)的復(fù)雜操作進(jìn)行保存,其中包括學(xué)生的基本信息,成績(jī)信息和班級(jí)成績(jī)信息并且具有信息的增加,查詢,修改和修改等功能。</p><p><b> 設(shè)計(jì)分析</b></p><p> 3.1 可行性研究</p><p> (1)利用面向?qū)ο蟮腏AVA語(yǔ)言來(lái)進(jìn)行系統(tǒng)開發(fā),可以很方便的根據(jù)實(shí)際定
8、義各個(gè)所需要的對(duì)象,并對(duì)這些對(duì)象進(jìn)行操作。同時(shí)由于本系統(tǒng)是在用戶圖形界面進(jìn)行各種用戶操作,可以使界面多樣化滿足人們的對(duì)美觀的要求,更易懂、更方便操,能夠更方便驗(yàn)證用戶的輸入是否正確,并進(jìn)行相應(yīng)的提示,這些需求和功能在目前情況下利用所學(xué)知識(shí)完全可以實(shí)現(xiàn)。并且本系統(tǒng)采用文件來(lái)存儲(chǔ)數(shù)據(jù),操作比較簡(jiǎn)單,方便學(xué)生成績(jī)的導(dǎo)出與打印,省去了人力的大量抄寫,但是在一定程度上限制數(shù)據(jù)量和系統(tǒng)的運(yùn)行速度。 </p><p&g
9、t; 該學(xué)生成績(jī)管理系統(tǒng)可以在Microsoft Windows XP 和 Windows 7系統(tǒng)下進(jìn)行開發(fā)和運(yùn)行的,這些系統(tǒng)目前已經(jīng)比較普及,用戶在該系統(tǒng)中可以方便的進(jìn)行各種操作,實(shí)現(xiàn)預(yù)期的目的。該系統(tǒng)的開發(fā)成本比較低,符合了人們對(duì)低資源高效率的追求,利用較低的成本換取更高的回報(bào)。</p><p> (2)具體的定義問題: </p><p> 此次開發(fā)的項(xiàng)目是一個(gè)學(xué)生成績(jī)管理系統(tǒng),
10、進(jìn)行學(xué)生信息的增刪改查、學(xué)生成績(jī)的管理和班級(jí)成績(jī)的管理,在進(jìn)入系統(tǒng)之前需要登陸,登陸成功后即可進(jìn)入系統(tǒng)的相應(yīng)的用戶界面。</p><p> 本系統(tǒng)的身份主要分為教務(wù)處、老師和學(xué)生。</p><p> ?、偃羰墙虅?wù)處登錄可以進(jìn)行多條件查詢學(xué)生的信息,也可以增加、刪除、修改、學(xué)生的信息,并可多條件查詢學(xué)生成績(jī)的信息,以及成績(jī)的增加和修改,查詢班級(jí)成績(jī),可按班級(jí)查詢或按日期查詢。</p&
11、gt;<p> ?、谌羰抢蠋煹卿?,則可以查詢所有的學(xué)生信息、學(xué)生成績(jī)和班級(jí)成績(jī)。</p><p> ③若是學(xué)生登錄,則只可以查詢自己的信息和成績(jī),不可進(jìn)行對(duì)任何信息的任何修。</p><p> ④在登錄界面有注冊(cè)功能,并以學(xué)號(hào)為線索貫穿整個(gè)系統(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é)生成績(jī)管理系統(tǒng)的用戶類,其屬性有用戶名密碼以及身份,用戶必須登錄成功后才可進(jìn)入主界面,用戶再實(shí)現(xiàn)學(xué)生信息的查詢、添加刪除、修改,以及學(xué)生成績(jī)的查詢管理等功能,管理好這些用戶對(duì)系統(tǒng)安全有十分重要的影響。</p><p><b
13、> (2) 功能需求:</b></p><p> ① 登錄模塊:主要登錄,系統(tǒng)自動(dòng)根據(jù)用戶的身份權(quán)限進(jìn)行判斷再?gòu)棾霾煌挠脩艚缑妗?</p><p> ?、?注冊(cè)模塊:此模塊用于添加用戶并設(shè)定登錄密碼。</p><p> ③ 學(xué)生信息管理模塊:使教務(wù)處實(shí)現(xiàn)對(duì)學(xué)生信息的添加、刪除、修改、查找,以及對(duì)外鍵密碼的查詢;教師和學(xué)生則只可以查看。<
14、;/p><p> ?、?學(xué)生成績(jī)管理模塊:教務(wù)處可以實(shí)現(xiàn)對(duì)學(xué)生成績(jī)添加、修改、查找學(xué)生成績(jī)可以進(jìn)行學(xué)生成績(jī)的操作;教師和學(xué)生只可以查看。</p><p> ?、?班級(jí)成績(jī)管理模塊:此模塊主要是按條件查詢功能,不能手動(dòng)添加記錄,只能在添加學(xué)生成績(jī)時(shí),有系統(tǒng)自動(dòng)調(diào)用方法對(duì)此表進(jìn)行按班級(jí)并繼承此班級(jí)的成績(jī)添加記錄,如沒有此班級(jí)的記錄則不用繼承任何數(shù)據(jù)此學(xué)生的總成績(jī)和平均成績(jī)就是此條記錄的總成績(jī)和平均
15、成績(jī)。</p><p><b> 概念結(jié)構(gòu)設(shè)計(jì)</b></p><p> 學(xué)生成績(jī)管理系統(tǒng)的設(shè)計(jì),主要解決的是對(duì)系統(tǒng)中的學(xué)生的基本信息,學(xué)生成績(jī)的基本信息,以及班級(jí)成績(jī)管理工作。首先,需要定義各個(gè)所需要的數(shù)據(jù)對(duì)象,然后在這些對(duì)象上進(jìn)行操作;其次,實(shí)現(xiàn)功能模塊時(shí),采用先模塊化,后集成化,即對(duì)系統(tǒng)各個(gè)功能模塊分別獨(dú)立設(shè)計(jì)和調(diào)試,在創(chuàng)建系統(tǒng)主登錄界面時(shí)再將各個(gè)功能模塊通
16、過主菜單對(duì)各個(gè)模塊的調(diào)用集成到一起,最后進(jìn)行系統(tǒng)整體設(shè)計(jì)調(diào)試。在數(shù)據(jù)存儲(chǔ)和操作方面,采用文件的讀寫導(dǎo)出數(shù)據(jù)庫(kù),并在讀出數(shù)據(jù)之后放入鏈表進(jìn)行操作;并在數(shù)據(jù)更新之后將數(shù)據(jù)存到數(shù)據(jù)庫(kù)中,這樣可以減少對(duì)磁盤的直接操作次數(shù),從而提高系統(tǒng)設(shè)計(jì)的效率。</p><p> 4.1 概念模型(系統(tǒng)E-R圖)</p><p><b> (1)局部E-R圖</b></p>
17、<p> 學(xué)生實(shí)體E-R圖,如圖4.1所示:</p><p> 圖4.1 學(xué)生實(shí)體圖</p><p> 登錄用戶(此實(shí)體圖包括教務(wù)處、老師和學(xué)生)實(shí)體E-R圖,如圖4.2所示:</p><p> 圖4.2 登錄用戶實(shí)體圖</p><p> 學(xué)生成績(jī)實(shí)體,如圖4.3所示:</p><p> 圖4
18、.3 學(xué)生成績(jī)實(shí)體圖</p><p> 班級(jí)實(shí)體E-R圖,如圖4.4所示:</p><p> 圖4.4 班級(jí)實(shí)體圖</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> 這些類之間對(duì)于同一個(gè)學(xué)生來(lái)說,重復(fù)定義的數(shù)據(jù)是相同的,在功能調(diào)用時(shí)采用
20、數(shù)據(jù)耦合,降低系統(tǒng)中的耦合度。</p><p> 4.2 類設(shè)計(jì)和數(shù)據(jù)存儲(chǔ)</p><p><b> (1)類設(shè)計(jì) </b></p><p> ①用戶類:首先定義一個(gè)用戶類Logininfo,擁有私有屬性用戶名和密碼,實(shí)現(xiàn)用戶的登陸,將數(shù)據(jù)存入數(shù)據(jù)庫(kù)。</p><p> ②學(xué)生信息類:里面是一個(gè)學(xué)生信息類,包含
21、學(xué)生姓名、學(xué)號(hào)、性別和籍貫等一些基本信息。</p><p> ?、蹖W(xué)生成績(jī)類:主要記錄學(xué)生成績(jī)信息。</p><p> ④班級(jí)成績(jī)類:用來(lái)記錄隨學(xué)生成績(jī)修改添加而隨之添加的班級(jí)成績(jī)記錄,并自動(dòng)把班級(jí)成績(jī)累加計(jì)算。</p><p> ⑤數(shù)據(jù)庫(kù)連接類:主要實(shí)現(xiàn)與數(shù)據(jù)庫(kù)的連接,實(shí)現(xiàn)數(shù)據(jù)的操作。</p><p> ?、辒ao包:主要是包含用戶信息
22、以、學(xué)生信息和學(xué)生成績(jī)信息的增刪改查的操作方法的一些類。</p><p> ?、遶iew包:此包中主要實(shí)現(xiàn)用戶界面,各種GUI設(shè)計(jì) </p><p> ?、嘀黝悾菏浅绦虻娜肟?,程序從此類開始執(zhí)行。</p><p> 類中數(shù)據(jù)不可被其他類訪問的數(shù)據(jù)權(quán)限設(shè)為private,符合信息隱藏原理,能更好的實(shí)現(xiàn)模塊獨(dú)立化。</p><p><b&
23、gt; (2)數(shù)據(jù)存儲(chǔ)</b></p><p> ①數(shù)據(jù)存儲(chǔ)主要是通過用MySQL數(shù)據(jù)庫(kù)來(lái)實(shí)現(xiàn)的,將數(shù)據(jù)庫(kù)中的信息借助</p><p> List這個(gè)接口,通過接口回調(diào)得到一個(gè)list對(duì)象,將從文件中讀取到的所有對(duì)象都放到list對(duì)象中,然后通過對(duì)list進(jìn)行遍歷,實(shí)現(xiàn)增刪改查操作。</p><p> ?、趯W(xué)生成績(jī)也可以導(dǎo)出到文本文檔中保存,使用B
24、ufferedWriter類把list中的內(nèi)容寫到文本文檔中,使用File類實(shí)現(xiàn)文件的創(chuàng)建和選擇。</p><p> 4.3 功能模塊設(shè)計(jì)</p><p><b> ?。?)登陸管理模塊</b></p><p> 實(shí)現(xiàn)用戶的登錄,如圖4.6所示:</p><p> 圖4.6 用戶登錄模塊</p>
25、<p> ?。?)學(xué)生信息管理模塊</p><p> 實(shí)現(xiàn)對(duì)學(xué)生信息增加、刪除、修改、查找功能。如圖4.7所示: </p><p> 圖4.7 學(xué)生信息管理模塊</p><p> ?。?)學(xué)生成績(jī)管理模塊</p><p> 用戶可以實(shí)現(xiàn)對(duì)學(xué)生成績(jī)的查詢、添加和修改,其操作如下圖4.8所示:</p><p&
26、gt; 圖4.8 學(xué)生成績(jī)管理模塊</p><p> (4) 班級(jí)成績(jī)管理模塊</p><p> 主要實(shí)現(xiàn)班級(jí)成績(jī)的自動(dòng)添加與統(tǒng)計(jì),其操作如下圖4.9所示 :</p><p> 圖4.9 班級(jí)成績(jī)管理模塊</p><p><b> 5. 邏輯結(jié)構(gòu)設(shè)計(jì)</b></p><p><
27、b> 5.1 開發(fā)環(huán)境</b></p><p> ?。?) 開發(fā)語(yǔ)言:面向?qū)ο蟮母呒?jí)編程語(yǔ)言JAVA,一種可以撰寫跨平臺(tái)應(yīng)用軟件的面向?qū)ο蟮某绦蛟O(shè)計(jì)語(yǔ)言,JAVA 技術(shù)具有卓越的通用性、高效性、平臺(tái)移植性和安全性,廣泛應(yīng)用于個(gè)人PC、數(shù)據(jù)中心、游戲控制臺(tái)、科學(xué)超級(jí)計(jì)算機(jī)、移動(dòng)電話和互聯(lián)網(wǎng),同時(shí)擁有全球最大的開發(fā)者專業(yè)社群。在全球云計(jì)算和移動(dòng)互聯(lián)網(wǎng)的產(chǎn)業(yè)環(huán)境下,JAVA更具備了顯著優(yōu)勢(shì)和廣闊前景
28、。</p><p> (2) 開發(fā)工具:Eclipse Eclips是一個(gè)開放源代碼的、基于 Java 的可擴(kuò)展開發(fā)平臺(tái)。</p><p> E-R圖轉(zhuǎn)換的關(guān)系模式</p><p> 學(xué)生(學(xué)號(hào),姓名,性別,院系,班級(jí),籍貫,民族,入學(xué)年分,出生年月)</p><p> 登錄用戶(用戶id,用戶名,用戶密碼)</p>
29、<p> 學(xué)生成績(jī)(學(xué)號(hào),姓名,班級(jí),院系,英語(yǔ)成績(jī),操作系統(tǒng)成績(jī),軟件工程成績(jī),Java成績(jī),總成績(jī),平均成績(jī),日期)</p><p> 班級(jí)成績(jī)(班級(jí)號(hào),總成績(jī),平均成績(jī),日期)</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é)生成績(jī)t_grade表結(jié)構(gòu)定義,如圖6.3所示:</p><p> 圖6.3 學(xué)生成績(jī)表結(jié)構(gòu)定義圖</p>&
31、lt;p> 4. 班級(jí)成績(jī)t_tongji表結(jié)構(gòu)定義,如圖6.4所示:</p><p> 圖6.4 班級(jí)成績(jī)表結(jié)構(gòu)定義圖</p><p><b> 七、具體功能實(shí)現(xiàn)</b></p><p><b> 1.登錄功能的實(shí)現(xiàn)</b></p><p> (1) 登錄界面該界面可以對(duì)用戶名和
32、密碼進(jìn)行驗(yàn)證如不正確則會(huì)顯示錯(cuò)誤信息,如圖7.1所示:</p><p> 圖7.1 登錄界面</p><p> (2)登錄功能的實(shí)現(xiàn)代碼,此段代碼通過連接數(shù)據(jù)庫(kù)用sql語(yǔ)句查找符合條件的用戶,返回值為L(zhǎng)ogininfo類的對(duì)象,在調(diào)用此方法的程序中驗(yàn)證此對(duì)象是否為空,如為空,則沒有該用戶顯示錯(cuò)誤信息;如不為空,則該用戶存在,可直接用此對(duì)象的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é)生信息查詢功能的實(shí)現(xiàn)</p><p> (1) 學(xué)生信息查詢功能界面,如圖7.2所示:</p><p> 圖7.2 學(xué)生信息查詢界面</p><p> (2) 學(xué)生信息查詢功能的實(shí)現(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é)生信息添加功能的實(shí)現(xiàn)</p><p> (1) 學(xué)生信息添加功能界面,如圖7.3所示:</p><p> 圖7.3 學(xué)生信息添加界面</p><p> (2)
46、 學(xué)生信息添加功能的實(shí)現(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é)生信息修改功能的實(shí)現(xiàn)</p><p> (1)學(xué)生信息修改功能界面,如圖7.4所示:</p><p> 圖7.4 學(xué)生信息修改界面</p><p>
53、(2)學(xué)生信息修改功能的實(shí)現(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é)生信息刪除功能的實(shí)現(xiàn)</p><p> (1)學(xué)生信息刪除功能界面,如圖7.5所示:</p><p> 圖7.5 學(xué)生信息刪除界面</p><p> (2)學(xué)生信息刪除功能的實(shí)現(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é)生成績(jī)查詢功能的實(shí)現(xiàn)</p><p> (1)學(xué)生成績(jī)查詢功能界面,如圖7.6所示:</p><p> 圖7.6
63、學(xué)生成績(jī)查詢功能界面</p><p> (2) 學(xué)生成績(jī)查詢功能的實(shí)現(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é)生成績(jī)添加功能的實(shí)現(xiàn)</p><p> (1)學(xué)生成績(jī)添加功能界面,如圖7.7所示:</p><p> 圖7.7 學(xué)生成績(jī)添加界面</p><p>
71、; (2) 學(xué)生成績(jī)添加功能的實(shí)現(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é)生成績(jī)修改功能的實(shí)現(xiàn)</p><p> (1)學(xué)生成績(jī)修改功能界面,如圖7.8所示:</p><p> 圖7.8 學(xué)生成績(jī)修改界面</p><p> (2) 學(xué)生成績(jī)修改功能的實(shí)現(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é)生成績(jī)導(dǎo)出功能的實(shí)現(xiàn)</p><p> (1)學(xué)生成績(jī)導(dǎo)出功能界面,如圖7.9所示:</p><p> 圖7.9 學(xué)生成
84、績(jī)導(dǎo)出功能界面</p><p> (2) 學(xué)生成績(jī)導(dǎo)出功能的實(shí)現(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é)號(hào) "+" 姓名 "+" 院系 "+" 班級(jí) "+" 英語(yǔ) "+" 軟件工程 "+" 操縱系統(tǒng) "+" Java "+" 總成績(jī) "+&
87、quot; 平均成績(jī) "+" 日期 "+"\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.班級(jí)成績(jī)查詢功能的實(shí)現(xiàn)</p><p> (1)班級(jí)成績(jī)查詢功能界面,如圖7.1
93、0所示:</p><p> 圖7.10 班級(jí)成績(jī)查詢界面</p><p> (2)班級(jí)成績(jī)查詢功能的實(shí)現(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)過四個(gè)多星期的系統(tǒng)設(shè)計(jì)與代碼編寫,基本完成了學(xué)生成績(jī)管理系統(tǒng)(主要是權(quán)限分配、學(xué)生信息管理
99、、學(xué)生成績(jī)管理、班級(jí)成績(jī)管理)的設(shè)計(jì)與實(shí)現(xiàn)。在這個(gè)系統(tǒng)中,可實(shí)現(xiàn)由計(jì)算機(jī)代替人工執(zhí)行一系列諸如學(xué)生信息、學(xué)生成績(jī)和班級(jí)成績(jī)信息的增、刪、查、改和導(dǎo)出等操作以及個(gè)人信息的更新等等,這樣就使管理人員從繁重的工作中解脫出來(lái),同時(shí)實(shí)現(xiàn)管理工作的規(guī)范化、效率化、國(guó)際化。</p><p> 在設(shè)計(jì)過程中,我首先考慮到了本系統(tǒng)各個(gè)大的功能模塊,然后進(jìn)行更加詳細(xì)的劃分,逐步完善各個(gè)模塊的具體內(nèi)容。在進(jìn)行具體代碼的編寫時(shí),突然會(huì)
100、發(fā)現(xiàn)有很多邊界條件沒有考慮到,各種各樣的漏洞導(dǎo)致系統(tǒng)容易崩潰不能正常運(yùn)行,這就需要補(bǔ)充很多的邊界控制條件,這時(shí)才明白寫出能運(yùn)行的程序和寫出健壯的程序是完全不同的兩個(gè)概念,這些都是需要牢記和掌握的。在信息提示方面,需要給用戶一些溫馨的提示,而不是諸如“錯(cuò)誤編號(hào)0x704820”這類的冰冷警告。我們要讓用戶對(duì)系統(tǒng)感到親切和易使用,并能通過溫馨提示讓用戶自己解決問題,這也可以減少維護(hù)人員的工作量,我們需要的就是一個(gè)健壯、友好的系統(tǒng)。</
101、p><p> 總之,本次設(shè)計(jì)是對(duì)自己以前所學(xué)的知識(shí)進(jìn)行系統(tǒng)的綜合實(shí)踐,使自己收獲匪淺,更加深刻的理解了課本知識(shí),并學(xué)以致用。在本次畢業(yè)設(shè)計(jì)過程中,在老師的耐心指導(dǎo)及同學(xué)們幫助下,基本上完成了預(yù)定目標(biāo)。</p><p><b> 九、參考文獻(xiàn)</b></p><p> (1)Java語(yǔ)言程序設(shè)計(jì) 張振領(lǐng)編 中國(guó)電力出版社</p&g
溫馨提示
- 1. 本站所有資源如無(wú)特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫(kù)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- java課程設(shè)計(jì)--學(xué)生成績(jī)管理系統(tǒng)
- java課程設(shè)計(jì)----學(xué)生成績(jī)管理系統(tǒng)
- 學(xué)生成績(jī)管理系統(tǒng)java課程設(shè)計(jì)
- java學(xué)生成績(jī)管理系統(tǒng) 課程設(shè)計(jì)
- java學(xué)生成績(jī)管理系統(tǒng)課程設(shè)計(jì)
- java課程設(shè)計(jì)報(bào)告---學(xué)生成績(jī)管理系統(tǒng)
- java學(xué)生成績(jī)管理系統(tǒng)課程設(shè)計(jì)報(bào)告
- java學(xué)生成績(jī)管理系統(tǒng)課程設(shè)計(jì)報(bào)告
- java學(xué)生成績(jī)管理系統(tǒng)課程設(shè)計(jì)報(bào)告
- 課程設(shè)計(jì)--基于java的學(xué)生成績(jī)管理系統(tǒng)
- java程序課程設(shè)計(jì)---學(xué)生成績(jī)管理系統(tǒng)的設(shè)計(jì)
- java學(xué)生管理系統(tǒng)課程設(shè)計(jì)--學(xué)生成績(jī)管理信息系統(tǒng)
- 學(xué)生成績(jī)管理系統(tǒng)課程設(shè)計(jì)
- 課程設(shè)計(jì)——學(xué)生成績(jī)管理系統(tǒng)
- 課程設(shè)計(jì)---學(xué)生成績(jī)管理系統(tǒng)
- 學(xué)生成績(jī)管理系統(tǒng)課程設(shè)計(jì)
- 學(xué)生成績(jī)管理系統(tǒng)課程設(shè)計(jì)
- 學(xué)生成績(jī)管理系統(tǒng)課程設(shè)計(jì)
- 學(xué)生成績(jī)管理系統(tǒng)課程設(shè)計(jì)
- 學(xué)生成績(jī)管理系統(tǒng) 課程設(shè)計(jì)
評(píng)論
0/150
提交評(píng)論