學(xué)生學(xué)籍管理系統(tǒng)課程設(shè)計(jì)1_第1頁(yè)
已閱讀1頁(yè),還剩30頁(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>  通過(guò)本次課程設(shè)計(jì),強(qiáng)化上機(jī)動(dòng)手能力,在理論和實(shí)踐的基

2、礎(chǔ)上進(jìn)一步鞏固 《C語(yǔ)言程序設(shè)計(jì)》課程的學(xué)習(xí)內(nèi)容,掌握工程軟件設(shè)計(jì)的基本方法。學(xué)會(huì)將知識(shí)應(yīng)用與實(shí)際結(jié)合的方法,提高分析和解決問(wèn)題的能力,增加綜合能力。為后續(xù)各門計(jì)算機(jī)課程的學(xué)習(xí)打下堅(jiān)實(shí)基礎(chǔ),為畢業(yè)設(shè)計(jì)和以后工作打下必要基礎(chǔ),通過(guò)本次課程設(shè)計(jì)基本掌握C語(yǔ)言的實(shí)際應(yīng)用基礎(chǔ)與技巧。</p><p><b>  二、課程設(shè)計(jì)內(nèi)容</b></p><p> ?。?)運(yùn)用結(jié)構(gòu)體和

3、指針編輯一個(gè)學(xué)生學(xué)籍管理系統(tǒng),使之能夠完成學(xué)生基本信息的創(chuàng)建(錄入)、查詢、刪除、排序、添加、修改、退出操作。</p><p>  (2)執(zhí)行編譯操作,并根據(jù)提示調(diào)試此程序,排除所有的錯(cuò)誤和警告。直到編譯成功為止。</p><p>  (3)執(zhí)行運(yùn)行操作,逐一對(duì)每個(gè)模塊進(jìn)行調(diào)試。直到全部程序運(yùn)行成功為止。</p><p>  (4)請(qǐng)老師檢查,向老師演練此程序,并能

4、回答老師提出的相關(guān)問(wèn)題。</p><p><b>  三、需求分析</b></p><p>  1.該學(xué)生學(xué)籍管理系統(tǒng),添加用戶密碼登陸功能,能夠完成學(xué)生基本信息的錄入、修改、添加、查詢、刪除、排序、輸出、退出操作。</p><p>  每個(gè)模塊的功能如下:</p><p>  A、錄入模塊能夠完成學(xué)生學(xué)號(hào)、姓名、性別、

5、年齡、出生年月、所在院系專業(yè)、學(xué)制、班級(jí)的輸入。</p><p>  B、更新模塊中可以對(duì)學(xué)生信息進(jìn)行添加、刪除、修改。</p><p>  C、查詢模塊能按學(xué)號(hào)或姓名查詢一個(gè)學(xué)生的全部信息,并能顯示該學(xué)生的全部信息,可以查詢所有已經(jīng)錄入的學(xué)生信息。</p><p>  D、排序模塊將按照學(xué)生學(xué)號(hào)的順序進(jìn)行所有學(xué)生基本信息的排序并顯示。</p><

6、;p>  E、退出模塊可直接退出此程序,結(jié)束操作。</p><p>  2.創(chuàng)建該學(xué)生學(xué)籍管理系統(tǒng)目的就是能夠?qū)W(xué)生基本信息進(jìn)行創(chuàng)建(錄入)、修改、添加、查詢、刪除、排序等功能,這樣可以簡(jiǎn)化許多人工做起來(lái)很復(fù)雜的問(wèn)題。譬如:“排序”,有了此程序只需將信息輸入,計(jì)算機(jī)就可自動(dòng)執(zhí)行,省時(shí)、省力。另外,它還可以重復(fù)使用,方便、快捷。</p><p>  3.該學(xué)生信息管理系統(tǒng)是在VC++

7、6.0環(huán)境下運(yùn)行。</p><p>  方法:1、添加學(xué)生信息:選擇添加輸入學(xué)生信息。</p><p>  2、刪除學(xué)生信息:可選擇按學(xué)號(hào)進(jìn)行刪除,如要?jiǎng)h除某學(xué)生的信息,按學(xué)號(hào)刪除,輸入該學(xué)生的學(xué)號(hào),核對(duì)屏幕上的信息,確認(rèn)刪除即可。</p><p>  3、修改學(xué)生信息:輸入要修改學(xué)生的學(xué)號(hào),顯示該生所有信息,可按屏幕所顯示的提示操作,修改其任意信息,如選擇修改年齡

8、,再輸入,顯示出修改后的信息,然后詢問(wèn)是否繼續(xù)。Y則繼續(xù),N則退回主界面。</p><p>  4、查詢模塊:按姓名或?qū)W號(hào)選擇對(duì)應(yīng)的選項(xiàng)進(jìn)行查詢。</p><p>  5、排序模塊:選擇按學(xué)號(hào)排序</p><p><b>  四、概要設(shè)計(jì)</b></p><p>  1.系統(tǒng)結(jié)構(gòu)圖(功能模塊圖)</p>&

9、lt;p>  對(duì)系統(tǒng)進(jìn)行分析,給出系統(tǒng)結(jié)構(gòu)圖:</p><p><b>  主函數(shù)</b></p><p>  刪除模塊:刪除一個(gè)學(xué)生的信息。del()</p><p>  修改模塊:對(duì)一個(gè)學(xué)生的信息中錯(cuò)誤的部分進(jìn)行修改。Change()</p><p>  添加模塊:添加一個(gè)學(xué)生的信息。insert_messa

10、ge()</p><p><b>  1.按姓名查詢</b></p><p><b>  2.按學(xué)號(hào)查詢。</b></p><p><b>  1.升序排列</b></p><p><b>  2.降序排列</b></p><p>

11、<b>  退出系統(tǒng)</b></p><p><b>  2.功能模塊說(shuō)明</b></p><p>  對(duì)各個(gè)模塊進(jìn)行功能的描述:</p><p>  (1).輸入模塊:Input()</p><p>  實(shí)現(xiàn)學(xué)生基本信息的基本輸入如學(xué)號(hào)、姓名、性別、年齡、出生年月、所在院系專業(yè)、學(xué)制、班級(jí)。<

12、;/p><p>  (2).排序模塊:void sort(struct student_type students[],int sum)</p><p>  根據(jù)統(tǒng)計(jì)信息將住宿人員按某因素進(jìn)行排序。</p><p>  (3).更新模塊:A.修改模塊: void modify(struct student_type students[],int sum) <

13、;/p><p>  B.添加模塊:void add(struct student_type students[],int *sum)</p><p>  C.刪除模塊:int del(struct student_type students[],int sum)</p><p>  處理各種可能出現(xiàn)的意外情況如想插入新數(shù)據(jù),修改某學(xué)生信息,刪除錯(cuò)誤信息等。</p&

14、gt;<p>  (4).查詢模塊:按照學(xué)號(hào)進(jìn)行查詢并顯示學(xué)生的信息:</p><p>  void reserch(struct student_type students[],int sum)</p><p>  根據(jù)一定規(guī)則排序好的數(shù)據(jù),輸入一定信息后顯示該信息的其他信息。</p><p>  (5).輸出模塊:Output(),將查詢結(jié)果輸出。

15、</p><p>  五、詳細(xì)設(shè)計(jì)及運(yùn)行結(jié)果</p><p>  流程圖, 函數(shù)之間相互調(diào)用的圖示 ,程序設(shè)計(jì)及編碼, 運(yùn)行結(jié)果。</p><p>  六、調(diào)試情況,設(shè)計(jì)技巧及體會(huì)</p><p>  1、對(duì)自己設(shè)計(jì)進(jìn)行評(píng)價(jià),指出合理和不足之處,提出改進(jìn)的方案。</p><p>  通過(guò)兩周的編程,我完成了學(xué)生證管理這

16、個(gè)小系統(tǒng)。進(jìn)一步理解并掌握了C 語(yǔ)言中的精華指針和結(jié)構(gòu)體。程序可以流暢運(yùn)行,實(shí)現(xiàn)對(duì)數(shù)據(jù)的錄入、修改、插入、刪除、排序、查詢、統(tǒng)計(jì)等基本功能。程序開始時(shí)從文件中讀取數(shù)據(jù),結(jié)束時(shí)對(duì)新數(shù)據(jù)或更新的數(shù)據(jù)進(jìn)行保存,以便下次再次調(diào)用。但不足之處在于我沒(méi)有用鏈表。</p><p>  2、在設(shè)計(jì)過(guò)程中的感受。</p><p>  本次課程設(shè)計(jì)我感受頗深,對(duì)我無(wú)疑是一次巨大大的挑戰(zhàn),實(shí)習(xí)過(guò)程中我深刻感受到

17、我C語(yǔ)言編程方面的不足,尤其是鏈表的使用,我雖然完成了本次設(shè)計(jì),但沒(méi)能使用鏈表是我最大的遺憾,今后我會(huì)在此方面多下工夫,熟練掌握他。還有此次實(shí)習(xí)對(duì)我函數(shù),結(jié)構(gòu)體,指針,文件,等各方面的知識(shí)來(lái)了一次系統(tǒng)的復(fù)習(xí),是我明白自己還存在很多很多的不足,以后還需多下工夫,真正實(shí)現(xiàn)很完整優(yōu)秀的編程。</p><p><b>  七、參考文獻(xiàn)</b></p><p>  1.《C語(yǔ)言

18、程序設(shè)計(jì)》 王曙燕 曹錳 科學(xué)出版社 2005年2月</p><p>  2.《C語(yǔ)言程序設(shè)計(jì)》 譚浩強(qiáng) 清華大學(xué)出版社 1999年12月</p><p><b>  八、附錄:源代碼</b></p><p> ?。?,詳見(jiàn)電子版實(shí)驗(yàn)報(bào)告)</p><p>  #include<stdio

19、.h></p><p>  #include<stdlib.h></p><p>  #include<string.h></p><p>  #include<conio.h></p><p>  #define MAX 100</p><p><b>  int

20、m=3;</b></p><p>  struct day_type /*日期結(jié)構(gòu)體類型*/</p><p><b>  { </b></p><p><b>  int year;</b></p><p>  int month;</p><p><b&

21、gt;  };</b></p><p>  struct student_type</p><p><b>  { </b></p><p>  char num[10]; /*學(xué)號(hào)*/</p><p>  char name[10]; /*姓名*/</p><p&

22、gt;  char sex[4]; /*性別(男為m,女為w)*/</p><p>  int age; /*年齡*/</p><p>  struct day_type birthday; /*出生年月*/</p><p>  char aa[20];/*所在院系專業(yè)*/</p><p>

23、;  int xue[10];/*學(xué)制*/</p><p>  int clas;/*班級(jí)*/</p><p><b>  };</b></p><p>  int number;</p><p>  int read_file(struct student_type students[]) </p>

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

25、;</p><p><b>  return 0;</b></p><p><b>  }</b></p><p>  while(!feof(fp))</p><p>  { fread(&students[i],sizeof(struct student_type),1,fp);<

26、/p><p>  if(students[i].num==0)</p><p><b>  break;</b></p><p><b>  else</b></p><p><b>  i++;</b></p><p><b>  }</b

27、></p><p>  fclose(fp);</p><p><b>  return i;</b></p><p><b>  }</b></p><p>  void save_file(struct student_type students[],int sum)</p>

28、<p>  { FILE *fp;</p><p><b>  int i;</b></p><p>  if((fp=fopen("student.txt","wt"))==NULL)</p><p>  { printf("讀文件錯(cuò)誤\n");</p>&

29、lt;p><b>  return;</b></p><p><b>  }</b></p><p>  for(i=0;i<sum;i++)</p><p>  if(fwrite(&students[i],sizeof(struct student_type),1,fp)!=1)</p>

30、<p>  printf("寫文件錯(cuò)誤\n");</p><p>  fclose(fp);</p><p><b>  }</b></p><p>  void mima(void)</p><p><b>  {</b></p><p>

31、<b>  int j;</b></p><p>  char mima[4];</p><p>  printf("請(qǐng)輸入密碼:");</p><p>  for(j=0;j<6;j++)</p><p><b>  {</b></p><p>&

32、lt;b>  int t;</b></p><p>  for(t=0;t<3;t++)</p><p><b>  {</b></p><p>  mima[t]=getch();</p><p>  putch('*');</p><p><b&g

33、t;  }</b></p><p>  mima[3]='\0';</p><p><b>  getch();</b></p><p>  if(strcmp(mima,"123")==0)</p><p><b>  {</b></p>

34、<p>  printf("成功登陸!\n");</p><p>  printf("\t歡迎您的到來(lái)!\n");</p><p><b>  break;</b></p><p><b>  }</b></p><p><b>  e

35、lse</b></p><p><b>  {</b></p><p><b>  if(m==0)</b></p><p><b>  {</b></p><p><b>  int i;</b></p><p>  

36、printf("密碼錯(cuò)誤,請(qǐng)您停止輸入 !\n");</p><p>  printf("由于您設(shè)置了密碼提示,按任意鍵進(jìn)入下一步操作!\n");</p><p><b>  getch();</b></p><p>  printf("\t\t1:找回密碼;\n\t\t2:退出系統(tǒng)!!\n&q

37、uot;);</p><p>  scanf("%d",&i);</p><p><b>  while(1)</b></p><p><b>  {</b></p><p><b>  if(i==1)</b></p><p&g

38、t;<b>  break;</b></p><p><b>  if(i==2)</b></p><p><b>  exit(0);</b></p><p><b>  }</b></p><p><b>  }</b></

39、p><p><b>  if(m!=4)</b></p><p><b>  {</b></p><p>  printf("\n\t\t密碼錯(cuò)誤!\n\t\t\t你還有%d次輸入機(jī)會(huì)!\n",m);</p><p><b>  m--;</b></p&g

40、t;<p>  printf("請(qǐng)重新輸入密碼:");</p><p><b>  }</b></p><p><b>  }</b></p><p><b>  }</b></p><p><b>  }</b><

41、/p><p><b>  /*輸入模塊*/</b></p><p>  int input(struct student_type students[])</p><p><b>  { </b></p><p><b>  int i=0;</b></p><

42、p>  system("cls");</p><p>  printf("\n請(qǐng)輸入要錄入的學(xué)生的個(gè)數(shù)(最多%d個(gè)):\n",MAX);</p><p>  scanf("%d",&number);</p><p>  printf("\n\n 錄入學(xué)生學(xué)生證信

43、息 (最多錄入%d個(gè))\n",number);</p><p>  printf(" ---------------------------------------\n");</p><p>  while(i<number)</p><p><b>  { </b></p>&l

44、t;p>  printf("\n 第%d個(gè)學(xué)生",i+1);</p><p>  printf("\n 學(xué)生學(xué)號(hào):");</p><p>  scanf("%s",students[i].num);</p><p>  if(students[i].num==0) break;</p>

45、<p>  printf("\n 學(xué)生姓名:");</p><p>  scanf("%s",students[i].name);</p><p>  printf("\n 學(xué)生性別(男為m,女為w):");</p><p>  scanf("%s",students[

46、i].sex);</p><p>  printf("\n 學(xué)生年齡:");</p><p>  scanf("%d",&students[i].age);</p><p>  printf("\n 學(xué)生出生年月(xxxx-yy):");</p><p>  scanf(

47、"%d-%d",&students[i].birthday.year,&students[i].birthday.month);</p><p>  printf("\n 所在院系專業(yè):");</p><p>  scanf("%s",students[i].aa);</p><p>  

48、printf("\n 班級(jí):");</p><p>  scanf("%d",&students[i].clas);</p><p>  printf("\n 學(xué)制");</p><p>  scanf("%d",&students[i].xue);</p>

49、;<p><b>  i++;</b></p><p><b>  }</b></p><p>  printf("\n %d個(gè)學(xué)生學(xué)生證信息已成功錄入!\n",i);</p><p>  getchar();</p><p>  printf("\n

50、按回車鍵返回主菜單!");</p><p>  getchar();</p><p><b>  return i;</b></p><p><b>  }</b></p><p><b>  /*輸出模塊*/</b></p><p>  vo

51、id output(struct student_type students[],int sum)</p><p>  { FILE *fp;</p><p><b>  int i=0;</b></p><p>  system("cls");</p><p>  fp=fopen("st

52、udent.txt","rt");</p><p>  printf("\n ----學(xué)生證信息---- \n\n");</p><p>  printf("\n*********************************************************

53、***************\n");</p><p>  printf("\n學(xué)生學(xué)號(hào)-學(xué)生姓名-學(xué)生性別-學(xué)生年齡-出生年月(xxxx-yy)-院系專業(yè)-班級(jí)-學(xué)制\n");</p><p>  printf("\n-----------------------------------------------------------------

54、-------\n");</p><p><b>  do</b></p><p>  { fread(&students[i],sizeof(struct student_type),1,fp);</p><p>  if(students[i].num!=0)</p><p><b>  

55、{</b></p><p>  printf("%4s %5s %2s %2d %7d-%2d %3s %d %d\n",students[i].num,students[i].name,</p><p>  students[i].sex,students[i].age,students[i].birthday.year,stu

56、dents[i].birthday.month,</p><p>  students[i].aa,students[i].clas,students[i].xue);</p><p>  printf("------------------------------------------------------------------------\n");</p

57、><p><b>  i++;</b></p><p><b>  }</b></p><p>  }while(i<sum);</p><p>  getchar();</p><p>  printf("按回車鍵返回主菜單");</p>

58、<p>  getchar();</p><p>  fclose(fp);</p><p><b>  }</b></p><p>  void modify(struct student_type students[],int sum) /*修改模塊*/ </p><p><b>

59、;  { </b></p><p>  int i=0,choice,flag;</p><p>  char modify_num[8];</p><p><b>  do</b></p><p>  { system("cls");</p><p>  prin

60、tf("\n 請(qǐng)輸入要修改的學(xué)生的學(xué)號(hào):");</p><p>  scanf("%s",modify_num);</p><p>  for(i=0;i<sum;i++)</p><p>  if(!strcmp(students[i].num,modify_num))</p>&

61、lt;p><b>  {</b></p><p>  printf("\n ----學(xué)生證信息---- \n ");</p><p>  printf("\n**********************************************************************&q

62、uot;);</p><p>  printf("學(xué)生學(xué)號(hào)-學(xué)生姓名-學(xué)生性別-學(xué)生年齡-出生年月(xxxx-yy)-院系專業(yè)-班級(jí)-學(xué)制\n");</p><p>  printf("------------------------------------------------------------------------\n");</p

63、><p>  printf("%4s %5s %2s %2d %8d-%2d %3s %d %d\n",students[i].num,students[i].name,</p><p>  students[i].sex,students[i].age,students[i].birthday.year,students[i].birthday

64、.month,</p><p>  students[i].aa,students[i].clas,students[i].xue);</p><p>  printf("1.學(xué)號(hào) 2.姓名 3.性別 4.年齡 5.出生年月(xxxx-yy) 6.院系專業(yè) 7.班級(jí) 8.學(xué)制\n");</p><p>  printf("請(qǐng)輸入要修改項(xiàng)

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

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

67、別:");</p><p>  scanf("%s",students[i].sex); break;</p><p>  case 4: printf("\n 輸入修改后的學(xué)生年齡:");</p><p>  scanf("%d",&students[i].age); break;<

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

69、6: printf("輸入修改后的學(xué)生專業(yè)院系:"); </p><p>  scanf("%s",students[i].aa);break;</p><p>  case 7: printf("\n 輸入修改后的班級(jí)");</p><p>  scanf("%d",&stud

70、ents[i].clas);break;</p><p>  case 8: printf("\n 輸入修改后的學(xué)制");</p><p>  scanf("%d",&students[i].xue);</p><p><b>  }</b></p><p>  print

71、f("\n ----學(xué)生證信息----(修改后) \n ");</p><p>  printf("\n**********************************************************************");</p><p>  printf("學(xué)生學(xué)號(hào)-學(xué)生姓名-學(xué)

72、生性別-學(xué)生年齡-出生年月(xxxx-yy)-院系專業(yè)-班級(jí)-學(xué)制\n");</p><p>  printf("------------------------------------------------------------------------\n");</p><p>  printf("%4s %6s %2s %2

73、d %8d-%2d %3s %d %d\n",students[i].num,students[i].name,</p><p>  students[i].sex,students[i].age,students[i].birthday.year,students[i].birthday.month,</p><p>  students[i].aa,studen

74、ts[i].clas,students[i].xue);</p><p>  getchar();</p><p><b>  break;</b></p><p><b>  }</b></p><p>  if(i==sum) {printf("\n 該學(xué)生不存在");

75、 getchar();}</p><p>  save_file(students,sum);</p><p>  printf("\n\n 您要繼續(xù)修改嗎?( Y/N(選擇N則返回主菜單) )");</p><p>  choice=getchar();</p><p>  if(choice=='Y'

76、;||choice=='y')</p><p><b>  { flag=1;</b></p><p>  printf("\n 繼續(xù)修改!\n");</p><p><b>  }</b></p><p>  else flag=0;</p>&l

77、t;p>  }while(flag==1);</p><p>  printf("\n");</p><p><b>  }</b></p><p>  void reserch(struct student_type students[],int sum) /*查詢模塊*/</p><

78、;p>  { int i=0,choice,flag;</p><p>  char reserch[8];</p><p><b>  do</b></p><p>  { system("cls");</p><p>  printf("\n 請(qǐng)選擇查詢方式

79、: 1.按學(xué)號(hào) 2.按姓名\n");</p><p>  scanf("%d",&choice);</p><p>  switch(choice)</p><p>  { case 1: printf("\n 請(qǐng)輸入要查詢的學(xué)生的學(xué)號(hào):");</p><p&

80、gt;  scanf("%s",reserch);</p><p>  for(i=0;i<sum;i++)</p><p>  if(!strcmp(students[i].num,reserch))</p><p><b>  { </b></p><p>  printf("\n

81、 ----學(xué)生證信息---- \n ");</p><p>  printf("\n**********************************************************************\n");</p><p>  printf("學(xué)生學(xué)號(hào)-學(xué)生姓名-學(xué)生性別-學(xué)生年齡-出生年月

82、(xxxx-yy)-院系專業(yè)-班級(jí)-學(xué)制\n");</p><p>  printf("\n----------------------------------------------------------------------");</p><p>  printf("%4s %6s %2s %2d %8d-%2d

83、%3s %d %d\n",students[i].num,</p><p>  students[i].name,students[i].sex,students[i].age,students[i].birthday.year,</p><p>  students[i].birthday.month,students[i].aa,students[i].clas,stude

84、nts[i].xue);</p><p>  getchar();</p><p><b>  break;</b></p><p><b>  }break;</b></p><p>  case 2: printf("\n 請(qǐng)輸入要查詢的學(xué)生的姓名:"

85、);</p><p>  scanf("%s",reserch);</p><p>  for(i=0;i<sum;i++)</p><p>  if(!strcmp(students[i].name,reserch))</p><p><b>  { </b></p><p

86、>  printf("\n ----學(xué)生證信息---- \n ");</p><p>  printf("\n**********************************************************************");</p><p>  printf("學(xué)生學(xué)號(hào)-

87、學(xué)生姓名-學(xué)生性別-學(xué)生年齡-出生年月(xxxx-yy)-院系專業(yè)-班級(jí)-學(xué)制\n");</p><p>  printf("------------------------------------------------------------------------\n");</p><p>  printf("%4s %6s %2

88、s %2d %8d-%2d %3s %d %d\n",students[i].num,students[i].name,</p><p>  students[i].sex,students[i].age,students[i].birthday.year,students[i].birthday.month,</p><p>  students[i].

89、aa,students[i].clas,students[i].xue);</p><p>  getchar();</p><p><b>  break;</b></p><p><b>  }break;</b></p><p><b>  }</b></p>

90、<p>  if(i==sum) {printf("\n 該學(xué)生不存在"); getchar();}</p><p>  printf("\n\n 您要繼續(xù)查詢嗎?( Y/N(選擇N則返回主菜單) )");</p><p>  choice=getchar();</p><p>  if(choice=

91、='Y'||choice=='y')</p><p><b>  { </b></p><p><b>  flag=1;</b></p><p>  printf("\n 繼續(xù)修改!\n");</p><p><b>  }</b

92、></p><p>  else flag=0;</p><p><b>  }</b></p><p>  while(flag==1);</p><p>  printf("\n");</p><p><b>  }</b></p>

93、<p>  void sort(struct student_type students[],int sum) /*排序模塊*/ </p><p><b>  { </b></p><p>  int i,j,choice;</p><p>  printf("\n按學(xué)號(hào)排序: 1:升序!2:降序!\n\n&

94、quot;);</p><p>  scanf("%d",&choice);</p><p>  printf("\n ----學(xué)生證信息表---- \n\n");</p><p>  printf("\n****************************

95、******************************************");</p><p>  printf("學(xué)生學(xué)號(hào)-學(xué)生姓名-學(xué)生性別-學(xué)生年齡-出生年月(xxxx-yy)-院系專業(yè)-班級(jí)-學(xué)制\n");</p><p>  printf("--------------------------------------------

96、----------------------------\n");</p><p>  switch(choice)</p><p><b>  {</b></p><p><b>  case 1:</b></p><p><b>  { </b></p&

97、gt;<p>  struct student_type t;</p><p>  system("cls");</p><p>  for(i=0;i<sum-1;i++)</p><p>  for(j=i+1;j<sum;j++)</p><p><b>  { </b>

98、;</p><p>  if(strcmp(students[i].num,students[j].num)>0)</p><p><b>  { </b></p><p>  t=students[i];</p><p>  students[i]=students[j];</p><p>

99、;  students[j]=t;</p><p><b>  }</b></p><p><b>  }</b></p><p><b>  } break;</b></p><p><b>  case 2:</b></p><p&

100、gt;<b>  {</b></p><p>  struct student_type t;</p><p>  system("cls");</p><p>  for(i=0;i<sum-1;i++)</p><p>  for(j=i+1;j<sum;j++)</p>

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

102、students[j];</p><p>  students[j]=t;</p><p><b>  }</b></p><p><b>  }</b></p><p><b>  } break;</b></p><p><b>  }&l

103、t;/b></p><p>  for(i=0;i<sum;i++)</p><p><b>  { </b></p><p>  printf("%3s %4s %2s %2d %6d-%2d %3s %d %d\n",students[i].num,students[i].name,

104、</p><p>  students[i].sex,students[i].age,students[i].birthday.year,students[i].birthday.month,</p><p>  students[i].aa,students[i].clas,students[i].xue);</p><p>  printf("----

105、-----------------------------------------------------------------\n");</p><p><b>  }</b></p><p>  getchar();</p><p>  printf("\n 按回車鍵返回主菜單!");</p>

106、<p>  getchar();</p><p><b>  }</b></p><p>  int del(struct student_type students[],int sum) /*刪除模塊*/ </p><p><b>  { </b></p><p>  

107、int i,j,k=0;</p><p>  char del_num[8];</p><p>  system("cls");</p><p>  printf("請(qǐng)輸入要?jiǎng)h除的學(xué)生證信息的學(xué)號(hào)\n\n");</p><p>  scanf("%s",del_num);</p

108、><p>  for(i=0;i<sum;i++)</p><p>  if(strcmp(students[i].num,del_num)==0)</p><p>  for(j=i;j<sum;j++)</p><p>  students[j]=students[j+1];</p><p>  else

109、 k++;</p><p>  if(k==sum)</p><p><b>  { </b></p><p>  printf("該學(xué)生不存在\n");</p><p>  getchar();</p><p>  printf("按回車鍵返回主菜單");

110、</p><p>  getchar();</p><p>  return(sum);</p><p><b>  }</b></p><p><b>  else</b></p><p>  { save_file(students,sum);</p>&l

111、t;p>  printf("恭喜您刪除成功:\n");</p><p>  getchar();</p><p>  printf("\n 按回車鍵返回主菜單!");</p><p>  getchar();</p><p>  return(sum-1);</p><p&g

112、t;<b>  }</b></p><p><b>  }</b></p><p><b>  /*添加模塊*/</b></p><p>  void add(struct student_type students[],int *sum)</p><p>  { int i,

113、flag; char choice;</p><p>  system("cls");</p><p><b>  i=(*sum);</b></p><p><b>  do</b></p><p><b>  {</b></p><

114、p><b>  if(i<MAX)</b></p><p><b>  { </b></p><p>  printf(" 請(qǐng)輸入要添加的學(xué)生的學(xué)生證信息:\n");</p><p>  printf("\n 學(xué)生學(xué)號(hào):");</p><p> 

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

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

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

118、n 學(xué)生所在的院系:");</p><p>  scanf("%s",students[i].aa);</p><p>  printf("\n 學(xué)生班級(jí):");</p><p>  scanf("%d",&students[i].clas);</p><p>

119、  printf("\n 學(xué)生學(xué)制:");</p><p>  scanf("%d",&students[i].xue);</p><p><b>  (*sum)++;</b></p><p><b>  i=(*sum);</b></p><p>

120、;  getchar();</p><p>  printf("\n 恭喜您成功添加一個(gè)學(xué)生的信息!\n");</p><p>  getchar();</p><p>  printf("\n 是否繼續(xù)添加??( Y/N(選擇N則返回主菜單) )\n");</p><p>  choice=getch

121、ar();</p><p>  if(choice=='Y'||choice=='y')</p><p><b>  { flag=1;</b></p><p>  printf("\n 繼續(xù)添加!\n");</p><p><b>  }</b>

122、</p><p>  else flag=0;</p><p><b>  }</b></p><p>  else {printf("\n 返回主菜單\n"); break;}</p><p><b>  }</b></p><p>  while(fl

123、ag==1);</p><p><b>  }</b></p><p>  void main(void)</p><p><b>  { </b></p><p>  int choice,sum;</p><p>  /*system("color "

124、);*/</p><p>  struct student_type students[MAX];</p><p>  sum=read_file(students)-1;</p><p>  if(sum==0)</p><p><b>  { </b></p><p>  printf(&qu

125、ot;按回車鍵開始錄入基本學(xué)生信息!");</p><p>  getchar();</p><p>  sum=input(students);</p><p>  save_file(students,sum);</p><p><b>  }</b></p><p><b&g

126、t;  do</b></p><p><b>  { </b></p><p>  system("cls");</p><p>  printf("\n **************恭喜您成功進(jìn)入學(xué)生證管理系統(tǒng)*****************\n ");</p>

127、<p>  printf("\n ***********************************************************\n\n");</p><p>  printf(" ~~ 1.請(qǐng)輸入學(xué)生的學(xué)生證信息 ~~ \n\n");</p><p>  p

128、rintf(" ~~ 2.查詢學(xué)生證信息 ~~ \n\n");</p><p>  printf(" ~~ 3.輸出學(xué)生證信息 ~~ \n\n");</p><p>  printf(" ~~ 4.

129、添加學(xué)生證信息 ~~ \n\n");</p><p>  printf(" ~~ 5.排序?qū)W生證信息 ~~ \n\n");</p><p>  printf(" ~~ 6.修改學(xué)生證信息 ~~ \n\n");</p>&l

130、t;p>  printf(" ~~ 7.刪除學(xué)生證信息 ~~ \n\n");</p><p>  printf(" ~~ 8.退出系統(tǒng) ~~ \n\n");</p><p>  printf("\n\t輸入密碼***\n&q

131、uot;);</p><p><b>  mima();</b></p><p>  printf(" 請(qǐng)選擇您要執(zhí)行的操作(1-8):\n");</p><p>  scanf("%d",&choice);</p><p>  switch

132、(choice)</p><p><b>  { </b></p><p>  case 1: sum=input(students); save_file(students,sum); break;</p><p>  case 2: reserch(students,sum); break;</p><p>  ca

133、se 3: save_file(students,sum); output(students,sum); break;</p><p>  case 4: add(students,&sum); save_file(students,sum); break;</p><p>  case 5: sort(students,sum); break;</p><p

134、>  case 6: modify(students,sum); save_file(students,sum); break;</p><p>  case 7: sum=del(students,sum); save_file(students,sum); break;</p><p>  case 8: printf("祝您好運(yùn)!拜拜!\n"); break

135、;</p><p><b>  }</b></p><p><b>  }</b></p><p>  while(choice!=8);</p><p>  save_file(students,sum);</p><p><b>  }</b><

溫馨提示

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