版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、<p><b> 1、需求分析</b></p><p><b> 1)功能要求:</b></p><p> a.從圖形用戶界面中輸入學(xué)生姓名、學(xué)號、成績(4個科目),并保存到文件中(注意學(xué)號唯一性);</p><p> b.根據(jù)學(xué)生學(xué)號查找學(xué)生成績,并在界面上顯示姓名、學(xué)號和成績,學(xué)號不存在的給出提示信息
2、;</p><p> c.根據(jù)學(xué)生姓名(支持不完全匹配)查找學(xué)生成績,并在界面上顯示姓名、學(xué)號和成績,如果有多個相同姓名學(xué)生存在,一起顯示出來,姓名不存在的給出提示信息;</p><p> d.支持分別對所有學(xué)生各科成績畫出柱狀分布圖(參考書本相關(guān)程序);</p><p> e.支持對學(xué)生信息的修改與刪除(要反映的文件中);</p><p&
3、gt; f.支持用戶登錄、驗(yàn)證操作;</p><p> g.界面要示:用圖形界面實(shí)現(xiàn)。</p><p> 2)具體功能的詳盡描述如下:</p><p> 2.1.選擇【學(xué)生登陸】菜單命令,即可進(jìn)入學(xué)生賬號登陸界面,輸入相應(yīng)正確的賬號密碼即可進(jìn)行查看成績或是修改密碼。</p><p> 2.2.選擇【管理員登陸】菜單命令,即可進(jìn)入管理
4、員登陸界面(本程序假定只有一個管理員,賬號與密碼在編寫程序的時候已給定,不能修改)根據(jù)錄入學(xué)生成績、根據(jù)姓名或是學(xué)號查找學(xué)生信息、刪除學(xué)生記錄、修改學(xué)生成績、并可查看整體成績的分布柱狀圖。</p><p> 2、總體設(shè)計(概要設(shè)計)</p><p><b> 1)概要結(jié)構(gòu)分析</b></p><p> 2)設(shè)計思路如上圖。</p&g
5、t;<p> 3、主要功能與代碼分析</p><p><b> 1)主要功能</b></p><p> 該學(xué)生成績管理系統(tǒng)具備兩方面的功能:一方面是學(xué)生用戶,學(xué)生通過輸入學(xué)號和密碼進(jìn)下該系統(tǒng)后,可以進(jìn)行成績查詢,修改密碼等操作;一方面管理員進(jìn)入該系統(tǒng)則比學(xué)生多一些權(quán)限:成績輸入、成績查詢、成績修改、各科成績分布情況、查看學(xué)生信息、刪除學(xué)生信息等。&
6、lt;/p><p> 2)代碼分析(自己負(fù)責(zé)的部分)</p><p> 負(fù)責(zé)的部分:管理員登錄、學(xué)生用戶登錄及學(xué)生用戶的功能實(shí)現(xiàn),如查看成績、修改密碼。</p><p> /***************************************************************************/</p><p>
7、;<b> //管理員登陸驗(yàn)證</b></p><p> Privatevoid jButton22ActionPerformed(java.awt.event.ActionEvent evt) { </p><p><b> //獲取輸入信息</b><
8、/p><p> String id = jTextField11.getText();</p><p> String key = jPasswordField1.getText();</p><p> //賬號輸入錯誤標(biāo)記</p><p> boolean boolId = true;</p><p><b
9、> //創(chuàng)建管理員對象</b></p><p> Manager m = new Manager();</p><p><b> //驗(yàn)證信息</b></p><p> if (id.equals(m.getId())) {</p><p> boolId = false;</p>
10、<p> if (key.equals(m.getPassword())) {</p><p> //登陸成功,顯示管理員功能界面</p><p> jFrame2.setVisible(false);</p><p> jFrame1.setSize(450, 350);</p><p> jTextField11.
11、setText("");</p><p> jPasswordField1.setText("");</p><p> jFrame1.setVisible(true);</p><p> jLabel59.setText(m.getId());</p><p><b> } else
12、 {</b></p><p> //密碼錯誤,顯示密碼錯誤對話框</p><p> PasswordError.setSize(400, 200);</p><p> PasswordError.setVisible(true);</p><p> jPasswordField1.setText("")
13、;</p><p><b> }</b></p><p><b> }</b></p><p> if (boolId) {</p><p> //賬號錯誤,顯示賬號錯誤對話框</p><p> jTextField11.setText("");
14、</p><p> jPasswordField1.setText("");</p><p> IdError.setSize(400, 200);</p><p> IdError.setVisible(true);</p><p><b> }</b></p><p&g
15、t; } </p><p> /***************************************************************************/</p><p><b> //學(xué)生登陸驗(yàn)證</b></p><p> private void jButton28A
16、ctionPerformed(java.awt.event.ActionEvent evt) { </p><p> //獲取輸入的學(xué)生驗(yàn)證信息</p><p> String id = jTextField13.getText();</p><p> String key =
17、jPasswordField2.getText();</p><p> //賬號輸入錯誤標(biāo)記</p><p> boolean boolid = true;</p><p> //讀取Excel文件信息</p><p> jxl.Workbook readwb = null;</p><p><b>
18、 try {</b></p><p> //構(gòu)建Workbook對象, 只讀Workbook對象</p><p> //直接從本地文件創(chuàng)建Workbook</p><p> InputStrea minstream = new FileInputStream("D:/ContactEditor/StudentList.xls"
19、);</p><p> readwb = Workbook.getWorkbook(instream);</p><p> //Sheet的下標(biāo)是從0開始</p><p> //獲取第一張Sheet表</p><p> Sheet readsheet = readwb.getSheet(0);</p><p>
20、 //獲取Sheet表中所包含的總行數(shù)</p><p> int rsRows = readsheet.getRows();</p><p> //獲取指定單元格的對象引用</p><p> for (int i = 0; i < rsRows; i++) {</p><p> Student stu = new Studen
21、t();</p><p> Cell cell0 = readsheet.getCell(1, i);</p><p> stu.setId(cell0.getContents());</p><p> Cell cell1 = readsheet.getCell(0, i);</p><p> stu.setPassword(cel
22、l1.getContents());</p><p><b> //驗(yàn)證信息</b></p><p> if (stu.getId().equals(id)) {</p><p> boolid = false;</p><p> if (stu.getPassword().equals(key)) {</
23、p><p> //登陸成功,顯示學(xué)生功能界面</p><p> StudentUI1.setVisible(false);</p><p> StudentUI2.setSize(400, 400);</p><p> StudentUI2.setVisible(true);</p><p> jTextFiel
24、d13.setText("");</p><p> jPasswordField2.setText("");</p><p> Cell cell2 = readsheet.getCell(2, i);</p><p> stu.setName(cell2.getContents());</p><p
25、> jLabel56.setText(stu.getId());</p><p> jLabel57.setText(stu.getName());</p><p><b> } else {</b></p><p> //密碼錯誤,顯示密碼錯誤提示對話框</p><p> jTextField13.se
26、tText("");</p><p> jPasswordField2.setText("");</p><p> PasswordError.setSize(400, 200);</p><p> PasswordError.setVisible(true);</p><p> jPasswo
27、rdField2.setText("");</p><p> //this.setVisible(true);</p><p><b> }</b></p><p><b> }</b></p><p><b> }</b></p>&
28、lt;p> if (boolid) {</p><p> //賬號錯誤,顯示密碼錯誤提示對話框</p><p> IdError.setSize(400, 200);</p><p> IdError.setVisible(true);</p><p> //this.setVisible(true);</p>
29、<p><b> }</b></p><p> } catch (Exception e) {</p><p> } finally {</p><p> readwb.close();</p><p><b> }</b></p><p><b&g
30、t; } </b></p><p> /***************************************************************************/</p><p> //學(xué)生用戶查看成績</p><p> private void jButton30ActionPerformed(java.awt.
31、event.ActionEvent evt) { </p><p><b> //查看成績界面 </b></p><p> StudentUI2.setVisible(false);</p><p> GradeList.setSize(500, 400);
32、</p><p> GradeList.setVisible(true);</p><p> //定位學(xué)生在Excel文件中的位置</p><p> String id = jTextField13.getText();</p><p> String key = jPasswordField2.getText();</p>
33、;<p> jxl.Workbook readwb = null;</p><p><b> try {</b></p><p> //構(gòu)建Workbook對象, 只讀Workbook對象</p><p> //直接從本地文件創(chuàng)建Workbook</p><p> InputStream inst
34、ream = new FileInputStream("D:/ContactEditor/StudentList.xls");</p><p> readwb = Workbook.getWorkbook(instream);</p><p> //Sheet的下標(biāo)是從0開始</p><p> //獲取第一張Sheet表</p>
35、<p> Sheet readsheet = readwb.getSheet(0);</p><p> //獲取Sheet表中所包含的總行數(shù)</p><p> int rsRows = readsheet.getRows();</p><p> //獲取指定單元格的對象引用</p><p> for (int i =
36、0; i < rsRows; i++) {</p><p> Student stu = new Student();</p><p> Cell cell0 = readsheet.getCell(1, i);</p><p> stu.setId(cell0.getContents());</p><p> Cell cel
37、l1 = readsheet.getCell(0, i);</p><p> stu.setPassword(cell1.getContents());</p><p> if (stu.getId().equals(id)) {</p><p> if (stu.getPassword().equals(key)) {</p><p>
38、;<b> //定位成功</b></p><p> Cell cell2 = readsheet.getCell(2, i);</p><p> Cell g1 = readsheet.getCell(7, i);</p><p> Cell g2 = readsheet.getCell(8, i);</p><p&
39、gt; Cell g3 = readsheet.getCell(9, i);</p><p> Cell g4 = readsheet.getCell(10, i);</p><p> stu.setName(cell2.getContents());</p><p><b> //顯示學(xué)生成績</b></p><p
40、> jLabel54.setText(stu.getId());</p><p> jLabel55.setText(stu.getName());</p><p> jLabel50.setText(g1.getContents());</p><p> jLabel51.setText(g2.getContents());</p>&
41、lt;p> jLabel52.setText(g3.getContents());</p><p> jLabel53.setText(g4.getContents());</p><p><b> }</b></p><p><b> }</b></p><p><b>
42、 }</b></p><p> } catch (Exception e) {</p><p> } finally {</p><p> readwb.close();</p><p><b> }</b></p><p><b> }</b><
43、/p><p> /***************************************************************************/</p><p> //修改密碼界面顯示</p><p> private void jButton31ActionPerformed(java.awt.event.ActionEvent evt
44、) { </p><p> StudentUI2.setVisible(false);</p><p> modifypassword.setSize(450, 250);</p><p> modifypassword.setVisible(true);</p>
45、<p><b> } </b></p><p> /---------------------------------------------------------------------------/</p><p> //學(xué)生用戶修改密碼</p><p> private void jButton35Action
46、Performed(java.awt.event.ActionEvent evt) { </p><p> //獲取輸入的密碼信息</p><p> String key = jPasswordField3.getText();</p><p> String newkey =
47、jPasswordField4.getText();</p><p> String confirmkey = jPasswordField5.getText();</p><p><b> //定位學(xué)生位置</b></p><p> int current = 0; //定位成功的當(dāng)前位置</p><p> j
48、xl.Workbook readwb = null;</p><p><b> try {</b></p><p> InputStream instream = new FileInputStream("D:/ContactEditor/StudentList.xls");</p><p> readwb = Wor
49、kbook.getWorkbook(instream);</p><p> Sheet readsheet = readwb.getSheet(0);</p><p> int rsColumns = readsheet.getColumns();</p><p> int rsRows = readsheet.getRows();</p>&l
50、t;p> for (int i = 0; i < rsRows; i++) {</p><p> Student stu = new Student();</p><p> Cell cell = readsheet.getCell(0, i);</p><p> stu.setPassword(cell.getContents());</
51、p><p><b> //驗(yàn)證信息</b></p><p> if (stu.getPassword().equals(key)) {</p><p> current = i;</p><p> //驗(yàn)證兩次密碼是否一致</p><p> if (confirmkey.equals(new
52、key)) {</p><p><b> //驗(yàn)證通過</b></p><p> //創(chuàng)建新的Excel可寫文件</p><p> //創(chuàng)建Excel工作簿</p><p> jxl.write.WritableWorkbook wwb = Workbook.createWorkbook(new File(&qu
53、ot;D:/ContactEditor/StudentList.xls"), readwb);</p><p> //創(chuàng)建Excel工作表</p><p> jxl.write.WritableSheet ws = wwb.createSheet("Test Sheet 1", 0);</p><p> //添加Label對象&l
54、t;/p><p> jxl.write.Label B = new jxl.write.Label(-1, 0, "");</p><p><b> //寫入原有信息</b></p><p> for (int k = 0; k < rsRows; k++) {</p><p> for (
55、int j = 0; j < rsColumns; j++) {</p><p> Cell c = readsheet.getCell(j, k);</p><p> String a = c.getContents();</p><p> B = new jxl.write.Label(j, k, a);</p><p>
56、ws.addCell(B);</p><p><b> }</b></p><p><b> }</b></p><p><b> //寫入新密碼</b></p><p> B = new jxl.write.Label(0, current, newkey);<
57、/p><p> ws.addCell(B);</p><p> //顯示密碼修改成功提示對話框</p><p> jDialog15.setSize(400, 200);</p><p> jDialog15.setVisible(true);</p><p> jPasswordField3.setText(&
58、quot;");</p><p> jPasswordField4.setText("");</p><p> jPasswordField5.setText("");</p><p> wwb.write();</p><p> wwb.close();</p><
59、;p><b> } else {</b></p><p> //顯示兩次密碼輸入不一致提示對話框</p><p> jDialog12.setSize(400, 200);</p><p> jDialog12.setVisible(true);</p><p> jPasswordField4.setT
60、ext("");</p><p> jPasswordField5.setText("");</p><p><b> }</b></p><p><b> break;</b></p><p><b> }</b></p&
61、gt;<p><b> }</b></p><p> } catch (Exception e) {</p><p> } finally {</p><p> readwb.close();</p><p><b> }</b></p><p>&l
62、t;b> } </b></p><p> /***************************************************************************/</p><p><b> //管理員類</b></p><p> public class Manager {</
63、p><p> private final String Id = "manager"; //賬號</p><p> private final String password = "manager"; //密碼</p><p> public Manager() {</p><p><b>
64、; }</b></p><p> public String getId() {</p><p> return Id;</p><p><b> }</b></p><p> public String getPassword() {</p><p> return pa
65、ssword;</p><p><b> }</b></p><p><b> }</b></p><p> /***************************************************************************/</p><p><b&
66、gt; //學(xué)生類</b></p><p> public class Student {</p><p> private String Id; //賬號</p><p> private String password; //密碼</p><p> private String name; //姓
67、名</p><p> private char sex; //性別</p><p> private String sclass; //班級</p><p> private String major; //專業(yè)</p><p> private String department;//院系</p>
68、<p> public String getId() {</p><p> return Id;</p><p><b> }</b></p><p> public void setId(String id) {</p><p><b> Id = id;</b></
69、p><p><b> }</b></p><p> public String getPassword() {</p><p> return password;</p><p><b> }</b></p><p> public void setPassword(S
70、tring password) {</p><p> this.password = password;</p><p><b> }</b></p><p> public String getName() {</p><p> return name;</p><p><b>
71、; }</b></p><p> public void setName(String name) {</p><p> this.name = name;</p><p><b> }</b></p><p> public char getSex() {</p><p>
72、 return sex;</p><p><b> }</b></p><p> public void setSex(char sex) {</p><p> this.sex = sex;</p><p><b> }</b></p><p> public
73、String getSclass() {</p><p> return sclass;</p><p><b> }</b></p><p> public void setSclass(String sclass) {</p><p> this.sclass = sclass;</p><
74、;p><b> }</b></p><p> public String getMajor() {</p><p> return major;</p><p><b> }</b></p><p> public void setMajor(String major) {</
75、p><p> this.major = major;</p><p><b> }</b></p><p> public String getDepartment() {</p><p> return department;</p><p><b> }</b>&l
76、t;/p><p> public void setDepartment(String department) {</p><p> this.department = department;</p><p><b> }</b></p><p><b> }</b></p><
77、;p> /***************************************************************************/</p><p><b> 4、測試與改進(jìn)</b></p><p><b> 1)測試</b></p><p><b> 1.1管理員登錄
78、</b></p><p><b> 1.1.1登錄成功</b></p><p><b> 1.1.2密碼錯誤</b></p><p><b> 1.1.3賬號錯誤</b></p><p><b> 1.2學(xué)生登錄</b></p&g
79、t;<p> 1.2.1學(xué)生登錄成功</p><p><b> 1.2.2密碼錯誤</b></p><p><b> 1.2.3賬號錯誤</b></p><p> 1.3學(xué)生用戶查看成績</p><p> 1.3學(xué)生用戶修改密碼</p><p> 1
80、.3.1密碼修改成功</p><p> 1.3.2兩次密碼輸入不一致</p><p><b> 2)待改進(jìn)的地方</b></p><p> 程序中學(xué)生信息保存在Excel,學(xué)生修改密碼時對Excel進(jìn)行操作,要創(chuàng)建新的Excel可寫文件表,然后對原有表中沒有改動的部分進(jìn)行拷貝,再增加新的cell。每次修改有新的Excel文件生成,若修改n
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- java課程設(shè)計--學(xué)生成績管理系統(tǒng)
- java課程設(shè)計----學(xué)生成績管理系統(tǒng)
- 學(xué)生成績管理系統(tǒng)java課程設(shè)計
- java學(xué)生成績管理系統(tǒng) 課程設(shè)計
- java學(xué)生成績管理系統(tǒng)課程設(shè)計
- java課程設(shè)計報告---學(xué)生成績管理系統(tǒng)
- java學(xué)生成績管理系統(tǒng)課程設(shè)計報告
- java學(xué)生成績管理系統(tǒng)課程設(shè)計報告
- java學(xué)生成績管理系統(tǒng)課程設(shè)計報告
- 課程設(shè)計--基于java的學(xué)生成績管理系統(tǒng)
- java程序課程設(shè)計---學(xué)生成績管理系統(tǒng)的設(shè)計
- java學(xué)生管理系統(tǒng)課程設(shè)計--學(xué)生成績管理信息系統(tǒng)
- 學(xué)生成績管理系統(tǒng)課程設(shè)計
- 課程設(shè)計——學(xué)生成績管理系統(tǒng)
- 課程設(shè)計---學(xué)生成績管理系統(tǒng)
- 學(xué)生成績管理系統(tǒng)課程設(shè)計
- 學(xué)生成績管理系統(tǒng)課程設(shè)計
- 學(xué)生成績管理系統(tǒng)課程設(shè)計
- 學(xué)生成績管理系統(tǒng)課程設(shè)計
- 學(xué)生成績管理系統(tǒng) 課程設(shè)計
評論
0/150
提交評論