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

下載本文檔

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

文檔簡介

1、<p><b>  軟件設(shè)計(jì)報(bào)告</b></p><p>  題 目: 學(xué)生學(xué)籍管理系統(tǒng) </p><p><b>  課程設(shè)計(jì)目的</b></p><p>  1..通過本次課程設(shè)計(jì),強(qiáng)化上級動(dòng)手能力,在理論和實(shí)踐的基礎(chǔ)上進(jìn)一步

2、鞏固 《C語言程序設(shè)計(jì)》課程的學(xué)習(xí)內(nèi)容,掌握工程軟件設(shè)計(jì)的基本方法。</p><p>  2.熟悉C語言的基本內(nèi)容從而掌握C語言的基本知識(shí)以及了解C程序的基本編寫及運(yùn)行;</p><p>  3.了解程序的分模塊編寫并對程序的每個(gè)模塊進(jìn)行詳細(xì)的設(shè)計(jì)并且能理解一般C語言編寫的程序。</p><p>  4..熟悉C程序設(shè)計(jì)的開發(fā)環(huán)境及C程序的調(diào)試過程。</p&g

3、t;<p><b>  二、課程設(shè)計(jì)內(nèi)容</b></p><p>  用所學(xué)過的C語言知識(shí)(文件,結(jié)構(gòu)體,函數(shù),數(shù)組等)編寫一個(gè)學(xué)身份學(xué)籍管理系統(tǒng)。使其有以下功能。</p><p>  1.通過鍵盤輸入某些學(xué)生的學(xué)生學(xué)籍管理信息。(包含學(xué)生學(xué)號(hào)、姓名、性別、年齡、出生年月、住址、班級、專業(yè)、院系等信息)。</p><p>  2.

4、輸入給定學(xué)號(hào),顯示出某位學(xué)生的學(xué)生學(xué)籍管理信息。</p><p>  3.顯示出全部學(xué)生的學(xué)生學(xué)籍管理信息。</p><p>  4.可將某學(xué)生信息添加到文件內(nèi)。</p><p>  5.給定某位學(xué)生的學(xué)號(hào),修改該學(xué)生信息。</p><p>  6.給定某位學(xué)生的學(xué)號(hào),刪除該學(xué)生信息。</p><p>  7.給定某個(gè)

5、班級號(hào),統(tǒng)計(jì)該班級的總?cè)藬?shù)。</p><p>  8.按照學(xué)生的學(xué)號(hào)升序?qū)W(xué)生信息進(jìn)行排序。</p><p>  9.用文件的方式將錄入的數(shù)據(jù)進(jìn)行存儲(chǔ),并從其中讀取數(shù)據(jù)。</p><p><b>  三、需求分析</b></p><p>  1.通過結(jié)構(gòu)體struct STUDENTS來保存學(xué)生的學(xué)號(hào)、姓名、性別、年齡、

6、出生年月、住址、班級、專業(yè)、院系等相關(guān)信息。并通過input()函數(shù)來輸入初始信息。</p><p>  2.學(xué)生信息的添加:在原有學(xué)生信息的基礎(chǔ)上可以添加新的學(xué)生信息,并將添加信息保存到原文件中.通過append函數(shù)來實(shí)現(xiàn)學(xué)生信息的添加功能。</p><p>  3.學(xué)生信息的修改:輸入要修改學(xué)生的學(xué)號(hào),然后利用switch語句選擇修改的那一項(xiàng),修改完畢后重新保存到原定文件中。修改成功后

7、返回菜單。</p><p>  利用modify函數(shù)來實(shí)現(xiàn)。</p><p>  4.學(xué)生信息刪除:輸入要?jiǎng)h除的學(xué)生學(xué)號(hào),通過del函數(shù)來實(shí)現(xiàn)。刪除成功后,在保存到原文件中去。</p><p>  5. 學(xué)生信息的查詢:輸入一個(gè)學(xué)生學(xué)號(hào), 在文件中查找此學(xué)生, 若找到與該學(xué)號(hào)相等則輸出此學(xué)生的全部信息; 若找不到則輸出無此學(xué)生信息。</p><p

8、>  利用inquire函數(shù)來實(shí)現(xiàn)。</p><p>  6.輸入一個(gè)班的班級號(hào),通過count函數(shù)來統(tǒng)計(jì)此班的總?cè)藬?shù)。</p><p>  7.按學(xué)號(hào)的升序排序?qū)W生信息:對學(xué)號(hào)用泡沫法進(jìn)行學(xué)號(hào)升序排序,然后將排好序的信息保存到文件中。</p><p>  8.退出系統(tǒng):在完成想要執(zhí)行的各項(xiàng)操作后,調(diào)用switch()函數(shù)在主菜單下輸入數(shù)字0就退出整個(gè)系統(tǒng)。&

9、lt;/p><p><b>  四、概要設(shè)計(jì)</b></p><p><b>  系統(tǒng)結(jié)構(gòu)圖: </b></p><p><b>  2.功能模塊說明:</b></p><p>  A.輸入模塊:調(diào)用input( )函數(shù)將學(xué)生信息依次輸入到結(jié)構(gòu)體數(shù)組中,結(jié)束后將保存在制定文件中,在

10、其他模塊的函數(shù)中可以隨時(shí)進(jìn)行調(diào)用,結(jié)束后可以將修改后的學(xué)生信息再一次保存。</p><p>  B.添加模塊:如果要添加新生信息可以調(diào)用append函數(shù)將新生信息插入到原有信息的末尾,在保存到文件中。</p><p>  C.修改模塊:修改可以通過輸入要修改的學(xué)生的學(xué)號(hào),對學(xué)生的個(gè)人信息利用switch選擇要修改的內(nèi)容.修改完畢后,保存到所設(shè)定的文件中去。</p><p

11、>  D.刪除模塊:刪除可以通過輸入要?jiǎng)h除的學(xué)生學(xué)號(hào),對學(xué)生的所有個(gè)人信息進(jìn)行刪除.刪除完畢之后保存到文件中去。</p><p>  E.查詢模塊:選擇輸入要查詢學(xué)生的學(xué)號(hào),并將查詢的信息顯示在屏幕上。</p><p>  F.統(tǒng)計(jì)模塊:輸入要統(tǒng)計(jì)人數(shù)的班級號(hào),然后輸出此班的總?cè)藬?shù)。</p><p>  G.排序模塊:按學(xué)生學(xué)號(hào)用冒泡法升序排出學(xué)生的信息。&l

12、t;/p><p>  H.打印模塊:輸出當(dāng)前文件中所有的學(xué)生信息。</p><p>  五、詳細(xì)設(shè)計(jì)及運(yùn)行結(jié)果</p><p><b>  流程圖:</b></p><p>  通過switch case函數(shù)完成主函數(shù)于各模塊之間的調(diào)用:</p><p>  六、調(diào)試情況,設(shè)計(jì)技巧及體會(huì):</p

13、><p>  1. 設(shè)計(jì)過程中的體會(huì):在剛開始還沒有大體思路,覺得設(shè)計(jì)不簡單。但當(dāng)總體構(gòu)思完成后,對各個(gè)功能的實(shí)現(xiàn)可以用小程序即模塊形式進(jìn)行實(shí)現(xiàn),比如輸入數(shù)據(jù),輸出數(shù)據(jù),修改數(shù)據(jù),刪除數(shù)據(jù)等.在一個(gè)個(gè)小程序中調(diào)試,最后各個(gè)模塊的功能完成比較好后,在將所有的模塊都放進(jìn)main()主函數(shù)中進(jìn)行調(diào)試,這樣可以避免由整體構(gòu)思調(diào)試引起的調(diào)試障礙.但還是沒有得到完美的效果,有的模塊還是有問題。而且程序上看沒什么問題???老師也幫了

14、不少的忙吧。在此寫過老師的幫助。</p><p>  2.在調(diào)試過程中,F(xiàn)5,F10,F11,有了更深的認(rèn)識(shí),并且可以更靈活的運(yùn)用。</p><p>  在編寫程序的過程中,有些邏輯不是很清楚,但大部分程序模塊還是寫出來了。</p><p>  那些不清楚的就是文件方面的知識(shí),以后要好好研究下文件了??傮w來說,</p><p>  這次課程設(shè)

15、計(jì)對C語言方面的知識(shí)又重新復(fù)習(xí)了一遍,感覺還行。</p><p>  3.還有就是原先有想過用密碼,構(gòu)思是想實(shí)現(xiàn)一個(gè)帳號(hào)密碼配對使用的方法,但是由于文件的使用不熟練,最后還是以失敗告終。同時(shí)程序只能在當(dāng)前登錄過程中輸入進(jìn)入系統(tǒng),有較大的局限性。</p><p><b>  七、參考文獻(xiàn)</b></p><p>  《C語言程序設(shè)計(jì)》 譚浩強(qiáng)

16、 清華大學(xué)出版社 1999年12月</p><p>  C語言程序設(shè)計(jì)(第二版)王曙燕 /主編</p><p><b>  八、附錄:源代碼:</b></p><p>  #include"stdio.h"</p><p>  #include"string.h"</p&g

17、t;<p>  #include"stdlib.h" /*頭文件*/</p><p>  #define MAX 100</p><p>  typedef struct </p><p>  { int year;</p>&

18、lt;p>  int month;</p><p><b>  int day;</b></p><p><b>  }DATE;</b></p><p>  typedef struct </p><p>  { int num; /*學(xué)號(hào)*/</

19、p><p>  char name[20]; /*姓名*/ /*定義結(jié)構(gòu)體*/</p><p>  char sex[6]; /*性別*/</p><p>  int age; /*年齡*/</p><p>  

20、DATE birthday; /*出生年月*/</p><p>  char address[30]; /*住址*/</p><p>  char classes[10]; /*班級*/</p><p>  char zhuanye[50]; /*專業(yè)*/</p><p

21、>  char yuanxi[50]; /*院系*/</p><p>  }STUDENTS;</p><p><b>  /*讀取信息*/</b></p><p>  int read_file(STUDENTS students[]) </p>&l

22、t;p>  { FILE *fp;</p><p><b>  int i=0;</b></p><p>  if((fp=fopen("stu.txt","rt"))==NULL)</p><p>  { printf("\n\n*****庫存文件不存在!請創(chuàng)建");

23、 /*創(chuàng)建文件*/</p><p><b>  return 0;</b></p><p><b>  }</b></p><p>  while((fread(&students[i],sizeof(STUDENTS),1,fp))==1) /*成功創(chuàng)建*/&

24、lt;/p><p><b>  {</b></p><p><b>  i++;</b></p><p><b>  }</b></p><p>  fclose(fp);</p><p><b>  return i;</b><

25、/p><p><b>  }</b></p><p>  void save_file(STUDENTS students[],int sum) /*保存信息*/</p><p>  { FILE *fp;</p><p><b>  int i;</b></p>

26、<p>  if((fp=fopen("stu.txt","wb"))==NULL)</p><p>  { printf("讀文件錯(cuò)誤!\n");</p><p><b>  return;</b></p><p><b>  }</b></

27、p><p>  for(i=0;i<sum;i++)</p><p>  if(fwrite(&students[i],sizeof(STUDENTS),1,fp)!=1) </p><p>  printf("寫文件錯(cuò)誤!\n"); /*學(xué)生信息保存到文件中*/ fclose(

28、fp);</p><p><b>  }</b></p><p><b>  /*輸入模塊*/</b></p><p>  int input(STUDENTS students[])</p><p>  { int i=0,t;

29、 /*定義要輸入學(xué)生的個(gè)數(shù)*/ </p><p>  system("cls");</p><p>  printf("\n\n 錄入學(xué)生個(gè)數(shù)(最多%d個(gè))",MAX);</p><p>  scanf("%d",&t);</p><p>  print

30、f(" ------------------------\n");</p><p><b>  do</b></p><p>  {printf("\n 第%d個(gè)學(xué)生信息",i+1); /*輸入學(xué)生的基本信息*/</p><p>  scanf("%d

31、",&students[i].num);</p><p>  if(students[i].num==0) break;</p><p>  printf("\n 學(xué)生姓名:");</p><p>  scanf("%s",students[i].name);</p><p

32、>  printf("\n 學(xué)生性別:");</p><p>  scanf("%s",students[i].sex);</p><p>  printf("\n 學(xué)生年齡:");</p><p>  scanf("%d",&students[i]

33、.age);</p><p>  printf("\n 學(xué)生出生年月日:");</p><p>  scanf("%d %d %d",&students[i].birthday.year,&students[i].birthday.month,</p><p>  &students[i].

34、birthday.day);</p><p>  printf("\n 學(xué)生住址:");</p><p>  scanf("%s",students[i].address);</p><p>  printf("\n 學(xué)生班級:");</p><p>  sc

35、anf("%s",students[i].classes);</p><p>  printf("\n 學(xué)生專業(yè):");</p><p>  scanf("%s",students[i].zhuanye);</p><p>  printf("\n 學(xué)生院系:")

36、;</p><p>  scanf("%s",students[i].yuanxi);</p><p><b>  i++;</b></p><p>  }while(i<t);</p><p>  save_file(students,t);

37、 /*保存輸入的學(xué)生信息*/</p><p>  printf("\n %d個(gè)學(xué)生信息輸入完畢! \n",t);</p><p><b>  getch();</b></p><p>  return t; /*返回輸入學(xué)生的個(gè)數(shù)值*/</

38、p><p><b>  }</b></p><p><b>  /*輸出模塊*/</b></p><p>  void output(STUDENTS students[],int sum)</p><p><b>  { </b></p><p><

39、;b>  int i;</b></p><p>  system("cls");</p><p>  printf("num name sex age year-month-day address classes zhuanye yuanxi\n");</p><p>  printf(&quo

40、t; \n");</p><p>  for(i=0;i<sum;i++) /*輸出學(xué)生的信息*/ </p><p>  {printf("%5d %5s %5s %5d %5d %5

41、d %5d %5s %5s %5s %5s\n",</p><p>  students[i].num,students[i].name,students[i].sex,students[i].age,students[i].birthday.year,</p><p>  students[i].birthday.month,students[i].birthday.d

42、ay,students[i].address,</p><p>  students[i].classes,students[i].zhuanye,students[i].yuanxi);</p><p>  printf(" \n");</p><p><b>

43、;  }</b></p><p><b>  getch();</b></p><p>  save_file(students,sum);</p><p><b>  }</b></p><p>  /*添加信息模塊*/</p><p>  int append

44、(STUDENTS students[],int sum)</p><p><b>  { </b></p><p>  int i=sum,flag=0; /*從已經(jīng)輸入的學(xué)生尾部添加*/</p><p>  char choice;</p><p>  sum=rea

45、d_file(students); </p><p>  system("cls");</p><p>  printf("\n\n 添加學(xué)生信息 \n");</p><p><b>  do</b></p><p><b>  { </b>

46、</p><p>  if(i<MAX) /*已經(jīng)輸入的學(xué)生個(gè)數(shù)和要添加的學(xué)生個(gè)數(shù)之和要小于定義的學(xué)生個(gè)數(shù)最大值*/</p><p><b>  {</b></p><p>  printf("\n 新學(xué)生學(xué)號(hào):");</p><p>  scanf("

47、%d",&students[i].num);</p><p>  printf("\n 學(xué)生姓名:");</p><p>  scanf("%s",students[i].name);</p><p>  printf("\n 學(xué)生性別:");

48、 /*輸入添加學(xué)生的基本信息*/</p><p>  scanf("%s",students[i].sex);</p><p>  printf("\n 學(xué)生年齡:");</p><p>  scanf("%d",&students[i].age);</p><p&g

49、t;  printf("\n 學(xué)生出生年月日:");</p><p>  scanf("%d%d%d",&students[i].birthday.year,&students[i].birthday.month,&students[i].birthday.day);</p><p>  printf("

50、\n 學(xué)生住址:");</p><p>  scanf("%s",students[i].address);</p><p>  printf("\n 學(xué)生班級:");</p><p>  scanf("%s",students[i].classes);</p>

51、<p>  printf("\n 學(xué)生專業(yè):");</p><p>  scanf("%s",students[i].zhuanye);</p><p>  printf("\n 學(xué)生院系:");</p><p>  scanf("%s",stude

52、nts[i].yuanxi);</p><p>  i++; </p><p><b>  }</b></p><p>  printf("\n 繼續(xù)添加嗎?(Y/N)");</p><p>  choice=getch();</p><p>  if(

53、choice=='Y'||choice=='y')</p><p>  { flag=1;</p><p>  printf("\n 繼續(xù)!\n"); /*是否要繼續(xù)添加*/</p><p><b>  }</b></p>

54、<p>  else flag=0;</p><p>  }while(flag==1);;</p><p>  printf("\n 按任意鍵返回主菜單!");</p><p><b>  getch();</b></p><p>  save_file(stud

55、ents,i); /*保存添加的學(xué)生信息到原文件*/</p><p>  return i; /*返回文件中學(xué)生個(gè)數(shù)值*/</p><p><b>  }</b></p><p>  /*修改信息模塊*/</p><p>  void modify(ST

56、UDENTS students[],int sum)</p><p>  { //FILE *fp;</p><p>  int i,choice,flag,modify_num;</p><p>  sum=read_file(students); /*讀文件*/</p><p><

57、;b>  do</b></p><p><b>  {</b></p><p>  system("cls");</p><p>  printf("\n 輸入要修改的學(xué)生學(xué)號(hào):");</p><p>  scanf("%d&quo

58、t;,&modify_num); /*輸入要修改的學(xué)生學(xué)號(hào)*/</p><p>  for(i=0;i<sum;i++)</p><p>  if(students[i].num==modify_num)</p><p>  { printf("\n 學(xué)生信息 \n

59、");</p><p>  printf("num name sex age year-month-day address classes zhuanye yuanxi\n");</p><p>  printf(" \n");</p>

60、;<p>  printf("%5d %5s %5s %5d %5d %5d %5d %5s %5s %5s %5s\n",students[i].num,students[i].name,students[i].sex,students[i].age,students[i].birthday.year,students[i].birthday.month,students[i].bir

61、thday.day,students[i].address,students[i].classes,students[i].zhuanye,students[i].yuanxi);</p><p>  printf("\n 要修改哪一項(xiàng)?\n");</p><p>  printf("\n 1.學(xué)生學(xué)

62、號(hào) \n");</p><p>  printf("\n 2.學(xué)生姓名 \n");</p><p>  printf("\n 3.學(xué)生性別 \n");</p><p>  printf("\n 4.學(xué)生年齡 \n&qu

63、ot;);</p><p>  printf("\n 5.學(xué)生出生年月日 \n");</p><p>  printf("\n 6.學(xué)生住址 \n");</p><p>  printf("\n 7.學(xué)生班級 \n")

64、;</p><p>  printf("\n 8.學(xué)生專業(yè) \n");</p><p>  printf("\n 9.學(xué)生院系 \n");</p><p>  printf("\n 請選擇(1-9):");</p

65、><p>  scanf("%d",&choice);</p><p>  switch(choice)</p><p><b>  { </b></p><p>  case 1:printf("\n 輸入修改后的學(xué)號(hào):");</p><

66、p>  scanf("%d",&students[i].num); break;</p><p>  case 2:printf("\n 輸入修改后的姓名:");</p><p>  scanf("%s",students[i].name); break;</p><p>

67、  case 3:printf("\n 輸入修改后的性別:");</p><p>  scanf("%s",students[i].sex); break; /*選擇要修改學(xué)生的項(xiàng)目*/</p><p>  case 4:printf("\n 輸入修改后的年齡:");</p>

68、<p>  scanf("%d",&students[i].age); break;</p><p>  case 5:printf("\n 輸入修改后的出生年月:");</p><p>  scanf ("%d %d %d",&students[i].birthday.year,&am

69、p;students[i].birthday.month,</p><p>  &students[i].birthday.day); break;</p><p>  case 6:printf("\n 輸入修改后的住址:");</p><p>  scanf("%s",students[i].ad

70、dress); break;</p><p>  case 7:printf("\n 輸入修改后的班級:");</p><p>  scanf("%s",students[i].classes); break;</p><p>  case 8:printf("\n 輸入修改后

71、的專業(yè):");</p><p>  scanf("%s",students[i].zhuanye); break;</p><p>  case 9:printf("\n 輸入修改后的院系:");</p><p>  scanf("%s",students[i].yuanxi)

72、; break;</p><p><b>  }</b></p><p>  printf("\n 學(xué)生信息表 \n");</p><p>  printf("num name sex age year-month-day address classes zhuanye

73、 yuanxi\n");</p><p>  printf(" \n");</p><p>  printf("%5d %5s %5s %5d %5d %5d %5d %5s %5s %5s %5s\n",</p><p&g

74、t;  students[i].num,students[i].name,students[i].sex,students[i].age,students[i].birthday.year,</p><p>  students[i].birthday.month,students[i].birthday.day,students[i].address,</p><p>  student

75、s[i].classes,students[i].zhuanye,students[i].yuanxi); /*輸出修改后的學(xué)生信息*/ break;</p><p><b>  }</b></p><p>  if(i==sum)</p><p>  { printf("\n 該學(xué)生不存在!");&

76、lt;/p><p><b>  getch();</b></p><p><b>  }</b></p><p>  printf("\n\n 繼續(xù)修改嗎?(Y/N)");</p><p>  choice=getch();</p><p&g

77、t;  if(choice=='Y'||choice=='y')</p><p>  { flag=1;</p><p>  printf("\n 繼續(xù)!\n");</p><p>  } /*是否要繼續(xù)修改*/

78、 </p><p>  else flag=0;</p><p>  }while(flag==1);</p><p>  printf("\n按任意鍵返回主菜

79、單!");</p><p><b>  getch();</b></p><p>  save_file(students,sum); /*保存修改后的信息*/ </p><p>  } </p

80、><p>  /*刪除信息模塊*/</p><p>  int del(STUDENTS students[],int sum)</p><p><b>  { </b></p><p>  int i,del_num;</p><p>  printf("請輸入要?jiǎng)h除的學(xué)生學(xué)號(hào)"

81、;);</p><p>  scanf("%d",&del_num); /*輸入要?jiǎng)h除的學(xué)生學(xué)號(hào)*/ </p><p>  fo

82、r(i=0;i<sum;i++)</p><p>  { if(del_num==students[i].num)</p><p>  {for(;i<sum-1;i++)</p><p>  students[i].num=students[i+1].num;</p><p>  printf("刪除成功"

83、);</p><p><b>  }</b></p><p><b>  }</b></p><p>  getch(); </p><p>  save_file(

84、students,sum-1); /*保存刪除后的學(xué)生信息到原文件*/ </p><p>  return (sum-1);</p><p><b>  }<

85、/b></p><p>  /*查詢信息模塊*/</p><p>  void inquire(STUDENTS students[],int sum)</p><p>  { FILE *fp;</p><p>  int i,choice,flag,inquire_num;</p><p>  sum=re

86、ad_file(students); /*讀文件*/ </p><p>  printf("%d\n",sum);</p><p><b>  do</b></p><p>  { system("cl

87、s");</p><p>  printf("\n輸入要查詢的學(xué)生學(xué)號(hào):");</p><p>  scanf("%d",&inquire_num); /*輸入要查詢的學(xué)生學(xué)號(hào)*/ for(i=0;i<sum;i++)<

88、;/p><p>  if(students[i].num==inquire_num)</p><p>  { printf("\n 此學(xué)生信息為: \n");</p><p>  printf("num name sex age year-month-day address classes z

89、huanye yuanxi\n");</p><p>  printf(" \n");</p><p>  printf("%5d %5s %5s %5d %d%d%d %5s %5s %5s %5s\n",</p><p

90、>  students[i].num,students[i].name,students[i].sex,students[i].age,students[i].birthday.year,students[i].birthday.month,students[i].birthday.day,students[i].address,</p><p>  students[i].classes,students

91、[i].zhuanye,students[i].yuanxi); /*輸出要查詢的學(xué)生信息*/</p><p><b>  break;</b></p><p><b>  }</b></p><p>  if(i==sum)</p><p>  { printf("\n 無此

92、學(xué)生信息 \n");</p><p><b>  getch();</b></p><p><b>  }</b></p><p>  printf("\n\n 是否繼續(xù)?(Y/N)");</p><p>  choice=getch();</p&

93、gt;<p>  if(choice=='Y'||choice=='y')</p><p>  { flag=1;</p><p>  printf("\n 繼續(xù)!\n");</p><p>  } /*是否要繼續(xù)*/

94、 </p><p>  else flag=0;</p><p>  }while(flag==1);</p><p>  printf("\n 按任意鍵返回主菜單!");</p><p><b>  getch();</

95、b></p><p><b>  }</b></p><p>  /*統(tǒng)計(jì)信息模塊*/</p><p>  void count(STUDENTS students[],int sum)</p><p><b>  { </b></p><p>  int i,

96、count=0;</p><p>  char s[10];</p><p>  printf("請輸入要統(tǒng)計(jì)的班級的學(xué)生的班級號(hào)!"); </p><p>  scanf("%s",s); /*按輸入的班級號(hào)統(tǒng)計(jì)此班的總學(xué)生人數(shù)*/</p><p>

97、;  for(i=0;i<sum;i++)</p><p>  if(strcmp(s,students[i].classes)==0)</p><p><b>  count++;</b></p><p>  printf("%s班的總?cè)藬?shù)為%d人",s,count);</p><p><

98、;b>  getch();</b></p><p>  save_file(students,sum);</p><p><b>  } </b></p><p>  /*排行信息模塊*/</p><p>  void sort(STUDENTS students[],int sum)</p&

99、gt;<p><b>  { </b></p><p>  int i,j,t;</p><p>  system("cls");</p><p>  printf("\n 學(xué)生信息排行\(zhòng)n");</p><p>  printf("

100、\n 按學(xué)號(hào)排行\(zhòng)n");</p><p>  printf(" \n");</p><p>  for(i=0;i<sum-1;i++) /*按學(xué)號(hào)用冒泡法升序排列學(xué)生信息*/</p><p>  for(j=i+1;j<sum;j++)

101、</p><p>  { if(students[i].num>students[j].num)</p><p>  {t=students[i].num;</p><p>  students[i].num=students[j].num;</p><p>  students[j].num=t;</p><p&

102、gt;<b>  }</b></p><p><b>  }</b></p><p>  printf(" \n");</p><p>  printf("num name sex age year-month-day address cla

103、sses zhuanye yuanxi\n");</p><p>  for(i=0;i<sum;i++)</p><p>  printf("%5d %5s %5s %5d %d%d%d %5s %5s %5s %5s\n",</p><p>  students[i].num,students[i].nam

104、e,students[i].sex,students[i].age,students[i].birthday.year, students[i].birthday.month,students[i].birthday.day,students[i].address,</p><p>  students[i].classes,students[i].zhuanye,students[i].yuanxi); /*

105、輸出排序后的學(xué)生信息*/</p><p><b>  getch();</b></p><p>  save_file(students,sum); /*保存排序后的學(xué)生信息到文件中*/</p><p><b>  }</b></p><p>  Void main()

106、 /*主函數(shù)*/ </p><p><b>  {</b></p><p>  STUDENTS students[MAX];</p><p>  int choice,sum;</p><p>  sum=read_file(students

107、);</p><p><b>  if(!sum)</b></p><p>  { printf("并錄入基本庫存信息!\n"); </p><p><b>  getch();</b></p><p>  sum=input(students

108、); /*錄入學(xué)生信息*/ </p><p><b>  }</b></p><p><b>  do</b></p><p>  { system("cls");</p>

109、<p>  printf("\n\n\n 學(xué)生學(xué)籍管理系統(tǒng) \n\n");</p><p>  printf(" 1.添加學(xué)生信息\n\n");</p><p>  printf(" 2.修改學(xué)生信息\n\n");</p&g

110、t;<p>  printf(" 3.刪除學(xué)生信息\n\n");</p><p>  printf(" 4.查詢學(xué)生信息\n\n");</p><p>  printf(" 5.統(tǒng)計(jì)學(xué)生信息\n\n");</p><p&

111、gt;  printf(" 6.學(xué)生排行信息\n\n");</p><p>  printf(" 7.打印學(xué)生庫存信息\n\n");</p><p>  printf(" 0.退出系統(tǒng)\n\n");</p><p>  print

112、f(" 請選擇(0-7):");</p><p>  scanf("%d",&choice);</p><p>  switch(choice) /*用switch選擇要調(diào)用的各模塊函數(shù)并執(zhí)行*/</p><p>  { case 1: sum=append

113、(students,sum);break;</p><p>  case 2: modify(students,sum);break;</p><p>  case 3: sum=del(students,sum);break;</p><p>  case 4: inquire(students,sum); break;</p><p> 

114、 case 5: count(students,sum); break;</p><p>  case 6:sort(students,sum); break;</p><p>  case 7:output(students,sum); break;</p><p>  case 0: break; /*執(zhí)行完各模

115、塊后按0退出系統(tǒng)*/</p><p><b>  }</b></p><p>  }while(choice!=0);</p><p>  save_file(students,sum); /*保存執(zhí)行完各模塊后的學(xué)生信息*/</p><p><b>  }</b></p&

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫僅提供信息存儲(chǔ)空間,僅對用戶上傳內(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

提交評論