2023年全國碩士研究生考試考研英語一試題真題(含答案詳解+作文范文)_第1頁
已閱讀1頁,還剩12頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論