課程設(shè)計(jì)報(bào)告--學(xué)生成績管理系統(tǒng)_第1頁
已閱讀1頁,還剩23頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、<p>  課 程 設(shè) 計(jì) 報(bào) 告</p><p>  課程名稱 C語言程序設(shè)計(jì) </p><p>  課題名稱 學(xué)生成績管理系統(tǒng) </p><p>  課 程 設(shè) 計(jì) 任 務(wù) 書</p><p>  一、設(shè)計(jì)內(nèi)容與設(shè)計(jì)要求</p><p><b>  1.設(shè)

2、計(jì)內(nèi)容:</b></p><p><b> ?、艈栴}描述:</b></p><p>  對一個(gè)有N個(gè)學(xué)生的班級,每個(gè)學(xué)生有M門課程。該系統(tǒng)實(shí)現(xiàn)對班級成績的錄入、顯示、修改、排序、保存等操作的管理。</p><p><b> ?、乒δ芤螅?lt;/b></p><p>  ①、本系統(tǒng)采用一個(gè)結(jié)

3、構(gòu)體數(shù)組,每個(gè)數(shù)據(jù)的結(jié)構(gòu)應(yīng)當(dāng)包括:學(xué)號、姓名、M門課程名稱。</p><p> ?、?、本系統(tǒng)顯示這樣的菜單:</p><p><b>  請選擇系統(tǒng)功能項(xiàng):</b></p><p><b>  成績錄入</b></p><p><b>  成績顯示</b></p>

4、<p><b>  成績保存</b></p><p><b>  成績排序</b></p><p>  成績修改(要求先輸入密碼)</p><p><b>  成績統(tǒng)計(jì)</b></p><p> ?、?、顯示每門課程成績最高的學(xué)生的基本信息</p>&l

5、t;p>  Ⅱ、顯示每門課程的平均成績</p><p><b>  退出系統(tǒng)</b></p><p>  ③、執(zhí)行一個(gè)具體的功能之后,程序?qū)⒅匦嘛@示菜單。</p><p> ?、堋W(xué)生成績保存到文件中。</p><p><b> ?、撬惴ㄌ崾荆?lt;/b></p><p>

6、;  ①、數(shù)據(jù)結(jié)構(gòu):結(jié)構(gòu)體類型數(shù)組。</p><p> ?、?、數(shù)據(jù)庫結(jié)構(gòu):下表構(gòu)成該系統(tǒng)的基本數(shù)據(jù)庫。 </p><p><b> ?、葴y試數(shù)據(jù):</b></p><p><b>  學(xué)生人數(shù)N=10</b></p><p><b>  課程門數(shù)M=4</b><

7、/p><p>  課程名:數(shù)學(xué)、語文、英語、政治</p><p><b> ?、善渌?lt;/b></p><p>  對該系統(tǒng)有興趣的同學(xué)可以在實(shí)現(xiàn)上述基本功能后,完善系統(tǒng)的其它功能。</p><p><b>  2.設(shè)計(jì)要求:</b></p><p>  1).設(shè)計(jì)正確,方案合理。

8、</p><p>  2).界面友好,使用方便。</p><p>  3).程序精煉,結(jié)構(gòu)清晰。</p><p>  4).設(shè)計(jì)報(bào)告5000字以上,含程序設(shè)計(jì)說明、系統(tǒng)的功能框圖、流程圖、源程序清單等。</p><p>  5).實(shí)際操作過程中遇到的問題及解決方法:設(shè)計(jì)總結(jié)及心得體會.</p><p><b>

9、;  6).上機(jī)演示。</b></p><p><b>  3.分組及安排</b></p><p>  所選題目根據(jù)學(xué)生學(xué)號確定,學(xué)號模4加1,即(學(xué)號%4+1)。如你的學(xué)號為17,則所選題目號為:17%4+1==(題目2)。</p><p><b>  4.成績評定</b></p><p&

10、gt;  程序設(shè)計(jì)方案是否合理;程序設(shè)計(jì)是否正確;調(diào)試結(jié)果;設(shè)計(jì)說明書的質(zhì)量高低;答辯時(shí)回答問題情況;課程設(shè)計(jì)周表現(xiàn)情況;總評成績記入“課程設(shè)計(jì)成績評分表”。</p><p><b>  二、進(jìn)度安排</b></p><p>  第 18 周星期一星期二星期五 08:00——12:00</p><p><b>  星期一 上午<

11、;/b></p><p>  熟悉這次課程設(shè)計(jì)的目的和課程設(shè)計(jì)的要求,通過圖書館或因特網(wǎng)查找與幀封裝課題相關(guān)的資料,明確了解一些要用到的文件和調(diào)用函數(shù)等。機(jī)房上機(jī),在計(jì)算機(jī)上編輯源程序。</p><p><b>  星期二 上午</b></p><p>  調(diào)試程序,在改正錯(cuò)誤的同時(shí)不斷完善程序,使源代碼滿足課程設(shè)計(jì)的要求和實(shí)現(xiàn)課程設(shè)計(jì)的

12、基本功能。</p><p><b>  星期三 上午</b></p><p>  繼續(xù)修改、編輯、調(diào)試程序。不斷改正錯(cuò)誤后,要保證程序能成功編譯成目標(biāo)文件,鏈接成功成為可執(zhí)行文件,再運(yùn)行能顯示出“幀封裝已完成”的信息,這樣才能算已經(jīng)完成了本課題的基本功能。</p><p><b>  星期五 上午</b></p>

13、;<p>  進(jìn)一步完善程序并運(yùn)行演示,完成課程設(shè)計(jì)答辯, </p><p><b>  星期六</b></p><p>  畫出流程圖,書寫程序報(bào)告,對整個(gè)程序流程與算法進(jìn)行解釋并寫出總結(jié)。完成并打印課程設(shè)計(jì)報(bào)告。</p><p><b>  目錄</b></p><p>  一、課

14、題的主要功能5</p><p>  二、課題的功能模塊的劃分6</p><p>  頭文件(xscj.h)6</p><p>  主函數(shù)(int main())6</p><p>  創(chuàng)建鏈表 (struct student * creatlb())7</p><p>  信息保存(void baocun(

15、struct student * head))9</p><p>  成績錄入(void cjlr(struct student * head))10</p><p>  成績顯示(void cjxs())11</p><p>  成績修改(void cjxg())11</p><p>  成績排序(void cjpx())12&l

16、t;/p><p>  三.程序模塊截圖13</p><p>  四.總結(jié)及參考資料15</p><p><b>  附錄:16</b></p><p><b>  一、課題的主要功能</b></p><p>  對學(xué)生信息(包括學(xué)號、語文、數(shù)學(xué)、英語、平均分)進(jìn)行管理,包括

17、學(xué)生成績的信息輸入、輸出、查詢、刪除、排序、統(tǒng)計(jì)、退出.將學(xué)生的成績信息進(jìn)行記錄,信息內(nèi)容包含:(1)學(xué)生的學(xué)號(2)學(xué)生的姓名(3)學(xué)生的成績。假設(shè),現(xiàn)收集到了一個(gè)班學(xué)生的所有成績信息,要求用C語言編寫一個(gè)簡單的成績管理系統(tǒng),可進(jìn)行錄入、查詢、修改和瀏覽等功能。學(xué)習(xí)相關(guān)開發(fā)工具和應(yīng)用軟件,熟悉系統(tǒng)建設(shè)過程。本系統(tǒng)實(shí)現(xiàn)以下功能:</p><p>  1、輸入初始的學(xué)生信息:輸入信息包括學(xué)生的姓名、學(xué)號以及學(xué)生的成

18、績等相關(guān)信息;可用函數(shù)void input(STUDENT *data, int *len)來實(shí)現(xiàn)此操作。 </p><p>  2、成績輸出模塊:輸出學(xué)生的信息以及成績,通過學(xué)生的姓名來查看學(xué)生的相關(guān)成績來輸出成績的平均分?jǐn)?shù)、最高和最低分?jǐn)?shù)。</p><p>  3、成績查詢模塊:可用void cjxs()來實(shí)現(xiàn)。找到就輸出此學(xué)生全部信息。</p><p>  

19、4、排序模塊:用函數(shù)void cjpx()來實(shí)現(xiàn)</p><p>  5、統(tǒng)計(jì)功能能:用函數(shù)void cjtj()來實(shí)現(xiàn)</p><p>  6、退出系統(tǒng):可用一個(gè)函數(shù)exit()來實(shí)現(xiàn),首先將信息保存到文件中,釋放動態(tài)創(chuàng)建的內(nèi)存空間,再退出此程序。</p><p><b>  如下圖:</b></p><p>  二

20、、課題的功能模塊的劃分</p><p>  頭文件(xscj.h)</p><p>  本模塊包括①在程序中所需函數(shù)頭文件的調(diào)用,如:“stdio.h”“stdlib.h”“string.h”“conio.h”等②結(jié)構(gòu)體的定義,即定義結(jié)構(gòu)體student中所要包含的成員,如:學(xué)生姓名、學(xué)號、各科成績等③子函數(shù)的預(yù)處理與聲明,如下文中所需調(diào)用與編寫的子函數(shù)“void cjlr()”“void

21、 cjxs()”“void cjbc()”“void cjxg()”等。本模塊名為“xscj.h”,包含在主函數(shù)模塊前的預(yù)處理命令中,即主函數(shù)中的“#include “xscj.h””,以供函數(shù)調(diào)用。</p><p>  主函數(shù)(int main())</p><p>  本模塊主要實(shí)現(xiàn)程序的界面設(shè)計(jì),如歡迎界面等。另外,本程序還包括了菜單的顯示和子函數(shù)的調(diào)用,起到鏈接起程序的各個(gè)模塊

22、的作用。在主界面中包括“輸入學(xué)生成績 顯示統(tǒng)計(jì)數(shù)據(jù) 查找學(xué)生成績 修改學(xué)生成績 刪除學(xué)生成績 插入學(xué)生成績 按平均分降序排列 顯示全部學(xué)生成績 退出本系統(tǒng)”等全部的功能選擇。這樣一是能使用戶對程序操作的流程更加清楚簡明,二是保證了用戶同時(shí)只能對一個(gè)文件進(jìn)行操作的系統(tǒng)要求,保證了系統(tǒng)不會發(fā)生打開文件紊亂或者出現(xiàn)致命錯(cuò)誤。菜單截圖</p><p>  創(chuàng)建鏈表 (struct Person * c

23、reatlb())</p><p>  本模塊主要實(shí)現(xiàn)對已保存數(shù)據(jù)文件的讀入,創(chuàng)立初始鏈表,以執(zhí)行成績顯示、成績排序、成績修改等功能指令。模塊算法流程如下:</p><p>  信息保存(void baocunXGSC(struct Person * head))</p><p>  在本模塊中將已進(jìn)行修改等操作的新鏈表信息,通過頭指針head進(jìn)行引入并保存。首先定

24、義結(jié)構(gòu)體指針p,使p=head,將p中信息寫入文件。接著執(zhí)行循環(huán)體判斷指針p是否為空,若不為空則繼續(xù)將指針p中的數(shù)據(jù)寫入文件,直到指針p指向空為止跳出循環(huán)。模塊流程圖如下:</p><p>  成績錄入(void cjlr(struct Person * head))</p><p>  本模塊實(shí)現(xiàn)對信息的輸入,將學(xué)生的姓名、學(xué)號、語文成績、數(shù)學(xué)成績和英語成績等信息輸入到結(jié)構(gòu)體變量中,并通

25、過指針建立鏈表。模塊具體流程如下:</p><p>  成績顯示(void cjxs())</p><p>  本模塊實(shí)現(xiàn)成績輸出功能。首先調(diào)用創(chuàng)建鏈表函數(shù),實(shí)現(xiàn)鏈表的初始化,將文件中保存的學(xué)生成績信息讀取到結(jié)構(gòu)體鏈表當(dāng)中,然后再對結(jié)構(gòu)體鏈表中的信息進(jìn)行逐個(gè)輸出。具體流程如下:</p><p>  成績修改(void cjxg())</p><p

26、>  本模塊實(shí)現(xiàn)成績錄入后的修改功能。首先調(diào)用創(chuàng)建鏈表函數(shù),得到已保存文件數(shù)據(jù),輸入需要修改的學(xué)生學(xué)號,找到信息相匹配的結(jié)構(gòu)體變量,對結(jié)構(gòu)體中各成員重新賦值。模塊流程如下:</p><p>  成績排序(void cjpx())</p><p>  本模塊實(shí)現(xiàn)成績排序功能。通過選擇排序法對各學(xué)生成績按照總分大小先后排序。首先調(diào)用創(chuàng)建鏈表函數(shù)creatlb,將文件中的數(shù)據(jù)進(jìn)行讀入。然后

27、用選擇排序法對鏈表中各數(shù)據(jù)進(jìn)行排序,最后顯示并保存鏈表數(shù)據(jù)到文件當(dāng)中。</p><p><b>  三.程序模塊截圖</b></p><p><b>  主菜單界面:</b></p><p><b>  成績錄入界面:</b></p><p><b>  成績顯示界面

28、:</b></p><p><b>  成績排序:</b></p><p><b>  成績修改:</b></p><p><b>  四.總結(jié)及參考資料</b></p><p>  通過該這個(gè)課程設(shè)計(jì),我們更加牢固的掌握了C語言的知識。并對于以前不熟悉的知識有了更

29、加深刻的了解。同時(shí),在完成此次課程設(shè)計(jì)的過程中,老師同學(xué)給了我們很多寶貴的建議和指點(diǎn),我們很感謝他們。雖然有些疲勞和困倦,但帶給我很多的收獲。C語言已經(jīng)學(xué)了一個(gè)學(xué)期了,有許多知識都存在似懂非懂的現(xiàn)象,這種現(xiàn)象通過實(shí)際的上機(jī)操作,已經(jīng)減少了許多。對這些知識也有了更深的理解和很好的掌握。也有很多理論上說得過去的代碼,但到了實(shí)際操作,卻是行不通的。這種困惑,有許多已經(jīng)通過實(shí)際操作解決了,并能夠深刻認(rèn)識,但也有很多沒有明白。只能避過這些方法,換

30、方法實(shí)現(xiàn)。在課程設(shè)計(jì)之前,因?yàn)橛辛司C合實(shí)驗(yàn)的經(jīng)驗(yàn)與教訓(xùn),明白了寫代碼這一步是非常重要的,因?yàn)楫?dāng)你把代碼輸入電腦,并用編譯器將其運(yùn)行,發(fā)現(xiàn)通過不了,再來檢查找出問題,這是一件非常辛苦的事情,也很浪費(fèi)時(shí)間。于是在課程設(shè)計(jì)的時(shí)候,我們花了幾星期的時(shí)間來規(guī)劃與寫代碼,將要實(shí)現(xiàn)的內(nèi)容分析清楚,才把代碼輸入電腦。我們覺得寫程序,應(yīng)該先找到該程序中的核心地方,用多種方法來實(shí)現(xiàn)該核心,這才可能避免等到發(fā)現(xiàn)邏輯上或者編譯器不支持上的錯(cuò)誤,才來想補(bǔ)救的措施

31、,這樣花費(fèi)時(shí)間在想補(bǔ)救措施是很不值得的</p><p><b>  參考文獻(xiàn)</b></p><p>  [1] 譚浩強(qiáng),C程序設(shè)計(jì)(第二版)</p><p><b>  附錄:</b></p><p>  成績管理系統(tǒng)源代碼:</p><p>  頭文件(xscj.h)&l

32、t;/p><p>  #include<stdio.h></p><p>  #include<stdlib.h></p><p>  #include<string.h></p><p>  struct Person </p><p><b>  {</b>&l

33、t;/p><p>  char name[10];</p><p><b>  int num;</b></p><p><b>  int Math;</b></p><p>  int Chinese;</p><p>  int English;</p>&l

34、t;p>  int Polity;</p><p>  struct Person * next;</p><p><b>  };</b></p><p>  struct Person * creatlb();</p><p>  void cjlr();</p><p>  void

35、cjxs();</p><p>  void cjbc();</p><p>  void cjpx();</p><p>  void cjxg();</p><p>  void cjtj();</p><p>  主函數(shù)(xscj_main.c)</p><p>  #include&qu

36、ot;xscj.h"</p><p>  int main()</p><p>  {int i=1;</p><p><b>  while(i)</b></p><p><b>  {</b></p><p><b>  int x; </b&

37、gt;</p><p>  system("cls");</p><p>  printf(" **********************************\n");</p><p>  printf(" ** 1、成績錄入 **\n&quo

38、t;);</p><p>  printf(" ** 2、成績顯示 **\n");</p><p>  printf(" ** 3、成績保存 **\n");</p><p>  printf(" **

39、 4、成績排序 **\n");</p><p>  printf(" ** 5、成績修改 **\n");</p><p>  printf(" ** 6、成績統(tǒng)計(jì) **\n");</p><p>

40、  printf(" ** 7、退出系統(tǒng) **\n");</p><p>  printf(" **********************************\n");</p><p>  printf(" 請輸入您的選擇:");</p&

41、gt;<p>  scanf("%d",&x);</p><p>  switch(x) </p><p><b>  {</b></p><p><b>  case 1:</b></p><p>  system("cls");&l

42、t;/p><p><b>  cjlr();</b></p><p>  system("cls");</p><p><b>  break;</b></p><p><b>  case 2:</b></p><p>  system

43、("cls");</p><p><b>  cjxs();</b></p><p><b>  getch();</b></p><p>  system("cls");</p><p><b>  break;</b></p&g

44、t;<p><b>  case 3:</b></p><p>  system("cls");</p><p><b>  cjbc();</b></p><p>  system("cls");</p><p><b>  brea

45、k;</b></p><p><b>  case 4:</b></p><p>  system("cls");</p><p><b>  cjpx();</b></p><p>  system("cls");</p><

46、p><b>  break;</b></p><p><b>  case 5:</b></p><p>  system("cls");</p><p><b>  cjxg();</b></p><p>  system("cls&quo

47、t;);</p><p><b>  break;</b></p><p><b>  case 6:</b></p><p>  system("cls");</p><p><b>  cjtj();</b></p><p>&l

48、t;b>  getch();</b></p><p>  system("cls");</p><p><b>  break;</b></p><p><b>  case 7:</b></p><p><b>  i=0;</b><

49、;/p><p><b>  break;</b></p><p><b>  }</b></p><p><b>  }</b></p><p><b>  }</b></p><p>  子函數(shù)模塊(xscj.c)</p>

50、<p>  #include"xscj.h"</p><p>  struct Person * creatlb()</p><p><b>  {</b></p><p>  FILE * fp;</p><p>  struct Person student;</p>

51、<p>  struct Person * head=NULL;</p><p>  struct Person * p1;</p><p>  struct Person * p2;</p><p>  p2=&student;</p><p>  if((fp=fopen("D:\\成績管理系統(tǒng).dat&quo

52、t;,"rb"))!=NULL)</p><p><b>  {</b></p><p>  if(!feof(fp))</p><p>  {fread(&student,sizeof(struct Person),1,fp);</p><p>  head=p1=p2=(struct Pe

53、rson *)malloc(sizeof(struct Person));</p><p>  strcpy(p1->name,student.name);</p><p>  p1->num=student.num;</p><p>  p1->Math=student.Math;</p><p>  p1->Chi

54、nese=student.Chinese;</p><p>  p1->English=student.English;</p><p>  p1->Polity=student.Polity;</p><p><b>  }</b></p><p>  while(!feof(fp))</p>

55、<p>  {fread(&student,sizeof(struct Person),1,fp);</p><p>  p1=(struct Person *)malloc(sizeof(struct Person));</p><p>  strcpy(p1->name,student.name);</p><p>  p1->n

56、um=student.num;</p><p>  p1->Math=student.Math;</p><p>  p1->Chinese=student.Chinese;</p><p>  p1->English=student.English;</p><p>  p1->Polity=student.Poli

57、ty;</p><p>  p2->next=p1;</p><p><b>  p2=p1;</b></p><p><b>  }</b></p><p>  p2->next=NULL;</p><p><b>  p2=head;</b&g

58、t;</p><p>  if(p2->next!=NULL)</p><p><b>  {</b></p><p>  while(p2->next->next!=NULL)</p><p><b>  {</b></p><p>  p2=p2->

59、;next;</p><p><b>  }</b></p><p><b>  }</b></p><p><b>  else</b></p><p><b>  {</b></p><p>  head=NULL;</p

60、><p><b>  }</b></p><p>  p2->next=NULL;</p><p><b>  }</b></p><p>  return(head);</p><p><b>  }</b></p><p>

61、  void baocunXGSC(struct Person * head)</p><p><b>  {</b></p><p>  FILE * fp;</p><p>  struct Person student;</p><p>  fp=fopen("D:\\成績管理系統(tǒng).dat",&

62、quot;w");</p><p>  if(head!=NULL)</p><p><b>  {</b></p><p>  strcpy(student.name,head->name);</p><p>  student.num=head->num;</p><p>

63、;  student.Math=head->Math;</p><p>  student.Chinese=head->Chinese;</p><p>  student.English=head->English;</p><p>  student.Polity=head->Polity;</p><p>  f

64、write(&student,sizeof(struct Person),1,fp);</p><p>  fclose(fp);</p><p>  head=head->next;</p><p>  while(head!=NULL)</p><p><b>  {</b></p>&l

65、t;p>  fp=fopen("D:\\成績管理系統(tǒng).dat","a");</p><p>  strcpy(student.name,head->name);</p><p>  student.num=head->num;</p><p>  student.Math=head->Math;<

66、/p><p>  student.Chinese=head->Chinese;</p><p>  student.English=head->English;</p><p>  student.Polity=head->Polity;</p><p>  fwrite(&student,sizeof(struct P

67、erson),1,fp);</p><p>  fclose(fp);</p><p>  head=head->next;</p><p><b>  }</b></p><p><b>  }</b></p><p>  fclose(fp);</p>

68、<p><b>  }</b></p><p>  void cjlr(struct Person * head)</p><p><b>  {</b></p><p>  struct Person student;</p><p>  FILE * fp;</p>&

69、lt;p>  char name[10];</p><p>  int num,pd=1;</p><p><b>  int Math;</b></p><p>  int Chinese;</p><p>  int English;</p><p>  int Polity;</

70、p><p><b>  while(pd)</b></p><p><b>  {</b></p><p>  fp=fopen("D:\\成績管理系統(tǒng).dat","ab");</p><p>  printf("name: ");<

71、/p><p>  fflush(stdin);</p><p>  scanf("%s",&name);</p><p>  printf("num:");</p><p>  fflush(stdin);</p><p>  scanf("%d",&

72、amp;num);</p><p>  printf("Math:");</p><p>  fflush(stdin);</p><p>  scanf("%d",&Math);</p><p>  printf("Chinese:");</p>&l

73、t;p>  fflush(stdin);</p><p>  scanf("%d",&Chinese);</p><p>  printf("English:");</p><p>  fflush(stdin);</p><p>  scanf("%d",&

74、;English);</p><p>  printf("Polity:");</p><p>  fflush(stdin);</p><p>  scanf("%d",&Polity);</p><p>  printf("是否繼續(xù)輸入下一個(gè)學(xué)生的成績?按0返回/按其他鍵繼

75、續(xù)輸入: ");</p><p>  fflush(stdin);</p><p>  scanf("%d",&pd);</p><p>  system("cls");</p><p>  strcpy(student.name,name);</p><p>

76、  student.num=num;</p><p>  student.Math=Math;</p><p>  student.Chinese=Chinese;</p><p>  student.English=English;</p><p>  student.Polity=Polity;</p><p> 

77、 fwrite(&student,sizeof(struct Person),1,fp);</p><p>  fclose(fp);</p><p><b>  }</b></p><p><b>  }</b></p><p>  void cjxs()</p><p

78、><b>  {</b></p><p>  struct Person * ptr;</p><p>  ptr=creatlb();</p><p><b>  do</b></p><p><b>  {</b></p><p>  prin

79、tf("name: %s\n",ptr->name);</p><p>  printf("num: %d\n",ptr->num);</p><p>  printf("Math: %d\n",ptr->Math);</p><p>  printf("Chinese:

80、 %d\n",ptr->Chinese);</p><p>  printf("English: %d\n",ptr->English);</p><p>  printf(" Polity:%d\n",ptr->Polity);</p><p>  printf("

81、\n");</p><p>  ptr=ptr->next;</p><p><b>  }</b></p><p>  while(ptr!=NULL);</p><p>  printf("已顯示完畢,請按任意鍵返回!\n");</p><p><b&

82、gt;  getch();</b></p><p>  system("cls");</p><p><b>  }</b></p><p>  void cjxs2(struct Person * ptr)</p><p><b>  {</b></p>

83、<p><b>  do</b></p><p><b>  {</b></p><p>  printf("name: %s\n",ptr->name);</p><p>  printf("num: %d\n",ptr->num);</p>

84、;<p>  printf("Math: %d\n",ptr->Math);</p><p>  printf("Chinese: %d\n",ptr->Chinese);</p><p>  printf("English: %d\n",ptr->English);</p>&

85、lt;p>  printf(" Polity:%d\n",ptr->Polity);</p><p>  printf(" 總分:%d\n",ptr->Math+ptr->Chinese+ptr->English+ptr->Polity);</p><p>  printf(" \

86、n");</p><p>  ptr=ptr->next;</p><p><b>  }</b></p><p>  while(ptr!=NULL);</p><p>  printf("已顯示完畢,請按任意鍵返回!\n");</p><p><b&g

87、t;  getch();</b></p><p>  system("cls");</p><p><b>  }</b></p><p>  void cjbc()</p><p><b>  {</b></p><p>  printf(&

88、quot;已保存");</p><p><b>  getch();</b></p><p><b>  }</b></p><p>  void cjpx()</p><p><b>  {</b></p><p>  struct Pers

89、on * ptr;</p><p>  struct Person * ptrF;</p><p>  struct Person * ptrF2;</p><p><b>  int a,b;</b></p><p>  struct Person zhihuan;</p><p>  ptr=

90、creatlb();</p><p>  if(ptr==NULL)</p><p><b>  {</b></p><p>  printf("\n\n\n\n\n\n\n\t\t\t!!!!!沒有相關(guān)數(shù)據(jù)記錄\n");</p><p>  printf("\t\t\t\t按任意鍵返回&q

91、uot;);</p><p><b>  getch();</b></p><p><b>  }</b></p><p><b>  else</b></p><p>  {ptrF2=ptr;</p><p>  while(ptrF2->n

92、ext!=NULL)</p><p><b>  {</b></p><p>  ptrF=ptrF2;</p><p>  a=ptrF->Chinese+ptrF->Math+ptrF->English+ptrF->Polity;</p><p><b>  do</b>

93、</p><p><b>  {</b></p><p>  ptrF=ptrF->next;</p><p>  b=ptrF->Chinese+ptrF->Math+ptrF->English+ptrF->Polity;</p><p><b>  if(a<b)<

94、/b></p><p><b>  a=b;</b></p><p>  }while(ptrF->next!=NULL);</p><p>  ptrF=ptrF2;</p><p><b>  do</b></p><p><b>  {</b

95、></p><p>  b=ptrF->Chinese+ptrF->Math+ptrF->English+ptrF->Polity;</p><p><b>  if(a==b)</b></p><p>  goto CJPX;</p><p>  ptrF=ptrF->next;&l

96、t;/p><p>  }while(ptrF->next!=NULL);</p><p><b>  CJPX:</b></p><p>  if(ptrF!=ptrF2)</p><p><b>  {</b></p><p>  strcpy(zhihuan.name,

97、ptrF2->name);</p><p>  zhihuan.num=ptrF2->num;</p><p>  zhihuan.Chinese=ptrF2->Chinese;</p><p>  zhihuan.Math=ptrF2->Math;</p><p>  zhihuan.English=ptrF2-&g

98、t;English;</p><p>  zhihuan.Polity=ptrF2->Polity;</p><p>  strcpy(ptrF2->name,ptrF->name);</p><p>  ptrF2->num=ptrF->num;</p><p>  ptrF2->Chinese=ptrF

99、->Chinese;</p><p>  ptrF2->Math=ptrF->Math;</p><p>  ptrF2->English=ptrF->English;</p><p>  ptrF2->Polity=ptrF->Polity;</p><p>  strcpy(ptrF->na

100、me,zhihuan.name);</p><p>  ptrF->num=zhihuan.num;</p><p>  ptrF->Chinese=zhihuan.Chinese;</p><p>  ptrF->Math=zhihuan.Math;</p><p>  ptrF->English=zhihuan.E

101、nglish;</p><p>  ptrF->Polity=zhihuan.Polity;</p><p><b>  }</b></p><p>  ptrF2=ptrF2->next;</p><p><b>  }</b></p><p>  cjxs2(

102、ptr);</p><p><b>  }</b></p><p><b>  }</b></p><p>  void cjxg()</p><p><b>  {</b></p><p>  int tuichu=1;</p><

103、p>  while(tuichu)</p><p><b>  {</b></p><p><b>  int scid;</b></p><p>  struct Person * ptr, * head,* ptrf;</p><p>  system("cls");&

104、lt;/p><p><b>  cjxs();</b></p><p>  printf("請輸入要修改的學(xué)生的學(xué)號");</p><p>  scanf("%d",&scid);</p><p>  head=ptr=creatlb();</p><p&g

105、t;  if(ptr!=NULL)</p><p><b>  {</b></p><p>  while(scid!=ptr->num)</p><p><b>  {</b></p><p>  ptr=ptr->next;</p><p><b>

106、  }</b></p><p><b>  }</b></p><p>  printf("Chinese");</p><p>  scanf("%d",&ptr->Chinese);</p><p>  printf("Math"

107、);</p><p>  scanf("%d",&ptr->Math);</p><p>  printf("English");</p><p>  scanf("%d",&ptr->English);</p><p>  printf("P

108、olity");</p><p>  scanf("%d",&ptr->Polity);</p><p>  baocunXGSC(head);</p><p>  printf("是否繼續(xù)修改1/是0/否");</p><p>  scanf("%d",&a

109、mp;tuichu);</p><p><b>  }</b></p><p><b>  }</b></p><p>  void cjtj()</p><p><b>  {</b></p><p><b>  }</b><

溫馨提示

  • 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)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論