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

下載本文檔

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

文檔簡(jiǎn)介

1、<p>  一、需求分析:本程序設(shè)計(jì)的名稱是學(xué)生成績(jī)信息記錄簿的設(shè)計(jì),設(shè)計(jì)內(nèi)容是設(shè)計(jì)一個(gè)學(xué)生成績(jī)記錄簿系統(tǒng),該系統(tǒng)要求對(duì)學(xué)生成績(jī)信息進(jìn)行管理和維護(hù)。任務(wù)和要求:編制一個(gè)C語(yǔ)言成績(jī)記錄簿,每個(gè)學(xué)生信息包括:學(xué)號(hào)、姓名、C語(yǔ)言成績(jī)。具體功能:(1)創(chuàng)建信息鏈表并以磁盤文件保存;(2)讀取磁盤文件并顯示輸出所有學(xué)生的成績(jī);(3)按學(xué)號(hào)或姓名查詢成績(jī);(4)添加成績(jī)記錄;(5)修改指定姓名或?qū)W號(hào)的學(xué)生的成績(jī)并可存盤;(6)顯示輸出60

2、分以下、60~79、80~89、90分以上各分?jǐn)?shù)段的學(xué)生信息(可選項(xiàng))。此編程用于對(duì)學(xué)生的餓C語(yǔ)言成績(jī)進(jìn)行管理。</p><p><b>  二、算法設(shè)計(jì):</b></p><p><b>  流程圖:</b></p><p><b>  、</b></p><p>  重要

3、的數(shù)據(jù)結(jié)構(gòu):(1)有主菜單menu();的編寫,用printf();將相應(yīng)的選項(xiàng)輸出在屏幕上,便于操作者進(jìn)行選擇,menu();中包括學(xué)生成績(jī)信息記錄簿設(shè)計(jì),主菜單,1、輸入所有學(xué)生的學(xué)號(hào)、姓名、C語(yǔ)言分?jǐn)?shù)2、顯示所有學(xué)生的信息3、按學(xué)號(hào)或姓名查詢成績(jī)4、添加成績(jī)記錄5、修改指定姓名或?qū)W號(hào)的學(xué)生的成績(jī)并可存盤6、輸出60分以下、60~79、80~89、90分以上各分?jǐn)?shù)段的學(xué)生信息7、結(jié)束;(2)子函數(shù):主要有creat();input(

4、);search()</p><p>  Insert();modi()以及sort();(3)主函數(shù):main();主要使用了switch()語(yǔ)句。</p><p>  主要算法思想:運(yùn)行程序后,會(huì)顯示主菜單,根據(jù)主菜單中的提示選擇相應(yīng)的數(shù)字鍵,會(huì)實(shí)現(xiàn)相應(yīng)的功能。主要使用了界面的制作、使用了相應(yīng)的子函數(shù),同時(shí)使用了動(dòng)態(tài)鏈表的創(chuàng)建、文件的讀寫等。本程序主要有三大設(shè)計(jì)模塊,第一模塊是主菜單m

5、enu();的編寫,其作用是便于操作者進(jìn)行相應(yīng)問題的選擇,具有提示信息的作用。第二模塊是相應(yīng)子函數(shù)的編寫,第一個(gè)子函數(shù)creat();主要思想是運(yùn)用了鏈表的動(dòng)態(tài)創(chuàng)建,使用了malloc函數(shù),將每位學(xué)生的信息動(dòng)態(tài)傳遞下去,并使用了文件的讀取操作,使用了文件中w+的打開模式,讀取磁盤文件并顯示所有學(xué)生的信息。主要作用是在顯示屏及磁盤文件stut.txt中顯示每個(gè)學(xué)生的信息。</p><p>  第二個(gè)子函數(shù)input

6、();主要使用了文件中r+的打開模式,打開已有文件stut.txt,并在顯示屏中顯示所有學(xué)生的信息</p><p>  第三個(gè)子函數(shù)search();主要實(shí)現(xiàn)了當(dāng)輸入一個(gè)學(xué)生的姓名或?qū)W號(hào)時(shí),顯示屏中會(huì)顯示該學(xué)生的所有信息,該子函數(shù)實(shí)現(xiàn)了子函數(shù)的調(diào)用,即子函數(shù)調(diào)用子函數(shù),調(diào)用了name();和num();兩個(gè)子函數(shù),當(dāng)輸入學(xué)生的姓名或?qū)W號(hào)與文件中的name或num相等時(shí),即strcmp(xs.name,name)=

7、=0或xs.num==num時(shí)輸出該生的所有信息包括學(xué)號(hào)、姓名以及C語(yǔ)言的成績(jī)。</p><p>  第四個(gè)子函數(shù)insert();即插入一個(gè)學(xué)生的信息并可以讀取到磁盤文件中,主要運(yùn)用了結(jié)構(gòu)體數(shù)組及文件的讀取操作。</p><p>  第五個(gè)子函數(shù)modi();實(shí)現(xiàn)修改指定姓名或?qū)W號(hào)的學(xué)生的成績(jī)并可存盤,該子函數(shù)主要使用了結(jié)構(gòu)體數(shù)組及文件的打開操作,打開已有文件找到要修改的學(xué)生的成績(jī)并修改

8、該生的成績(jī),修改后進(jìn)行存盤操作。</p><p>  第六個(gè)子函數(shù)sort();主要是篩選顯示輸出60分以下、60~79、80~89、90分以上各分?jǐn)?shù)段的學(xué)生信息,將篩選后的結(jié)果顯示在屏幕上,在該子函數(shù)中主要使用了動(dòng)態(tài)鏈表、結(jié)構(gòu)體數(shù)組即文件的打開操作;利用鏈表使學(xué)生的信息動(dòng)態(tài)傳遞下去,使用結(jié)構(gòu)體數(shù)組將各個(gè)分?jǐn)?shù)段的學(xué)生的信息存儲(chǔ)下來,利用文件的r+打開模式將文件打開并通過篩選,輸出各個(gè)分?jǐn)?shù)段的學(xué)生。最后一個(gè)模塊即主

9、函數(shù)main();主要使用了switch語(yǔ)句對(duì)各個(gè)子函數(shù)進(jìn)行操作選擇,主要實(shí)現(xiàn)了與主菜單的對(duì)應(yīng),選擇case中相應(yīng)的數(shù)字鍵,會(huì)運(yùn)行相應(yīng)的子函數(shù)并實(shí)現(xiàn)主菜單中相應(yīng)的要求。</p><p>  3、實(shí)現(xiàn)注釋:該設(shè)計(jì)的主要任務(wù)是編制一個(gè)C語(yǔ)言成績(jī)記錄簿,每個(gè)學(xué)生信息包括:學(xué)號(hào)、姓名、C語(yǔ)言成績(jī)。具體要求:(1)創(chuàng)建信息鏈表并以磁盤文件保存;(2)讀取磁盤文件并顯示輸出所有學(xué)生的成績(jī);(3)按學(xué)號(hào)或姓名查詢成績(jī);(4)添

10、加成績(jī)記錄;(5)修改指定姓名或?qū)W號(hào)的學(xué)生的成績(jī)并可存盤;(6)顯示輸出60分以下、60~79、80~89、90分以上各分?jǐn)?shù)段的學(xué)生信息。本程序主要運(yùn)用了六個(gè)子函數(shù)來實(shí)現(xiàn)相應(yīng)的要求;對(duì)于第一個(gè)要求:創(chuàng)建信息鏈表并以磁盤文件保存,實(shí)現(xiàn)程度為:當(dāng)根據(jù)提示顯示數(shù)字鍵1時(shí),會(huì)提示你輸入學(xué)生數(shù),輸入學(xué)生數(shù)后,按下Enter鍵,會(huì)提示操作者輸入學(xué)生的學(xué)號(hào)、姓名以及C語(yǔ)言的成績(jī)。同時(shí)在會(huì)形成一個(gè)stut.txt文件夾,文件中中即磁盤文件中讀入了所有學(xué)

11、生的學(xué)號(hào)、姓名及C語(yǔ)言的成績(jī);第二個(gè)讀取磁盤文件并顯示輸出所有學(xué)生的成績(jī),實(shí)現(xiàn)程度為:當(dāng)執(zhí)行了第一步操作后,再執(zhí)行第二部就會(huì)將磁盤文件中的內(nèi)容再次顯示在顯示屏上;第三個(gè)按學(xué)號(hào)或姓名查詢成績(jī),實(shí)現(xiàn)程度為:當(dāng)選擇數(shù)字鍵3時(shí),會(huì)出現(xiàn)一個(gè)提示,提示你選擇姓名還是學(xué)號(hào)查找,選擇后,會(huì)在顯示屏上出現(xiàn)該生的信息;第四個(gè)添加成績(jī)記錄;實(shí)現(xiàn)程度為:當(dāng)</p><p>  4、算法設(shè)計(jì)中的一些新的想法:該算法的應(yīng)用是對(duì)學(xué)生C語(yǔ)言成績(jī)

12、進(jìn)行管理和維護(hù),是一個(gè)C語(yǔ)言程序記錄本,算法中不足之處有不能使用二級(jí)菜單,插入學(xué)生的學(xué)號(hào)或姓名時(shí)沒能按成績(jī)進(jìn)行排序一下,還可以對(duì)學(xué)生的成績(jī)進(jìn)行排序一下。</p><p><b>  三、用戶手冊(cè)</b></p><p>  課程設(shè)計(jì)的使用說明:輸入數(shù)據(jù)時(shí),要根據(jù)顯示屏上的格式要求,使得整個(gè)界面變得好看些,還有根據(jù)提示選擇相應(yīng)的數(shù)字鍵,輸入完畢后按Enter鍵會(huì)執(zhí)行下一

13、步操作,操作者可根據(jù)提示進(jìn)行操作,整個(gè)操作簡(jiǎn)單易行。有些操作是要有上一步的操作基礎(chǔ)才能進(jìn)行,例如必須有學(xué)生記錄才能查找,所以操作者在操作時(shí)要認(rèn)清每個(gè)數(shù)字鍵相應(yīng)子函數(shù)的功能。</p><p><b>  四、調(diào)試及測(cè)試</b></p><p>  調(diào)試過程中主要遇到了主菜單制作的界面掌握不好,頭文件的少寫或多寫,鏈表的動(dòng)態(tài)創(chuàng)建掌握不熟及子函數(shù)中少寫參數(shù)、文件的讀寫具體流

14、程掌握模糊、子函數(shù)和主函數(shù)不能很好的相應(yīng)結(jié)合、類型的定義出錯(cuò)或少定義、指針用法不熟、前后子函數(shù)不能很好的相互利用等;解決方法:查閱參考文獻(xiàn)、詢問同學(xué),讓同學(xué)幫忙改一下自己改不出來的錯(cuò)誤、及詢問老師;測(cè)試數(shù)據(jù)集:</p><p><b>  現(xiàn)在的界面:</b></p><p>  本課程的設(shè)計(jì)經(jīng)驗(yàn)和體會(huì):經(jīng)驗(yàn):學(xué)習(xí)不僅僅只學(xué)好學(xué)校發(fā)的教材書,還有好多教材書上沒有的知識(shí)

15、也需要掌握,C語(yǔ)言是一門很大的課程,有許多知識(shí)點(diǎn)需要掌握,在學(xué)習(xí)中不懂的去讀書管借書,在設(shè)計(jì)中不會(huì)的函數(shù)或知識(shí)可以查閱參考書或詢問老師,課程設(shè)計(jì)的大程序需要有一個(gè)很清晰的思路并對(duì)各個(gè)知識(shí)點(diǎn)掌握很熟悉,能夠?qū)⒏鱾€(gè)知識(shí)點(diǎn)有效地連接在一起,并能很好的運(yùn)用在實(shí)際中。體會(huì):我覺得C語(yǔ)言學(xué)的不扎實(shí),各個(gè)知識(shí)點(diǎn)的漏洞太多,會(huì)寫一些小程序并可以運(yùn)行但是遇到大一點(diǎn)的程序,就不能將各個(gè)知識(shí)點(diǎn)很好的加以利用就需要有扎實(shí)的C語(yǔ)言基礎(chǔ),用到的知識(shí)很全面,在這次C

16、語(yǔ)言課程設(shè)計(jì)中我學(xué)到了自己的C語(yǔ)言學(xué)的不是很全面,各個(gè)知識(shí)點(diǎn)的不能很好的連接在一起,需要進(jìn)一步加強(qiáng)。</p><p>  五、小結(jié):在本次課程設(shè)計(jì)中,我的設(shè)計(jì)題目是學(xué)生成績(jī)信息記錄簿的設(shè)計(jì)。任務(wù)和要求為:編制一個(gè)C語(yǔ)言成績(jī)記錄簿,每個(gè)學(xué)生信息包括:學(xué)號(hào)、姓名、C語(yǔ)言成績(jī)。具體功能:(1)創(chuàng)建信息鏈表并以磁盤文件保存;(2)讀取磁盤文件并顯示輸出所有學(xué)生的成績(jī);(3)按學(xué)號(hào)或姓名查詢成績(jī);(4)添加成績(jī)記錄;(5)

17、修改指定姓名或?qū)W號(hào)的學(xué)生的成績(jī)并可存盤;(6)顯示輸出60分以下、60~79、80~89、90分以上各分?jǐn)?shù)段的學(xué)生信息(可選項(xiàng))。此編程用于對(duì)學(xué)生的餓C語(yǔ)言成績(jī)進(jìn)行管理。收獲:在設(shè)計(jì)過程中,我學(xué)會(huì)了菜單的制作、鏈表的創(chuàng)建、鏈表的插入、查找、文件的讀寫及子函數(shù)的正確運(yùn)用等等并可以很好的將這些知識(shí)點(diǎn)連接在了一起,并發(fā)現(xiàn)了自己C語(yǔ)言學(xué)習(xí)的不足:掌握的知識(shí)點(diǎn)漏洞太多,許多函數(shù)不能正確的運(yùn)用,看的書太少僅限于書本上的知識(shí)和老師發(fā)的講義,不能很好的

18、將各個(gè)知識(shí)點(diǎn)連接在一起。本次課程設(shè)計(jì),使得自己第一次將理論很好的聯(lián)系實(shí)際,寫的程序能運(yùn)用到實(shí)際中,而且我學(xué)會(huì)了將參考書上的知識(shí)很好的運(yùn)用在自己的系統(tǒng)中,不會(huì)的知識(shí)點(diǎn)也可以向老師或同學(xué)進(jìn)行詢問。在調(diào)試過程中,可以進(jìn)行一個(gè)子函數(shù)一個(gè)子函數(shù)的調(diào)試,并改錯(cuò)。在設(shè)計(jì)過程中,往</p><p><b>  六、參考文獻(xiàn):</b></p><p>  [1] 黃明等編著《C語(yǔ)言課程

19、設(shè)計(jì)》北京:電子工業(yè)出版社</p><p>  [2] 郭翠英編著《C語(yǔ)言課程設(shè)計(jì)案例精編》北京:中國(guó)水利水電出版社</p><p>  [3] 寧正元《數(shù)據(jù)結(jié)構(gòu)(c語(yǔ)言)》 南京:東南大學(xué)出版社。2000年6月第1版</p><p>  [4] 嚴(yán)蔚敏等 《數(shù)據(jù)結(jié)構(gòu)(c語(yǔ)言版)》 北京:清華大學(xué)出版社,1997年4月第1版</p><p>

20、  [5] 譚浩強(qiáng)編著《C程序設(shè)計(jì)題解與上機(jī)指導(dǎo)(第3版) 》北京:清華大學(xué)出版社</p><p>  [6] 譚浩強(qiáng)編著《C程序設(shè)計(jì)(第3版) 》北京:清華大學(xué)出版社</p><p><b>  附錄:</b></p><p>  源程序清單:#include<stdio.h></p><p>  #inc

21、lude<stdlib.h></p><p>  #include<malloc.h></p><p>  #include<string.h></p><p>  #define N 100</p><p>  typedef struct student</p><p><

22、b>  {</b></p><p><b>  long num;</b></p><p>  char name[4];</p><p>  float score;</p><p>  struct student *next;</p><p><b>  }stu

23、;</b></p><p><b>  FILE *fp;</b></p><p>  void menu()//在這里進(jìn)行主菜單的調(diào)用</p><p><b>  {</b></p><p>  printf("\n");</p><p> 

24、 printf("\n\t\t\t*******************************\n");</p><p>  printf("\n\t\t\t* 學(xué)生成績(jī)信息記錄簿設(shè)計(jì) *\n");</p><p>  printf("\n\t\t\t*******************************\n\n&quo

25、t;);</p><p>  printf("\t\t\t-----------主菜單------------\n\n");</p><p>  printf("\t\t1、\t輸入所有學(xué)生的學(xué)號(hào)、姓名、C語(yǔ)言分?jǐn)?shù)\n\n");</p><p>  printf("\t\t2、\t顯示所有學(xué)生的信息\n\n"

26、;);</p><p>  printf("\t\t3、\t按學(xué)號(hào)或姓名查詢成績(jī)\n\n");</p><p>  printf("\t\t4、\t 添加成績(jī)記錄\n\n");</p><p>  printf("\t\t5、\t修改指定姓名或?qū)W號(hào)的學(xué)生的成績(jī)并可存盤\n\n");</p>&

27、lt;p>  printf("\t\t6、\t輸出60分以下、60~79、80~89、90分以上各分?jǐn)?shù)段的學(xué)生信息\n\n");</p><p>  printf("\t\t7、\t==================結(jié)束===================");</p><p><b>  }</b></p>

28、;<p>  struct student *creat()//創(chuàng)建學(xué)生信息鏈表,將學(xué)生信息動(dòng)態(tài)傳遞下去</p><p><b>  {</b></p><p>  struct student *head,*p,*q;</p><p>  int i=0,n;</p><p>  printf("

29、;\n-----請(qǐng)輸入學(xué)生數(shù):");</p><p>  scanf("%d",&n);</p><p>  printf("\n\t\t\t 學(xué)生的信息如下:\n");</p><p>  printf("\n\t\t\t學(xué)號(hào)======姓名=======分?jǐn)?shù)\n");</

30、p><p><b>  do </b></p><p><b>  {</b></p><p>  p=(struct student *)malloc(sizeof(struct student));//申請(qǐng)內(nèi)存</p><p>  printf("\t\t\t");</p&

31、gt;<p>  scanf("%ld%s%f",&p->num,&p->name,&p->score);//鏈表的傳遞</p><p><b>  i++;</b></p><p><b>  if(i==1)</b></p><p><b

32、>  head=p;</b></p><p><b>  else</b></p><p>  q->next=p;</p><p><b>  q=p;</b></p><p><b>  }</b></p><p>  wh

33、ile(i<n);</p><p>  q->next=NULL;</p><p>  return head;</p><p><b>  }</b></p><p>  void print(struct student *head)//在這里使用文件中的w+打開模式將學(xué)生信息讀入磁盤文件</p&g

34、t;<p><b>  {</b></p><p>  struct student *p=head;</p><p>  fp=fopen("stut.txt","w");</p><p>  while(p!=NULL)</p><p><b>  {&

35、lt;/b></p><p>  fprintf(fp,"%d %s %f\n",p->num,p->name,p->score);</p><p>  p=p->next;</p><p><b>  }</b></p><p>  fclose(fp);//關(guān)閉文件&

36、lt;/p><p><b>  }</b></p><p>  void input()//具體功能是將文件中的內(nèi)容讀取到顯示屏上,主要使用了文件中的r+打開模式</p><p><b>  {</b></p><p><b>  FILE *fp;</b></p>

37、<p><b>  stu *p;</b></p><p>  if((fp=fopen("stut.txt","r"))==NULL)</p><p><b>  {</b></p><p>  printf("File open error!\n")

38、;</p><p><b>  exit(0);</b></p><p><b>  }</b></p><p>  p=(stu *)malloc(sizeof(stu));</p><p>  while((fscanf(fp,"%ld%s%f",&p->num

39、,&p->name,&p->score))!=EOF)</p><p>  printf(" %ld %s %f\n",p->num,p->name,p->score);</p><p>  fclose(fp);</p><p><b>  }</b></p>

40、;<p>  //查找,實(shí)現(xiàn)了按學(xué)號(hào)或姓名查找,里面采用了子函數(shù)調(diào)用子函數(shù)的方法實(shí)現(xiàn)了該功能</p><p>  void name()</p><p><b>  {</b></p><p>  FILE *fp=NULL;</p><p>  stu *xs=NULL,*temp=NULL,*pr=NU

41、LL;</p><p>  char name[10];</p><p>  int flag=1;</p><p>  printf("\n輸入要查學(xué)生的姓名: ");</p><p>  scanf("%s",name);</p><p>  if((fp=fopen(&qu

42、ot;stut.txt","r"))==NULL)</p><p><b>  {</b></p><p>  printf("can't open file!\n");</p><p><b>  exit(0);</b></p><p>

43、<b>  }</b></p><p><b>  temp=xs;</b></p><p><b>  do </b></p><p><b>  {</b></p><p>  pr=(stu *)malloc(sizeof(stu));

44、 </p><p>  if(pr==NULL)</p><p>  printf("申請(qǐng)內(nèi)存失敗!"),exit(0);</p><p>  if(xs==NULL)</p><p><b>  xs=pr;</b></p><p><b>  else</b

45、></p><p><b>  {</b></p><p><b>  temp=xs;</b></p><p>  while(temp->next!=NULL)</p><p>  temp=temp->next;</p><p>  temp->

46、next=pr;</p><p><b>  }</b></p><p><b>  temp=pr;</b></p><p>  temp->num=0;</p><p>  fscanf(fp,"%d%s%f",&temp->num,temp->na

47、me,&temp->score);</p><p>  temp->next=NULL;</p><p>  }while(pr->num!=0);</p><p><b>  pr=xs; </b></p><p>  while(pr!=NULL) </p><p&g

48、t;<b>  {</b></p><p>  if(strcmp(xs->name,name)==0)//當(dāng)找到該生時(shí)輸出該生的信息</p><p><b>  {</b></p><p>  printf("\n\t\t該學(xué)生的信息如下:\n"); </p><p>

49、  printf("\t");</p><p>  printf("%10s %6d %6.2f\n",xs->name,xs->num,xs->score);</p><p><b>  flag=0;</b></p><p><b>  break;</b>&l

50、t;/p><p><b>  }</b></p><p>  pr=pr->next;</p><p><b>  }</b></p><p><b>  if(flag)</b></p><p>  printf("沒有找到該生的信息!&q

51、uot;);</p><p>  fclose(fp);</p><p><b>  }</b></p><p>  void num()//按學(xué)號(hào)查找</p><p><b>  {</b></p><p>  FILE *fp=NULL;</p><p

52、>  stu *xs=NULL,*temp=NULL,*pr=NULL; </p><p><b>  long num;</b></p><p>  int flag=1;</p><p>  printf("\n輸入要查學(xué)生的學(xué)號(hào): ");</p><p>  scanf("%

53、ld",&num); </p><p>  if((fp=fopen("stut.txt","r"))==NULL)</p><p><b>  {</b></p><p>  printf("can't open file!\n");</p>

54、<p><b>  exit(0);</b></p><p><b>  }</b></p><p><b>  temp=xs;</b></p><p><b>  do </b></p><p><b>  {</

55、b></p><p>  pr=(stu *)malloc(sizeof(stu)); </p><p>  if(pr==NULL)</p><p>  printf("申請(qǐng)內(nèi)存失??!"),exit(0);</p><p>  if(xs==NULL)</p><p><b>

56、;  xs=pr;</b></p><p><b>  else</b></p><p><b>  {</b></p><p><b>  temp=xs;</b></p><p>  while(temp->next!=NULL)</p>&

57、lt;p>  temp=temp->next;</p><p>  temp->next=pr;</p><p><b>  }</b></p><p><b>  temp=pr;</b></p><p>  temp->num=0;</p><p>

58、;  fscanf(fp,"%d%s%f",&temp->num,temp->name,&temp->score);</p><p>  temp->next=NULL;</p><p>  }while(pr->num!=0);</p><p><b>  pr=xs;</b>

59、</p><p>  while(pr!=NULL)</p><p><b>  {</b></p><p>  if(pr->num==num)</p><p><b>  {</b></p><p>  printf("\n\n====學(xué)生的信息如下:\n

60、"); </p><p>  printf("-----");</p><p>  printf("%10s %6d %6.2f\n",pr->name,pr->num,pr->score);</p><p>  flag=0; </p><p><b> 

61、 }</b></p><p>  pr=pr->next;</p><p><b>  }</b></p><p><b>  if(flag)</b></p><p>  printf("沒有找到該生的信息!"); </p><p> 

62、 fclose(fp);</p><p><b>  }</b></p><p>  void search()//主函數(shù)中的子函數(shù)調(diào)用了兩個(gè)子函數(shù),使用switch語(yǔ)句實(shí)現(xiàn)</p><p><b>  {</b></p><p>  int chioce;</p><p>

63、  system("cls");</p><p>  printf("\t\t1-----姓名查詢信息-----\n");</p><p>  printf("\n\t\t2-----學(xué)號(hào)查詢信息-----\n");</p><p>  printf("\n請(qǐng)選擇以何種方式進(jìn)行查詢:")

64、;</p><p>  scanf("%d",&chioce);</p><p>  switch(chioce) </p><p><b>  {</b></p><p>  case 1:name(); </p><p><b>  break;

65、</b></p><p>  case 2:num(); </p><p><b>  break;</b></p><p><b>  default:</b></p><p>  printf("選擇錯(cuò)誤!\n");</p><p>&

66、lt;b>  }</b></p><p><b>  }</b></p><p><b>  //插入學(xué)生的信息</b></p><p>  void insert()</p><p><b>  { </b></p><p><

67、;b>  int n=0;</b></p><p><b>  int i,j;</b></p><p>  struct student s,sx[N];</p><p>  printf("\n請(qǐng)輸入插入的學(xué)生的姓名:"); </p><p>  scanf("

68、%s",s.name);</p><p>  printf("\n學(xué)生的學(xué)號(hào):"); </p><p>  scanf("%ld",&s.num);</p><p>  printf("\n學(xué)生的成績(jī):"); </p&g

69、t;<p>  scanf("%f",&s.score);</p><p>  if((fp=fopen("stut.txt","r+"))==NULL) </p><p><b>  {</b></p><p>  printf("can't

70、open file!\n");</p><p><b>  exit(0);</b></p><p><b>  }</b></p><p>  while((fscanf(fp,"%ld%s%f",&sx[n].num,sx[n].name,&sx[n].score))!=E

71、OF)</p><p><b>  {</b></p><p><b>  n++;</b></p><p><b>  }</b></p><p>  fclose(fp);</p><p>  for(i=0;i<n;i++)</p>

72、;<p><b>  {</b></p><p>  if(s.score<sx[i].score)</p><p><b>  break; </b></p><p><b>  }</b></p><p>  for(j=n;j>=i;j--)&l

73、t;/p><p>  {sx[j+1]=sx[j];}</p><p><b>  sx[i]=s;</b></p><p>  if((fp=fopen("stut.txt","w"))==NULL) </p><p>  {printf("不能建立文件!\n")

74、;exit(0);}</p><p><b>  else</b></p><p>  {for(i=0;i<=n;i++)</p><p>  {fprintf(fp,"%d %s %f\n",sx[i].num,sx[i].name,sx[i].score);} </p><p>  fcl

75、ose(fp);}</p><p><b>  }</b></p><p>  void modi(stu *head)</p><p><b>  {</b></p><p>  stu *xs=head;</p><p>  char name[10];</p>

76、;<p>  int flag=1;</p><p>  system("cls");</p><p>  printf("\n輸入要修改學(xué)生的姓名: ");</p><p>  scanf("%s",name);</p><p>  fp=fopen("st

77、ut.txt","a+");</p><p>  while(xs!=NULL)</p><p>  {if(strcmp(xs->name,name)==0)/*判斷輸入要修改的姓名是否存在*/</p><p><b>  { </b></p><p>  fprintf(fp,&

78、quot;\n====修改前學(xué)生的信息如下:\n");</p><p>  fprintf(fp,"\n%10s %6s %6s\n","姓名","學(xué)號(hào)","C語(yǔ)言的成績(jī)");</p><p>  fprintf(fp,"\n%10s %6d %6.2f \n",xs->na

79、me,xs->num,xs->score);</p><p>  printf("\n請(qǐng)輸入該生的C語(yǔ)言成績(jī):");</p><p>  scanf("%f",&xs->score);</p><p><b>  flag=0;</b></p><p>&

80、lt;b>  break;</b></p><p>  }xs=xs->next;</p><p><b>  }</b></p><p>  fprintf(fp,"\n====修改后的學(xué)生的信息如下:\n");</p><p>  fprintf(fp,"\n%1

81、0s %6s %6s\n","姓名","學(xué)號(hào)","C語(yǔ)言的成績(jī)");</p><p>  fprintf(fp,"\n%10s %6d %6.2f\n",xs->name,xs->num,xs->score);</p><p><b>  if(flag)</b>

82、;</p><p>  printf("\n學(xué)生不存在,修改失敗!!"); </p><p>  fclose(fp);</p><p>  getchar();</p><p><b>  }</b></p><p>  void sort(stu *head)</p&

83、gt;<p><b>  {</b></p><p>  stu *p=head;</p><p>  printf("60分以下:\n");</p><p>  while(p!=NULL)</p><p><b>  {</b></p><p

84、>  if(p->score<60)</p><p>  printf("%d\t%s\t%f\n",p->num,p->name,p->score);</p><p>  p=p->next;</p><p><b>  }</b></p><p>&l

85、t;b>  p=head;</b></p><p>  printf("60~79分:\n");</p><p>  while(p!=NULL)</p><p><b>  {</b></p><p>  if(p->score>60 && p->

86、score<79)</p><p>  printf("%d\t%s\t%f\n",p->num,p->name,p->score);</p><p>  p=p->next;</p><p><b>  }</b></p><p><b>  p=head;

87、</b></p><p>  printf("80~89:\n");</p><p>  while(p!=NULL)</p><p><b>  {</b></p><p>  if(p->score>80 && p->score<89)</

88、p><p>  printf("%d\t%s\t%f\n",p->num,p->name,p->score);</p><p>  p=p->next;</p><p><b>  }</b></p><p><b>  p=head;</b></p&

89、gt;<p>  printf("90分以上:\n");</p><p>  while(p!=NULL)</p><p><b>  {</b></p><p>  if(p->score>90)</p><p>  printf("%d\t%s\t%f\n&qu

90、ot;,p->num,p->name,p->score);</p><p>  p=p->next;</p><p><b>  }</b></p><p>  fclose(fp);</p><p>  getchar();</p><p><b>  }&l

91、t;/b></p><p>  void main()</p><p><b>  {</b></p><p>  int chioce;</p><p>  stu *head;</p><p><b>  menu();</b></p><p&

92、gt;  printf("\n\n-----請(qǐng)選擇序號(hào):");</p><p>  scanf("%d",&chioce);</p><p>  while(chioce!=0)</p><p><b>  {</b></p><p>  switch(chioce)&l

93、t;/p><p><b>  {</b></p><p><b>  case 1: </b></p><p>  head=creat();</p><p>  print(head);</p><p><b>  break;</b></p>

94、<p>  case 2:input();</p><p><b>  break;</b></p><p>  case 3:search();</p><p><b>  menu();</b></p><p><b>  break;</b></p&

95、gt;<p>  case 4:insert();</p><p><b>  break;</b></p><p>  case 5:modi(head);</p><p><b>  menu();</b></p><p><b>  break;</b>&

96、lt;/p><p>  case 6:sort(head);</p><p><b>  break;</b></p><p>  case 7:exit(0);</p><p><b>  }</b></p><p>  printf("\n請(qǐng)繼續(xù)輸入你想選擇的:&q

97、uot;);</p><p>  scanf("%d",&chioce);</p><p><b>  }</b></p><p><b>  }</b></p><p>  測(cè)試數(shù)據(jù)集:選擇序號(hào)1、請(qǐng)輸入學(xué)生數(shù)2學(xué)生的信息:1001 張銳 78 1002

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 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)論