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

下載本文檔

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

文檔簡介

1、<p><b>  C語言程序設(shè)計實踐</b></p><p><b>  實習(xí)報告</b></p><p>  題 目: 學(xué)生信息管理系統(tǒng) </p><p>  學(xué)生姓名: </p><p>  指導(dǎo)教師:

2、 </p><p>  學(xué) 院: 信息科學(xué)與工程學(xué)院 </p><p>  專業(yè)班級: </p><p>  完成時間: 2012年6月29日 </p><p><b>  目 錄</b></

3、p><p>  1、系統(tǒng)功能介紹 3</p><p>  2、功能模塊結(jié)構(gòu) 4</p><p>  3、數(shù)據(jù)結(jié)構(gòu)設(shè)計 6</p><p>  4、主要模塊算

4、法說明 7</p><p>  5、運行結(jié)果 14</p><p>  6、認(rèn)識實習(xí)心得體會 17</p><p>  7、附錄(程序源代碼)

5、 19</p><p>  8、參考文獻(xiàn) 30</p><p><b>  一、系統(tǒng)功能介紹</b></p><p>  1、錄入學(xué)生基本信息:學(xué)號、姓名、班級、性別、年齡、宿舍號碼、電話號碼等。并且錄入學(xué)生五門課程(數(shù)學(xué)、離散數(shù)學(xué)、C語言、物理、英語)的基本信息:編號、學(xué)

6、分、考試成績、平時成績、綜合成績、是否重修等;</p><p>  2、計算每個學(xué)生各門功課的平均成績,并按照平均成績從高到低的次序輸出學(xué)生信息;</p><p>  3、修改所指定姓名學(xué)生的學(xué)生信息和課程基本信息;</p><p>  4、刪除所指定姓名學(xué)生的學(xué)生信息和課程基本信息;</p><p>  5、插入某個學(xué)生的信息;</p

7、><p>  6、按學(xué)生姓名或按學(xué)生學(xué)好查詢該學(xué)生各項的信息;</p><p>  7、列出不及格的學(xué)生清單;</p><p>  8、保存學(xué)生的信息;</p><p>  9、讀取學(xué)生的信息;</p><p>  10、安全退出系統(tǒng)。</p><p><b>  二、功能模塊結(jié)構(gòu)<

8、/b></p><p>  1、主要結(jié)構(gòu)模式圖如下:</p><p><b>  2、模塊總述:</b></p><p>  整個程序結(jié)構(gòu)比較清晰,由一個主函數(shù)和多個子函數(shù)組成。主函數(shù)main()利用switch函數(shù)多種情況把各個子函數(shù)穿插使用在其中,構(gòu)成了整個系統(tǒng)運行的主控模塊。</p><p>  整個程序中包

9、含了信息錄入、信息輸出、信息修改、信息插入、信息查找、信息刪除、信息保存和安全退出8大模塊,分別蘊含了數(shù)據(jù)的輸入、輸出、插入、修改、查找、刪除和保存功能,由各個子函數(shù)支撐其運行。其中,信息的查找可以從姓名查找和學(xué)號查找兩個方向進(jìn)行。而輸出的信息也可分為處處全部學(xué)生信息和輸出不及格學(xué)生信息兩部分。整個程序大致上由以上幾大模塊構(gòu)成,下面就分別進(jìn)行細(xì)致具體的說明。</p><p><b>  3,功能模塊描述

10、:</b></p><p><b>  主控模塊:</b></p><p>  這是整個程序的靈魂部分,支撐著程序所有功能的選擇和運行。每個模塊都是通過主控模塊所指向的,系統(tǒng)通過主控模塊進(jìn)入其他模塊的運行。也就是說主控模塊是整個系統(tǒng)的入口,然后由主控模塊根據(jù)指令或特定條件通向相應(yīng)的模塊實現(xiàn)相應(yīng)功能。</p><p><b>

11、;  信息錄入模塊:</b></p><p>  錄入學(xué)生信息,把所輸入進(jìn)去的學(xué)生信息以鏈表的形式建立,是其他模塊的先決條件,否則其他模塊會出現(xiàn)“這是一個空表”的提示。</p><p><b>  信息輸出模塊:</b></p><p>  輸出所有學(xué)生的信息,并且是按平均成績的高低的順序輸出的。也可以選擇輸出所有不及格的學(xué)生信息。

12、</p><p><b>  信息插入模塊:</b></p><p>  在已輸入了學(xué)生信息基礎(chǔ)上插入其他學(xué)生的信息,即將數(shù)據(jù)插入到以建立的鏈表中。</p><p><b>  信息修改模塊:</b></p><p>  先找到要修改的學(xué)生的信息,然后構(gòu)造一個修改界面,有供選擇修改的各項信息。修改之

13、后退出該界面。</p><p><b>  信息查找模塊:</b></p><p>  可以根據(jù)學(xué)生姓名查找,也可以根據(jù)學(xué)生學(xué)號查找。若表中沒有該學(xué)生的信息會輸出“沒找到該生信息”提示說明。若找到會輸出該生信息。</p><p><b>  信息刪除模塊:</b></p><p>  找到要刪除的學(xué)

14、生信息,并刪除該生的全部信息。刪除信息后會給予提示。</p><p><b>  信息保存模塊:</b></p><p>  將學(xué)生信息保存在指定的文件中。</p><p> ?。?) 安全退出系統(tǒng)</p><p><b>  三、數(shù)據(jù)結(jié)構(gòu)設(shè)計</b></p><p>  

15、整個程序是建立一個鏈表,然后通過對鏈表的一系列操作,來完成整個程序的運行。定義函數(shù)來建立鏈表、輸出鏈表,對鏈表進(jìn)行插入操作、刪除操作等等。</p><p>  本程序使用了結(jié)構(gòu)體類型的數(shù)據(jù)結(jié)構(gòu),來包括學(xué)生的各種信息,既有層次感,又保證了能夠定義所有變量,清晰明朗,其中定義的變量為全局變量。其他模塊可直接使用已在此定義的變量。</p><p>  struct student</p&g

16、t;<p><b>  {</b></p><p>  char num[10]; /* 學(xué)號 字符串變量 長度為10 */</p><p>  char name[15]; /* 姓名 字符串變量 長度為15 */</p><p>  char Class[5]; /* 班級 字符串變量 長度為5

17、 */</p><p>  char sex[5]; /* 性別 字符串變量 長度為5 */</p><p>  int age; /* 年齡 整型變量 */</p><p>  char roomnum[3]; /* 宿舍號碼 字符串變量 長度為3 */</p><p>  char tel[12]

18、; /* 電話 字符串變量 長度為12 */</p><p>  char num_[5][10]; </p><p>  /* 各科編號 字符串變量 長度為10 */</p><p>  (數(shù)學(xué)num_[0][10]、離散num_[1][10]、C語言num_[2][10]、物理num_[3][10]、英語num_[4][10])</p>

19、<p>  float xuefen[5]; /* 各科學(xué)分 浮點型變量 長度為5 */ </p><p>  float score[5][3]; /* 各科成績 浮點型變量 */</p><p> ?。荚嚦煽僺core[5][0],平時成績[5][1],綜合成績[5][2]) </p><p>  char chongxiu[5][5];

20、 /* 重修信息 字符串變量 */</p><p>  float average; /* 總平均分 浮點型變量 */</p><p>  struct student*next; /* 定義一個指向結(jié)構(gòu)體的指針 */</p><p><b>  };</b></p><p><b>  四、算

21、法說明</b></p><p>  1、main()主函數(shù)算法說明</p><p>  主函數(shù)主要由switch函數(shù)構(gòu)成。根據(jù)不同的選擇指令,調(diào)用不同的子函數(shù)。</p><p><b>  主控模塊:</b></p><p>  運行后,首先出現(xiàn)一個學(xué)生信息管理系統(tǒng)主菜單,并輸出各個功能的編號。只要輸入相應(yīng)的

22、功能號,就可以進(jìn)入錄入、輸出、插入、修改、刪除、保存、按姓名查找、按學(xué)號查找、列出不及格學(xué)生信息函數(shù)模塊并可以安全退出系統(tǒng)。進(jìn)入各模塊后,按提示操作也可以返回主菜單來。</p><p><b>  信息錄入模塊:</b></p><p>  調(diào)用函數(shù) struct student*create(),進(jìn)入錄入模塊。按照指示輸入學(xué)生的基本信息和課程信息,直到學(xué)號為!結(jié)束輸

23、入。此函數(shù)的目的是建立一個包含學(xué)生信息的鏈表,并把鏈表頭作為函數(shù)值返回。</p><p><b>  信息插入模塊:</b></p><p>  調(diào)用函數(shù) struct student *insert(struct student *head),進(jìn)入插入模塊。按照指示插入學(xué)生的基本信息和課程信息到指定結(jié)點位置,并返回頭結(jié)點地址。</p><p>

24、;<b>  信息刪除模塊:</b></p><p>  調(diào)用 struct student Delete(struct student *head)函數(shù),然后輸入要刪除的學(xué)生姓名,若存在這個姓名,則刪除。若不存在,則提示不存在姓名為此的學(xué)生。</p><p><b>  信息查找模塊:</b></p><p>  若想按

25、學(xué)號查找則調(diào)用search1(struct student *head)函數(shù),輸入要查找的學(xué)號,即可獲得相應(yīng)學(xué)生信息。若想按姓名查找則調(diào)用search2(struct student *head)函數(shù),輸入要查找的學(xué)號,即可獲得相應(yīng)學(xué)生信息。如果輸入的學(xué)號或姓名不存在,則系統(tǒng)會提示沒有找到。</p><p><b>  信息修改模塊:</b></p><p>  調(diào)用

26、 void motify(struct student *head)函數(shù)。輸入要修改的學(xué)生姓名之后,進(jìn)入修改菜單界面,按照所提示的功能號選擇要修改的信息,修改完畢后返回修改子菜單。若不存在此生姓名,則提示“沒有姓名為此的學(xué)生”。</p><p><b>  信息顯示模塊:</b></p><p>  若要按平均成績的高低輸出所有學(xué)生的信息,則需要調(diào)用void prin

27、t(struct student *head)函數(shù)。若要僅列出不及格學(xué)生的名單,則須調(diào)用viod list(struct student *head)函數(shù)。</p><p><b>  信息保存模塊:</b></p><p>  調(diào)用void save (struct student *head)函數(shù)。輸入一個要保存的文件名,即可保存到指定的文件名當(dāng)中去,系統(tǒng)會有保存

28、成功的提示。</p><p><b>  9)安全退出系統(tǒng):</b></p><p>  通過使用do{} while(c!=10)和switch(c)安全退出系統(tǒng)。</p><p>  2、各模塊子函數(shù)算法說明</p><p>  每個模塊有各自的功能,通過自身定義的子函數(shù)還完成相應(yīng)的功能。也就是說功能的實現(xiàn)是靠函數(shù)的

29、調(diào)用完成的。下面便具體的來介紹各個子函數(shù)的算法。</p><p>  float ave(struct student *head)</p><p>  用來計算綜合成績和五科成績的平均成績的。綜合成績的算法是平時城績的30%+考試成績的70%。平均成績的算法是各科成績與各科學(xué)分的乘積總和再除以個課學(xué)分的總和。在函數(shù)中,利用循環(huán)for(i=0;i<5;i++)通過p->scor

30、e[i][2]=p->score[i][0]*0.7+p->score[i][1]*0.3;計算出綜合成績。并由定義的變量各科成績與各科學(xué)分的乘積總和s和學(xué)分總和m,用s/m求出。</p><p>  struct student *creat()</p><p>  用來建立一個鏈表來包含學(xué)生基本信息和課程信息。</p><p>  設(shè)3個指針變量:*

31、head *p1 *p2,用malloc函數(shù)開辟第一個節(jié)點,并使p1p2都指向它。然后從鍵盤讀入的數(shù)據(jù)給p1所指向的第一個結(jié)點,并調(diào)用float ave(struct student *head) 函數(shù)來求綜合成績和平均成績。先使head為空,建立第一個節(jié)點以后,head指向第一個結(jié)點。若學(xué)號輸入為!,則鏈表的建立過程完成。若p1->num不為!,則把p1賦值給head,即開辟的新結(jié)點。</p><p> 

32、 利用循環(huán)for(i=0;;i++)來輸入學(xué)生信息。當(dāng)學(xué)號為!時,結(jié)束輸入。</p><p>  每次循環(huán)都會開辟一個新的結(jié)點,令p1指向它,并調(diào)用float ave(struct student *head)來求綜合成績和平均成績。若i=0,則指向表尾的p2=p1=head,所以形成一個空表。若i≠0,p2=p1->next,使p2指向最后一個結(jié)點。就這樣一直循環(huán)下去,直到循環(huán)結(jié)束。這樣就建立了一個鏈表。

33、</p><p>  free(p1);釋放p1所占用的內(nèi)存。</p><p>  return(head);返回頭作為函數(shù)值的頭指針。</p><p>  struct student *insert(struct student *head)</p><p>  用來插入某個學(xué)生信息到指定位置</p><p>  

34、用malloc函數(shù)開辟一個新結(jié)點,令p1指向它,輸入一個學(xué)生數(shù)據(jù)給p1所指向的結(jié)點,調(diào)用float ave(struct student *head) 函數(shù)來求綜合成績和平均成績。</p><p>  按平均成績的高低的順序查找插入點,用已定義的結(jié)構(gòu)體類型變量p2指向頭指針,移動指針,p3=p2;p2=p2->next,直到找到插入點</p><p>  令p3->next=p

35、1;p1->next=p2;將p1所指向的接點插入到相應(yīng)的位置中。</p><p>  struct student Delete(struct student *head)</p><p>  用于找到指定姓名學(xué)生在鏈表中的位置,并刪除該學(xué)生的信息。</p><p>  所輸入的學(xué)生姓名要存放到數(shù)組name[15]中</p><p>

36、  用p1指向要刪除的結(jié)點,p2指向前一個結(jié)點,p1=head;p2=p1;p1=p1->next;利用循環(huán)while(strcmp(p->name,name)&&p->next!=NULL),直到找到要刪除的結(jié)點為止。</p><p>  若要刪除的是頭結(jié)點,則head=p1->next;若不是,則p2->next=p1->next;</p>&

37、lt;p>  return(head);返回刪除后鏈表表頭地址。</p><p>  void search1(struct student*head)</p><p>  用來查找指定學(xué)號的學(xué)生信息并將其輸出。</p><p>  所輸入的學(xué)生學(xué)號要存放到數(shù)組num[10]中</p><p>  指針p1指向第一個結(jié)點,然后逐個檢查移

38、動指針,直至表尾。p1=p1->next。利用循環(huán)</p><p>  while(strcmp(num,p1->num)&&p1!=NULL)控制查找。查找結(jié)束后,調(diào)用printf輸出學(xué)生信息。如果沒有,則輸出提示信息。</p><p>  void search2struct student*head)</p><p>  用來查找制

39、定姓名的學(xué)生信息并將其輸出。</p><p>  算法如void search1(struct student*head)函數(shù)。</p><p>  int count(struct student*head)</p><p>  用函數(shù)的遞歸調(diào)用方法計算鏈表中已錄入的學(xué)生數(shù)目,并將其作為函數(shù)值返回。</p><p>  void print

40、(struct student*head) </p><p>  用來輸出量表中全部的學(xué)生信息。</p><p>  先按平均成績從高到低的順序?qū)㈡湵碇械母鹘Y(jié)點排序,并依次存放到數(shù)組當(dāng)中。</p><p>  調(diào)用int count(struct student*head)函數(shù)計算學(xué)生的數(shù)目m</p><p>  利用循環(huán)for(i=0;i&

41、lt;m-1;i++)控制學(xué)生信息按照平均成績的高低輸出。</p><p>  void modify(struct student*head)</p><p>  用來修改指定姓名的學(xué)生的指定信息。</p><p>  所輸入的學(xué)生姓名要存放到數(shù)組name[15]中</p><p>  令p1=head;用循環(huán)語句</p>&

42、lt;p>  while(strcmp(name,p1->name)&&p1->next!=NULL)</p><p>  p1=p1->next;找到要修改的結(jié)點。</p><p>  用switch函數(shù)選擇要修改的信息選項,用Do{} while(i!=13);實現(xiàn)多次修改。</p><p>  void list(st

43、ruct student*head) </p><p>  用來列出不及格學(xué)生的名單。</p><p>  定義結(jié)構(gòu)體指針變量p=head;利用循環(huán)while(p!=NULL)循環(huán)語句實現(xiàn)對不及格學(xué)生的判斷和輸出功能。利用if語句判斷,令p=p->next移動指針。</p><p>  定義整型變量i,來判斷是有存在不及格的學(xué)生。</p><

44、;p>  void save(struct student*head)</p><p>  用來保存以建立的鏈表文件。</p><p>  定義一個文件指針fp,一個結(jié)構(gòu)體指針p,一個字符串?dāng)?shù)組outfile[15]用來存放文件名。調(diào)用fopen函數(shù),把地址賦給文件指針fp。若fp=NULL,則返回。</p><p>  若fp≠NULL,則將數(shù)據(jù)保存到指定文

45、件中,p=head。</p><p><b>  利用循環(huán)語句</b></p><p>  while(p!=NULL)</p><p>  {fwrite(p,sizeof(struct student),1,fp); </p><p>  p=p->next; }多次調(diào)用fwrite()函數(shù),直至寫入所有信息。

46、</p><p><b>  五、運行結(jié)果</b></p><p><b>  1、主菜單界面:</b></p><p><b>  2、輸入數(shù)據(jù):</b></p><p>  (在學(xué)號處輸入!安全退出輸出模塊)</p><p><b>  插

47、入信息:</b></p><p><b>  4、刪除數(shù)據(jù):</b></p><p><b>  5、顯示學(xué)生信息:</b></p><p><b>  6、修改學(xué)生信息:</b></p><p>  列出不及格學(xué)生信息:</p><p>&

48、lt;b>  8、保存界面顯示:</b></p><p>  9、安全退出系統(tǒng)界面顯示:</p><p>  六、認(rèn)識實習(xí)心得體會 </p><p>  在看到認(rèn)識實習(xí)任務(wù)計劃書的時候,沒想到自己是真的可以完成這樣一個繁瑣的程序設(shè)計的。認(rèn)真的權(quán)衡了一下各個任務(wù)的側(cè)重點和考察方向,我決定要設(shè)計一個小型的學(xué)生信息管理系統(tǒng),權(quán)當(dāng)是對自己所掌握的鏈表以及相

49、關(guān)知識的一種檢測。然而在最初的幾日,雖然滿腦子都是鏈表,數(shù)組,但都是些獨立的程序,理不出什么思路。不過,當(dāng)我把系統(tǒng)所需要的各項功能定義為一個個函數(shù),整個系統(tǒng)的基本脈絡(luò)就清晰了。</p><p>  雖然確定了主菜單為主函數(shù)并運用switch函數(shù)來貫穿整個系統(tǒng),可在每個功能模塊的設(shè)計上還是遇到了很多的問題。例如:在輸出不及格學(xué)生名單的list函數(shù)就出了一點問題。最開始一直以為要輸出所有要重修的人,所以想要檢查每個人

50、是否需要重修,冥思苦想好久都不知道該怎么檢查每個同學(xué)的五個科目的重修情況。后來經(jīng)過同學(xué)提點,才發(fā)現(xiàn)可以直接比較每科科目成績,如果低于六十分就是不及格,就把那個學(xué)生的成績輸出。于是問題迎刃而解。</p><p>  這個只是算法上的失誤,當(dāng)然也有語法上的錯誤。進(jìn)過多次調(diào)試和同學(xué)的指正后得到了整個程序的雛形。由于是中文版本的,所以就在win-TC上運行調(diào)試,還有用中文DOS運行。雖然很是麻煩,但總感覺中文的系統(tǒng)要比拼

51、音和英文親切的多。</p><p>  在完成整個程序的時候,心里的喜悅是滿溢于面的。其實世界上真的沒有什么不可能的事,我也絕對不會想到自己會完成這樣一個系統(tǒng)的編譯。說是系統(tǒng),也是最簡單最淺顯的那種,退去其貌似龐大的外殼,不過都是函數(shù)組成的,由鏈表組成連接的數(shù)據(jù)輸入,輸出,修改,整理,查找,刪除。而且像鏈表的建立,輸出還有刪除和插入,是完全可以在書上找到例子的。這又一定程度上降低了編譯過程的難度。</p&g

52、t;<p>  其實書本上的知識都是死的,只有像這樣的,把書本上的知識,經(jīng)過加工和調(diào)試應(yīng)用到實踐中,才發(fā)揮出知識的真正作用。</p><p>  經(jīng)過這兩周的實習(xí),我很清楚的認(rèn)識到自己所學(xué)的東西是多么的淺顯,粗略掌握的整個知識結(jié)構(gòu)脆弱的不堪一擊,一遇到問題,就會手忙腳亂,不能偶冷靜的去分析問題,也不能好好的把知識活學(xué)活用。</p><p>  不過,這次的實習(xí)鍛煉了我獨立思考

53、、獨立解決問題的能力,并且加深了C語言知識,而且更深層次的理解了各知識點的原理和運用?,F(xiàn)在的我,有著更清晰的思路,對算法的說明更加清晰明確,這都要感謝老師的指導(dǎo)和同學(xué)們的幫助,和這次雖然辛苦卻受益頗多的實習(xí)。很感謝這次的課程設(shè)計,它使我更加深刻地體會到多看專業(yè)書的重要性,只有掌握了一定量的專業(yè)知識才能得心應(yīng)手地解決諸多問題;另外,做任何事都要有耐心,不要一遇到困難就退縮;在學(xué)習(xí)和工作中要時刻謹(jǐn)記“團(tuán)結(jié)”二字,它好比通向成功的鋪路石,不可

54、或缺。</p><p>  總之,這次的實習(xí),我受益了很多,是我人生當(dāng)中一次難忘的一次經(jīng)歷。相信在以后的日子里,我會時常提醒自己,沒有不可能完成的事,只要夠認(rèn)真,夠細(xì)心,夠有耐性。只是一定要運用到實踐中去才能發(fā)揮最大的價值。</p><p>  七、附錄(程序源代碼)</p><p>  #include<stdio.h></p><

55、p>  #include<string.h></p><p>  #include<stdlib.h></p><p>  #define LEN sizeof(struct student)</p><p>  #define N 5</p><p>  void f(void)</p><

56、p><b>  {float a;</b></p><p>  scanf("%f",&a);}</p><p>  struct student</p><p>  {char num[10];</p><p>  char name[15];</p><p>

57、  char Class[5];</p><p>  char sex[5];</p><p><b>  int age;</b></p><p>  char roomnum[3];</p><p>  char tel[12];</p><p>  char num_[5][10];<

58、/p><p>  float score[5][3];</p><p>  float xuefen[5];</p><p>  char chongxiu[5][5];</p><p>  float average;</p><p>  struct student*next;</p><p>

59、  };float ave(struct student*p)</p><p><b>  {int i;</b></p><p>  float m,s,ave;</p><p>  {for(i=0;i<5;i++)</p><p>  {m=p->xuefen[i];</p><p&

60、gt;  p->score[i][2]=p->score[i][0]*0.7+p->score[i][1]*0.3;</p><p>  s=p->score[i][2]*p->xuefen[i];}</p><p><b>  }</b></p><p>  ave=(float)s/m;</p>

61、<p>  return ave;</p><p><b>  }</b></p><p>  struct student*create()</p><p><b>  {int i;</b></p><p>  struct student*head,*p1,*p2;</p>

62、;<p>  head=NULL;</p><p>  for(i=0;;i++)</p><p>  {p1=(struct student*)malloc(LEN);</p><p>  printf("請輸入學(xué)生基本信息:\n");</p><p>  printf("學(xué)號:\n")

63、;</p><p>  scanf("%s",&p1->num);</p><p>  if(strcmp(p1->num,"!")==0)break;</p><p>  printf("姓名:\n");</p><p>  scanf("%s&quo

64、t;,&p1->name);</p><p>  printf("班級:\n");</p><p>  scanf("%s",&p1->Class);</p><p>  printf("性別:\n");</p><p>  scanf("%s&

65、quot;,&p1->sex);</p><p>  printf("年齡:\n");</p><p>  scanf("%d",&p1->age);</p><p>  printf("宿舍號碼:\n");</p><p>  scanf("%

66、s",&p1->roomnum);</p><p>  printf("電話:\n");</p><p>  scanf("%s",&p1->tel);</p><p>  printf("選修課信息:\n");</p><p>  printf

67、("數(shù)學(xué)課信息:\n");</p><p>  printf("編號:\n");</p><p>  scanf("%s",&p1->num_[0]);</p><p>  printf("學(xué)分:\n");</p><p>  scanf("

68、;%f",&p1->xuefen[0]);</p><p>  printf("考試成績:\n");</p><p>  scanf("%f",&p1->score[0][0]);</p><p>  printf("平時成績:\n");</p><

69、p>  scanf("%f",&p1->score[0][1]);</p><p>  printf("是否重修?\n");</p><p>  scanf("%s",p1->chongxiu[0]);</p><p>  printf("離散數(shù)學(xué)課信息:\n"

70、);</p><p>  printf("編號:\n");</p><p>  scanf("%s",&p1->num_[1]);</p><p>  printf("學(xué)分:\n");</p><p>  scanf("%f",&p1->

71、;xuefen[1]);</p><p>  printf("考試成績:\n");</p><p>  scanf("%f",&p1->score[1][0]);</p><p>  printf("平時成績:\n");</p><p>  scanf("%f

72、",&p1->score[1][1]);</p><p>  printf("是否重修?\n");</p><p>  scanf("%s",p1->chongxiu[1]);</p><p>  printf("C語言課信息:\n");</p><p>

73、;  printf("編號:\n");</p><p>  scanf("%s",&p1->num_[2]);</p><p>  printf("學(xué)分:\n");</p><p>  scanf("%f",&p1->xuefen[2]);</p>

74、<p>  printf("考試成績:\n");</p><p>  scanf("%f",&p1->score[2][0]);</p><p>  printf("平時成績:\n");</p><p>  scanf("%f",&p1->sco

75、re[2][1]);</p><p>  printf("是否重修?\n");</p><p>  scanf("%s",p1->chongxiu[2]);</p><p>  printf("物理課信息:\n");</p><p>  printf("編號:\n&q

76、uot;);</p><p>  scanf("%s",&p1->num_[3]);</p><p>  printf("學(xué)分:\n");</p><p>  scanf("%f",&p1->xuefen[3]);</p><p>  printf(&qu

77、ot;考試成績:\n");</p><p>  scanf("%f",&p1->score[3][0]);</p><p>  printf("平時成績:\n");</p><p>  scanf("%f",&p1->score[3][1]);</p>&

78、lt;p>  printf("是否重修?\n");</p><p>  scanf("%s",p1->chongxiu[3]);</p><p>  printf("英語課信息:\n");</p><p>  printf("編號:\n");</p><p

79、>  scanf("%s",&p1->num_[4]);</p><p>  printf("學(xué)分:\n");</p><p>  scanf("%f",&p1->xuefen[4]);</p><p>  printf("考試成績:\n");</

80、p><p>  scanf("%f",&p1->score[4][0]);</p><p>  printf("平時成績:\n");</p><p>  scanf("%f",&p1->score[4][1]);</p><p>  printf("

81、是否重修?\n");</p><p>  scanf("%s",p1->chongxiu[4]);</p><p>  p1->average=ave(p1);</p><p>  p1->next=NULL;</p><p>  if(i==0) head=p1;</p><

82、;p>  else p2->next=p1;</p><p><b>  p2=p1;</b></p><p><b>  }</b></p><p><b>  free(p1);</b></p><p>  return(head);</p>&l

83、t;p><b>  }</b></p><p>  struct student*insert(struct student*head)</p><p>  {struct student *p1,*p2,*p3;</p><p>  p1=(struct student*)malloc(LEN);</p><p>

84、;  printf("請輸入學(xué)生基本信息:\n");</p><p>  printf("學(xué)號:");</p><p>  scanf("%s",&p1->num);</p><p>  printf("姓名:");</p><p>  scanf(

85、"%s",&p1->name);</p><p>  printf("班級:");</p><p>  scanf("%s",&p1->Class);</p><p>  printf("性別:");</p><p>  scanf(&

86、quot;%s",&p1->sex);</p><p>  printf("年齡:");</p><p>  scanf("%d",&p1->age);</p><p>  printf("宿舍號碼:");</p><p>  scanf(&qu

87、ot;%s",&p1->roomnum);</p><p>  printf("電話:");</p><p>  scanf("%s",&p1->tel);</p><p>  printf("選修課信息:\n");</p><p>  prin

88、tf("數(shù)學(xué)課信息:\n");</p><p>  printf("編號:\n");</p><p>  scanf("%s",&p1->num_[0]);</p><p>  printf("學(xué)分:\n");</p><p>  scanf(&qu

89、ot;%f",&p1->xuefen[0]);</p><p>  printf("考試成績:\n");</p><p>  scanf("%f",&p1->score[0][0]);</p><p>  printf("平時成績:\n");</p>&l

90、t;p>  scanf("%f",&p1->score[0][1]);</p><p>  printf("是否重修?\n");</p><p>  scanf("%s",p1->chongxiu[0]);</p><p>  printf("離散數(shù)學(xué)課信息:\n&quo

91、t;);</p><p>  printf("編號:\n");</p><p>  scanf("%s",&p1->num_[1]);</p><p>  printf("學(xué)分:\n");</p><p>  scanf("%f",&p1-&

92、gt;xuefen[1]);</p><p>  printf("考試成績:\n");</p><p>  scanf("%f",&p1->score[1][0]);</p><p>  printf("平時成績:\n");</p><p>  scanf("

93、%f",&p1->score[1][1]);</p><p>  printf("是否重修?\n");</p><p>  scanf("%s",p1->chongxiu[1]);</p><p>  printf("C語言課信息:\n");</p><p&

94、gt;  printf("編號:\n");</p><p>  scanf("%s",&p1->num_[2]);</p><p>  printf("學(xué)分:\n");</p><p>  scanf("%f",&p1->xuefen[2]);</p&g

95、t;<p>  printf("考試成績:\n");</p><p>  scanf("%f",&p1->score[2][0]);</p><p>  printf("平時成績:\n");</p><p>  scanf("%f",&p1->s

96、core[2][1]);</p><p>  printf("是否重修?\n");</p><p>  scanf("%s",p1->chongxiu[2]);</p><p>  printf("物理課信息:\n");</p><p>  printf("編號:\n

97、");</p><p>  scanf("%s",&p1->num_[3]);</p><p>  printf("學(xué)分:\n");</p><p>  scanf("%f",&p1->xuefen[3]);</p><p>  printf(&

98、quot;考試成績:\n");</p><p>  scanf("%f",&p1->score[3][0]);</p><p>  printf("平時成績:\n");</p><p>  scanf("%f",&p1->score[3][1]);</p>

99、<p>  printf("是否重修?\n");</p><p>  scanf("%s",p1->chongxiu[3]);</p><p>  printf("英語課信息:\n");</p><p>  printf("編號:\n");</p><

100、;p>  scanf("%s",&p1->num_[4]);</p><p>  printf("學(xué)分:\n");</p><p>  scanf("%f",&p1->xuefen[4]);</p><p>  printf("考試成績:\n");<

101、;/p><p>  scanf("%f",&p1->score[4][0]);</p><p>  printf("平時成績:\n");</p><p>  scanf("%f",&p1->score[4][1]);</p><p>  printf(&quo

102、t;是否重修?\n");</p><p>  scanf("%s",p1->chongxiu[4]);</p><p>  p1->average=ave(p1);</p><p>  p1->next=NULL;</p><p><b>  p2=head;</b><

103、;/p><p>  if(head==NULL)</p><p>  {head=p1;p1->next=NULL;}</p><p><b>  else</b></p><p>  {while((p1->average>p2->average)&&(p2->next!=NU

104、LL))</p><p>  {p3=p2;p2=p2->next;}</p><p>  if(p1->average<=p2->average)</p><p>  {if(head==p2)</p><p>  {p1->next=head;head=p1;}</p><p>  e

105、lse{p3->next=p1;p1->next=p2;}</p><p><b>  }</b></p><p>  else{p2->next=p1;</p><p>  p1->next=NULL;}</p><p><b>  }</b></p><

106、;p>  return(head);</p><p><b>  }</b></p><p>  struct student*Delete(struct student*head)</p><p>  {char name[10];</p><p>  struct student*p ,*q;</p>

107、;<p>  printf("請輸入要刪除的學(xué)生姓名:");</p><p>  scanf("%s",name);</p><p>  if(head==NULL)</p><p>  {printf("這是一個空表,沒有要刪除的學(xué)生!");</p><p>  re

108、turn(head);}</p><p><b>  else</b></p><p><b>  { p=head;</b></p><p>  while(strcmp(p->name,name)&&p->next!=NULL)</p><p><b>  

109、{q=p;</b></p><p>  p=p->next;} </p><p>  if(strcmp(p->name,name)==0)</p><p>  {if(p==head)head=p->next;</p><p>  else q->next=p->next;</p>&

110、lt;p>  printf("姓名為%s的學(xué)生已經(jīng)被刪除!\n",name);</p><p><b>  }</b></p><p>  else printf("表中沒有姓名為%s的學(xué)生!\n",name);</p><p>  return(head);}</p><p&g

111、t;<b>  }</b></p><p>  void search1(struct student*head)</p><p>  {char num[10];</p><p>  struct student*p1;</p><p>  printf("請輸入要查找的學(xué)生學(xué)號:");</p

112、><p>  scanf("%s",num);</p><p><b>  p1=head;</b></p><p>  while(strcmp(num,p1->num)&&p1!=NULL)</p><p>  p1=p1->next;</p><p&g

113、t;  if(p1==NULL)</p><p>  printf("\n 沒有學(xué)號為%s的學(xué)生 \n",num);</p><p><b>  else</b></p><p>  {printf("\n**********找到該生信息如下**********\n");</p><p

114、>  printf("基本信息:\n");</p><p>  printf(" \n");</p><p>  printf(" |姓 名:%-11s|\n",p1->name);</p><p>  printf(" |性

115、 別:%-11s|\n",p1->sex);</p><p>  printf(" |年 齡:%-11d|\n",p1->age);</p><p>  printf(" |學(xué) 號:%-11s|\n",p1->num);</p><p>  pr

116、intf(" |班 級:%-11s|\n",p1->Class); </p><p>  printf(" |宿舍號碼:%-11s|\n",p1->roomnum);</p><p>  printf(" |電 話:%-11s|\n",p1->te

117、l);</p><p>  printf(" |平均成績:%-11.2f|\n",p1->average);</p><p>  printf(" \n");</p><p>  printf("課程信息:\n");</p><p>  pr

118、intf("|課程名稱|編號|學(xué)分|考試成績|平時成績|綜合成績|是否重修|\n");</p><p>  printf("|數(shù) 學(xué)|%-4s|%-.2f|%-8f|%-8f|%-8.2f|%-6s|\n",p1->num_[0],p1->xuefen[0],p1->score[0][0],p1->score[0][1],p1->score[0

119、][2],p1->chongxiu[0]);</p><p>  printf("|離 散|%-4s|%-.2f|%-8f|%-8f|%-8.2f|%-6s|\n",p1->num_[1],p1->xuefen[1],p1->score[1][0],p1->score[1][1],p1->score[1][2],p1->chongxiu[1]);<

120、;/p><p>  printf("|C語言|%-4s|%-.2f|%-8f|%-8f|%-8.2f|%-6s|\n",p1->num_[2],p1->xuefen[2],p1->score[2][0],p1->score[2][1],p1->score[2][2],p1->chongxiu[2]);</p><p>  printf(&

121、quot;|物 理|%-4s|%-.2f|%-8f|%-8f|%-8.2f|%-6s|\n",p1->num_[3],p1->xuefen[3],p1->score[3][0],p1->score[3][1],p1->score[3][2],p1->chongxiu[3]);</p><p>  printf("|英 語|%-4s|%-.2f|%-8f|%-

122、8f|%-8.2f|%-6s|\n",p1->num_[4],p1->xuefen[4],p1->score[4][0],p1->score[4][1],p1->score[4][2],p1->chongxiu[4]);</p><p>  printf("*******************************************\n"

123、);</p><p><b>  }</b></p><p><b>  }</b></p><p>  void search2(struct student*head)</p><p>  {char name[10];</p><p>  struct student*

124、p1;</p><p>  printf("請輸入要查找的學(xué)生姓名:");</p><p>  scanf("%s",name);</p><p><b>  p1=head;</b></p><p>  while(strcmp(name,p1->name)&&am

125、p;p1!=NULL)</p><p>  p1=p1->next;</p><p>  if(p1==NULL)</p><p>  printf("\n 沒有姓名為%s的學(xué)生 \n",name);</p><p><b>  else</b></p><p>  {p

126、rintf("\n**********找到該生信息如下**********\n");</p><p>  printf("基本信息:\n");</p><p>  printf(" \n");</p><p>  printf(" |姓 名:%-11s|\

127、n",p1->name);</p><p>  printf(" |性 別:%-11s|\n",p1->sex);</p><p>  printf(" |年 齡:%-11d|\n",p1->age);</p><p>  printf("

128、 |學(xué) 號:%-11s|\n",p1->num);</p><p>  printf(" |班 級:%-11s|\n",p1->Class); </p><p>  printf(" |宿舍號碼:%-11s|\n",p1->roomnum);</p>

129、;<p>  printf(" |電 話:%-11s|\n",p1->tel);</p><p>  printf(" |平均成績:%-11.2f|\n",p1->average);</p><p>  printf(" \n");</p&

130、gt;<p>  printf("課程信息:\n");</p><p>  printf("|課程名稱|編號|學(xué)分|考試成績|平時成績|綜合成績|是否重修|\n");</p><p>  printf("|數(shù) 學(xué)|%-4s|%-.2f|%-8f|%-8f|%-8.2f|%-6s|\n",p1->num_[0],

131、p1->xuefen[0],p1->score[0][0],p1->score[0][1],p1->score[0][2],p1->chongxiu[0]);</p><p>  printf("|離 散|%-4s|%-.2f|%-8f|%-8f|%-8.2f|%-6s|\n",p1->num_[1],p1->xuefen[1],p1->scor

132、e[1][0],p1->score[1][1],p1->score[1][2],p1->chongxiu[1]);</p><p>  printf("|C語言|%-4s|%-.2f|%-8f|%-8f|%-8.2f|%-6s|\n",p1->num_[2],p1->xuefen[2],p1->score[2][0],p1->score[2][1],p

133、1->score[2][2],p1->chongxiu[2]);</p><p>  printf("|物 理|%-4s|%-.2f|%-8f|%-8f|%-8.2f|%-6s|\n",p1->num_[3],p1->xuefen[3],p1->score[3][0],p1->score[3][1],p1->score[3][2],p1->cho

134、ngxiu[3]);</p><p>  printf("|英 語|%-4s|%-.2f|%-8f|%-8f|%-8.2f|%-6s|\n",p1->num_[4],p1->xuefen[4],p1->score[4][0],p1->score[4][1],p1->score[4][2],p1->chongxiu[4]);</p><p&

135、gt;  printf("*******************************************\n");</p><p><b>  }</b></p><p><b>  }</b></p><p>  int count(struct student*head)</p>

溫馨提示

  • 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

提交評論