java課程設計--學生成績管理系統(tǒng)_第1頁
已閱讀1頁,還剩16頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、<p><b>  工學系課程設計報告</b></p><p>  設 計 題 目:學生成績管理系統(tǒng) </p><p>  系 別:工學系 </p><p>  專 業(yè) (方 向):

2、 </p><p>  年 級、 班: </p><p>  學 生 姓 名: </p><p>  學 生 學 號:

3、 </p><p>  指 導 教 師: </p><p>  2013 年 6 月 28 日</p><p><b>  目錄</b></p><p>  一、系統(tǒng)開發(fā)的背景………………………………………………………………………

4、…1</p><p>  二、系統(tǒng)分析與設計…………………………………………………………………………1</p><p> ?。ㄒ唬┫到y(tǒng)功能要求…………………………………………………………………………1</p><p> ?。ǘ┫到y(tǒng)模塊結構設計……………………………………………………………………2</p><p>  三、系統(tǒng)的設計與實現(xiàn)……

5、…………………………………………………………………5</p><p> ?。ㄒ唬W生信息管理模塊……………………………………………………………………6</p><p> ?。ǘ┱n程信息管理模塊……………………………………………………………………7</p><p> ?。ㄈ┏煽冃畔⒐芾砟K……………………………………………………………………8</p>

6、<p>  四、系統(tǒng)測試…………………………………………………………………………………9</p><p> ?。ㄒ唬┫到y(tǒng)功能測試9</p><p> ?。ǘ┫到y(tǒng)常見錯誤調試.10</p><p><b>  五、總結11</b></p><p>  六、附件(代碼、部分圖表)12</p>

7、<p><b>  學生綜合測評系統(tǒng)</b></p><p><b>  一、系統(tǒng)開發(fā)的背景</b></p><p>  為了充分實現(xiàn)素質教育,多方面發(fā)展學生的興趣愛好,大部分學校都設立了全校范圍的內的選修課。學生可以根據(jù)自己的興趣和特長,選擇自己喜歡的課程。由于高等學校的快速發(fā)展,高校的規(guī)模也越來越大,學生數(shù)量和課程量都迅速地增長

8、,管理上的手工操作不僅僅會耗費學生與工作人員大量的時間和精力,效率以及準確性也很低。如何使同學們方便、快捷、準確地選課,以及老師們對學生的相關信息的管理,已經成為一個重要的問題。 利用計算機進行學生信息管理,不僅能夠保證準確、無誤、快速輸出,而且還可以利用計算機對有關信息進行查詢,檢索迅速、查找方便、可靠性高、存儲量大、保密性好。要科學地實現(xiàn)信息化管理,開發(fā)一個適合學校的,能夠進行信息存儲、查詢、修改等功能的信息管理系統(tǒng)是十分重要的。本

9、課題就是針對便于學生信息管理的問題而設計的一個管理系統(tǒng)。</p><p><b>  二、系統(tǒng)分析與設計</b></p><p><b> ?。ㄒ唬┫到y(tǒng)功能要求</b></p><p>  本課題根據(jù)學生信息管理綜合分析,便出于方便管理考慮,將學生信息管理系統(tǒng)的功能總結起來,共需要實現(xiàn)以下幾個方面功能:</p>

10、<p>  1.管理學生信息 管理所有學生的基本信息,對學生信息的操作包括添加、修改、刪除等;可以根據(jù)各種條件查詢出需要的信息,比如修改,可以通過學生學號查詢出學生的基本信息,然后通過對需要修改項進行修改并保存修改后的結果存入數(shù)據(jù)庫的學生表中。 </p><p>  2.管理課程信息 管理所有課程的基本信息,包括對課程信息的添加、修改、刪除等操作;可以根據(jù)各種條件查詢出需要的信息,并對相應的信息進行

11、操作。比如修改和刪除,可以通過學生的學號查詢出學生的相應課程信息,對相應的課程進行修改、刪除操作。 </p><p>  3.學生選課與成績 根據(jù)學生的學號進行選課,登記所選課程的成績;可以根據(jù)學號查詢出選課信息與成績。 通過以上功能的設計與實現(xiàn),并實現(xiàn)學生信息管理系統(tǒng)的基本功能。當然在實際的學生信息管理系統(tǒng)中,其功能要比本課題的多的多,也復雜的多,本課題僅以比較簡單易懂的方式介紹給讀者—一個學生管理系統(tǒng)的設計與

12、實現(xiàn)的流程。從而讓讀者明白一個項目開發(fā)中需要做的工作,并在今后的工作中能遇到相關問題能知道如何解決。</p><p>  (二)系統(tǒng)模塊結構設計</p><p>  本課題的關系數(shù)據(jù)模型的數(shù)據(jù)結構可分為三個表來表示:學生信息表(Student)、學生成績表(Student)、查詢成績表; 學生信息表用于記錄學生的基本信息。</p><p>  如表3-1;課程信息表

13、用于記錄課程的基本信息,如表3-2;學生課表如下表3-3。這三個表對應的E-R圖分別是:圖3.1 學生信息E-R圖;圖3.2 課程信息E-R圖;圖 3.3 學生選課E-R圖;如下圖:</p><p>  表3-1 學生信息表(Student)</p><p>  表3-2 課程信息表(Student)</p><p>  表3-3 查詢成績表</p>

14、<p>  圖3.1 學生信息E-R圖</p><p>  圖3.2 課程信息E-R圖</p><p>  圖3.3 學生選課E-R圖</p><p>  根據(jù)對系統(tǒng)進行需求分析,本系統(tǒng)將分為4個模塊: </p><p>  ● 學生管理 管理學生基本信息,包括個人信息的添加、修改、刪除以及選課信息的添加。 </p>

15、<p>  ● 課程管理 管理課程的基本信息,包括課程信息的添加、修改和刪除。 </p><p>  ● 成績管理 管理學生選課的成績信息,包括成績的登記與修改。 </p><p>  ● 信息查詢 查詢已經登記的信息,包括學生的基本信息、課程的基本信息與成績信息。</p><p>  學生管理系統(tǒng)功能結構如圖3.4所示</p><p&

16、gt;  三、系統(tǒng)的設計與實現(xiàn)</p><p>  該系統(tǒng)由4個模塊構成,包括學生信息管理模塊、課程信息管理模塊、成績信息管理模塊、信息查詢模塊。下面分別加以敘述: </p><p> ?。ㄒ唬W生信息管理模塊</p><p>  學生信息管理模塊主要由Student.javaEdiStuInfo.java等文件組成,其構成關系如圖4.1所示。</p>

17、<p>  學生信息管理模塊的文件組成了主界面中的“學生管理”菜單,如圖4.2所示。</p><p>  圖4.2 學生信息管理模塊的運行界面</p><p> ?。ǘ┱n程信息管理模塊</p><p>  課程信息管理模塊主要由CourseInfo.java、AddCourseInfo.java、EditCourseInfo.java、DelCours

18、eInfo.java、CourseInfoSearchCnum.java這5個文件組成,其構成關系如圖4.3所示。</p><p>  課程信息管理模塊中的5個類文件組成了主界面中“課程管理”菜單的內容,其中包括增加、修改和刪除功能,如圖4.4所示。</p><p>  圖4.4 課程信息管理模塊運行界面</p><p> ?。ㄈ┏煽冃畔⒐芾砟K</p>

19、;<p>  成績信息管理模塊主要由GradeInfo.java、AddGradeInfo.java、EditGradeInfo.java這3個文件組成,其構成關系如圖4.5所示。</p><p>  成績信息管理模塊中的3個類文件組成了主界面中的“成績管理”菜單的內容,如圖4.6所示。</p><p>  圖4.6 成績信息管理模塊的運行界面</p><

20、p><b>  四、系統(tǒng)測試</b></p><p><b> ?。ㄒ唬┫到y(tǒng)功能測試</b></p><p>  功能測試主要是測試程序模塊是否實現(xiàn)了設計中所要求的功能。功能測試中需要注意的有:</p><p>  (1)查詢功能中,有按單一查詢條件進行查詢的,也有按多個查詢條件組合查詢的。這里要注意的多個查詢條件之

21、間的關系。還有一些常識性的問題,比如按月查詢,閏月中二月的天數(shù)。</p><p>  (2)錄入功能中,需要注意的是前臺設置的數(shù)值長度是否大于后臺數(shù)值長度,以及前臺和后臺的數(shù)據(jù)結構是否相符,很多時候錄入功能無法實現(xiàn)是由于這些原因。還有就是必須錄入的字段的設置時候有誤。</p><p>  (3)測試刪除功能中需要注意的是單擊"刪除"按鈕后,一般會出現(xiàn)提示信息,詢問是否確

22、定刪除。通常情況下,我們單擊"確認"按鈕查看信息是否被刪除掉了,而忽略了單擊"取消"按鈕后程序的反應:這時有可能的是沒有刪除,還有一種可能是即便單擊了"取消"按鈕,也一樣刪除了數(shù)據(jù)。另外,在刪除多條記錄的時候,要注意連續(xù)選中的幾條記錄是否真正都被刪除掉了,即如果再按照這種查詢方式查詢,時候還能查詢出來。有的時候需要在數(shù)據(jù)庫中設立一個標志位,而不是真正的物理刪除。所以在下一次查詢

23、中,可能還會被查詢出來,這主要是因為在查詢條件中沒有將標志考慮在內。</p><p>  (4)關于修改功能的測試主要是看修改確認后是否數(shù)據(jù)真正已被修改了。這是最基本的功能,需要注意的是看是否能把不應該修改的數(shù)據(jù)也修改成功了。 </p><p> ?。ǘ┫到y(tǒng)常見錯誤調試</p><p>  1.NullPointerException異常</p>&

24、lt;p>  一般是對一個為NULL值的變量進行操作引起的。為避免這種異常,最好在對變量操作之前檢查,看它是否為NULL值。</p><p>  2.SQLException異常</p><p>  一般是由于SQL語句不正確引起的。為避免這種異常,最好在使用SQL語句的程序中捕獲此SQL異常。</p><p>  3.NumberFormatExceptio

25、n異常</p><p>  這是由于數(shù)字的格式錯誤而出現(xiàn)的例外。為了避免出現(xiàn)此類錯誤,一般必須保證數(shù)據(jù)格式輸入正確。</p><p>  4.數(shù)據(jù)庫連接垃圾回收</p><p>  在實際的開發(fā)應用中,通常出現(xiàn)某一個對象未能關閉的情況,為了防止這種情況的發(fā)生,可以在有關對數(shù)據(jù)庫操作的Java類文件中增加自動回收函數(shù),在JVM自動地回收對象時,取出使用的連接對象,判斷

26、是否關閉,如果沒有關閉則關掉。</p><p><b>  五、總結</b></p><p>  經過這次課題的設計并實現(xiàn),盡管會遇到很多難題,但是讓我更加受益的是在這次課題中得到的經驗、心得和鍛煉。我發(fā)現(xiàn)開發(fā)項目的過程其實就是個不斷的解決問題的過程,從中也感覺到項目開發(fā)的快樂,一個人永遠有學不玩的知識,就算是項目開發(fā)中的知識點都學了,但在實際的開發(fā)過程中仍然會遇到不

27、少問題,遇到問題時要做到兩點:一個是“查”</p><p>  ,一個是“問”。不懂的地方就得要自己找答案,可以從書本、網(wǎng)絡中查找解決的答案;再一個就是問周邊的同學。比如,在本科課題的編寫代碼部分,本人就參考了《java 核心技術》,從中得到了圖形編程的很多有用的方法。這次課程的設計給我以前所學的知識做了一個總結,為我深入學習編程做了鋪墊。在本課題中存在的不足之處是在所難免的,本人將在日后加于改進。</p&

28、gt;<p>  六、附件(代碼、部分圖表)</p><p>  import java.io.FileOutputStream;</p><p>  import java.io.IOException;</p><p>  import java.io.ObjectOutputStream;</p><p>  import

29、 java.io.Serializable;</p><p>  import java.util.ArrayList;</p><p>  import java.util.List;</p><p>  import java.util.Scanner;</p><p>  public class Admin {</p>

30、<p>  public static void main(String[] args) throws IOException, ClassNotFoundException {</p><p>  Scanner in = new Scanner(System.in);</p><p>  int studentNum =10;</p><p>  Li

31、st<Student> result = new ArrayList<Student>();</p><p>  for (int i = 0; i < studentNum; i++) {</p><p>  Student bean = new Student();</p><p>  System.out.print("

32、輸入第" + (i + 1) + "個學生學號:");</p><p>  bean.setNo(in.next());</p><p>  System.out.print("輸入第" + (i + 1) + "個學生姓名:");</p><p>  bean.setName(in.next()

33、);</p><p>  System.out.print("輸入第" + (i + 1) + "個學生數(shù)學成績:");</p><p>  bean.setShuxue(in.nextDouble());</p><p>  System.out.print("輸入第" + (i + 1) + "

34、;個學生語文成績:");</p><p>  bean.setYuwen(in.nextDouble());</p><p>  result.add(bean);</p><p><b>  }</b></p><p>  while (true) {</p><p>  System

35、.out.println("1.保存到文件;2.總成績;3.不及格比例;4.平均成績;5.及格比例;6,優(yōu)良比例;0.退出.");</p><p>  int i = in.nextInt();</p><p>  if (i == 0) {</p><p>  System.exit(0);</p><p><b&

36、gt;  }</b></p><p>  if (i == 1) {</p><p>  save(result);</p><p><b>  }</b></p><p>  if (i == 2) {</p><p>  for (int j = 0; j < result.

37、size(); j++) {</p><p>  Student s = result.get(j);</p><p>  System.out.println("學生" + s.getName() + "的總成績是:" + s.all());</p><p><b>  }</b></p>

38、<p><b>  }</b></p><p>  if (i == 3) {</p><p>  int jigeSum = 0;</p><p>  for (int j = 0; j < result.size(); j++) {</p><p>  Student s = result.get(

39、j);</p><p>  if (!s.isJige()) {</p><p>  jigeSum++;</p><p><b>  }</b></p><p><b>  }</b></p><p>  System.out.println("不及格比例:&qu

40、ot; + jigeSum + "/" + result.size());</p><p><b>  }</b></p><p>  if (i == 4) {</p><p><b>  }</b></p><p>  if (i == 5) {</p><

41、;p><b>  }</b></p><p>  if (i == 0</p><p><b>  ) {</b></p><p>  System.out.println("退出");</p><p><b>  }</b></p>

42、<p><b>  }</b></p><p><b>  }</b></p><p>  private static void save(List result) throws IOException {</p><p>  FileOutputStream fs = new FileOutputStream

43、("d:/a.txt");</p><p>  ObjectOutputStream os = new ObjectOutputStream(fs);</p><p>  os.writeObject(result);</p><p>  os.flush();</p><p>  os.close();</p>

44、;<p>  fs.close();</p><p><b>  }</b></p><p><b>  }</b></p><p>  class Student implements Serializable {</p><p>  private String no;</p

45、><p>  private String name;</p><p>  private double shuxue;</p><p>  private double yuwen;</p><p>  public String getName() {</p><p>  return name;</p>

46、<p><b>  }</b></p><p>  public void setName(String name) {</p><p>  this.name = name;</p><p><b>  }</b></p><p>  public String getNo() {&l

47、t;/p><p>  return no;</p><p><b>  }</b></p><p>  public void setNo(String no) {</p><p>  this.no = no;</p><p><b>  }</b></p>&l

48、t;p>  public double getShuxue() {</p><p>  return shuxue;</p><p><b>  }</b></p><p>  public void setShuxue(double shuxue) {</p><p>  this.shuxue = shuxue

49、;</p><p><b>  }</b></p><p>  public double getYuwen() {</p><p>  return yuwen;</p><p><b>  }</b></p><p>  public void setYuwen(doub

50、le yuwen) {</p><p>  this.yuwen = yuwen;</p><p><b>  }</b></p><p>  public double all() {</p><p>  return shuxue + yuwen;</p><p><b>  }&l

51、t;/b></p><p>  public double avg() {</p><p>  return all() / 2;</p><p><b>  }</b></p><p>  public boolean isJige() {</p><p>  return avg() &

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論