學(xué)生學(xué)籍管理系統(tǒng)課程設(shè)計(jì)9_第1頁(yè)
已閱讀1頁(yè),還剩14頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、<p><b>  軟件設(shè)計(jì)報(bào)告</b></p><p>  題 目: 學(xué)生學(xué)籍管理系統(tǒng) </p><p><b>  一、 課程設(shè)計(jì)目的</b></p><p>  應(yīng)用所學(xué)的計(jì)算機(jī)基礎(chǔ)知識(shí)和所掌握的程序設(shè)計(jì)語(yǔ)言(C語(yǔ)

2、言),自主實(shí)現(xiàn)一個(gè)較為完整的小型管理信息系統(tǒng)的設(shè)計(jì)與開(kāi)發(fā)。通過(guò)系統(tǒng)分析、系統(tǒng)設(shè)計(jì)、編程調(diào)試,寫(xiě)實(shí)驗(yàn)報(bào)告等環(huán)節(jié),初步掌握軟件系統(tǒng)設(shè)計(jì)的方法和步驟,訓(xùn)練靈活運(yùn)用程序設(shè)計(jì)語(yǔ)言進(jìn)行軟件開(kāi)發(fā)的能力,提高分析問(wèn)題和解決問(wèn)題的能力,提高程序設(shè)計(jì)水平,培養(yǎng)必要的工程實(shí)踐動(dòng)手能力</p><p><b>  二、課程設(shè)計(jì)內(nèi)容</b></p><p>  用所學(xué)過(guò)的C語(yǔ)言知識(shí)(文件,結(jié)構(gòu)

3、體,函數(shù))編程一個(gè)學(xué)生證的程序,并完成對(duì)數(shù)據(jù)的錄入、修改、刪除等一系列操作。</p><p><b>  三、需求分析</b></p><p>  對(duì)所開(kāi)發(fā)系統(tǒng)功能、性能的描述,想要實(shí)現(xiàn)的目標(biāo)。</p><p>  學(xué)生分配:(系別,專(zhuān)業(yè),班級(jí))</p><p>  學(xué)生信息表:(學(xué)號(hào),姓名,性別,年齡,出生年月,民族,

4、院系,班級(jí),家庭住址)</p><p> ?。?)數(shù)據(jù)存儲(chǔ):(文件讀寫(xiě))</p><p>  (4)數(shù)據(jù)的更新:(刪除,修改,)</p><p> ?。?)數(shù)據(jù)的查詢:(按學(xué)號(hào))</p><p>  (6)數(shù)據(jù)排序:(按學(xué)號(hào)升序排列)</p><p> ?。?)數(shù)據(jù)統(tǒng)計(jì):(按班級(jí))</p><p&g

5、t; ?。?)密碼設(shè)置:通過(guò)密碼才能進(jìn)入該系統(tǒng)。</p><p><b>  四、概要設(shè)計(jì)</b></p><p> ?。?)系統(tǒng)結(jié)構(gòu)圖(功能模塊圖)</p><p>  對(duì)系統(tǒng)進(jìn)行分析,給出系統(tǒng)結(jié)構(gòu)圖;</p><p><b>  主函數(shù)</b></p><p>  (2.

6、)功能模塊說(shuō)明</p><p>  對(duì)各個(gè)模塊進(jìn)行功能的描述。</p><p>  首先輸入密碼,密碼輸入正確之后方可進(jìn)入程序并對(duì)其進(jìn)行進(jìn)一步的操作,否則跳出程序。</p><p>  1.輸入模塊:錄入系統(tǒng)所需的全部數(shù)據(jù)信息,如學(xué)號(hào)、姓名、年齡、班級(jí)、院系等信息;</p><p>  2.存儲(chǔ)模塊:將錄入的數(shù)據(jù)存儲(chǔ),用文件的形式將錄的數(shù)據(jù)存

7、儲(chǔ); </p><p>  3.添加模塊:對(duì)所需存儲(chǔ)的數(shù)據(jù)進(jìn)添加操作;</p><p>  4.修改模塊:根據(jù)學(xué)號(hào)對(duì)需要更正的數(shù)據(jù)信息進(jìn)行修改操作;</p><p>  5.刪除模塊:對(duì)數(shù)據(jù)進(jìn)行刪除操作,根據(jù)學(xué)號(hào)將對(duì)應(yīng)記錄刪除;</p><p>  6.查詢模塊:按要求對(duì)數(shù)據(jù)進(jìn)行查詢,根據(jù)學(xué)號(hào)將該學(xué)生信息輸出;</p><

8、p>  7.統(tǒng)計(jì)模塊:按要求根據(jù)班級(jí)信息統(tǒng)計(jì)學(xué)生信息;</p><p>  8.打印模塊:按學(xué)號(hào)由小到大將學(xué)生的各項(xiàng)信息輸出;</p><p>  五、詳細(xì)設(shè)計(jì)及運(yùn)行結(jié)果</p><p>  流程圖, 函數(shù)之間相互調(diào)用的圖示 ,程序設(shè)計(jì)及編碼, 運(yùn)行結(jié)果。</p><p><b>  N</b></p>

9、<p>  Y </p><p><b>  Y</b></p><p><b>  Y</b></p><p><b>  N</b></p><p><b>  Y</b><

10、;/p><p><b>  N</b></p><p><b>  N </b></p><p>  Y </p><p>  N </p><p><b>  Y </b></p><

11、;p><b>  N</b></p><p>  H Y</p><p><b>  N</b></p><p><b>  Y</b></p><p>  六、調(diào)試情況,設(shè)計(jì)技巧及體會(huì)</p><p>  1、對(duì)自己設(shè)計(jì)

12、進(jìn)行評(píng)價(jià),指出合理和不足之處,提出改進(jìn)的方案。</p><p>  2、在設(shè)計(jì)過(guò)程中的感受。</p><p>  通過(guò)兩周的努力,我終于完成了這個(gè)學(xué)籍管理系統(tǒng),使其可以完成數(shù)據(jù)的錄入、存儲(chǔ)、修改等功能。在課程設(shè)計(jì)中通過(guò)系統(tǒng)分析、系統(tǒng)設(shè)計(jì)、編程調(diào)試,寫(xiě)實(shí)驗(yàn)報(bào)告等環(huán)節(jié),我已經(jīng)初步掌握軟件系統(tǒng)設(shè)計(jì)的方法和步驟,提高分析問(wèn)題和解決問(wèn)題的能力以及提高程序設(shè)計(jì)水平,更為重要的是加強(qiáng)培養(yǎng)了必要的工程實(shí)踐

13、動(dòng)手能力。不足的是結(jié)構(gòu)還是過(guò)于簡(jiǎn)單,沒(méi)能用到指針及鏈表,對(duì)于時(shí)間的把握也不是很好,沒(méi)有在預(yù)期的時(shí)間內(nèi)完成預(yù)期的效果。</p><p>  在這兩周內(nèi),充分體會(huì)到了自己能力的不足,沒(méi)有老師同學(xué)的幫助可能到現(xiàn)在還不能完成這次課程設(shè)計(jì),也體會(huì)到了C語(yǔ)言的獨(dú)特魅力,值得我去進(jìn)一步的學(xué)習(xí),也是第一次將課本中的知識(shí)運(yùn)用到實(shí)踐中,讓我認(rèn)識(shí)到加強(qiáng)自我能力培養(yǎng)的重要性??傊瑢⒅R(shí)運(yùn)用于實(shí)踐是一件很不易的事情自己還需努力完善自我。

14、</p><p><b>  七、參考文獻(xiàn)</b></p><p>  《C語(yǔ)言程序設(shè)計(jì)》 王曙燕 曹錳 科學(xué)出版社 2005年2月</p><p>  《C語(yǔ)言程序設(shè)計(jì)》 譚浩強(qiáng) 清華大學(xué)出版社 1999年12月</p><p>  《C語(yǔ)言程序設(shè)計(jì)教程》 張毅坤 曹錳 張亞玲 西

15、安交通大學(xué)出版社</p><p><b>  八、附錄:源代碼</b></p><p>  (略,詳見(jiàn)電子版實(shí)驗(yàn)報(bào)告)</p><p>  #include "stdio.h"</p><p>  #include "stdlib.h"</p><p>  

16、#include "string.h"</p><p>  #define N 30 //宏定義學(xué)生的總?cè)藬?shù)</p><p>  typedef struct</p><p><b>  {</b></p><p><b>  int year;</b><

17、/p><p>  int month;</p><p><b>  int day; </b></p><p>  }DATE; /*日期結(jié)構(gòu)體類(lèi)型*/</p><p>  typedef struct </p><p><b>  {</b></p>

18、<p>  char id[9]; /*學(xué)號(hào)*/</p><p>  char name[21];/*名字*/</p><p>  char sex [7];/*性別*/</p><p>  int age;/*年齡*/</p><p>  DATE birth;/*出生年月*/</p><p>  ch

19、ar minzu[81];/*民族*/</p><p>  char depart[81];/*院系*/</p><p>  char classes[21];/*班級(jí)*/</p><p>  char addr[21];/*家庭住址*/</p><p>  }STUDENTS;</p><p><b>  

20、/*讀取模塊*/</b></p><p>  int read_file(STUDENTS students[])</p><p>  { FILE *fp;</p><p><b>  int i=0;</b></p><p>  if((fp=fopen("stu.txt",&q

21、uot;rt"))==NULL)</p><p>  { printf("\n\n*****庫(kù)存文件不存在!請(qǐng)創(chuàng)建");</p><p><b>  return 0;</b></p><p><b>  }</b></p><p>  while((fread(&a

22、mp;students[i],sizeof(STUDENTS),1,fp))==1) //每次從讀取STUDENTS的字節(jié)數(shù)</p><p><b>  { </b></p><p><b>  i++;</b></p><p><b>  }</b></p><p&

23、gt;  fclose(fp);</p><p>  return i; //每次讀后保存加總數(shù)1</p><p><b>  }</b></p><p><b>  /*保存模塊*/</b></p><p>  void

24、 save_file(STUDENTS students[],int sum)</p><p>  { FILE *fp;</p><p><b>  int i;</b></p><p>  if((fp=fopen("stu.txt","wb"))==NULL)</p><p&

25、gt;  { printf("讀文件錯(cuò)誤!\n"); //如果文件打開(kāi)錯(cuò)誤提示用戶,然后返回</p><p><b>  return;</b></p><p><b>  }</b></p><p>  for(i=0;i<sum;i++)<

26、;/p><p>  if(fwrite(&students[i],sizeof(STUDENTS),1,fp)!=1) </p><p>  printf("寫(xiě)文件錯(cuò)誤!\n");</p><p>  fclose(fp); //保存完畢關(guān)閉文件</p

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

28、>  printf("\n\n 錄入學(xué)生信息 (最多%d個(gè))\n",N);</p><p>  printf(" ------------------\n");</p><p>  printf("請(qǐng)輸入要錄入的學(xué)生信息個(gè)數(shù)s:");

29、 //讓用戶輸入需輸入的學(xué)生信息個(gè)數(shù)</p><p>  scanf("%d",&s);</p><p>  printf("\n\n 錄入學(xué)生信息\n");</p><p>  printf(" ---------------

30、--------------------------------------\n");</p><p><b>  do</b></p><p><b>  {</b></p><p>  printf("\n 第%d個(gè)學(xué)生",i+1);</p>

31、<p>  printf("\n 學(xué)號(hào):");</p><p>  scanf("%s",students[i].id );</p><p>  if(students[i].id==0) break; </p><p>  printf("\n

32、 姓名:");</p><p>  scanf("%s",students[i].name );</p><p>  printf("\n 性別:");</p><p>  scanf("%s",students[i].sex);</p&

33、gt;<p>  printf("\n 年齡:");</p><p>  scanf("%d",&students[i]. age);</p><p>  printf("\n 出生日期:");</p><p> 

34、 scanf("%d %d %d",&students[i].birth.year,&students[i].birth.month,&students[i].birth.day);</p><p>  flushall();</p><p>  printf("\n 民族:");</

35、p><p>  scanf("%s",students[i].minzu);</p><p>  printf("\n 院系:");</p><p>  scanf("%s",students[i].depart);</p><p>  printf(

36、"\n 班級(jí):");</p><p>  scanf("%s",students[i].classes);</p><p>  printf("\n 家庭住址:");</p><p>  scanf("%s",stu

37、dents[i].addr);</p><p><b>  i++;</b></p><p>  }while(i<s); //當(dāng)i小于要輸入的總數(shù)s則跳出循環(huán)</p><p>  printf("\n -----%d

38、個(gè)學(xué)生的信息錄入完畢!----\n",s);</p><p>  printf("\n 按任意鍵返回主菜單!");</p><p><b>  getch();</b></p><p>  return s;

39、 //向住函數(shù)返回學(xué)生數(shù)</p><p><b>  }</b></p><p><b>  /*輸出模塊*/</b></p><p>  void output(STUDENTS students[],int sum) </p><p&

40、gt;<b>  { </b></p><p>  int i=0,j=0;</p><p>  int PAGE=1;</p><p>  printf("\n\n --學(xué)生信息表-- 第%d頁(yè)\n\n",PAGE);</p&

41、gt;<p>  printf("學(xué)號(hào)--姓名--性別--年齡--出生日期(年-月-日)--民族--院系--班級(jí)--家庭住址 \n");</p><p>  printf("----------------------------------------------------------------------------");</p><

42、;p><b>  do</b></p><p><b>  {</b></p><p>  if(students[i].id!=0)</p><p><b>  {</b></p><p><b>  j++;</b></p><

43、;p>  if(j%PAGE!=0)</p><p><b>  {</b></p><p>  printf("%8s %8s %4s %4d %10d-%2d-%2d ",students[i].id,students[i].name,students[i].sex,students[i].age,students[i].birth.ye

44、ar,students[i].birth. month,students[i].birth. day);</p><p>  printf("---------------------------------------------------------------------------");</p><p><b>  }</b></p

45、><p><b>  else</b></p><p><b>  {</b></p><p>  printf("按任意鍵繼續(xù)!");</p><p><b>  getch();</b></p><p>  system("

46、cls");</p><p>  printf("\n\n --學(xué)生信息表-- 第%d頁(yè)\n\n", PAGE+1);</p><p>  printf("--民族--院系--班級(jí)--家庭住址--\n");</p><p>  printf("----------------------

47、------------------------------------------------------");</p><p>  printf("%20s %20s %10s %20s",students[i].minzu,students[i].depart,students[i].classes,</p><p>  students[i].addr

48、);</p><p>  printf("--------------------------------------------------------------------------------");</p><p><b>  }</b></p><p><b>  }</b></p&g

49、t;<p><b>  i++;</b></p><p><b>  }</b></p><p>  while (students[i].id!=0);</p><p>  printf("按任意鍵返回主菜單");</p><p><b>  getch

50、();</b></p><p><b>  }</b></p><p><b>  /*添加模塊*/</b></p><p>  int add(STUDENTS students[],int sum )</p><p><b>  {</b></p>

51、<p>  int i=sum,choice,flag;</p><p>  char add_id[9];</p><p>  read_file(students); //先從文件中讀取數(shù)據(jù)</p><p><b>  do</b></p>

52、<p><b>  {</b></p><p>  system("cls"); //清屏</p><p>  printf("\n 輸入要添加的學(xué)生學(xué)號(hào)");</p><p> 

53、 scanf("%s",add_id);</p><p>  for(i=0;i<sum;i++)</p><p><b>  {</b></p><p>  if(strcmp(add_id,students[i].id)==0) //將要添加的學(xué)生學(xué)號(hào)與原來(lái)的進(jìn)行比較<

54、;/p><p>  {printf("該學(xué)生信息已存在!");</p><p><b>  getch();</b></p><p><b>  return;}</b></p><p><b>  }</b></p><p>  pri

55、ntf("\n輸入要添加的學(xué)生信息\n"); </p><p>  printf("學(xué)號(hào)--姓名--性別--年齡--出生日期(年-月-日)--民族--院系--班級(jí)--家庭住址\n");</p><p>  scanf("%s%s%s%d%d%d%d%S%s%s%s",student

56、s[i].id,students[i].name,students[i].sex,&students[i].age,&students[i].birth.year,&students[i].birth .month ,&students[i].birth .day,students[i].minzu ,students[i].depart ,students[i].classes ,students[i]

57、.addr );</p><p>  printf(" --學(xué)生信息--\n"); //顯示新添加的學(xué)生信息</p><p>  printf("學(xué)號(hào)--姓名--性別--年齡--出生日期(年-月-日)--民族--院系--班級(jí)--家庭住址\n");</p><p

58、>  printf("%8s %8s %4s %4d %10d-%2d-%2d %20s %20s %10s %20s",students[i].id,students[i].name,students[i].sex,students[i].age,students[i].birth.year,students[i].birth. month,students[i].birth. day,students[i]

59、.minzu,students[i].depart,students[i].classes,students[i].addr);</p><p><b>  sum++;</b></p><p>  printf("\n\n 繼續(xù)添加嗎?(Y||N)");</p><p>  choice=getch();</p&g

60、t;<p>  if(choice=='y'||choice=='Y')</p><p><b>  {</b></p><p>  flag=1; //如果選擇y則繼續(xù)添加</p><p>  

61、printf("\n 繼續(xù)\n");</p><p><b>  }</b></p><p>  else flag=0;</p><p><b>  }</b></p><p>  while(flag==1);</p><p>  save_fil

62、e(students,sum); //保存添加的學(xué)生信息</p><p>  printf("\n 按任意鍵返回主菜單!");</p><p>  getchar();</p><p>  return sum;

63、 //向住函數(shù)返回值</p><p><b>  }</b></p><p><b>  /*修改模塊*/</b></p><p>  void modify(STUDENTS students[],int sum)</p><p><b>  {&l

64、t;/b></p><p>  int i=0,choice,flag;</p><p>  char modify_id[9];</p><p><b>  do</b></p><p>  {system("cls");</p><p>  printf("

65、\n 輸入要修改的學(xué)生學(xué)號(hào):");</p><p>  scanf("%s",&modify_id);</p><p>  for(i=0;i<sum;i++)</p><p>  if(strcmp(students[i].id ,modify_id)==0) //將要修改的學(xué)

66、生學(xué)號(hào)與原來(lái)存入的進(jìn)行比較</p><p><b>  {</b></p><p>  printf("\n --學(xué)生信息--\n"); </p><p>  printf("學(xué)號(hào)--姓名--性別--年齡--出生日期(年-月-日)--民族--院系--班級(jí)--家庭住址\n");&

67、lt;/p><p>  printf("-----------------------------------------------------------------------\n");</p><p>  printf("%8s %8s %4s %4d %10d-%2d-%2d %20s %20s %10s %20s",students[i].i

68、d,students[i].name,students[i].sex,students[i].age,students[i].birth.year,students[i].birth. month, students[i].birth.day,students[i].minzu,students[i].depart,students[i].classes,students[i].addr);</p><p>  

69、printf("\n 您要修改哪一項(xiàng)?\n");</p><p>  printf("\n 1.姓名\n");</p><p>  printf("\n 2.性別\n");

70、</p><p>  printf("\n 3.年齡\n");</p><p>  printf("\n 4.出生日期\n");</p><p>  printf("\n

71、 5.民族\n");</p><p>  printf("\n 6.院系\n");</p><p>  printf("\n 7.班級(jí)\n");</p><p>  printf("\n

72、 8.家庭住址\n");</p><p>  printf(" \n 請(qǐng)選擇(1--8)");</p><p>  scanf("%d",&choice);</p><p>  switch(choice

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

74、gt;</p><p>  case 2:printf("\n 輸入修改后的性別");</p><p>  scanf("%s",students[i].sex);</p><p><b>  break;</b></p><p>  case 3:printf(&qu

75、ot;\n 輸入修改后的年齡");</p><p>  scanf("%d",&students[i].age );</p><p><b>  break;</b></p><p>  case 4:printf("\n 輸入修改后的出生日期");</p&

76、gt;<p>  scanf("%d%d%d",&students[i].birth.year ,&students[i].birth.month ,&students[i].birth.day );</p><p><b>  break;</b></p><p>  case 5:printf("

77、\n 輸入修改后的民族");</p><p>  scanf("%s",students[i].minzu );</p><p><b>  break;</b></p><p>  case 6:printf("\n 輸入修改后的院系");</p><

78、;p>  scanf("%s",students[i].depart);</p><p><b>  break;</b></p><p>  case 7:printf("\n 輸入修改后的班級(jí)");</p><p>  scanf("%s",students[i]

79、.classes);</p><p><b>  break;</b></p><p>  case 8:printf("\n 輸入修改后的家庭住址");</p><p>  scanf("%s",students[i].addr);</p><p><b>

80、  break;</b></p><p><b>  }</b></p><p>  printf("\n -- 學(xué)生信息--\n"); //顯示修改后的學(xué)生信息</p><p>  printf("學(xué)號(hào)--姓名--性別--年齡--出生日期(年-

81、月-日)--民族--院系--班級(jí)--家庭住址\n");</p><p>  printf("%8s %8s %4s %4d %10d-%2d-%2d %20s %20s %10s %20s",students[i].id,students[i].name,students[i].sex,students[i].age,students[i].birth.year,students[i

82、].birth.month,students[i].birth.day,students[i].minzu,students[i].depart,students[i].classes,students[i].addr);</p><p><b>  break;</b></p><p><b>  }</b></p><p&

83、gt;  if(i==sum) </p><p>  {printf("該學(xué)生信息不存在!");</p><p><b>  }</b></p><p>  printf("\n\n 繼續(xù)修改嗎?(Y||N)");</p><p>  choice=getch();</

84、p><p>  if(choice=='Y'||choice=='y')</p><p><b>  {</b></p><p>  flag=1; //如果選擇y則繼續(xù)進(jìn)行修改</p><p>  

85、printf("\n 繼續(xù)!");</p><p><b>  }</b></p><p>  else flag=0;</p><p><b>  }</b></p><p>  while(flag==1);</p><p>  printf(

86、"\n 按任意鍵返回主菜單!");</p><p><b>  }</b></p><p><b>  /*刪除模塊*/</b></p><p>  del( STUDENTS students[],int sum)</p><p><b>

87、;  {</b></p><p>  int i=0,j,choice,flag;</p><p>  char del_id[9];</p><p><b>  do</b></p><p><b>  {</b></p><p>  system("

88、cls");</p><p>  printf("\n 請(qǐng)輸入要?jiǎng)h除的學(xué)生學(xué)號(hào):");</p><p>  scanf("%s",del_id);</p><p>  for(i=0;i<sum;i++)</p><p><b>  {</b>&

89、lt;/p><p>  if(strcmp(del_id,students[i].id )==0) //將選擇刪除的學(xué)生學(xué)號(hào)與原來(lái)保存的進(jìn)行比較</p><p><b>  {</b></p><p>  printf(" -- 學(xué)生信息--\n");

90、 //顯示要?jiǎng)h除的學(xué)生信息</p><p>  printf("學(xué)號(hào)--姓名--性別--年齡--出生日期(年-月-日)--民族--院系--班級(jí)--家庭住址\n");</p><p>  printf("-----------------------------------------------------------------------\n")

91、;</p><p>  printf("%8s %8s %4s %4d %10d-%2d-%2d %20s %20s %10s %20s",students[i].id,students[i].name,students[i].sex,students[i].age,students[i].birth.year,students[i].birth.month,students[i].birth

92、.day,students[i].minzu,students[i].depart,students[i].classes,students[i].addr);</p><p><b>  }</b></p><p>  if(i==sum)</p><p>  printf("該學(xué)生信息不存在!");</p>

93、<p><b>  }</b></p><p>  printf("\n確認(rèn)刪除嗎(y||n)");</p><p>  choice=getch(); //確認(rèn)是否刪除</p><p>  if(choice=='y'

94、||choice=='Y')</p><p>  { for(i=0;i<sum;i++) </p><p>  {if(strcmp(del_id,students[i].id)==0) //將下一個(gè)學(xué)生的信息覆蓋前一個(gè)學(xué)生的信息完成刪除</p><p>  for(j=i;j<sum-1;j++)</p>

95、;<p>  {students[j]=students[j+1];</p><p><b>  }</b></p><p>  printf("\n該學(xué)生信息已刪除!\n"); </p><p><b>  }</b></p><p><

96、b>  }</b></p><p>  printf("繼續(xù)刪除嗎?");</p><p>  choice=getch();</p><p>  if(choice=='y'||choice=='Y')</p><p><b>  {</b><

97、/p><p>  flag=1; //如果選擇y則繼續(xù)刪除</p><p>  printf(" 繼續(xù)!\n");</p><p><b>  }</b></p><p>  else flag=0;</p&g

98、t;<p>  }while(flag==1);</p><p>  save_file(students,sum); //保存刪除后的結(jié)果</p><p>  printf("\n 按任意鍵返回主菜單!");</p><p>  return sum-1;

99、 //因刪除后所以向主函數(shù)返回原總數(shù)減1的個(gè)數(shù)</p><p><b>  }</b></p><p><b>  /*查尋模塊*/</b></p><p>  void inquire(STUDENTS students[],int sum)</p>

100、<p><b>  {</b></p><p>  int i=0,flag;</p><p>  char inquire_id[9];</p><p><b>  do</b></p><p>  { </p><p>  p

101、rintf("\n 輸入要查詢的學(xué)生學(xué)號(hào):");</p><p>  scanf("%s",inquire_id);</p><p>  for(i=0;i<sum;i++) //將要查詢的學(xué)生學(xué)號(hào)與</p><p>  if(strcmp(

102、students[i].id ,inquire_id)==0)</p><p><b>  {</b></p><p>  printf("\n -- 學(xué)生信息-- "); //顯示要查詢的學(xué)生信息</p><p>  printf("學(xué)號(hào)--姓名

103、--性別--年齡--出生日期(年-月-日)--民族--院系--班級(jí)--家庭住址\n");</p><p>  printf("-----------------------------------------------------------------------\n");</p><p>  printf("%8s %8s %4s %4d %1

104、0d-%2d-%2d %20s %20s %10s %20s",students[i].id,students[i].name,students[i].sex,students[i].age,students[i].birth.year,students[i].birth.month,students[i].birth.day,students[i].minzu,students[i].depart,students[i].c

105、lasses,students[i].addr);</p><p><b>  }</b></p><p>  else flag=0;</p><p><b>  }</b></p><p>  while(flag==1);</p><p>  getch();

106、 </p><p>  printf("\n 按任意鍵返回主菜單!");</p><p><b>  }</b></p><p><b>  /*統(tǒng)計(jì)模塊*/</b>&l

107、t;/p><p>  void count (STUDENTS students[],int sum)</p><p>  { int i,j=0;</p><p>  char s[5]; //定義要查詢的班級(jí)名</p><p>  printf("請(qǐng)輸入要統(tǒng)計(jì)的班級(jí)的學(xué)生的

108、班級(jí)號(hào):");</p><p>  scanf("%s",s);</p><p>  for(i=0;i<sum;i++) //對(duì)所有學(xué)生信息進(jìn)行遍歷 </p><p><b>  {</b></p><p>  if(strcmp(

109、s,students[i].classes)==0)</p><p>  j++; //如果是該班級(jí)學(xué)生則數(shù)據(jù)加1</p><p><b>  }</b></p><p>  printf("%s班的總?cè)藬?shù)為%d人.",s,j);</p><p&

110、gt;<b>  getch();</b></p><p><b>  }</b></p><p>  /*按學(xué)號(hào)排序輸出*/</p><p>  void sort(STUDENTS students[],int sum)</p><p><b>  {int i,j;</b>

111、;</p><p>  char t[9];</p><p>  for(i=0;i<sum-1;i++) //遍歷所有學(xué)生信息</p><p>  for(j=i+1;j<sum;j++)</p><p>  { if(strcmp(students[i].id,students[j].id)&

112、gt;0)//將學(xué)號(hào)進(jìn)行比較</p><p>  { strcpy(t,students[i].id);</p><p>  strcpy(students[i].id,students[j].id);</p><p>  strcpy(students[j].id,t);</p><p><b>  }</b><

113、;/p><p><b>  }</b></p><p>  printf("按學(xué)號(hào)排序輸出:\n");</p><p>  for(i=0;i<sum;i++)</p><p>  {printf("學(xué)號(hào)--姓名--性別--年齡--出生日期(年-月-日)--民族--院系--班級(jí)--家庭住址

114、\n");</p><p>  printf("%8s %8s %4s %4d %10d-%2d-%2d %20s %20s %10s %20s\n",students[i].id,students[i].name,students[i].sex,students[i].age,students[i].birth.year,students[i].birth.month,studen

115、ts[i].birth.day,students[i].minzu,students[i].depart,students[i].classes,students[i].addr);</p><p>  printf("\n");</p><p><b>  }</b></p><p><b>  getch();

116、</b></p><p><b>  }</b></p><p>  void main()</p><p><b>  {</b></p><p>  STUDENTS students [N];</p><p>  int choice ,sum,mima;

117、</p><p>  printf("請(qǐng)輸入密碼:");</p><p>  scanf("%d",&mima);</p><p>  if(mima==123) //如果輸入密碼正確則進(jìn)入該系統(tǒng)否則跳出</p><p><b>  {<

118、;/b></p><p>  sum=read_file (students);</p><p>  if(sum==0)</p><p><b>  {</b></p><p>  printf("錄入基本學(xué)生信息!******\n");</p><p><b&g

119、t;  getch();</b></p><p>  sum=input(students);</p><p><b>  }</b></p><p><b>  do</b></p><p><b>  {</b></p><p>  sy

120、stem("cls");</p><p>  printf("\n\n\n **********學(xué)生管理系統(tǒng)**********\n\n");</p><p>  printf(" 1.添加學(xué)生信息\n\n");</p><p>

121、;  printf(" 2.修改學(xué)生信息\n\n");</p><p>  printf(" 3.刪除學(xué)生信息\n\n");</p><p>  printf(" 4.查詢學(xué)生信息\n\

122、n");</p><p>  printf(" 5.統(tǒng)計(jì)學(xué)生信息\n\n");</p><p>  printf(" 6.按學(xué)號(hào)打印學(xué)生信息\n\n");</p><p>  printf("

123、 0.退出系統(tǒng)\n\n");</p><p>  printf(" 請(qǐng)選擇(0-6): ");</p><p>  scanf("%d",&choice );</p><p>  switch(choice )&l

124、t;/p><p><b>  {</b></p><p>  case 1: sum=add(students,sum); break;</p><p>  case 2: modify(students,sum); break;</p><p>  case 3: sum=del(stude

125、nts,sum); break;</p><p>  case 4: inquire(students,sum); break;</p><p>  case 5: count(students,sum); break; </p><p>  case 6: sort(students,sum); br

126、eak;</p><p>  case 0: </p><p>  printf("謝謝使用!"); break;</p><p><b>  }</b></p><p><b>  }</b></p

127、><p>  while(choice!=0);</p><p>  save_file(students,sum); //保存各項(xiàng)操作結(jié)果</p><p><b>  }</b></p><p><b>  else </b></p><p>  p

溫馨提示

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