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

下載本文檔

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

文檔簡(jiǎn)介

1、<p>  Java程 序 設(shè) 計(jì)</p><p>  選題名稱 學(xué)生成績(jī)管理信息系統(tǒng) </p><p>  所在學(xué)院 計(jì)算機(jī)與信息學(xué)院 </p><p>  專業(yè)班級(jí) </p><p>  組 長(zhǎng) </p><p>  組

2、員 </p><p>  指導(dǎo)教師 </p><p>  2016年 1 月 16日</p><p><b>  目錄</b></p><p>  一、課程設(shè)計(jì)的目的與意義3</p><p>  二、課題描述和分析3</p>

3、;<p>  2.1數(shù)據(jù)庫(kù)要求:4</p><p>  2.2功能需求:4</p><p>  三、系統(tǒng)環(huán)境與開發(fā)平臺(tái)4</p><p><b>  四、分析與設(shè)計(jì)5</b></p><p>  4.1、需求分析5</p><p>  4.2.1、功能模塊劃分5</

4、p><p>  4.2.2具體功能模塊6</p><p>  4.3數(shù)據(jù)庫(kù)結(jié)構(gòu)描述7</p><p>  4.3.1概念結(jié)構(gòu)設(shè)計(jì)7</p><p>  4.3.2數(shù)據(jù)庫(kù)關(guān)系模型——二維表7</p><p>  4.3.3數(shù)據(jù)庫(kù)物理存儲(chǔ)8</p><p>  4.3.4錄入數(shù)據(jù)后的表9&l

5、t;/p><p>  五、各部分功能實(shí)現(xiàn)10</p><p>  5.1查詢功能界面實(shí)現(xiàn)10</p><p>  5.2、排序功能界面實(shí)現(xiàn)13</p><p>  5.3、數(shù)據(jù)操作功能實(shí)現(xiàn)14</p><p>  5.4、優(yōu)秀率、不及格率功能實(shí)現(xiàn)15</p><p>  六、主要功能代碼

6、17</p><p>  6.1 多線程控制圖片的隨機(jī)轉(zhuǎn)換17</p><p>  6.2按學(xué)號(hào)查找學(xué)生信息時(shí)相應(yīng)查詢按鈕的監(jiān)聽事件18</p><p>  6.3按班號(hào)查看學(xué)生信息時(shí)的響應(yīng)按鈕的事件19</p><p>  6.4添加學(xué)生信息時(shí)通過(guò)傳遞學(xué)生信息使用SQL語(yǔ)句對(duì)數(shù)據(jù)進(jìn)行操作20</p><p>

7、  6.5通過(guò)傳遞信息使用SQL語(yǔ)句查看優(yōu)秀率20</p><p><b>  七、總結(jié)21</b></p><p>  一、課程設(shè)計(jì)的目的與意義</p><p>  學(xué)生成績(jī)管理系統(tǒng)是一個(gè)教育單位不可缺少的部分,它的內(nèi)容對(duì)于學(xué)校的決策者和管理者來(lái)說(shuō)都至關(guān)重要。建立學(xué)生成績(jī)管理系統(tǒng),采用計(jì)算機(jī)對(duì)學(xué)生成績(jī)進(jìn)行管理,進(jìn)一步提高辦學(xué)效益和現(xiàn)代化水

8、平。幫助廣大教師提高工作效率,實(shí)現(xiàn)學(xué)生成績(jī)信息管理工作流程的系統(tǒng)化、規(guī)范化。</p><p>  此次Java課程設(shè)計(jì)有利于讓我們深入理解java語(yǔ)言的語(yǔ)法規(guī)則及其優(yōu)勢(shì),掌握類與方法的構(gòu)造方法,掌握基于java的各種操作的實(shí)現(xiàn)方法,訓(xùn)練對(duì)基礎(chǔ)知識(shí)和基本方法的綜合運(yùn)用能力,增強(qiáng)對(duì)算法的理解能力,提高軟件設(shè)計(jì)能力。在實(shí)踐中培養(yǎng)獨(dú)立分析問(wèn)題和解決問(wèn)題的作風(fēng)和能力。</p><p><b&g

9、t;  二、課題描述和分析</b></p><p>  學(xué)生成績(jī)管理信息系統(tǒng)</p><p><b>  2.1數(shù)據(jù)庫(kù)要求:</b></p><p>  1. 建立的數(shù)據(jù)庫(kù)中包含如下信息:學(xué)生學(xué)號(hào)、姓名、班級(jí),語(yǔ)文、數(shù)學(xué)、英語(yǔ)成績(jī)。</p><p>  2. 至少要有5個(gè)班級(jí),每個(gè)班級(jí)要有10名以上學(xué)生。&l

10、t;/p><p>  3. 使用.txt格式文本表示各種表。</p><p><b>  2.2功能需求:</b></p><p>  1. 能夠?qū)崿F(xiàn)根據(jù)以下關(guān)鍵字查詢:學(xué)生姓名 、學(xué)號(hào)、班級(jí)、課程名稱。</p><p>  2. 能夠?qū)崿F(xiàn)按照單科成績(jī)、總成績(jī)、平均成績(jī)、學(xué)號(hào)排序。</p><p> 

11、 3. 能夠?qū)崿F(xiàn)學(xué)生信息的插入、刪除和修改。</p><p>  4. 能夠查詢每個(gè)課程的最高分、最低分及相應(yīng)學(xué)生姓名、班級(jí)和學(xué)號(hào)。</p><p>  5. 能夠查詢每個(gè)班級(jí)某門課程的優(yōu)秀率(90分及以上)、不及格率,并進(jìn)行排序。</p><p><b>  界面要求:</b></p><p>  必須使用圖形界面實(shí)現(xiàn)

12、,要符合日常軟件使用規(guī)范來(lái)設(shè)計(jì)菜單和界面。</p><p><b>  其他要求:-</b></p><p>  1. 標(biāo)識(shí)符命名遵循Windows命名規(guī)范。</p><p>  2. 能夠注意各種異常處理,注重提高程序運(yùn)行效率。</p><p>  三、系統(tǒng)環(huán)境與開發(fā)平臺(tái)</p><p><

13、;b>  編程語(yǔ)言:java</b></p><p>  開發(fā)工具:Eclipse,Microsoft SQL Server 2008</p><p>  系統(tǒng)環(huán)境:裝有windows操作系統(tǒng)的計(jì)算機(jī)</p><p><b>  四、分析與設(shè)計(jì)</b></p><p><b>  4.1、需求

14、分析</b></p><p>  目前隨著學(xué)校規(guī)模不斷擴(kuò)大,學(xué)生數(shù)量增加,有關(guān)學(xué)生的各種信息量也成倍的增長(zhǎng),需要學(xué)校統(tǒng)一管理的數(shù)據(jù)也越來(lái)越多,管理的難度大大增加。面對(duì)大量的數(shù)據(jù),學(xué)校管理者要做的工作實(shí)在很繁瑣,因此我們小組設(shè)計(jì)了一個(gè)簡(jiǎn)單的學(xué)生信息管理系統(tǒng),對(duì)學(xué)生信息進(jìn)行規(guī)范化管理、科學(xué)的統(tǒng)計(jì)和快速的查詢、修改、增加、刪除等操作,從而減少管理方面的工作量。學(xué)生信息管理包括對(duì)學(xué)生檔案和學(xué)籍的管理,可以實(shí)現(xiàn)

15、:查詢學(xué)生姓名 、學(xué)號(hào)、班級(jí)、課程名稱;按照單科成績(jī)、總成績(jī)、平均成績(jī)、學(xué)號(hào)排序;能夠?qū)崿F(xiàn)學(xué)生信息的插入、刪除和修改;能夠查詢每個(gè)課程的最高分、最低分及相應(yīng)學(xué)生姓名、班級(jí)和學(xué)號(hào); 能夠查詢每個(gè)班級(jí)某門課程的優(yōu)秀率、不及格率,并進(jìn)行排序等等。</p><p>  4.2.1、功能模塊劃分</p><p>  本系統(tǒng)主要包括三個(gè)模塊分為學(xué)生信息管理模塊、學(xué)生信息排序模塊、學(xué)生信息查詢模塊。&l

16、t;/p><p>  4.2.2具體功能模塊</p><p><b>  查詢模塊:</b></p><p>  4.3數(shù)據(jù)庫(kù)結(jié)構(gòu)描述</p><p>  4.3.1概念結(jié)構(gòu)設(shè)計(jì)</p><p>  學(xué)生成績(jī)管理系統(tǒng)的設(shè)計(jì),主要解決的是對(duì)系統(tǒng)中的學(xué)生的基本信息,學(xué)生成績(jī)的基本信息,以及班級(jí)成績(jī)管理工作

17、。首先,需要定義各個(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è)功能模塊通過(guò)主菜單對(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ù)中。</p><p><b>  數(shù)據(jù)庫(kù)

18、E-R模型</b></p><p>  4.3.2數(shù)據(jù)庫(kù)關(guān)系模型——二維表</p><p>  學(xué)生表(Student)</p><p>  成績(jī)表(Cgrade)</p><p>  4.3.3數(shù)據(jù)庫(kù)物理存儲(chǔ)</p><p>  Create database manageCgrade</p>

19、<p>  On(Name = Cgrade,FileName = 'd:\Create\Cgrade.mdf',size = 3Mb)</p><p>  Log on(name = Cgrade_log, FileName = 'd:\Create\Cgrade_log.ldf', size = 1Mb)</p><p>  Create

20、table Student</p><p><b>  (</b></p><p>  Sno Char(20) primary key,</p><p>  Sname Char(20),</p><p>  Cno Char(20)</p><p><b>  );</b&g

21、t;</p><p>  Create table Cgrade</p><p><b>  (</b></p><p>  Sno Char(20) primary key,</p><p>  CSCore float heCk(CSCore >= 0 and CSCore <= 100),</p&

22、gt;<p>  ESCore float CheCk(ESCore >= 0 and ESCore <= 100),</p><p>  MSCore float CheCk(MSCore >= 0 and MSCore <= 100),</p><p>  foreign key(Sno)referenCes Student(Sno)</p&

23、gt;<p><b>  );</b></p><p>  4.3.4錄入數(shù)據(jù)后的表</p><p>  學(xué)生表(Student)</p><p>  成績(jī)表(Cgrade)</p><p><b>  五、各部分功能實(shí)現(xiàn)</b></p><p>  5.1查詢

24、功能界面實(shí)現(xiàn)</p><p>  根據(jù)學(xué)號(hào)查詢某個(gè)學(xué)生基本信息:</p><p>  根據(jù)班號(hào)查詢班級(jí)學(xué)生信息:</p><p>  根據(jù)學(xué)號(hào)查詢某個(gè)學(xué)生成績(jī):</p><p>  5.2、排序功能界面實(shí)現(xiàn)</p><p><b>  按總成績(jī)排序</b></p><p>

25、  5.3、數(shù)據(jù)操作功能實(shí)現(xiàn)</p><p><b>  添加某個(gè)學(xué)生信息</b></p><p>  5.4、優(yōu)秀率、不及格率功能實(shí)現(xiàn)</p><p>  按數(shù)學(xué)成績(jī)(分?jǐn)?shù))90)優(yōu)秀率排序</p><p>  按語(yǔ)文成績(jī)(分?jǐn)?shù)<60)不及格率排序</p><p><b>  六

26、、主要功能代碼</b></p><p>  6.1 多線程控制圖片的隨機(jī)轉(zhuǎn)換</p><p>  new Thread(){</p><p>  public void run(){</p><p>  while(true){</p><p><b>  try {</b></

27、p><p>  Thread.sleep(5000);</p><p>  } catch (InterruptedException e1) {</p><p>  // TODO Auto-generated catch block</p><p>  e1.printStackTrace();</p><p><

28、;b>  }</b></p><p>  main_img.setIcon(new javax.swing.ImageIcon(</p><p>  getClass().getResource("/image/main_5.jpg"))); // NOI18N</p><p><b>  try {</b>

29、;</p><p>  Thread.sleep(5000);</p><p>  } catch (InterruptedException e) {</p><p>  // TODO Auto-generated catch block</p><p>  e.printStackTrace();</p><p>

30、;<b>  }</b></p><p>  main_img.setIcon(new javax.swing.ImageIcon(</p><p>  getClass().getResource("/image/main_6.jpg"))); // NOI18N</p><p><b>  try {</

31、b></p><p>  Thread.sleep(5000);</p><p>  } catch (InterruptedException e) {</p><p>  // TODO Auto-generated catch block</p><p>  e.printStackTrace();</p><

32、p><b>  }</b></p><p>  main_img.setIcon(new javax.swing.ImageIcon(</p><p>  getClass().getResource("/image/main_7.jpg"))); // NOI18N</p><p><b>  try {&

33、lt;/b></p><p>  Thread.sleep(5000);</p><p>  } catch (InterruptedException e) {</p><p>  // TODO Auto-generated catch block</p><p>  e.printStackTrace();</p>

34、<p><b>  }</b></p><p>  main_img.setIcon(new javax.swing.ImageIcon(</p><p>  getClass().getResource("/image/main_8.jpg"))); // NOI18N</p><p><b>  }&

35、lt;/b></p><p><b>  }</b></p><p>  }.start();</p><p>  6.2按學(xué)號(hào)查找學(xué)生信息時(shí)相應(yīng)查詢按鈕的監(jiān)聽事件</p><p>  protected void jButton1ActionPerformed(ActionEvent evt) {</p&g

36、t;<p>  // TODO Auto-generated method stub</p><p>  String id = textfield.getText();</p><p>  AboutStudent aboutstudent = new AboutStudent();</p><p>  if(id != null &&am

37、p; !id.equals("")){</p><p><b>  try{</b></p><p>  Student student = aboutstudent.findbyId(id);</p><p>  if(student != null)</p><p><b>  {<

38、;/b></p><p>  tarea.setText(student.toString());</p><p><b>  }else{</b></p><p>  JOptionPane.showConfirmDialog(null, "該學(xué)生不存在!","消息",1);</p>

39、<p><b>  }</b></p><p>  }catch(NumberFormatException e){</p><p>  e.printStackTrace();</p><p><b>  }</b></p><p>  catch(Exception e){</

40、p><p>  e.printStackTrace();</p><p><b>  }</b></p><p><b>  }else{</b></p><p>  JOptionPane.showConfirmDialog(null, "請(qǐng)輸入編號(hào)!","消息"

41、;,1);</p><p><b>  }</b></p><p><b>  }</b></p><p>  6.3按班號(hào)查看學(xué)生信息時(shí)的響應(yīng)按鈕的事件</p><p>  private Object[][] getResults(List<Student>list){</p&

42、gt;<p>  Object[][] results = new Object[list.size()][head.length];</p><p>  results[0][0] = "學(xué)號(hào)";</p><p>  results[0][1] = "姓名";</p><p>  results[0][2] =

43、 "班級(jí)";</p><p>  for(int i = 1;i < list.size();i++)</p><p><b>  {</b></p><p>  //Score score = list.get(i);</p><p>  results[i][0] = list.get(i)

44、.getSnum();</p><p>  results[i][1] = list.get(i).getSname();</p><p>  results[i][2] = list.get(i).getSclass();</p><p>  System.out.println(list.get(i)+String.valueOf(i));</p>

45、<p><b>  }</b></p><p>  return results;</p><p><b>  }</b></p><p>  /*每次類通過(guò)start()函數(shù)來(lái)創(chuàng)建新的對(duì)象實(shí)現(xiàn)方法*/</p><p>  public static void start() {<

46、/p><p>  java.awt.EventQueue.invokeLater(new Runnable() {</p><p>  public void run() {</p><p>  new BasicInforClass().setVisible(true);</p><p><b>  }</b></p

47、><p><b>  });</b></p><p><b>  }</b></p><p>  6.4添加學(xué)生信息時(shí)通過(guò)傳遞學(xué)生信息使用SQL語(yǔ)句對(duì)數(shù)據(jù)進(jìn)行操作</p><p>  public boolean AddInformation(Student student)throws Excepti

48、on{/*添加學(xué)生信息*/</p><p>  String sql = "insert into Student values(?,?,?)";</p><p>  PreparedStatement stm = null;</p><p>  boolean flag = false;</p><p><b>

49、;  try{</b></p><p>  stm = dbc.prepareStatement(sql);</p><p>  stm.setString(1, student.getSnum());</p><p>  stm.setString(2, student.getSname());</p><p>  stm.se

50、tString(3, student.getSclass());</p><p>  if(stm.executeUpdate() > 0){</p><p>  flag = true;</p><p><b>  }</b></p><p>  }catch(Exception e){</p>&

51、lt;p><b>  throw e;</b></p><p><b>  }finally{</b></p><p><b>  try{</b></p><p>  if(stm !=null){</p><p>  stm.close();</p>&

52、lt;p><b>  }</b></p><p>  }catch(Exception e){}</p><p><b>  }</b></p><p>  return flag;</p><p><b>  }</b></p><p>  6.

53、5通過(guò)傳遞信息使用SQL語(yǔ)句查看優(yōu)秀率</p><p>  public LinkedList <Score> PassbyE()throws Exception{/*英語(yǔ)優(yōu)秀率*/</p><p>  String sql = "select * from Cgrade where EScore >= 90 order by EScore DEsc"

54、;</p><p>  LinkedList<Score> scores = new LinkedList<Score>();</p><p><b>  try{</b></p><p>  PreparedStatement stm = dbc.prepareStatement(sql);</p>&l

55、t;p>  ResultSet rm = stm.executeQuery();</p><p>  while(rm.next())</p><p><b>  {</b></p><p>  Score s = new Score();</p><p>  s.setSnum(rm.getString(1));

56、</p><p>  s.setCScore(rm.getFloat(2));</p><p>  s.setEScore(rm.getFloat(3));</p><p>  s.setMScore(rm.getFloat(4));</p><p>  System.out.println(rm.getString(1) + rm.getS

57、tring(2)+rm.getString(3));</p><p>  scores.add(s);</p><p><b>  }</b></p><p>  }catch(Exception e)</p><p><b>  {</b></p><p><b>

58、;  throw e;</b></p><p><b>  }</b></p><p>  return scores;</p><p><b>  }</b></p><p><b>  七、總結(jié)</b></p><p>  我主要的是文檔

59、,我們之所以選擇學(xué)生成績(jī)管理系統(tǒng),是由于它比較接近我們的生活,期末考試完了就會(huì)出現(xiàn)查看成績(jī)的表現(xiàn)。我們的進(jìn)度是同步的數(shù)據(jù)庫(kù)建庫(kù)、建表、JAVA的界面的實(shí)現(xiàn),查資料以及文檔的制作等是同步進(jìn)行的,在開工之前的我們首先在文本中理解之間觀點(diǎn)和找出共同地方進(jìn)行整理學(xué)生成績(jī)管理系統(tǒng)的數(shù)據(jù)結(jié)構(gòu)以及之間的關(guān)系,避免了數(shù)據(jù)的關(guān)系建立錯(cuò)誤,導(dǎo)致一步錯(cuò),步步錯(cuò)的情況。減少了多余的改正與問(wèn)題的更多化,在制作文檔的過(guò)程中,自己的收獲比較大的是,對(duì)文檔的效果和文字

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論