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

下載本文檔

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

文檔簡介

1、<p>  數據結構課程設計報告</p><p>  選題名稱: 學生成績管理系統(tǒng) </p><p>  系(院): 數 理學 院</p><p>  專 業(yè): 信息與計算科學</p><p>  班 級: </p&

2、gt;<p>  姓 名: 學 號: </p><p>  指導教師: </p><p>  學年學期: 2011 ~ 2012 學年 第 1 學期</p><p>  2012 年 06 月 06 日</p><p><b>  【摘

3、 要】</b></p><p>  21世紀,科學技術突飛猛進,經濟知識和信息產業(yè)初見端倪,特別是信息技術和網絡技術的訊速發(fā)展和廣泛應用,對社會的政治,經濟,軍事,文化等領域產生越來越深刻。學生成績管理系統(tǒng)是一個教育單位不可缺少的部分,它的內容對于學校的決策者和管理者來說都至關重要。本論文敘述到的學生成績管理系統(tǒng)是用IIS+ASP網頁編程+ACCESS數據庫+DREAMWEAVER MX 2004+S

4、QL查詢語言實現的。重點介紹了學生成績管理系統(tǒng)的實現過程:包括系統(tǒng)分析,系統(tǒng)調查,功能設計,數據庫設計,系統(tǒng)實現,系統(tǒng)測試和調試等。本系統(tǒng)主要功能有查詢學生成績、單個添加學生成績、批量添加學生成績、刪除學生成績、管理頁面和修改管理員密碼等內容。</p><p><b>  【關鍵詞】 </b></p><p>  成績管理; 成績查詢; C++</p>

5、<p><b>  目 錄</b></p><p>  中文摘要 。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。 1</p><p>  1緒論 。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。 4</p>

6、;<p>  1.1 選題背景 。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。 5</p><p>  1.2 需求分析 。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。 6</p><p>  2總體設計 。。。。。。。。。。。。。。。

7、。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。 7</p><p>  2.1程序設計組成框圖 。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。 8</p><p>  2.2 模塊功能說明 。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。9</p>

8、<p>  2.3 程序流程圖 。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。10</p><p>  2.4 主要函數之間相互調用 。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。 11</p><p>  3 在設計過程中的感受 。。。。。。。。。。。。。。。。。。

9、。。。。。。。。。。。。。。。。。。。。。12</p><p>  致謝 。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。 13</p><p>  參考文獻 。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。 14</p><p>  附錄

10、:源程序清單 。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。 15</p><p><b>  緒論</b></p><p><b>  1.1 選題背景</b></p><p>  為了提高高校學生信息的管理效率,方便對學生信息進行管理、學校里面的學生和管理員方便去管理和查詢學

11、生信息,如再要進行查詢,就得在眾多的學生信息中查找自己的成績信息,面對學院大量的學生信息,怎么可以即時而方便的管理,學生只要登錄本系統(tǒng)就可以查找到自己的成績信息,而管理員也方便去管理每學期的學生的成績信息。建立一個學生信息管理系統(tǒng),使學生信息管理工作規(guī)范化,系統(tǒng)化,程序化,避免學生管理的隨意性,提高信息處理的速度和準確性,能夠及時、準確、有效的查詢和修改學生信息是必須而且十分迫切的工作。</p><p><

12、b>  2.1 需求分析</b></p><p>  學生管理系統(tǒng)功能的信息量大,數據安全性和保密性要求最高。本功能實現對專業(yè)信息、學生信息、教師信息情況信息的管理和統(tǒng)計、課程信息和成績信息查看及維護。系統(tǒng)管理員可以瀏覽、查詢、學生的基本信息,能添加、刪除和修改學生信息,這部分功能應該由系統(tǒng)管理員執(zhí)行,但是,刪除某條專業(yè)基本信息記錄時,應實現對該專業(yè)的相關信息也級聯刪除。并且還應具有查詢,并打印

13、輸出的功能</p><p>  設計不同用戶的操作權限和登陸方法、對所有用戶開放的用戶提供學生成績信息查詢、由于本系統(tǒng)功能實現方面并不太復雜,所以上面只是相關的學生信息管理查詢的總體分析,具體實現就主要體現在學生管理,教師的管理和課程的管理這一塊,也就是重點實現查詢與添加學生信息,以及對成績信息管理。</p><p><b>  2.總體設計</b></p>

14、;<p> ?。?)程序設計組成框圖</p><p><b> ?。?)模塊功能說明</b></p><p>  1 輸出功能:完成全部學生記錄的顯示。</p><p>  2 查詢功能:輸入姓名可以查詢學生的詳細信息。</p><p>  3 增加功能:增加新學生的信息。 </p><

15、p>  4 刪除功能:刪除學生信息。</p><p>  5 修改功能:修改學生的錯誤信息。</p><p>  6保存功能:保存已輸入信息。</p><p>  7讀取功能:讀取已輸入信息。</p><p>  8顯示功能:按要求顯示學生記錄。</p><p>  9 排序功能:按要求完成對學生信息的排序。

16、</p><p><b>  10 退出系統(tǒng)。</b></p><p><b>  (3)程序流程圖</b></p><p> ?。?)主要函數之間相互調用如下:</p><p><b>  總 結</b></p><p>  首先經過一周的編程實

17、習,并在后一段的報告總結,我對數據結構這門科有新的認識,本人實在是獲益不淺!要想編寫一個準確、高效并有使用價值的程序,一定先要對課本知識熟悉,還要掌握必要的上機操作能力,寫程序其實很容易而關鍵在于調試程序。這次設計,讓我重新掌握了數據結構,而且還得到了用數據結構解決實際問題的寶貴經驗。</p><p>  其次, 通過此次編程我也發(fā)現了自己在學習中的錯誤和不足,復習了以前學過的知識。同時也學到了一些沒學過的知識,

18、讓我從中收益非淺,也為期末考試準備了一下!更重要的是培養(yǎng)了獨立思考問題和解決問題的能力,熟悉了一些基本操作和解決問題的方法!</p><p>  致 謝</p><p>  因為初次接觸等原因此次設計遇到了許多問題,我深刻體會到老師發(fā)揮的重要作用, 數據結構程序對我們來說比較難,在匆忙的學習中更是難上加難,似乎覺得自己僅是個匆匆過客,但在老師的幫助下我學會了如何調試,如何查找

19、系統(tǒng)沒有提示的錯誤,最后終于排除萬難把程序搞定,體會到原來編程也挺有意思的快感.我想沒有老師的幫助我很難在短期內把程序設計做的這樣好,在此特地感謝老師的幫助。</p><p><b>  參 考 文 獻</b></p><p>  [1] 李麗娟 . C語言程序設計教程(第二版). 北京:人民郵電出版社 2009</p><p>  [2] 刁

20、成嘉 . C語言程序設計論文 [D].北京:清華大學出版社 2004</p><p>  [3] 楊文軍,楊柳 . C語言程序設計教程[M]. 北京:清華大學出版社 2010</p><p>  [4] 周啟海 . C語言程序設計報告[R].北京:中國水利工程出版社 2005</p><p>  [5] 譚浩強 . C程序設計(第三版)[M].北京:清華大學出版社

21、2005</p><p><b>  附 錄</b></p><p><b>  源程序清單</b></p><p>  #include<stdio.h></p><p>  #include<conio.h></p><p>  #include&

22、lt;malloc.h></p><p>  #include<string.h></p><p>  typedef struct STUDENT</p><p><b>  {</b></p><p>  char studentNumber[10];/*學生學號*/</p><

23、p>  char studentName[20];/*學生姓名*/</p><p>  char className[20];/*班級名稱*/</p><p>  char yearName[20];/*學期名稱*/</p><p>  float mark1;/*第1門成績*/</p><p>  float mark2;/*第2門成

24、績*/</p><p>  float mark3;/*第3門成績*/</p><p>  struct STUDENT *next;</p><p><b>  }STUDENT;</b></p><p>  STUDENT *headLink;/*鏈表表頭指針*/</p><p>  /*以下

25、是函數聲明*/</p><p>  void ReadInfoFormFile(void);</p><p>  void DesplayMenu(void);</p><p>  void CreateHeadLink(void);</p><p>  STUDENT *MallocNode(void);</p><p&

26、gt;  void GetInformation(STUDENT *t);</p><p>  void OutputInformation(void);</p><p>  void DesplayInfoBystudentName(void);</p><p>  void DesplayOneNode(STUDENT *t);</p><p

27、>  void InsertOneNode(STUDENT *t);</p><p>  void DeleteNodeBystudentNumber(void);</p><p>  void ChangeMarkByName(void);</p><p>  void ChangeMarkByNumber(void);</p><p&g

28、t;  void SaveLinkToFile(void);</p><p>  void DesplayMarkSegment(void);</p><p>  void CompositorByTotalMark(void);</p><p>  int choose;/*用于接受用戶的選擇*/</p><p><b>  /*

29、主函數*/</b></p><p>  void main()</p><p><b>  {</b></p><p>  CreateHeadLink();</p><p>  ReadInfoFormFile();</p><p>  DesplayMenu();</p>

30、;<p><b>  }</b></p><p>  /************************************</p><p>  函數功能:從文件中讀學生信息到鏈表中</p><p>  ************************************/</p><p>  vo

31、id ReadInfoFormFile(void)</p><p><b>  {</b></p><p><b>  FILE *fp;</b></p><p>  STUDENT *p;</p><p>  fp=fopen("student.txt","r&quo

32、t;);</p><p><b>  if(!fp)</b></p><p><b>  {</b></p><p>  printf("文件不存在\n");</p><p><b>  return;</b></p><p><

33、;b>  }</b></p><p>  p=MallocNode();</p><p>  while(fscanf(fp,"%s%s%s%f%f%f",p->studentNumber,p->studentName,p->className,&(p->mark1),&(p->mark2),&(p

34、->mark3))>0)</p><p><b>  {</b></p><p>  InsertOneNode(p);</p><p>  p=MallocNode();</p><p><b>  }</b></p><p>  fclose(fp);<

35、/p><p><b>  }</b></p><p>  /************************************</p><p>  函數功能:顯示菜單,根據用戶的輸入</p><p><b>  完成相應的功能</b></p><p>  *********

36、***************************/</p><p>  void DesplayMenu(void)</p><p><b>  {</b></p><p>  STUDENT *p;</p><p>  printf("-------請選擇相應功能------------\n\n&quo

37、t;);</p><p>  printf("| 1 按班級輸出學生成績單 |\n");</p><p>  printf("| 2 按姓名查詢 |\n");</p><p>  printf("| 3 增加學生 |\n");</p><p>  printf("| 4 刪

38、除學生 |\n");</p><p>  printf("| 5 按班級修改學生成績 |\n");</p><p>  printf("| 6 按學期修改學生成績 |\n");</p><p>  printf("| 7 保存所有學生信息 |\n");</p><p>  

39、printf("| 8 顯示不及格學生成績 |\n");</p><p>  printf("| 9 按平均成績排序并輸出績 |\n");</p><p>  printf("| 10 退出 |\n\n");</p><p>  scanf("%d",&choose);/*取得用

40、戶的選擇*/</p><p>  switch(choose)</p><p><b>  {</b></p><p><b>  case 1:</b></p><p>  OutputInformation();/*顯示所有學生的信息*/</p><p><b>

41、;  break;</b></p><p><b>  case 2:</b></p><p>  DesplayInfoBystudentName();</p><p><b>  break;</b></p><p><b>  case 3:</b></

42、p><p>  p=MallocNode();/*先申請一個新結點*/</p><p>  GetInformation(p);/*要求用戶輸入信息到新結點中*/</p><p>  InsertOneNode(p);/*將新結點加到鏈表中*/</p><p><b>  break;</b></p><

43、p><b>  case 4:</b></p><p>  DeleteNodeBystudentNumber();/*根據用戶輸入的學號刪除該學生*/</p><p><b>  break;</b></p><p><b>  case 5:</b></p><p>

44、  ChangeMarkByName();/*根據用戶輸入的姓名修改學生成績*/</p><p><b>  break;</b></p><p><b>  case 6:</b></p><p>  ChangeMarkByNumber();/*根據用戶輸入的學號修改學生成績*/</p><p>

45、;<b>  break;</b></p><p><b>  case 7:</b></p><p>  SaveLinkToFile();/*保存數據*/</p><p><b>  break;</b></p><p><b>  case 8:</b&g

46、t;</p><p>  DesplayMarkSegment();/*顯示不及格的學生成績*/</p><p><b>  break;</b></p><p><b>  case 9:</b></p><p>  CompositorByTotalMark();/*按平均成績排序*/</

47、p><p><b>  break;</b></p><p><b>  case 10:</b></p><p>  SaveLinkToFile();/*保存數據后再退出*/</p><p>  free(headLink);</p><p><b>  break

48、;</b></p><p><b>  default:</b></p><p><b>  break;</b></p><p><b>  }</b></p><p>  DesplayMenu();/*遞歸調用*/</p><p>&l

49、t;b>  }</b></p><p>  /************************************</p><p>  函數功能:建立鏈表表頭</p><p>  ************************************/</p><p>  void CreateHeadLink(voi

50、d)</p><p><b>  {</b></p><p>  STUDENT *p;</p><p>  p=(STUDENT*)malloc(sizeof(STUDENT));</p><p>  headLink=p;</p><p>  p->next=NULL;</p>

51、;<p><b>  }</b></p><p>  /************************************</p><p>  函數功能:申請一個新結點,并將其初始化</p><p>  ************************************/</p><p>  S

52、TUDENT *MallocNode(void)</p><p><b>  {</b></p><p>  STUDENT *p;</p><p><b>  int i;</b></p><p>  p=(STUDENT*)malloc(sizeof(STUDENT));</p>

53、<p>  if(p==NULL)</p><p>  return NULL;</p><p>  for(i=0;i<10;i++)</p><p>  p->studentNumber[i]='\0';</p><p>  for(i=0;i<20;i++)</p><p&

54、gt;  p->studentName[i]='\0';</p><p>  for(i=0;i<20;i++)</p><p>  p->className[i]='\0';</p><p>  p->mark1=0.0;</p><p>  p->mark2=0.0;</

55、p><p>  p->mark3=0.0;</p><p>  p->next=NULL;</p><p><b>  return p;</b></p><p><b>  }</b></p><p>  /*****************************

56、*******</p><p>  函數功能:取得用戶輸入的學生信息</p><p>  ************************************/</p><p>  void GetInformation(STUDENT *t)</p><p><b>  {</b></p><p

57、>  printf("請輸入學生學號:\n");</p><p>  scanf("%s",t->studentNumber);</p><p>  printf("請輸入學生姓名:\n");</p><p>  scanf("%s",t->studentName);&

58、lt;/p><p>  printf("請輸入該生所在班級:\n");</p><p>  scanf("%s",t->className);</p><p>  printf("請輸入第1門成績:\n");</p><p>  scanf("%f",&

59、(t->mark1));</p><p>  printf("請輸入第2門成績:\n");</p><p>  scanf("%f",&(t->mark2));</p><p>  printf("請輸入第3門成績:\n");</p><p>  scanf(&q

60、uot;%f",&(t->mark3));</p><p><b>  }</b></p><p>  /************************************</p><p>  函數功能:在鏈表的結尾處增加一個結點</p><p>  ********************

61、****************/</p><p>  void InsertOneNode(STUDENT *t)</p><p><b>  {</b></p><p>  STUDENT *p;</p><p>  p=headLink;</p><p>  while(p->next

62、)</p><p><b>  {</b></p><p>  p=p->next;</p><p><b>  }</b></p><p>  p->next=t;</p><p><b>  }</b></p><p&

63、gt;  /************************************</p><p>  函數功能:根據用戶輸入的學生姓名顯示該學生的信息</p><p>  ************************************/</p><p>  void DesplayInfoBystudentName(void)</p>&

64、lt;p><b>  {</b></p><p>  STUDENT *p;</p><p>  char studentName[20];</p><p>  char flag=0;</p><p>  p=headLink->next;</p><p>  printf(&quo

65、t;請輸入學生姓名:\n");</p><p>  scanf("%s",studentName);</p><p><b>  while(p)</b></p><p><b>  {</b></p><p>  if(strcmp(p->studentName

66、,studentName)==0)</p><p><b>  {</b></p><p>  printf("學號\t姓名\t班級\t成績1\t成績1\t成績3\t總成績\t平均成績\n\n");</p><p>  DesplayOneNode(p);</p><p><b>  fla

67、g=1;</b></p><p><b>  break;</b></p><p><b>  }</b></p><p>  p=p->next;</p><p><b>  }</b></p><p><b>  if(!

68、flag)</b></p><p>  printf("對不起,不存在姓名為 %s 的學生\n",studentName);</p><p><b>  }</b></p><p>  /************************************</p><p>  函數功能

69、:輸出一個結點的信息</p><p>  ************************************/</p><p>  void DesplayOneNode(STUDENT *t)</p><p><b>  {</b></p><p>  printf("%s\t",t->

70、studentNumber);</p><p>  printf("%s\t",t->studentName);</p><p>  printf("%s\t",t->className);</p><p>  printf("%.2f\t",t->mark1);</p>&

71、lt;p>  printf("%.2f\t",t->mark2);</p><p>  printf("%.2f\t",t->mark3);</p><p>  printf("%.2f\t",t->mark1+t->mark2+t->mark3);</p><p>  

72、printf("%.2f\t\n",(t->mark1+t->mark2+t->mark3)/3);</p><p><b>  }</b></p><p>  /************************************</p><p>  函數功能:根據用戶輸入的學號刪除該學生</p

73、><p>  ************************************/</p><p>  void DeleteNodeBystudentNumber(void)</p><p><b>  {</b></p><p>  char studentNumber[10];</p><p&

74、gt;  STUDENT *p,*q;</p><p>  char flag=0;</p><p>  printf("請輸入要刪除的學生學號:");</p><p>  scanf("%s",studentNumber);</p><p>  p=headLink;</p><p

75、>  q=headLink->next;</p><p><b>  while(q)</b></p><p><b>  {</b></p><p>  if(strcmp(q->studentNumber,studentNumber)==0)</p><p><b>

76、  {</b></p><p>  p->next=q->next;</p><p><b>  free(q);</b></p><p><b>  flag=1;</b></p><p><b>  break;</b></p><

77、;p><b>  }</b></p><p>  p=p->next;</p><p>  q=q->next;</p><p><b>  }</b></p><p><b>  if(!flag)</b></p><p><b

78、>  {</b></p><p>  printf("不存在該學號的學生\n");</p><p><b>  return;</b></p><p><b>  }</b></p><p>  printf("成功刪除\n");</p

79、><p><b>  }</b></p><p>  /************************************</p><p>  函數功能:顯示所有學生的信息</p><p>  ************************************/</p><p>  voi

80、d OutputInformation(void)</p><p><b>  {</b></p><p>  STUDENT *p;</p><p>  p=headLink->next;</p><p>  if(p==NULL)</p><p><b>  {</b&g

81、t;</p><p>  printf("現在沒有學生信息,請先輸入學生信息\n\n");</p><p><b>  return;</b></p><p><b>  }</b></p><p>  printf("學號\t姓名\t班級\t成績1\t成績1\t成績3

82、\t總成績\t平均成績\n\n");</p><p><b>  while(p)</b></p><p><b>  {</b></p><p>  DesplayOneNode(p);</p><p>  p=p->next;</p><p><b&

83、gt;  }</b></p><p><b>  }</b></p><p>  /************************************</p><p>  函數功能:根據輸入的班級修改成績</p><p>  ************************************/&l

84、t;/p><p>  void ChangeMarkByName(void)</p><p><b>  {</b></p><p>  STUDENT *p;</p><p><b>  int a;</b></p><p>  char studentName[20];<

85、;/p><p>  char flag=0;</p><p>  float mark1,mark2,mark3;</p><p>  p=headLink->next;</p><p>  printf("請輸入學生班級:\n");</p><p>  scanf("%d",

86、&a);</p><p>  printf("請輸入學生姓名:\n");</p><p>  scanf("%s",studentName);</p><p><b>  while(p)</b></p><p><b>  {</b></p&g

87、t;<p>  if(strcmp(p->studentName,studentName)==0)</p><p><b>  {</b></p><p>  printf("請輸入新的第1門成績:\n");</p><p>  scanf("%f",&mark1);</

88、p><p>  printf("請輸入新的第2門成績:\n");</p><p>  scanf("%f",&mark2);</p><p>  printf("請輸入新的第3門成績:\n");</p><p>  scanf("%f",&mark3)

89、;</p><p>  p->mark1=mark1;</p><p>  p->mark2=mark2;</p><p>  p->mark3=mark3;</p><p><b>  flag=1;</b></p><p>  printf("修改成功\n"

90、;);</p><p><b>  break;</b></p><p><b>  }</b></p><p>  p=p->next;</p><p><b>  }</b></p><p><b>  if(!flag)</b

91、></p><p>  printf("對不起,不存在班級為 %s 的學生\n",studentName);</p><p><b>  }</b></p><p>  /************************************</p><p>  函數功能:根據輸入的學期修改成

92、績</p><p>  ************************************/</p><p>  void ChangeMarkByNumber(void)</p><p><b>  {</b></p><p>  STUDENT *p;</p><p><b>

93、  int b;</b></p><p>  char studentNumber[20];</p><p>  char flag=0;</p><p>  float mark1,mark2,mark3;</p><p>  p=headLink->next;</p><p>  printf(&

94、quot;請輸入學生所在學期:\n");</p><p>  scanf("%d",&b);</p><p>  printf("請輸入學生學號:\n");</p><p>  scanf("%s",studentNumber);</p><p><b>

95、  while(p)</b></p><p><b>  {</b></p><p>  if(strcmp(p->studentNumber,studentNumber)==0)</p><p><b>  {</b></p><p>  printf("請輸入新的第1

96、門成績:\n");</p><p>  scanf("%f",&mark1);</p><p>  printf("請輸入新的第2門成績:\n");</p><p>  scanf("%f",&mark2);</p><p>  printf("請

97、輸入新的第3門成績:\n");</p><p>  scanf("%f",&mark3);</p><p>  p->mark1=mark1;</p><p>  p->mark2=mark2;</p><p>  p->mark3=mark3;</p><p>

98、<b>  flag=1;</b></p><p>  printf("修改成功\n");</p><p><b>  break;</b></p><p><b>  }</b></p><p>  p=p->next;</p><

99、;p><b>  }</b></p><p><b>  if(!flag)</b></p><p>  printf("對不起,不存在學期為 %s 的學生\n",studentNumber);</p><p><b>  }</b></p><p>

100、  /************************************</p><p>  函數功能:保存鏈表數據到文件中</p><p>  ************************************/</p><p>  void SaveLinkToFile(void)</p><p><b>  {&l

101、t;/b></p><p>  STUDENT *p;</p><p><b>  FILE *fp;</b></p><p>  p=headLink->next;</p><p>  if(p==NULL)</p><p><b>  {</b></p&

102、gt;<p>  printf("現在沒有學生信息,請先輸入學生信息\n\n");</p><p><b>  return;</b></p><p><b>  }</b></p><p>  fp=fopen("student.txt","w+"

103、);</p><p><b>  if(!fp)</b></p><p><b>  {</b></p><p>  printf("文件不存在\n");</p><p><b>  return;</b></p><p><b

104、>  }</b></p><p><b>  while(p)</b></p><p><b>  {</b></p><p>  fprintf(fp,"%s %s %s %f %f %f\n",p->studentNumber,p->studentName,p->

105、className,p->mark1,p->mark2,p->mark3);</p><p>  p=p->next;</p><p><b>  }</b></p><p>  fclose(fp);</p><p><b>  }</b></p><p

106、>  /************************************</p><p>  函數功能:不及格學生成績</p><p>  ************************************/</p><p>  void DesplayMarkSegment(void)</p><p><b>

107、  {</b></p><p>  STUDENT *p;</p><p>  int count=0;</p><p>  p=headLink->next;</p><p>  printf("60分以下(不及格)的學生成績如下:\n");</p><p>  printf(&

108、quot;學號\t姓名\t班級\t成績1\t成績1\t成績3\t總成績\t平均成績\n\n");</p><p><b>  while(p)</b></p><p><b>  {</b></p><p>  if((6>((int)(p->mark1/10)))||(6>((int)(p-&

109、gt;mark2/10)))||(6>((int)(p->mark3/10))))/*只要有一科不及格就認為該生不及格*/</p><p><b>  {</b></p><p><b>  count++;</b></p><p>  DesplayOneNode(p);</p><p&g

110、t;<b>  }</b></p><p>  p=p->next;</p><p><b>  }</b></p><p>  printf("不及格的學生一共有%d人\n",count);</p><p><b>  }</b></p>

111、<p>  /************************************</p><p>  函數功能:按平均成績排序</p><p>  ************************************/</p><p>  void CompositorByTotalMark(void)</p><p>

112、;<b>  {</b></p><p>  STUDENT exchange,*r,*p,*q;</p><p>  r=headLink->next;</p><p>  if(r==NULL)</p><p><b>  {</b></p><p>  print

113、f("現在還沒學生信息,請先輸入學生信息\n");</p><p><b>  return;</b></p><p><b>  }</b></p><p>  while(r)/*兩層while循環(huán)實現排序*/</p><p><b>  {</b>&l

114、t;/p><p><b>  p=r;</b></p><p>  q=r->next;</p><p><b>  while(q)</b></p><p><b>  {</b></p><p>  if((q->mark1+q->ma

115、rk2+q->mark3)>(p->mark1+p->mark2+p->mark3))</p><p><b>  {</b></p><p>  strcpy(exchange.studentNumber,q->studentNumber);/*先復制q結點信息到exchange*/</p><p>  s

116、trcpy(exchange.studentName,q->studentName);</p><p>  strcpy(exchange.className,q->className);</p><p>  exchange.mark1=q->mark1;</p><p>  exchange.mark2=q->mark2;</p&g

117、t;<p>  exchange.mark3=q->mark3;</p><p>  strcpy(q->studentNumber,p->studentNumber);/*再復制p結點信息到q*/</p><p>  strcpy(q->studentName,p->studentName);</p><p>  str

118、cpy(q->className,p->className);</p><p>  q->mark1=p->mark1;</p><p>  q->mark2=p->mark3;</p><p>  q->mark3=p->mark3;</p><p>  strcpy(p->studen

119、tNumber,exchange.studentNumber);/*最后復制exchange結點信息到p*/</p><p>  strcpy(p->studentName,exchange.studentName);</p><p>  strcpy(p->className,exchange.className);</p><p>  p->m

120、ark1=exchange.mark1;</p><p>  p->mark2=exchange.mark2;</p><p>  p->mark3=exchange.mark3;</p><p><b>  }</b></p><p>  q=q->next;</p><p>

溫馨提示

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

評論

0/150

提交評論