2023年全國(guó)碩士研究生考試考研英語(yǔ)一試題真題(含答案詳解+作文范文)_第1頁(yè)
已閱讀1頁(yè),還剩33頁(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><b>  C語(yǔ)言</b></p><p><b>  課程設(shè)計(jì)報(bào)告</b></p><p>  課程名稱: C語(yǔ)言程序設(shè)計(jì)基礎(chǔ)實(shí)踐 </p><p>  院 系: 信息科學(xué)與工程學(xué)院 </p><p>  班 級(jí): 電信15

2、 </p><p>  設(shè) 計(jì) 者: </p><p>  學(xué) 號(hào): </p><p>  設(shè)計(jì)時(shí)間: </p><p><b>  ..</b></p>

3、<p>  程序設(shè)計(jì)基礎(chǔ)實(shí)踐報(bào)告</p><p><b>  課程設(shè)計(jì)內(nèi)容</b></p><p>  設(shè)計(jì)一個(gè)學(xué)生信息管理系統(tǒng):</p><p>  1.采用菜單界面;(菜單界面運(yùn)用pritnf輸出函數(shù)實(shí)現(xiàn))</p><p>  2.可以對(duì)學(xué)生信息進(jìn)行錄入,增加,修改,刪除,查詢,統(tǒng)計(jì),排序和存盤;<

4、/p><p>  3.將學(xué)生信息保存在文件中,可以根據(jù)學(xué)生總分、單科分高低排序并輸出;</p><p>  4.增加、修改、刪除、查詢、統(tǒng)計(jì)學(xué)生信息必須使用鏈表實(shí)現(xiàn)(從文件中讀</p><p>  取信息至鏈表再進(jìn)行處理,或者將鏈表信息存入文件);</p><p>  5.可以根據(jù)自身理解為系統(tǒng)增加新的功能;</p><p&g

5、t;  學(xué)生信息包括:學(xué)號(hào)、姓名、性別、年齡、專業(yè)班級(jí)和三門以上的課程成績(jī);</p><p><b>  課程設(shè)計(jì)目的</b></p><p>  課程設(shè)計(jì)是教學(xué)過程的重要環(huán)節(jié)。通過課程設(shè)計(jì),使學(xué)生進(jìn)一步加深對(duì)C語(yǔ)言基本知識(shí)的理解,提高C語(yǔ)言綜合編程能力與程序調(diào)試技巧,為后續(xù)課程的學(xué)習(xí)以及實(shí)際問題的解決打下良好的基礎(chǔ)。</p><p><

6、b>  課程設(shè)計(jì)著眼于:</b></p><p><b>  算法的基本概念;</b></p><p>  2使用常量、變量、運(yùn)算符與表達(dá)式、程序控制結(jié)構(gòu)、數(shù)組、函數(shù)、編譯預(yù)處理、指針、結(jié)構(gòu)體與共用體及文件等C語(yǔ)言要素進(jìn)行程序設(shè)計(jì);</p><p>  3.在一種C語(yǔ)言開發(fā)環(huán)境下進(jìn)行C程序設(shè)計(jì)的基本步驟;.</p>

7、<p><b>  背景知識(shí)(可選項(xiàng))</b></p><p>  包括對(duì)背景知識(shí)、設(shè)計(jì)原理等內(nèi)容的介紹。</p><p>  工具/準(zhǔn)備工作(可選項(xiàng))</p><p>  查找相關(guān)C語(yǔ)言程序課程設(shè)計(jì)的書籍,瀏覽網(wǎng)絡(luò)上相關(guān)課程設(shè)計(jì)的模板與示例,學(xué)習(xí)相關(guān)鏈表以及其他相關(guān)的運(yùn)用知識(shí);</p><p><b

8、>  設(shè)計(jì)步驟、方法等</b></p><p>  步驟1:程序功能模塊</p><p>  本學(xué)生信息管理系統(tǒng)包括11大模塊:</p><p>  尾錄入學(xué)生信息函數(shù);</p><p>  尾插入學(xué)生信息函數(shù);</p><p><b>  修改學(xué)生信息函數(shù);</b></p

9、><p><b>  刪除學(xué)生信息函數(shù);</b></p><p><b>  查詢學(xué)生信息函數(shù);</b></p><p><b>  統(tǒng)計(jì)學(xué)生信息函數(shù);</b></p><p><b>  顯示學(xué)生信息函數(shù);</b></p><p>&

10、lt;b>  排序?qū)W生信息函數(shù);</b></p><p>  9.存盤學(xué)生信息函數(shù)</p><p><b>  10.退出系統(tǒng)函數(shù)</b></p><p>  11.菜單界面函數(shù) </p><p>  5.1.1步驟1.1:程序主要函數(shù)</p><p>  主函數(shù)main():定

11、義變量、結(jié)構(gòu)體,運(yùn)用switch--case語(yǔ)句實(shí)現(xiàn)調(diào)用錄入、顯示、插入、修改、查詢、排序、退出函數(shù),進(jìn)行有關(guān)操作;</p><p>  2.錄入數(shù)據(jù)函數(shù)Input():輸入學(xué)生學(xué)號(hào)、姓名、性別、年齡、專業(yè)班級(jí)和三門成績(jī),以及輸出學(xué)生成績(jī)的排序信息;</p><p>  3.顯示數(shù)據(jù)函數(shù)Display():顯示所有錄入學(xué)生的基本信息;</p><p>  4.插入數(shù)

12、據(jù)函數(shù)Insert():插入新的同學(xué)的基本信息(學(xué)生學(xué)號(hào)、姓名、性別、年齡、專業(yè)班級(jí)和三門成績(jī))</p><p>  5查詢數(shù)據(jù)函數(shù)Serach():查找某位同學(xué)的基本信息,需要輸入該同學(xué)的姓名或?qū)W號(hào);</p><p>  6.刪除數(shù)據(jù)函數(shù)Delete():刪除已經(jīng)錄入學(xué)生的所有信息(學(xué)生學(xué)號(hào)、姓名、性別、年齡、專業(yè)班級(jí)和三門成績(jī))</p><p>  7.排序函數(shù)

13、Sort():將錄入的學(xué)生按照總分或單科成績(jī)高低排序;</p><p><b>  具體內(nèi)容。</b></p><p><b>  設(shè)計(jì)結(jié)果及分析</b></p><p>  基本實(shí)現(xiàn)課程設(shè)計(jì)的要求;運(yùn)用鏈表、數(shù)組、指針、結(jié)構(gòu)體、常量、變量、運(yùn)算符與表達(dá)式、程序控制結(jié)構(gòu)、函數(shù)、編譯預(yù)處理、文件等基本實(shí)現(xiàn)學(xué)生信息的錄入、修改

14、、顯示、輸出、排序、查詢、插入等功能的實(shí)現(xiàn);</p><p><b>  總結(jié)</b></p><p>  提示:編寫存盤函數(shù)出現(xiàn),有點(diǎn)問題,存儲(chǔ)結(jié)構(gòu)體中整型變量到文件中,存在問題,可以用字符數(shù)組存儲(chǔ)這些數(shù)據(jù),這樣就不會(huì)出現(xiàn)問題</p><p>  編程要有思想與算法:</p><p>  設(shè)計(jì)一個(gè)學(xué)生信息管理系統(tǒng):&l

15、t;/p><p><b>  采用菜單界面;</b></p><p>  建立學(xué)生信息保存數(shù)據(jù)類型,即結(jié)構(gòu)體</p><p>  錄入學(xué)生信息函數(shù)編寫(1.建立鏈表結(jié)點(diǎn),存儲(chǔ)學(xué)生基本信息;2.提示是否保存到文件中)</p><p>  查詢學(xué)生信息函數(shù)編寫(1.遍歷鏈表;2.查詢是否有符合的學(xué)生信息)</p>

16、<p>  修改學(xué)生信息函數(shù)編寫(1,調(diào)用查詢函數(shù),2.進(jìn)行修改)</p><p>  刪除學(xué)生信息函數(shù)編寫(1.調(diào)用查詢函數(shù);2.保存指定結(jié)點(diǎn),然后釋放)</p><p>  插入學(xué)生信息函數(shù)編寫(1.調(diào)用查詢函數(shù);2.找到指定結(jié)點(diǎn),建立新結(jié)點(diǎn)并插入)</p><p>  顯示學(xué)生信息函數(shù)(1.調(diào)用查詢函數(shù);2.顯示查詢學(xué)生信息)</p>

17、<p>  統(tǒng)計(jì)學(xué)生信息函數(shù)(1.遍歷鏈表;2.計(jì)數(shù)學(xué)生個(gè)數(shù)并輸出)</p><p>  存盤學(xué)生信息(1.遍歷鏈表;2.將學(xué)生信息利用字符數(shù)組保存,并寫入文件中)</p><p><b>  退出系統(tǒng)函數(shù)</b></p><p>  界面菜單函數(shù)編寫(1,利用光標(biāo)定位函數(shù);2.利用printf函數(shù)輸出系統(tǒng)界面)</p>

18、<p><b>  源代碼如下:</b></p><p><b>  //頭文件 </b></p><p>  #include<stdio.h> </p><p>  #include<malloc.h></p><p>  #include<string

19、.h></p><p>  #include<stdlib.h></p><p>  #include<windows.h></p><p><b>  //函數(shù)聲明</b></p><p>  void system_show();//菜單界面函數(shù)</p><p>

20、  void input();//尾錄入學(xué)生信息函數(shù) </p><p>  struct stu* search();//查詢學(xué)生信息函數(shù) </p><p>  void modify();//修改學(xué)生信息函數(shù)</p><p>  void delete_(); //刪除學(xué)生函數(shù)</p><p>  void insert();//尾插入學(xué)生

21、信息函數(shù)</p><p>  void count();//統(tǒng)計(jì)學(xué)生信息函數(shù)</p><p>  void show();//顯示學(xué)生信息函數(shù)</p><p>  void sort();//排序?qū)W生信息函數(shù)</p><p>  void save();//存盤學(xué)生信息函數(shù)</p><p>  void sort();

22、//排序?qū)W生信息函數(shù) </p><p>  void setposition(int j,int i);//控制臺(tái)光標(biāo)定位函數(shù)</p><p>  //學(xué)生信息數(shù)據(jù)類型--結(jié)構(gòu)體</p><p>  struct stu</p><p><b>  {</b></p><p>  char num

23、[10];//學(xué)號(hào)</p><p>  char name[10];//姓名</p><p>  char sex;//性別</p><p>  int age;//年齡</p><p>  char major[10];//專業(yè)班級(jí)</p><p>  int math;//數(shù)學(xué)成績(jī)</p><p

24、>  int Eng;//英語(yǔ)成績(jī)</p><p>  int C_l;//C語(yǔ)言成績(jī) </p><p>  int all_score;//總成績(jī) </p><p>  struct stu *pnext; </p><p><b>  };</b></p><p>  //建立頭指針與尾

25、指針,并賦值為NULL</p><p>  struct stu *pHead=NULL;</p><p>  struct stu *pEnd=NULL; </p><p><b>  //主函數(shù) </b></p><p>  int main(void)</p><p><b>  

26、{</b></p><p>  //system_show();//實(shí)現(xiàn)菜單界面函數(shù)</p><p>  //int i=1;</p><p>  /*int age;</p><p>  printf("請(qǐng)輸入年齡:\n");</p><p>  scanf("%d"

27、;,&age);</p><p>  getchar(); </p><p><b>  char sex;</b></p><p>  printf("請(qǐng)輸入性別:\n");</p><p>  scanf("%c",&sex); </p><

28、p>  char major[10];</p><p>  printf("請(qǐng)輸入專業(yè)班級(jí):\n");</p><p>  getchar();</p><p>  scanf("%s",major);</p><p><b>  int math;</b></p>

29、;<p>  printf("請(qǐng)輸入數(shù)學(xué)成績(jī):\n");</p><p>  scanf("%d",&math);</p><p><b>  int Eng;</b></p><p>  printf("請(qǐng)輸入英語(yǔ)成績(jī):\n");</p><

30、p>  scanf("%d",&Eng);</p><p><b>  int C_l;</b></p><p>  printf("請(qǐng)輸入C語(yǔ)言成績(jī)\n");</p><p>  scanf("%d",&C_l);*/</p><p> 

31、 //while(i<4)</p><p><b>  //{</b></p><p>  //input();//調(diào)用尾錄入學(xué)生信息函數(shù)</p><p><b>  //i++;</b></p><p><b>  // }</b></p><p&g

32、t;  // search();//查詢學(xué)生信息函數(shù)</p><p>  // modify();//修改學(xué)生信息函數(shù)</p><p>  // delete_();//刪除學(xué)生信息函數(shù)</p><p>  // insert();//尾插入學(xué)生信息函數(shù)</p><p>  // search();//查詢學(xué)生信息函數(shù) </p

33、><p>  // count();//統(tǒng)計(jì)學(xué)生信息函數(shù) </p><p>  // show();//顯示學(xué)生信息函數(shù)</p><p>  // save();//存盤學(xué)生信息函數(shù)</p><p>  // count();</p><p>  //排序?qū)W生信息函數(shù) </p><p><

34、;b>  //sort();</b></p><p><b>  int k;</b></p><p><b>  while(1)</b></p><p><b>  {</b></p><p>  system_show();//實(shí)現(xiàn)菜單界面函數(shù)</

35、p><p>  printf("請(qǐng)輸入功能號(hào):\n");</p><p>  scanf("%d",&k);</p><p><b>  switch(k)</b></p><p><b>  {</b></p><p>  cas

36、e 0:exit(0);</p><p><b>  break;</b></p><p>  case 1:input();//調(diào)用尾錄入學(xué)生信息函數(shù)</p><p><b>  break;</b></p><p>  case 2:insert();//尾插入學(xué)生信息函數(shù)</p>

37、<p><b>  break;</b></p><p>  case 3:modify();//修改學(xué)生信息函數(shù)</p><p><b>  break;</b></p><p>  case 4:delete_();//刪除學(xué)生信息函數(shù)</p><p><b>  brea

38、k;</b></p><p>  case 5:search();//查詢學(xué)生信息函數(shù)</p><p><b>  break;</b></p><p>  case 6:count();//統(tǒng)計(jì)學(xué)生信息函數(shù)</p><p><b>  break;</b></p><

39、;p>  case 7:show();//顯示學(xué)生信息函數(shù)</p><p><b>  break;</b></p><p>  case 8:sort();//排序?qū)W生信息函數(shù)</p><p><b>  break;</b></p><p>  case 9:save();//存盤學(xué)生信息

40、函數(shù)</p><p><b>  break;</b></p><p><b>  }</b></p><p>  system("pause");</p><p>  system("cls");</p><p><b> 

41、 }</b></p><p>  system("pause");</p><p><b>  return 0;</b></p><p><b>  }</b></p><p>  void system_show()//菜單界面函數(shù)</p><

42、p><b>  {</b></p><p>  setposition(21,6);</p><p>  printf("\t\tC語(yǔ)言學(xué)生信息管理系統(tǒng)\n");</p><p>  setposition(21,7);</p><p>  printf("學(xué)號(hào)、姓名、性別、年齡、專業(yè)

43、班級(jí)、數(shù)學(xué)、英語(yǔ)、C語(yǔ)言、總成績(jī)\n");</p><p>  setposition(21,8);</p><p>  printf("1.錄入\n");</p><p>  setposition(21,9);</p><p>  printf("2.增加\n");</p>

44、<p>  setposition(21,10);</p><p>  printf("3.修改\n");</p><p>  setposition(21,11);</p><p>  printf("4.刪除\n");</p><p>  setposition(21,12);</p

45、><p>  printf("5.查詢\n");</p><p>  setposition(21,13);</p><p>  printf("6.統(tǒng)計(jì)\n");</p><p>  setposition(21,14);</p><p>  printf("7.顯示\n

46、");</p><p>  setposition(21,15);</p><p>  printf("8.排序\n");</p><p>  setposition(21,16);</p><p>  printf("9.存盤\n");</p><p>  setpo

47、sition(21,17);</p><p>  printf("0.退出\n");</p><p>  setposition(21,18);</p><p>  printf("可以按班進(jìn)行管理,可增加、刪除班級(jí)\n");</p><p>  setposition(21,19);</p>

48、;<p>  printf("將學(xué)生信息保存在文件中??梢愿鶕?jù)學(xué)生總分、單科分高低排序并輸出\n");</p><p><b>  }</b></p><p>  //尾錄入學(xué)生信息函數(shù)</p><p>  void input() </p><p><b>  {</b

49、></p><p><b>  //建立鏈表結(jié)點(diǎn) </b></p><p>  struct stu *ptemp=(struct stu*)malloc(sizeof(struct stu)); </p><p>  char num[10];</p><p>  printf("請(qǐng)輸入學(xué)號(hào):\n&qu

50、ot;);</p><p>  scanf("%s",num);</p><p>  char name[10];</p><p>  printf("請(qǐng)輸入姓名:\n");</p><p>  scanf("%s",name);</p><p><b&

51、gt;  int age;</b></p><p>  printf("請(qǐng)輸入年齡:\n");</p><p>  scanf("%d",&age);</p><p>  getchar(); </p><p><b>  char sex;</b></p

52、><p>  printf("請(qǐng)輸入性別:\n");</p><p>  scanf("%c",&sex); </p><p>  char major[10];</p><p>  printf("請(qǐng)輸入專業(yè)班級(jí):\n");</p><p>  getc

53、har();</p><p>  scanf("%s",major);</p><p><b>  int math;</b></p><p>  printf("請(qǐng)輸入數(shù)學(xué)成績(jī):\n");</p><p>  scanf("%d",&math);<

54、;/p><p><b>  int Eng;</b></p><p>  printf("請(qǐng)輸入英語(yǔ)成績(jī):\n");</p><p>  scanf("%d",&Eng);</p><p><b>  int C_l;</b></p><

55、;p>  printf("請(qǐng)輸入C語(yǔ)言成績(jī)\n");</p><p>  scanf("%d",&C_l);</p><p>  if(pHead==NULL)//鏈表為空</p><p><b>  {</b></p><p>  pHead=ptemp;</

56、p><p>  pEnd=ptemp;</p><p>  pEnd->pnext=NULL;</p><p><b>  } </b></p><p>  else //鏈表不為空 </p><p><b>  {</b></p><p>  pE

57、nd->pnext=ptemp;</p><p>  pEnd=pEnd->pnext; </p><p>  pEnd->pnext=NULL;</p><p><b>  } </b></p><p><b>  //錄入信息</b></p><p> 

58、 strcpy(ptemp->num,num);</p><p>  strcpy(ptemp->name,name);</p><p>  ptemp->sex=sex;</p><p>  ptemp->age=age;</p><p>  strcpy(ptemp->major,major);</p&

59、gt;<p>  ptemp->math=math;</p><p>  ptemp->Eng=Eng;</p><p>  ptemp->C_l=C_l;</p><p>  //ptemp->all_score=math+Eng+C_l; </p><p><b>  } </b

60、></p><p>  //查詢學(xué)生信息函數(shù)(通過姓名查詢)</p><p>  struct stu* search()</p><p><b>  {</b></p><p><b>  //建立鏈表結(jié)點(diǎn)</b></p><p>  struct stu *ptem

61、p=(struct stu*)malloc(sizeof(struct stu));</p><p>  ptemp=pHead;</p><p>  char num[10];</p><p>  printf("請(qǐng)輸入學(xué)號(hào):\n");</p><p>  scanf("%s",num);</p

62、><p>  char name[10];</p><p>  printf("請(qǐng)輸入姓名:\n");</p><p>  scanf("%s",name);</p><p>  while(ptemp!=NULL)</p><p><b>  {</b><

63、;/p><p>  if(strcmp(ptemp->name,name)==0)</p><p><b>  {</b></p><p>  printf("查詢到該學(xué)生信息\n");</p><p>  return ptemp;</p><p><b>  b

64、reak;</b></p><p><b>  }</b></p><p>  ptemp=ptemp->pnext;</p><p><b>  }</b></p><p>  if(ptemp==NULL)</p><p><b>  {<

65、;/b></p><p>  printf("未查詢到該學(xué)生信息\n");</p><p>  return NULL; </p><p><b>  }</b></p><p><b>  } </b></p><p>  //修改學(xué)生信息函數(shù)&l

66、t;/p><p>  void modify()</p><p><b>  {</b></p><p><b>  //建立鏈表結(jié)點(diǎn)</b></p><p>  struct stu *ptemp=(struct stu*)malloc(sizeof(struct stu));</p>

67、<p>  // char num[10];</p><p>  // printf("請(qǐng)輸入學(xué)號(hào):\n");</p><p>  // scanf("%s",num);</p><p>  // char name[10];</p><p>  // printf(&qu

68、ot;請(qǐng)輸入姓名:\n");</p><p>  // scanf("%s",name);</p><p>  ptemp=search();//查詢學(xué)生信息函數(shù)</p><p>  if(ptemp!=NULL)//存在要修改的學(xué)生信息</p><p><b>  {</b></

69、p><p>  char num[10];</p><p>  printf("請(qǐng)修改學(xué)號(hào):\n");</p><p>  scanf("%s",num);</p><p>  char name[10];</p><p>  printf("請(qǐng)修改姓名:\n")

70、;</p><p>  scanf("%s",name);</p><p>  getchar(); </p><p><b>  int age;</b></p><p>  printf("請(qǐng)修改年齡:\n");</p><p>  scanf(&quo

71、t;%d",&age);</p><p>  getchar(); </p><p><b>  char sex;</b></p><p>  printf("請(qǐng)修改性別:\n");</p><p>  scanf("%c",&sex); </p&

72、gt;<p>  char major[10];</p><p>  printf("請(qǐng)修改專業(yè)班級(jí):\n");</p><p>  getchar();</p><p>  scanf("%s",major);</p><p><b>  int math;</b>

73、</p><p>  printf("請(qǐng)修改數(shù)學(xué)成績(jī):\n");</p><p>  scanf("%d",&math);</p><p><b>  int Eng;</b></p><p>  printf("請(qǐng)修改英語(yǔ)成績(jī):\n");</p&

74、gt;<p>  scanf("%d",&Eng);</p><p><b>  int C_l;</b></p><p>  printf("請(qǐng)修改C語(yǔ)言成績(jī)\n");</p><p>  scanf("%d",&C_l); </p>&l

75、t;p><b>  //錄入信息</b></p><p>  strcpy(ptemp->num,num);</p><p>  strcpy(ptemp->name,name);</p><p>  ptemp->sex=sex;</p><p>  ptemp->age=age;<

76、/p><p>  strcpy(ptemp->major,major);</p><p>  ptemp->math=math;</p><p>  ptemp->Eng=Eng;</p><p>  ptemp->C_l=C_l;</p><p>  ptemp->all_score=mat

77、h+Eng+C_l;</p><p>  printf("修改學(xué)生信息成功!\n"); </p><p><b>  }</b></p><p><b>  }</b></p><p><b>  //刪除學(xué)生函數(shù)</b></p><p

78、>  void delete_() </p><p><b>  {</b></p><p><b>  //建立鏈表結(jié)點(diǎn)</b></p><p>  struct stu *ptemp=(struct stu*)malloc(sizeof(struct stu)); </p><p>  s

79、truct stu *ptemp_1=pHead;</p><p><b>  //調(diào)用查詢函數(shù)</b></p><p>  ptemp=search();</p><p>  if(ptemp!=NULL)</p><p><b>  {</b></p><p>  //遍

80、歷鏈表,找到制定結(jié)點(diǎn)的前指針結(jié)點(diǎn)</p><p>  while(ptemp_1!=NULL)</p><p><b>  {</b></p><p>  if(pHead==NULL)//鏈表為空</p><p><b>  {</b></p><p>  printf(&

81、quot;鏈表為空!\n");</p><p><b>  break;</b></p><p><b>  }</b></p><p>  else if(pHead==pEnd)//鏈表只有頭結(jié)點(diǎn) </p><p><b>  {</b></p>&

82、lt;p>  if(ptemp==pHead)</p><p><b>  {</b></p><p>  free(pHead);</p><p>  pHead=NULL;</p><p>  pEnd=NULL;</p><p>  printf("刪除成功!\n"

83、);</p><p><b>  break;</b></p><p><b>  }</b></p><p><b>  }</b></p><p>  else if(pHead->pnext==pEnd)//鏈表有兩個(gè)結(jié)點(diǎn) </p><p>

84、;<b>  {</b></p><p>  if(ptemp==pHead)</p><p><b>  {</b></p><p>  free(pHead);</p><p>  pHead=pEnd;</p><p>  printf("刪除成功!\n&qu

85、ot;);</p><p><b>  break;</b></p><p><b>  }</b></p><p>  else if(ptemp==pEnd)</p><p><b>  {</b></p><p>  free(pEnd);&l

86、t;/p><p>  pEnd=pHead;</p><p>  printf("刪除成功!\n");</p><p><b>  break;</b></p><p><b>  }</b></p><p><b>  }</b>&l

87、t;/p><p>  if(ptemp_1->pnext==ptemp)</p><p><b>  {</b></p><p>  //鏈表有3個(gè)以上結(jié)點(diǎn)</p><p>  if(ptemp==pHead)</p><p><b>  {</b></p>

88、<p>  pHead=pHead->pnext;</p><p>  free(ptemp);</p><p>  printf("刪除成功!\n");</p><p><b>  break;</b></p><p><b>  } </b></p&g

89、t;<p>  else if(ptemp==pEnd)</p><p><b>  {</b></p><p>  pEnd=ptemp_1;</p><p>  free(ptemp);</p><p>  printf("刪除成功!\n");</p><p&g

90、t;<b>  break;</b></p><p><b>  }</b></p><p><b>  else</b></p><p><b>  {</b></p><p>  ptemp_1->pnext=ptemp->pnext;&l

91、t;/p><p>  free(ptemp);</p><p>  printf("刪除成功!\n");</p><p><b>  break;</b></p><p><b>  }</b></p><p><b>  }</b>&

92、lt;/p><p>  ptemp_1=ptemp_1->pnext;</p><p><b>  } </b></p><p><b>  }</b></p><p><b>  }</b></p><p>  //尾插入學(xué)生信息函數(shù)</p

93、><p>  void insert()</p><p><b>  {</b></p><p><b>  //建立鏈表結(jié)點(diǎn)</b></p><p>  struct stu *ptemp=(struct stu*)malloc(sizeof(struct stu)); </p><

94、;p>  struct stu *ptemp_1=(struct stu*)malloc(sizeof(struct stu));</p><p>  struct stu *ptemp_2=pHead;</p><p>  //調(diào)用查詢學(xué)生信息函數(shù) </p><p>  ptemp=search();</p><p>  if(pte

95、mp==NULL)</p><p><b>  {</b></p><p><b>  return ;</b></p><p><b>  }</b></p><p>  if(pHead==NULL) //鏈表為空</p><p><b>

96、  {</b></p><p>  printf("鏈表為空\(chéng)n");</p><p><b>  } </b></p><p>  else if(pHead==pEnd)//鏈表有一個(gè)頭結(jié)點(diǎn) </p><p><b>  {</b></p><

97、p>  pEnd->pnext=ptemp_1;</p><p>  pEnd=pEnd->pnext;</p><p><b>  } </b></p><p>  else if(pHead->pnext==pEnd)//鏈表有兩個(gè)結(jié)點(diǎn) </p><p><b>  {</b&

98、gt;</p><p>  if(ptemp==pHead)</p><p><b>  {</b></p><p>  ptemp_1->pnext=pEnd;</p><p>  pHead->pnext=ptemp_1;</p><p><b>  }</b>

99、;</p><p>  else if(ptemp==pEnd)</p><p><b>  {</b></p><p>  pEnd->pnext=ptemp_1;</p><p>  pEnd=pEnd->pnext;</p><p><b>  }</b>&

100、lt;/p><p><b>  } </b></p><p>  else //鏈表有多個(gè)結(jié)點(diǎn) </p><p><b>  {</b></p><p>  while(ptemp_2!=NULL)</p><p><b>  {</b></p>

101、<p>  if(ptemp==pHead)</p><p><b>  {</b></p><p>  ptemp_1->pnext=pHead->pnext;</p><p>  pHead=ptemp_1;</p><p>  printf("插入學(xué)生信息成功!\n"

102、);</p><p><b>  break;</b></p><p><b>  }</b></p><p>  if(ptemp_2==ptemp)</p><p><b>  {</b></p><p>  if(ptemp==pEnd)</

103、p><p><b>  {</b></p><p>  pEnd->pnext=ptemp_1;</p><p>  pEnd=pEnd->pnext;</p><p>  printf("插入學(xué)生信息成功!\n");</p><p><b>  break;

104、</b></p><p><b>  }</b></p><p><b>  else </b></p><p><b>  {</b></p><p>  ptemp_1->pnext==ptemp->pnext;</p><p&g

105、t;  ptemp->pnext=ptemp_1;</p><p>  printf("插入學(xué)生信息成功!\n");</p><p><b>  break;</b></p><p><b>  }</b></p><p><b>  }</b><

106、;/p><p>  ptemp_2=ptemp_2->pnext;</p><p><b>  }</b></p><p><b>  }</b></p><p><b>  //錄入信息</b></p><p>  char num[10];<

107、/p><p>  printf("請(qǐng)輸入學(xué)號(hào):\n");</p><p>  scanf("%s",num);</p><p>  char name[10];</p><p>  printf("請(qǐng)輸入姓名:\n");</p><p>  scanf("

108、;%s",name);</p><p><b>  int age;</b></p><p>  printf("請(qǐng)輸入年齡:\n");</p><p>  scanf("%d",&age);</p><p>  getchar(); </p>&l

109、t;p><b>  char sex;</b></p><p>  printf("請(qǐng)輸入性別:\n");</p><p>  scanf("%c",&sex); </p><p>  char major[10];</p><p>  printf("請(qǐng)輸

110、入專業(yè)班級(jí):\n");</p><p>  getchar();</p><p>  scanf("%s",major);</p><p><b>  int math;</b></p><p>  printf("請(qǐng)輸入數(shù)學(xué)成績(jī):\n");</p><

111、;p>  scanf("%d",&math);</p><p><b>  int Eng;</b></p><p>  printf("請(qǐng)輸入英語(yǔ)成績(jī):\n");</p><p>  scanf("%d",&Eng);</p><p>&

112、lt;b>  int C_l;</b></p><p>  printf("請(qǐng)輸入C語(yǔ)言成績(jī)\n");</p><p>  scanf("%d",&C_l);</p><p>  strcpy(ptemp_1->num,num);</p><p>  strcpy(pte

113、mp_1->name,name);</p><p>  ptemp_1->sex=sex;</p><p>  ptemp_1->age=age;</p><p>  strcpy(ptemp_1->major,major);</p><p>  ptemp_1->math=math;</p>&l

114、t;p>  ptemp_1->Eng=Eng;</p><p>  ptemp_1->C_l=C_l;</p><p>  ptemp_1->all_score=math+Eng+C_l; </p><p><b>  } </b></p><p>  //統(tǒng)計(jì)學(xué)生信息函數(shù)</p>

115、<p>  void count()</p><p><b>  {</b></p><p><b>  //建立鏈表結(jié)點(diǎn)</b></p><p>  struct stu *ptemp1=(struct stu*)malloc(sizeof(struct stu));</p><p>

116、;  ptemp1=pHead;</p><p>  int Count=0;</p><p>  while(ptemp1!=NULL) </p><p><b>  {</b></p><p><b>  Count++;</b></p><p>  ptemp1=pte

117、mp1->pnext;</p><p><b>  }</b></p><p>  if(pHead==NULL)</p><p><b>  {</b></p><p>  printf("無學(xué)生信息!\n");</p><p><b>

118、  }</b></p><p><b>  else</b></p><p><b>  {</b></p><p>  printf("總共有%d個(gè)學(xué)生信息!\n",Count);</p><p><b>  } </b></p>

119、<p>  //return Count;</p><p><b>  } </b></p><p>  //顯示學(xué)生信息函數(shù)</p><p>  void show()</p><p><b>  {</b></p><p><b>  //建立鏈表

120、結(jié)點(diǎn)</b></p><p>  struct stu *ptemp=(struct stu*)malloc(sizeof(struct stu)); </p><p>  //調(diào)用查詢學(xué)生信息函數(shù) </p><p>  ptemp=search();</p><p>  printf("該學(xué)生信息如下:\n"

121、);</p><p>  printf("學(xué)號(hào):%s",ptemp->num);</p><p>  printf("\t學(xué)號(hào):%s",ptemp->num);</p><p>  printf("\t姓名:%s",ptemp->name);</p><p>  p

122、rintf("\t年齡:%d",ptemp->age);</p><p>  printf("\t性別:%c",ptemp->sex);</p><p>  printf("\n專業(yè)班級(jí):%s",ptemp->major);</p><p>  printf("\t數(shù)學(xué)成績(jī):%d

123、",ptemp->math);</p><p>  printf("\t英語(yǔ)成績(jī):%d",ptemp->Eng);</p><p>  printf("\tC語(yǔ)言成績(jī):%d\n",ptemp->C_l);</p><p><b>  } </b></p><

124、p>  //排序?qū)W生信息函數(shù) </p><p>  void sort()</p><p><b>  {</b></p><p><b>  //運(yùn)用冒泡排序</b></p><p><b>  //建立鏈表結(jié)點(diǎn)</b></p><p>  st

125、ruct stu *ptemp=(struct stu*)malloc(sizeof(struct stu));</p><p>  ptemp=pHead;</p><p>  int score[100];</p><p>  int i,j,k,pt,q;</p><p><b>  k=0;</b></p&

126、gt;<p><b>  int l=0;</b></p><p><b>  int p=0;</b></p><p>  while(ptemp!=NULL)</p><p><b>  {</b></p><p><b>  l++;</b

127、></p><p>  ptemp=ptemp->pnext;</p><p><b>  }</b></p><p>  ptemp=pHead;</p><p>  while(ptemp!=NULL&&k<l)</p><p><b>  {<

128、;/b></p><p>  score[k]=ptemp->math;</p><p><b>  k++;</b></p><p>  ptemp=ptemp->pnext;</p><p><b>  } </b></p><p>  ptemp=p

129、Head;</p><p>  for(i=0;i<l-1;i++)</p><p><b>  {</b></p><p>  for(j=0;j<l-i-1;j++)</p><p><b>  {</b></p><p>  if(score[j]<=

130、score[j+1])</p><p><b>  {</b></p><p>  pt=score[j];</p><p>  score[j]=score[j+1];</p><p>  score[j+1]=pt;</p><p><b>  }</b></p&

131、gt;<p><b>  }</b></p><p><b>  } </b></p><p><b>  q=0;</b></p><p>  for(;q<l;q++) </p><p><b>  {</b></p>

132、<p>  while(ptemp!=NULL)</p><p><b>  {</b></p><p>  if(ptemp->math==score[q])</p><p><b>  {</b></p><p>  printf("第%d名:%s,數(shù)學(xué)成績(jī):%d\

133、n",q+1,ptemp->name,ptemp->math);</p><p><b>  //q++;</b></p><p><b>  break;</b></p><p><b>  }</b></p><p>  ptemp=ptemp-&g

134、t;pnext;</p><p><b>  } </b></p><p>  ptemp=pHead;</p><p><b>  }</b></p><p><b>  } </b></p><p>  //存盤學(xué)生信息函數(shù) </p>

135、<p>  void save()</p><p><b>  {</b></p><p><b>  //建立鏈表結(jié)點(diǎn)</b></p><p>  struct stu *ptemp=pHead; </p><p><b>  //錄入信息</b></p&g

136、t;<p>  char message[100];</p><p>  char message_1[10];</p><p>  char message_2[10];</p><p>  char message_3[10];</p><p>  char message_4[10];</p><p&g

137、t;  char message_5[10];</p><p>  char k=' ';</p><p><b>  char p;</b></p><p><b>  //建立文件指針 </b></p><p><b>  FILE *fp;</b><

138、/p><p>  fp=fopen("d:\\aa.txt","w"); </p><p>  if(fp==NULL)//以寫數(shù)據(jù)的形式打開文本文件 </p><p><b>  {</b></p><p>  printf("打開文件失敗!\n");</p

139、><p><b>  }</b></p><p>  else//打開文件成功 </p><p><b>  {</b></p><p>  while(ptemp!=NULL)</p><p><b>  {</b></p><p>

140、;  strcpy(message,ptemp->num);</p><p>  strcat(message,ptemp->name);</p><p>  message_1[0]=ptemp->sex;</p><p>  if(ptemp->age>=10)</p><p><b>  {<

141、;/b></p><p>  p=(char)((ptemp->age/10)+48);</p><p>  message_1[1]=p;</p><p>  p=(char)((ptemp->age%10)+48);</p><p>  message_1[2]=p;</p><p><b&

142、gt;  }</b></p><p>  else if(ptemp->age<10)</p><p><b>  {</b></p><p>  p=(char)((ptemp->age)+48);</p><p>  message_1[1]=p;</p><p>

143、;<b>  }</b></p><p>  //strcat(message,message_1);</p><p>  strcpy(message_5,ptemp->major);</p><p>  if(ptemp->math>=10&&ptemp->math<100)</p>

144、<p><b>  {</b></p><p>  message_2[0]=(ptemp->math/10)+48;</p><p>  message_2[1]=(ptemp->math%10)+48;</p><p><b>  }</b></p><p>  els

145、e if(ptemp->math<10)</p><p><b>  {</b></p><p>  message_2[0]=ptemp->math+48;</p><p><b>  }</b></p><p>  else if(ptemp->math==100)<

146、;/p><p><b>  {</b></p><p>  message_2[0]=1+48;</p><p>  message_2[1]=48;</p><p>  message_2[2]=48;</p><p><b>  }</b></p><p&

147、gt;  //strcat(message,message_2);</p><p>  if(ptemp->Eng>=10&&ptemp->Eng<100)</p><p><b>  {</b></p><p>  message_3[0]=(ptemp->Eng/10)+48;</p>

148、;<p>  message_3[1]=(ptemp->Eng%10)+48;</p><p><b>  }</b></p><p>  else if(ptemp->Eng<10)</p><p><b>  {</b></p><p>  message_3[0

149、]=ptemp->Eng+48;</p><p><b>  }</b></p><p>  else if(ptemp->Eng==100)</p><p><b>  {</b></p><p>  message_3[0]=1+48;</p><p>  m

150、essage_3[1]=48;</p><p>  message_3[2]=48;</p><p><b>  }</b></p><p>  //strcat(message,message_3);</p><p>  if(ptemp->C_l>=10&&ptemp->C_l<

151、;100)</p><p><b>  {</b></p><p>  message_4[0]=(ptemp->C_l/10)+48;</p><p>  message_4[1]=(ptemp->C_l%10)+48;</p><p><b>  }</b></p>&

152、lt;p>  else if(ptemp->C_l<10)</p><p><b>  {</b></p><p>  message_4[0]=ptemp->C_l+48;</p><p><b>  }</b></p><p>  else if(ptemp->C_

溫馨提示

  • 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)論