c語言學(xué)生成績(jī)管理系統(tǒng)課程設(shè)計(jì)報(bào)告 (2)_第1頁
已閱讀1頁,還剩25頁未讀, 繼續(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語言課程設(shè)計(jì)報(bào)告</b></p><p>  題 目: 學(xué)生成績(jī)管理系統(tǒng)</p><p>  院系名稱: 計(jì)算機(jī)學(xué)院</p><p>  專業(yè)名稱: 計(jì)算機(jī)科學(xué)與技術(shù)</p><p>  班 級(jí): </p><

2、;p>  學(xué)生姓名: </p><p>  學(xué)號(hào)(8位): </p><p>  指導(dǎo)教師: </p><p>  設(shè)計(jì)起止時(shí)間:2012年6月6日~2012年6月15日</p><p><b>  一. 設(shè)計(jì)目的</b></p><

3、p>  強(qiáng)化上機(jī)動(dòng)手能力,在理論和實(shí)踐的基礎(chǔ)上進(jìn)一步鞏固《C語言程序設(shè)計(jì)》課程學(xué)習(xí)的內(nèi)容,掌握工程化軟件設(shè)計(jì)的基本方法</p><p>  學(xué)會(huì)將知識(shí)應(yīng)用于實(shí)際的方法,提高分析和解決問題的能力,增加綜合能力</p><p>  為后續(xù)各門計(jì)算機(jī)課程的學(xué)習(xí)打下堅(jiān)實(shí)基礎(chǔ)</p><p><b>  二. 設(shè)計(jì)內(nèi)容</b></p>

4、<p><b>  1、密碼登錄;</b></p><p>  2、通過鍵盤輸入學(xué)生信息,包括學(xué)生學(xué)號(hào)、姓名、成績(jī);</p><p>  3、將輸入的信息保存到指定文件中;</p><p>  4、從文件中讀取學(xué)生信息;</p><p>  5、顯示全部學(xué)生信息;</p><p>  

5、6、按學(xué)生總分進(jìn)行降序排序;</p><p><b>  7、刪除學(xué)生信息;</b></p><p>  8、查找學(xué)生信息,可以通過學(xué)號(hào)查找,也可以通過姓名查找;</p><p>  9、統(tǒng)計(jì)學(xué)生信息,統(tǒng)計(jì)出最高分和學(xué)生人數(shù);</p><p><b>  10、退出系統(tǒng);</b></p>

6、<p><b>  三.概要設(shè)計(jì)</b></p><p><b>  1.功能模塊圖;</b></p><p>  2.各個(gè)模塊詳細(xì)的功能描述。</p><p>  1、密碼登錄:進(jìn)入系統(tǒng)前需輸入密碼口令,此處的密碼分為管理員登錄密碼“abcde”,學(xué)生登錄密碼“12345”;</p><

7、p>  2、輸入信息:輸入學(xué)生信息,包括:學(xué)號(hào)、姓名、成績(jī);</p><p>  3、顯示信息:顯示輸入的信息或者經(jīng)過處理后的信息</p><p>  4、查找信息:查找學(xué)生信息,可以按學(xué)號(hào)查找,也可以按姓名查找;</p><p>  5、修改信息:修改學(xué)生的任何信息;</p><p>  6、刪除信息:通過查找學(xué)生姓名刪除該學(xué)生信息;

8、</p><p>  7、排序信息:將輸入的學(xué)生信息排序,按總分成績(jī)降序排列;</p><p>  8、統(tǒng)計(jì)信息:統(tǒng)計(jì)出所有信息中的最高分成績(jī)的學(xué)生的信息和學(xué)生人數(shù)。</p><p><b>  四.詳細(xì)設(shè)計(jì)</b></p><p>  1.功能函數(shù)的調(diào)用關(guān)系圖</p><p>  2.各功能函數(shù)

9、的數(shù)據(jù)流程圖</p><p><b>  1、主函數(shù)模塊</b></p><p><b>  2、輸入模塊</b></p><p><b>  2、輸出與排序模塊</b></p><p>  3、刪除與修改信息模塊</p><p><b>  

10、4、統(tǒng)計(jì)信息模塊</b></p><p><b>  4、查找信息模塊</b></p><p><b>  3.重點(diǎn)設(shè)計(jì)及編碼</b></p><p>  此程序的重點(diǎn)是既能把學(xué)生信息保存到文件中,又能保存到磁盤中,方便實(shí)用與讀取,代碼如下:</p><p>  struct stude

11、nt *creat(struct student *p)//創(chuàng)建鏈表</p><p><b>  {</b></p><p>  struct student *p1 = NULL;</p><p>  p1 = (struct student*)malloc(sizeof (struct student));</p><p

12、>  p -> next = p1;</p><p>  p1 -> next = NULL;</p><p>  printf("請(qǐng)輸入要添加的學(xué)生的信息\n");</p><p>  printf("學(xué)號(hào):"); scanf("%s",p1 -> num);</p&

13、gt;<p>  printf("姓名: "); scanf("%s",p1 -> name);</p><p>  printf("數(shù)學(xué)成績(jī):"); scanf("%d",&p1 -> scorem);</p><p>  printf("英語成績(jī):&quo

14、t;); scanf("%d",&p1 -> scoree);</p><p>  printf("C成績(jī):"); scanf("%d",&p1 -> scorec);</p><p>  p1 -> sum = 0;</p><p>  p1 -> sum =

15、 p1 -> scorem + p1 -> scorec + p1 -> scoree; </p><p>  printf("總分:%d",p1 -> sum);</p><p>  return p1;</p><p><b>  }</b></p><p>  void

16、save1(struct student *p)//將鏈表從內(nèi)存保存到文件中</p><p><b>  {</b></p><p><b>  FILE *fp;</b></p><p>  if ((fp = fopen("d:\\學(xué)生成績(jī)管理系統(tǒng).txt","ab+")) ==

17、 NULL)</p><p>  printf("創(chuàng)建失敗!\n");</p><p>  while(p != NULL)</p><p><b>  {</b></p><p>  fwrite(p,sizeof(struct student),1,fp);</p><p>

18、;  p = p -> next;</p><p><b>  }</b></p><p>  fclose(fp);</p><p>  printf("保存成功!\n");</p><p><b>  }</b></p><p>  void s

19、ave2(struct student *p)//將以變動(dòng)的鏈表信息存入到文件中</p><p><b>  {</b></p><p><b>  FILE *fp;</b></p><p>  if ((fp = fopen("d:\\學(xué)生成績(jī)管理系統(tǒng).txt","wb")) =

20、= NULL)</p><p>  printf("創(chuàng)建失敗!\n");</p><p>  while(p != NULL)</p><p><b>  {</b></p><p>  fwrite(p,sizeof(struct student),1,fp);</p><p&g

21、t;  p = p -> next;</p><p><b>  }</b></p><p>  fclose(fp);</p><p><b>  }</b></p><p>  struct student *read()//把文件中的數(shù)據(jù)讀到鏈表中</p><p>

22、;<b>  {</b></p><p><b>  FILE *fp;</b></p><p>  struct student *head=NULL,*p1=NULL,*p2=NULL;</p><p>  if ((fp=fopen ("d:\\學(xué)生成績(jī)管理系統(tǒng).txt","rb+&qu

23、ot;))==NULL)</p><p><b>  {</b></p><p>  printf ("讀取時(shí),文件打開失敗!\n");</p><p>  return NULL;</p><p><b>  }</b></p><p>  head=p

24、1=(struct student *)malloc (sizeof (struct student ));</p><p>  while (fp != NULL) </p><p><b>  {</b></p><p>  if (fread(p1,sizeof (struct student ),1,f

25、p) != 1)break;</p><p>  p1 -> next = (struct student *)malloc (sizeof (struct student ));</p><p>  p2= p1; </p><p>  p1= p1 -> next;</p><

26、p><b>  }</b></p><p>  p2->next = NULL;</p><p>  fclose (fp);</p><p>  return head;</p><p><b>  }</b></p><p>  五.測(cè)試數(shù)據(jù)及運(yùn)行結(jié)果<

27、;/p><p>  正常測(cè)試數(shù)據(jù)和運(yùn)行結(jié)果</p><p><b>  1.按總分排序</b></p><p>  2.刪除某個(gè)學(xué)生信息</p><p><b>  查找學(xué)生信息</b></p><p><b>  異常測(cè)試數(shù)據(jù)及運(yùn)行</b></p&g

28、t;<p><b>  刪除信息出現(xiàn)異常</b></p><p>  2.修改學(xué)生信息出現(xiàn)異常</p><p>  六.調(diào)試情況,設(shè)計(jì)技巧及體會(huì)</p><p>  1、對(duì)自己設(shè)計(jì)進(jìn)行評(píng)價(jià) </p><p>  不夠細(xì)心,開始的時(shí)候出現(xiàn)很多錯(cuò)誤</p><p><b>  

29、沒有寫登錄函數(shù)</b></p><p>  寫的過于簡(jiǎn)短,且大部分都是書上照抄的</p><p>  2 .調(diào)試上得到的體會(huì):在最后的調(diào)試過程中,發(fā)現(xiàn)有時(shí)候系統(tǒng)報(bào)錯(cuò),指出了錯(cuò)誤所在的具體位置,可是檢查的時(shí)候發(fā)現(xiàn)該位置并未出錯(cuò),這樣的錯(cuò)誤首先要查找前后幾行,如果還未檢查出錯(cuò)誤,那就很有可能在該函數(shù)的首部或是主函數(shù)的調(diào)用語句中出現(xiàn)錯(cuò)誤。發(fā)現(xiàn)該部分并未出現(xiàn)語法錯(cuò)誤,即編譯不報(bào)錯(cuò),程序

30、運(yùn)行后,有時(shí)候會(huì)出現(xiàn)意想不到的結(jié)果,會(huì)在想不到的地方跳出程序,甚至不知道程序的什么地方就跳出了,用在不同的地方加不必要的printf語句!以檢查是否運(yùn)行到printf語句。</p><p>  3.設(shè)計(jì)上得到的體會(huì):在初步設(shè)計(jì)時(shí)要明確要使用的數(shù)據(jù)結(jié)構(gòu)和類型,明確設(shè)計(jì)的基本思想,清楚所寫程序的邏輯結(jié)構(gòu)和執(zhí)行順序,在調(diào)試時(shí)才能在出現(xiàn)問題時(shí)及時(shí)的找到問題的所在.在完成了初步的設(shè)計(jì)并調(diào)試完成后,要進(jìn)一步優(yōu)化程序的結(jié)構(gòu),使

31、程序更簡(jiǎn)潔,執(zhí)行效率更高.</p><p>  總之,第一次完成比較正式的程序,在開始的時(shí)候遇到了不少問題,包括怎么排序,怎么添加,怎么查找,怎么刪除等一系列問題,但我并沒有慌張,而是由一個(gè)問題入手,最后將它們一一攻破,順利而又艱難的完成了這次任務(wù);通過這次實(shí)習(xí),我的編程能力得到了很大的提高,算法思路也比以前清晰多了,基本上掌握了C語言的課程內(nèi)容,雖然只有為期兩周的實(shí)習(xí),但是我的C語言還是得到了進(jìn)一步的提高。不過

32、要想使自己的水平提高,還有待練習(xí)。雖然實(shí)習(xí)結(jié)束了,但是以后在工作中可能會(huì)經(jīng)常使用,這次的實(shí)習(xí)的確是一個(gè)很好的鍛煉機(jī)會(huì),它一定會(huì)使我受益終身的!</p><p><b>  七.參考文獻(xiàn)</b></p><p>  《C語言程序設(shè)計(jì)》 (第二版),</p><p>  《數(shù)據(jù)結(jié)構(gòu)(C語言)》 清華大學(xué)出版社</p><p&

33、gt;<b>  八.附錄:</b></p><p><b>  源代碼(電子版)</b></p><p>  #include<stdio.h></p><p>  #include<stdlib.h></p><p>  #include<string.h>&

34、lt;/p><p>  struct student</p><p><b>  {</b></p><p>  char num[9];</p><p>  char name[9];</p><p>  int scorem;</p><p>  int scoree;&l

35、t;/p><p>  int scorec;</p><p><b>  int sum;</b></p><p>  struct student *next;</p><p><b>  };</b></p><p>  struct student *creat(struc

36、t student *p)//創(chuàng)建鏈表</p><p><b>  {</b></p><p>  struct student *p1 = NULL;</p><p>  p1 = (struct student*)malloc(sizeof (struct student));</p><p>  p -> n

37、ext = p1;</p><p>  p1 -> next = NULL;</p><p>  printf("請(qǐng)輸入要添加的學(xué)生的信息\n");</p><p>  printf("學(xué)號(hào):"); scanf("%s",p1 -> num);</p><p> 

38、 printf("姓名: "); scanf("%s",p1 -> name);</p><p>  printf("數(shù)學(xué)成績(jī):"); scanf("%d",&p1 -> scorem);</p><p>  printf("英語成績(jī):"); scanf(&quo

39、t;%d",&p1 -> scoree);</p><p>  printf("C成績(jī):"); scanf("%d",&p1 -> scorec);</p><p>  p1 -> sum = 0;</p><p>  p1 -> sum = p1 -> score

40、m + p1 -> scorec + p1 -> scoree; </p><p>  printf("總分:%d",p1 -> sum);</p><p>  return p1;</p><p><b>  }</b></p><p>  void save1(struct st

41、udent *p)//將鏈表從內(nèi)存保存到文件中</p><p><b>  {</b></p><p><b>  FILE *fp;</b></p><p>  if ((fp = fopen("d:\\學(xué)生成績(jī)管理系統(tǒng).txt","ab+")) == NULL)</p>

42、;<p>  printf("創(chuàng)建失敗!\n");</p><p>  while(p != NULL)</p><p><b>  {</b></p><p>  fwrite(p,sizeof(struct student),1,fp);</p><p>  p = p ->

43、next;</p><p><b>  }</b></p><p>  fclose(fp);</p><p>  printf("保存成功!\n");</p><p><b>  }</b></p><p>  void save2(struct stu

44、dent *p)//將以變動(dòng)的鏈表信息存入到文件中</p><p><b>  {</b></p><p><b>  FILE *fp;</b></p><p>  if ((fp = fopen("d:\\學(xué)生成績(jī)管理系統(tǒng).txt","wb")) == NULL)</p&g

45、t;<p>  printf("創(chuàng)建失敗!\n");</p><p>  while(p != NULL)</p><p><b>  {</b></p><p>  fwrite(p,sizeof(struct student),1,fp);</p><p>  p = p ->

46、 next;</p><p><b>  }</b></p><p>  fclose(fp);</p><p><b>  }</b></p><p>  struct student *read()//把文件中的數(shù)據(jù)讀到鏈表中</p><p><b>  {&l

47、t;/b></p><p><b>  FILE *fp;</b></p><p>  struct student *head=NULL,*p1=NULL,*p2=NULL;</p><p>  if ((fp=fopen ("d:\\學(xué)生成績(jī)管理系統(tǒng).txt","rb+"))==NULL)<

48、;/p><p><b>  {</b></p><p>  printf ("讀取時(shí),文件打開失敗!\n");</p><p>  return NULL;</p><p><b>  }</b></p><p>  head=p1=(struct stude

49、nt *)malloc (sizeof (struct student ));</p><p>  while (fp != NULL) </p><p><b>  {</b></p><p>  if (fread(p1,sizeof (struct student ),1,fp) != 1)break;

50、</p><p>  p1 -> next = (struct student *)malloc (sizeof (struct student ));</p><p>  p2= p1; </p><p>  p1= p1 -> next;</p><p><b> 

51、 }</b></p><p>  p2->next = NULL;</p><p>  fclose (fp);</p><p>  return head;</p><p><b>  }</b></p><p>  struct student *input()//添加函數(shù)

52、</p><p><b>  {</b></p><p><b>  char ch;</b></p><p>  struct student *p = NULL,*head=NULL;</p><p>  head=p = (struct student*)malloc(sizeof(struc

53、t student));</p><p>  p-> next = NULL;</p><p>  printf("請(qǐng)輸入要添加的學(xué)生的信息\n");</p><p>  printf("學(xué)號(hào):"); scanf("%s",p -> num);</p><p>

54、  printf("姓名: "); scanf("%s",p -> name);</p><p>  printf("數(shù)學(xué)成績(jī):"); scanf("%d",&p -> scorem);</p><p>  printf("英語成績(jī):"); scanf(&

55、quot;%d",&p -> scoree);</p><p>  printf("C成績(jī):"); scanf("%d",&p -> scorec);</p><p>  p -> sum = 0;</p><p>  p -> sum = p -> scorem

56、 + p -> scorec + p -> scoree; </p><p>  printf("總分:%d",p -> sum);</p><p>  for (;;) </p><p>  {</p><p>  printf ("\n是否繼續(xù)輸入學(xué)生信息?

57、( y / n ):\n");</p><p>  getchar( );</p><p>  ch = getchar ( );</p><p>  if (ch == 'y'|| ch == 'Y')</p><p>  p = creat(p);</p><p>  e

58、lse if(ch=='n'|| ch=='N') </p><p><b>  {</b></p><p>  save1 (head);</p><p><b>  break;</b></p><p><b>  }</b></p&

59、gt;<p><b>  else </b></p><p>  printf ("您的輸入有誤,請(qǐng)重新輸入,");</p><p><b>  }</b></p><p>  return p->next;</p><p><b>  }<

60、;/b></p><p>  struct student *output()//輸出函數(shù),查看全部學(xué)生信息</p><p><b>  {</b></p><p>  struct student *p ;</p><p>  p = read(); </p><p>  if(read=

61、=NULL)</p><p><b>  exit(1);</b></p><p>  printf("\n *************************STUDENT***********************\n");</p><p>  printf(" -------------------

62、------------------------------------\n");</p><p>  printf(" | 學(xué)號(hào) | 姓名 | 數(shù)學(xué) | 英語 | C語言 | 總分 |\n");</p><p>  printf(" -------------------------------------------

63、------------\n");</p><p>  while (p != NULL)</p><p><b>  {</b></p><p>  p -> sum = 0;</p><p>  p -> sum = p -> scorem + p -> scoree + p -&g

64、t; scorec;</p><p>  printf(" | %4s | %-4s | %3d | %3d | %3d | %3d |\n",p->num,</p><p>  p->name,p->scorem,p->scoree,p->scorec,p->sum);</p><p&

65、gt;  printf(" -------------------------------------------------------\n");</p><p>  p = p -> next;</p><p><b>  }</b></p><p><b>  return p;</b>

66、</p><p><b>  }</b></p><p>  struct student *search()//查找函數(shù)</p><p><b>  {</b></p><p><b>  int n;</b></p><p>  char a[9],

67、b[9];</p><p>  struct student *p = NULL,*head = NULL;</p><p>  printf("請(qǐng)您選擇要查找的方式:1 按姓名 2 按學(xué)號(hào)\n");</p><p>  scanf("%d",&n);</p><p><b>  i

68、f(n==1)</b></p><p><b>  {</b></p><p>  printf("請(qǐng)輸入您要查找的學(xué)生的姓名:\n");</p><p>  scanf("%s",a);</p><p>  p=head=read();</p><

69、p>  while(p!=NULL)</p><p><b>  {</b></p><p>  if(p==NULL)</p><p><b>  {</b></p><p>  printf("對(duì)不起,沒有您要找的人。\n");</p><p>

70、<b>  }</b></p><p>  if(strcmp(p -> name,a)==0)</p><p><b>  {</b></p><p>  printf("\n *************************STUDENT***********************\n"

71、;);</p><p>  printf(" -------------------------------------------------------\n");</p><p>  printf(" | 學(xué)號(hào) | 姓名 | 數(shù)學(xué) | 英語 | C語言 | 總分 |\n");</p><p>

72、  printf(" -------------------------------------------------------\n");</p><p>  printf(" | %4s | %-4s | %3d | %3d | %3d | %3d |\n",p->num,</p><p>  p->

73、name,p->scorem,p->scoree,p->scorec,p->sum);</p><p>  printf(" -------------------------------------------------------\n");</p><p><b>  break;</b></p>&

74、lt;p><b>  }</b></p><p>  p=p->next;</p><p><b>  }</b></p><p><b>  }</b></p><p><b>  if(n==2)</b></p><p&

75、gt;<b>  {</b></p><p>  printf("請(qǐng)輸入您要查找的學(xué)生的學(xué)號(hào):\n");</p><p>  scanf("%s",b);</p><p>  p=head=read();</p><p>  while(p!=NULL)</p>&l

76、t;p><b>  {</b></p><p>  if(p==NULL)</p><p><b>  {</b></p><p>  printf("對(duì)不起,沒有您要找的人。\n");</p><p><b>  }</b></p>&

77、lt;p>  if(strcmp(p -> num,b)==0)</p><p><b>  {</b></p><p>  printf("\n *************************STUDENT***********************\n");</p><p>  printf(&qu

78、ot; -------------------------------------------------------\n");</p><p>  printf(" | 學(xué)號(hào) | 姓名 | 數(shù)學(xué) | 英語 | C語言 | 總分 |\n");</p><p>  printf(" ------------------

79、-------------------------------------\n");</p><p>  printf(" | %4s | %-4s | %3d | %3d | %3d | %3d |\n",p->num,</p><p>  p->name,p->scorem,p->scoree,p->

80、;scorec,p->sum);</p><p>  printf(" -------------------------------------------------------\n");</p><p><b>  break;</b></p><p><b>  }</b></p

81、><p>  p=p->next;</p><p><b>  }</b></p><p><b>  }</b></p><p>  return head;</p><p><b>  }</b></p><p>  str

82、uct student *dele()//刪除函數(shù)</p><p><b>  {</b></p><p>  struct student *p1=NULL,*p2=NULL,*head=NULL;</p><p>  char a[9];</p><p><b>  output();</b>&

83、lt;/p><p>  printf ("請(qǐng)輸入需要?jiǎng)h除信息的人的姓名:\n");</p><p>  scanf ("%s",a);</p><p>  p1=head=read();</p><p>  if(head==NULL)</p><p><b>  {<

84、;/b></p><p>  printf("對(duì)不起,暫時(shí)沒有信息,無法刪除。\n");</p><p><b>  }</b></p><p>  while (head!=NULL)</p><p><b>  {</b></p><p>  i

85、f(strcmp(a,head -> name) != 0 && p1->next!=NULL )</p><p><b>  {</b></p><p><b>  p2=head ;</b></p><p>  head= head->next ;</p><p&g

86、t;  if(head==NULL) break;</p><p><b>  }</b></p><p>  if(strcmp(a,head -> name) == 0 && p1==head)</p><p><b>  {</b></p><p>  p1=head-&

87、gt;next ;</p><p><b>  }</b></p><p>  if(strcmp(a,head->name)==0)</p><p><b>  {</b></p><p>  p2->next=head->next;</p><p>  

88、save2(p1);</p><p>  printf("該學(xué)生的信息刪除成功!");</p><p><b>  break;</b></p><p><b>  }</b></p><p><b>  }</b></p><p>

89、  if(head==NULL)</p><p>  printf("對(duì)不起,沒有該學(xué)生的信息。\n");</p><p>  return head;</p><p><b>  }</b></p><p>  struct student *change()//修改函數(shù)</p>&l

90、t;p><b>  {</b></p><p><b>  int a;</b></p><p>  char x[9];</p><p>  struct student *p = NULL,*head = NULL,*q = NULL;</p><p><b>  output(

91、);</b></p><p>  p = head = read();</p><p>  printf("請(qǐng)輸入要修改的人的姓名:\n");</p><p>  scanf("%s",x);</p><p>  if(p == NULL)</p><p><b

92、>  {</b></p><p>  printf("沒有這個(gè)人!\n");</p><p><b>  exit(1);</b></p><p><b>  }</b></p><p>  while (p != NULL)</p><p&

93、gt;<b>  {</b></p><p>  if (strcmp(p -> name,x) == 0)</p><p><b>  {</b></p><p><b>  q = p;</b></p><p><b>  break;</b>&

94、lt;/p><p><b>  }</b></p><p>  p = p -> next;</p><p><b>  }</b></p><p>  if(p!=NULL)</p><p><b>  {</b></p><p&

95、gt;  printf("請(qǐng)選擇修改的內(nèi)容:\n");</p><p>  printf("1.姓名\n");</p><p>  printf("2.學(xué)號(hào)\n"); </p><p>  printf("3.數(shù)學(xué)成績(jī)\n"); </p><p>  prin

96、tf("4.英語成績(jī)\n"); </p><p>  printf("5.C成績(jī)\n"); </p><p><b>  do </b></p><p><b>  {</b></p><p>  scanf ("%d",&a);

97、</p><p>  if(a < 0 || a > 6)</p><p>  printf ("您輸入的數(shù)字有誤,請(qǐng)重新輸入:\n");</p><p>  }while (a<=0||a>=6);</p><p>  switch (a)</p><p><b>

98、;  {</b></p><p>  case 1 :printf("請(qǐng)輸入更改后的姓名:\n"); scanf("%s",p -> name); break;</p><p>  case 2 :printf("請(qǐng)輸入更改后的學(xué)號(hào):\n"); scanf("%s",p -

99、> num); break;</p><p>  case 3 :printf("請(qǐng)輸入更改后的數(shù)學(xué)成績(jī):\n");scanf("%d",&p -> scorem);break;</p><p>  case 4 :printf("請(qǐng)輸入更改后的英語成績(jī):\n");scanf("%d&quo

100、t;,&p -> scoree);break;</p><p>  case 5 :printf("請(qǐng)輸入更改后的C成績(jī):\n"); scanf("%d",&p -> scorec);break;</p><p><b>  }</b></p><p>  p

101、->sum =0;</p><p>  p->sum=p->scorem +p->scoree +p->scorec ;</p><p>  printf("更改后的總分:%d",p->sum);</p><p>  save2 (head);</p><p><b>  ou

102、tput();</b></p><p><b>  }</b></p><p>  if(p==NULL)</p><p><b>  {</b></p><p>  printf("對(duì)不起,沒有這個(gè)人。\n");</p><p><b&

103、gt;  }</b></p><p>  return head;</p><p><b>  }</b></p><p>  struct student *sortsum(struct student *head)//排序函數(shù) </p><p><b>  {</b></p&

104、gt;<p>  struct student *p,*p1,*p2,*p3;</p><p>  struct student m, n;</p><p>  if (head == NULL) return NULL;</p><p>  m.next=head;</p><p><b>  p=&m;&

105、lt;/b></p><p>  while (p->next!=NULL)</p><p><b>  {</b></p><p>  p=p->next;</p><p><b>  }</b></p><p>  p=p->next=&n

106、;</p><p>  while (p!=m.next)</p><p><b>  {</b></p><p><b>  p3=&m;</b></p><p>  p1=p3->next;</p><p>  p2=p1->next;</p&g

107、t;<p>  while (p2!=p) </p><p><b>  {</b></p><p>  if ((p1 -> sum) < (p2 -> sum) ) </p><p><b>  {</b></p><p>  p1->next=p2->

108、;next;</p><p>  p2->next=p1;</p><p>  p3->next=p2;</p><p><b>  p3=p2; </b></p><p>  p2=p1->next;</p><p><b>  }</b></p&g

109、t;<p><b>  else</b></p><p><b>  {</b></p><p><b>  p3=p1;</b></p><p><b>  p1=p2;</b></p><p>  p2=p2->next;</

110、p><p><b>  }</b></p><p><b>  }</b></p><p><b>  p=p1;</b></p><p><b>  }</b></p><p>  while (p->next!=&n)

111、</p><p><b>  {</b></p><p>  p=p->next;</p><p><b>  }</b></p><p>  p->next=NULL;</p><p>  return m.next;</p><p>&

112、lt;b>  }</b></p><p>  struct student *outputsortsum()//總分排序輸出</p><p><b>  {</b></p><p><b>  int i=0;</b></p><p>  struct student *head

113、= NULL , *p = NULL;</p><p>  head = read();</p><p>  p = sortsum(head);</p><p>  printf("\n *************************STUDENT****************************\n");</p&g

114、t;<p>  printf(" ------------------------------------------------------------\n");</p><p>  printf(" | 名次 | 學(xué)號(hào) | 姓名 | 數(shù)學(xué) | 英語 | C語言 | 總分 |\n");</p><

115、p>  printf(" ------------------------------------------------------------\n"); </p><p>  while(p != NULL)</p><p><b>  {</b></p><p><b>  i++;<

116、;/b></p><p>  printf(" | %3d | %4s | %-4s | %3d | %3d | %3d | %3d |\n",i,p->num,</p><p>  p->name,p->scorem,p->scoree,p->scorec,p->sum);</p>

117、<p>  printf(" ------------------------------------------------------------\n");</p><p>  p=p->next;</p><p><b>  }</b></p><p>  return head;<

118、;/p><p><b>  }</b></p><p>  struct student *statistic()//統(tǒng)計(jì)函數(shù)</p><p><b>  {</b></p><p>  int m = 0;</p><p>  struct student *head=NULL

119、;</p><p>  struct student *p,*q;</p><p>  p = head = read();</p><p>  while( p != NULL)</p><p><b>  {</b></p><p><b>  m++;</b></

120、p><p>  p = p -> next;</p><p><b>  }</b></p><p>  printf("總共有%d個(gè)學(xué)生信息.\n\n",m);</p><p>  q= sortsum(head);</p><p>  printf("分?jǐn)?shù)最高的

121、學(xué)生的信息:\n");</p><p>  printf("\n ***********************STUDENT*************************\n");</p><p>  printf(" ---------------------------------------------------

122、----\n");</p><p>  printf(" | 學(xué)號(hào) | 姓名 | 數(shù)學(xué) | 英語 | C語言 | 總分 |\n");</p><p>  printf(" -------------------------------------------------------\n");&l

123、t;/p><p>  printf(" | %4s | %-4s | %3d | %3d | %3d | %3d |\n",q->num,</p><p>  q->name,q->scorem,q->scoree,q->scorec,q->sum);</p><p>  pr

124、intf(" -------------------------------------------------------\n");</p><p>  return head;</p><p><b>  }</b></p><p>  void mima1 ()</p><p>&l

125、t;b>  {</b></p><p><b>  while(1)</b></p><p><b>  {</b></p><p><b>  int a=1;</b></p><p><b>  int i;</b></p>

126、;<p>  char ch[10];</p><p>  char num[20]={"abcde"};</p><p>  printf("進(jìn)入管理員成績(jī)管理系統(tǒng)之前請(qǐng)先輸入密碼\n");</p><p>  printf("請(qǐng)輸入您的密碼 :\n");</p><p&

127、gt;  for(i=0;i<10;i++)</p><p><b>  {</b></p><p>  ch[i]=getch();</p><p>  if(ch[i]==13 ) break;</p><p>  putchar('*');</p><p><b&

128、gt;  }</b></p><p>  ch[i]='\0';</p><p>  if(strcmp(num,ch)==0)</p><p><b>  a = 0;</b></p><p><b>  if(a==0)</b></p><p>

129、;<b>  {</b></p><p>  printf("\n歡迎進(jìn)入管理員管理系統(tǒng) !\n");</p><p>  getchar();</p><p><b>  break;</b></p><p><b>  }</b></p>

130、<p><b>  else </b></p><p><b>  {</b></p><p>  printf("\n這個(gè)密碼是錯(cuò)誤的! ");</p><p>  printf("\n請(qǐng)輸入正確的密碼:");</p><p><b> 

131、 }</b></p><p><b>  }</b></p><p><b>  }</b></p><p>  void mima2 ()</p><p><b>  {</b></p><p><b>  while(1)<

132、;/b></p><p><b>  {</b></p><p><b>  int a=1;</b></p><p><b>  int i;</b></p><p>  char ch[10];</p><p>  char num[20]={

133、"12345"};</p><p>  printf("進(jìn)入學(xué)生成績(jī)管理系統(tǒng)之前請(qǐng)先輸入密碼\n");</p><p>  printf("請(qǐng)輸入您的密碼 :\n");</p><p>  for(i=0;i<10;i++)</p><p><b>  {</b

134、></p><p>  ch[i]=getch();</p><p>  if(ch[i]==13 ) break;</p><p>  putchar('*');</p><p><b>  }</b></p><p>  ch[i]='\0';</p

135、><p>  if(strcmp(num,ch)==0)</p><p><b>  a = 0;</b></p><p><b>  if(a==0)</b></p><p><b>  {</b></p><p>  printf("\n歡迎進(jìn)

136、入學(xué)生成績(jī)管理系統(tǒng) !\n");</p><p>  getchar();</p><p><b>  break;</b></p><p><b>  }</b></p><p><b>  else </b></p><p><b&g

137、t;  {</b></p><p>  printf("\n這個(gè)密碼是錯(cuò)誤的! ");</p><p>  printf("\n請(qǐng)輸入正確的密碼:");</p><p><b>  }</b></p><p><b>  }</b></p&g

138、t;<p><b>  }</b></p><p>  void menu1()</p><p><b>  {</b></p><p>  system("cls");</p><p>  printf("\n\n

139、 歡迎進(jìn)入管理員管理系統(tǒng)!\n\n");</p><p>  printf("\n *******************************主菜單****************************\n");</p><p>  printf(" * 1 添加

140、學(xué)生成績(jī) *\n");</p><p>  printf(" * * 2 查找學(xué)生成績(jī) * *\n");</p><p>  printf(" * * *

141、3 刪除指定學(xué)生 * * *\n");</p><p>  printf(" * * * 4 修改學(xué)生信息 * * *\n");</p><p>  printf(" * * *

142、 5 總分排序信息 * * *\n");</p><p>  printf(" * * 6 查看全部信息 * *\n");</p><p>  printf(" *

143、 7 統(tǒng)計(jì)學(xué)生人數(shù) *\n"); </p><p>  printf(" * 8 停止程序運(yùn)行 *\n"); </p><p>  printf("

144、 *****************************************************************\n");</p><p><b>  } </b></p><p>  void menu2()

145、 </p><p><b>  { </b></p><p>  system("cls");</p><p>  printf("\n\n 歡迎進(jìn)入學(xué)生管理系統(tǒng)!\n\n&

146、quot;);</p><p>  printf("\n *******************************主菜單****************************\n");</p><p>  printf(" * * 1 查找學(xué)生成績(jī) *

溫馨提示

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