c語(yǔ)言程序設(shè)計(jì)-學(xué)生成績(jī)管理系統(tǒng)_第1頁(yè)
已閱讀1頁(yè),還剩37頁(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>  高級(jí)語(yǔ)言程序設(shè)計(jì)</b></p><p><b>  課程設(shè)計(jì)報(bào)告</b></p><p>  題目: 學(xué)生成績(jī)管理學(xué)系統(tǒng) </p><p>  專 業(yè) : </p><p><b>  班 級(jí) :</b></p&g

2、t;<p>  學(xué) 號(hào) : </p><p>  姓 名 : </p><p><b>  指導(dǎo)教師 : </b></p><p>  日 期: </p><p>  1、程序基本功能要求</p><p><b>  (1) 用戶登錄</b

3、></p><p>  (2) 錄入學(xué)生信息</p><p>  (3) 顯示學(xué)生總成績(jī)信息</p><p>  (4) 對(duì)總成績(jī)排序</p><p>  (5) 顯示學(xué)生單科成績(jī)排序</p><p>  (6) 添加學(xué)生信息</p><p>  (7) 刪除學(xué)生信息</p>

4、<p>  (8) 修改學(xué)生信息</p><p>  (9) 查詢學(xué)生信息</p><p>  (10) 從文件讀入學(xué)信息</p><p>  (11) 刪除文件中學(xué)生信息</p><p>  (12) 保存學(xué)生信息</p><p><b>  (13) 退出</b></p>

5、;<p>  2、總體設(shè)計(jì)(功能模塊說明,如函數(shù)功能、參數(shù)說明,函數(shù)調(diào)用關(guān)系描述等,并注明各模塊的具體成員分工)</p><p><b>  2.1函數(shù)功能</b></p><p> ?。?)主函數(shù)main():定義學(xué)生結(jié)構(gòu)體數(shù)組,調(diào)用錄入、統(tǒng)計(jì)等函數(shù)對(duì)成績(jī)表進(jìn)行處理;</p><p>  (2)輸入函數(shù)input():輸入學(xué)生的

6、學(xué)號(hào)、性別、姓名、成績(jī)等各種信息;</p><p> ?。?)讀出函數(shù)read():讀出學(xué)生的信息;</p><p> ?。?)排序函數(shù)sort():排序?qū)W生的各門成績(jī);</p><p> ?。?)顯示函數(shù)display():顯示學(xué)生的學(xué)號(hào)、性別、姓名、成績(jī)等各種信息;</p><p> ?。?)插入函數(shù)insert():插入學(xué)生的學(xué)號(hào)、性別

7、、姓名、成績(jī)等各種信息;</p><p> ?。?)刪除函數(shù)delete():刪除指定學(xué)號(hào)學(xué)生記錄;</p><p> ?。?)平均值函數(shù)average():計(jì)算學(xué)生的平均成績(jī);</p><p> ?。?)查找函數(shù)find():查找指定學(xué)生的信息;</p><p> ?。?0)保存函數(shù)save():保存輸入的學(xué)生信息;</p>

8、<p>  (11)刪除文件函數(shù)del_file():刪除指定文件信息;</p><p>  (12)修改函數(shù)modify():修改指定學(xué)生信息;</p><p><b> ?。?3)退出。</b></p><p>  2.2參數(shù)說明、函數(shù)調(diào)用</p><p>  (1)數(shù)據(jù)輸入:數(shù)據(jù)輸入的功能是將需要的數(shù)據(jù)進(jìn)

9、行錄入,用于后面的各項(xiàng)操作。實(shí)現(xiàn):用輸入函數(shù)對(duì)數(shù)據(jù)進(jìn)行錄入,先確定學(xué)生的個(gè)數(shù),再用一個(gè)循環(huán)進(jìn)行輸入。</p><p>  (2) 數(shù)據(jù)插入: 數(shù)據(jù)插入的主要功能是在數(shù)據(jù)錄入之后,為防止數(shù)據(jù)輸入的遺漏,實(shí)現(xiàn):分為兩個(gè)部分,第一個(gè)是插入第一個(gè)位置,第二是插入第一個(gè)位置之后,把當(dāng)前的位置賦給后面的加以實(shí)現(xiàn)。</p><p> ?。?)數(shù)據(jù)查找:數(shù)據(jù)查詢的主要功能是在數(shù)據(jù)輸入之后進(jìn)行分類再現(xiàn),實(shí)現(xiàn)

10、:分為輸出所有數(shù)據(jù),按學(xué)號(hào)查詢,按姓名查詢,當(dāng)輸入的數(shù)據(jù)滿足條件時(shí)即輸出所要求的。</p><p> ?。?)數(shù)據(jù)刪除:數(shù)據(jù)刪除的主要功能是在數(shù)據(jù)錄入、數(shù)據(jù)插入和數(shù)據(jù)修改完成之后對(duì)無(wú)用數(shù)據(jù)進(jìn)行刪除,實(shí)現(xiàn):輸入學(xué)號(hào),滿足條件時(shí)即把后一個(gè)數(shù)值賦 給前一個(gè)數(shù)值,達(dá)到刪除的目的。</p><p>  (5)平均值計(jì)算:平均值計(jì)算的主要功能是求平均值,再對(duì)其進(jìn)行排序,實(shí)現(xiàn):用公式進(jìn)行計(jì)算求平均值,之

11、后便是排序問題,求最大值,然后依次輸出各最大值,即實(shí)現(xiàn)了排序功能。</p><p><b>  2.3模塊分工</b></p><p>  讀出函數(shù)、排序函數(shù)、插入函數(shù)、刪除函數(shù)模塊</p><p>  主函數(shù)、輸入函數(shù)、顯示函數(shù)、平均值函數(shù)模塊</p><p>  查找函數(shù)、保存函數(shù)、刪除文件函數(shù)、修改函數(shù)</p

12、><p>  3、詳細(xì)設(shè)計(jì)(程序設(shè)計(jì)組成框圖、流程圖)</p><p>  3.1系統(tǒng)功能模塊描述</p><p>  圖3-1學(xué)生成績(jī)管理系統(tǒng)模塊圖</p><p>  3.2 錄入函數(shù)功能設(shè)計(jì)</p><p>  首先會(huì)給定一個(gè)要輸入的人數(shù)界限,根據(jù)自己要輸入的人數(shù)進(jìn)行輸入,系統(tǒng)會(huì)提示你輸入學(xué)生的信息,其中包括姓名、性

13、別、各科目的分?jǐn)?shù),系統(tǒng)會(huì)自動(dòng)生成一個(gè)有序數(shù)列,即學(xué)號(hào)。其執(zhí)行流程圖如下所示:</p><p><b>  否</b></p><p><b>  是</b></p><p>  圖3-2錄入函數(shù)設(shè)計(jì)</p><p>  3.3 查找函數(shù)功能設(shè)計(jì)</p><p>  查找函數(shù)有

14、兩種查找方法,分別為按姓名和學(xué)號(hào)查找,當(dāng)輸入為flag=1時(shí),系統(tǒng)會(huì)提示按照姓名查找,當(dāng)輸入為flag=2時(shí),系統(tǒng)則提示按照學(xué)號(hào)查找,其流程圖為: </p><p>  Flag=1 Flag=2</p><p>  不 不</p><p>  存 正</p><

15、;p>  在 確</p><p>  存在 正確</p><p>  圖 3-3查找函數(shù)設(shè)計(jì)</p><p>  3.4統(tǒng)計(jì)函數(shù)功能設(shè)計(jì)</p><p>  統(tǒng)計(jì)函數(shù)會(huì)統(tǒng)計(jì)各科目的最高分、最低分以及平均分的統(tǒng)計(jì),并且按照操作進(jìn)行科目統(tǒng)計(jì)。會(huì)有4中選擇,當(dāng)flag=1時(shí),對(duì)數(shù)

16、學(xué)進(jìn)行統(tǒng)計(jì);當(dāng)flag=2時(shí),對(duì)英語(yǔ)進(jìn)行統(tǒng)計(jì),當(dāng)flag=3時(shí),對(duì)c成績(jī)進(jìn)行統(tǒng)計(jì),當(dāng)flag=4時(shí),統(tǒng)計(jì)函數(shù)功能結(jié)束。跳出循環(huán)。如圖3-4所示:</p><p><b>  Flag=4</b></p><p><b>  Flag=1</b></p><p><b>  flag=3</b><

17、/p><p><b>  flag=2</b></p><p>  圖 3-4 統(tǒng)計(jì)函數(shù)設(shè)計(jì)</p><p>  3.5添加函數(shù)功能設(shè)計(jì)</p><p>  添加函數(shù)主要是對(duì)額外的學(xué)生記錄進(jìn)行添加,同前面一樣,也是對(duì)其信息的輸入,并且輸入完成之后,再對(duì)學(xué)生成績(jī)進(jìn)行排序和統(tǒng)計(jì),如圖所示</p><p>

18、  Flag=Y flag=N</p><p>  圖 3-5 添加函數(shù)設(shè)計(jì)</p><p>  3.6更新函數(shù)功能設(shè)計(jì)</p><p>  更新函數(shù)包含了兩個(gè)子函數(shù),分別是修改和刪除兩項(xiàng),修改主要是修改錄入函數(shù)里面錯(cuò)誤的內(nèi)容,而刪除主要是刪除一些不必要的學(xué)生信息,其功能流程如圖3-6所示</p>

19、<p>  Flag=1 Flag=2</p><p>  Flag=Y Flag=Y</p><p>  Flag=N Flag=N </p><p>  圖3-6 更新函數(shù)設(shè)計(jì) </p><p>  3.7

20、執(zhí)行流程介紹 </p><p>  主要是主函數(shù)調(diào)用子函數(shù)來(lái)進(jìn)行操作和子函數(shù)相互之間的調(diào)用來(lái)完成執(zhí)行,如圖:</p><p><b>  否 </b></p><p><b>  是</b></p><p><b>  圖3-7流程執(zhí)行圖</b></p&

21、gt;<p>  4、程序運(yùn)行結(jié)果(截圖)</p><p><b>  用戶登陸界面</b></p><p>  登錄失?。ü灿形宕屋斎霗C(jī)會(huì))</p><p><b>  登陸成功</b></p><p><b>  進(jìn)入主界面</b></p>&l

22、t;p><b>  錄入學(xué)生信息</b></p><p><b>  顯示學(xué)生總成績(jī)信息</b></p><p><b>  對(duì)總成績(jī)排序</b></p><p>  顯示學(xué)生單科成績(jī)排序</p><p><b>  添加學(xué)生信息</b></p

23、><p>  添加學(xué)生信息后總成績(jī)顯示</p><p><b>  刪除學(xué)生信息</b></p><p>  刪除學(xué)生信息后總成績(jī)顯示</p><p><b>  修改學(xué)生信息</b></p><p><b>  輸入修改學(xué)生信息</b></p>

24、<p>  修改后學(xué)生總成績(jī)顯示</p><p><b>  查詢學(xué)生信息</b></p><p><b>  從文件讀入學(xué)生信息</b></p><p>  從文件讀入學(xué)生信息后總成績(jī)顯示</p><p><b>  文件信息</b></p>&l

25、t;p><b>  刪除文件中學(xué)生信息</b></p><p><b>  刪除后文件信息</b></p><p><b>  保存學(xué)生信息</b></p><p><b>  保存后文件信息</b></p><p>  5、源程序代碼(代碼中注明每

26、段代碼的完成人)</p><p>  #include<stdio.h> </p><p>  #include<conio.h> /*清屏*/ </p><p>  #include <stdlib.h> /*顯示目錄*/ </p>

27、;<p>  #include<string.h> </p><p>  #define MAX 1000</p><p>  void menu(); /*登錄函數(shù)*/ </p><p>  void input(); /*輸入數(shù)

28、據(jù)函數(shù)*/ </p><p>  void sort(); /*排序數(shù)據(jù)函數(shù)*/ </p><p>  void display(); /*顯示數(shù)據(jù)函數(shù)*/ </p><p>  void display1();

29、 /*顯示各科成績(jī)函數(shù)*/ </p><p>  void insert(); /*插入數(shù)據(jù)函數(shù)*/ </p><p>  void del(); /*刪除數(shù)據(jù)函數(shù)*/ </p><p>  void average();

30、 /*平均值函數(shù)*/ </p><p>  void find(); /*查找數(shù)據(jù)函數(shù)*/ </p><p>  void save(); /*保存數(shù)據(jù)函數(shù)*/ </p><p>  void read();

31、 /*讀出數(shù)據(jù)函數(shù)*/ </p><p>  void del_file(); /*刪除文件函數(shù)*/ </p><p>  void modify(); /*修改文件函數(shù)*/ </p><p>  int now_no=0; </p>

32、<p>  struct student //定義學(xué)生信息</p><p><b>  { </b></p><p>  int no; // 學(xué)號(hào)</p><p>  char name[20];

33、 //姓名 </p><p>  char sex[4]; //性別</p><p>  float score1; //成績(jī)1</p><p>  float score2; //成績(jī)2

34、</p><p>  float score3; //成績(jī)3</p><p>  float sort; //排序成績(jī)</p><p>  float ave; //平均分</p><p&

35、gt;  float sum; //總分</p><p><b>  }; </b></p><p>  void main()</p><p><b>  {</b></p><p>  int h,flag1,flag2;</p>

36、;<p>  char name[20]="xdxy",password[10]="700619";</p><p>  char person[20],password1[10];</p><p>  printf ("\t\t ******** 歡迎進(jìn)入學(xué)生成績(jī)管理系統(tǒng)!********\n\n");<

37、/p><p>  printf ("\t\t\t 用 戶 登 錄\n\n");</p><p>  for(h=0;h!=5;)</p><p><b>  {</b></p><p>  printf("\t\t\t\t 用戶名:");</p>&l

38、t;p>  gets(person);</p><p>  flag1=strcmp(person,name);</p><p>  printf("\t\t\t\t 密碼:");</p><p>  gets(password1);</p><p>  flag2=strcmp(password,password

39、1);</p><p>  if(flag1==0 && flag2==0)</p><p><b>  {</b></p><p>  printf("\t\t\t\t 登陸成功!\n\n");</p><p><b>  menu();</b></p

40、><p><b>  break;</b></p><p><b>  }</b></p><p><b>  else</b></p><p><b>  {</b></p><p>  printf ("\t\t\t

41、 用戶名或密碼錯(cuò)誤!\n\n");</p><p>  printf ("\t\t\t 請(qǐng)注意:您還剩%d次機(jī)會(huì)!\n\n",4-h);</p><p><b>  h++;</b></p><p><b>  }</b></p><p><b>

42、;  }</b></p><p><b>  if (h=5)</b></p><p>  printf ("對(duì)不起,您輸入的用戶名或密碼有誤,已被強(qiáng)制退出。\n");</p><p><b>  }</b></p><p>  struct student stu[

43、MAX],*p; </p><p>  void menu() /*主函數(shù)*/ </p><p><b>  { </b></p><p><b>  int as; </b></p><p><b>  char ch; </b><

44、/p><p><b>  do{ </b></p><p>  printf("\n\n\n\n\t\t****&****&****&****&****&****&****&****&****&****"); </p><p>  start: printf

45、("\n\n\n\n\t\t\t 歡迎使用學(xué)生成績(jī)管理系統(tǒng)\n"); </p><p>  printf("\n\n\n\n\t\t******************按任意鍵繼續(xù)********************"); </p><p>  ch=getch(); </p><p><b>  } &l

46、t;/b></p><p>  while(!ch); </p><p>  system("cls"); </p><p>  /*以下為功能選擇模塊*/ </p><p><b>  do </b></p><p><b>  { </b><

47、;/p><p>  printf("\n\t\t\t\t1.錄入學(xué)生信息\n\t\t\t\t2.顯示學(xué)生總成績(jī)信息\n\t\t\t\t3.對(duì)總成績(jī)排序\n\t\t\t\t4.顯示學(xué)生單科成績(jī)排序\n\t\t\t\t5.添加學(xué)生信息\n\t\t\t\t6.刪除學(xué)生信息\n\t\t\t\t7.修改學(xué)生信息\n\t\t\t\t8.查詢學(xué)生信息\n\t\t\t\t9.從文件讀入學(xué)生信息\n\t\t\t\t10.刪除

48、文件中學(xué)生信息\n\t\t\t\t11.保存學(xué)生信息\n\t\t\t\t12.退出\n"); </p><p>  printf("\t\t\t\t選擇功能選項(xiàng)(輸入所選功能前的數(shù)字):"); </p><p>  fflush(stdin); </p><p>  /*可用可不用,用于清除緩存防止下次用scanf輸入是出現(xiàn)錯(cuò)誤*/ &

49、lt;/p><p>  scanf("%d",&as); </p><p>  switch(as) </p><p><b>  { </b></p><p>  case 1:system("cls"); </p><p><b>  in

50、put(); </b></p><p><b>  break; </b></p><p>  case 2:system("cls"); </p><p>  display(); </p><p><b>  break; </b></p><

51、p>  case 3:system("cls"); </p><p><b>  sort(); </b></p><p><b>  break; </b></p><p>  case 4:system("cls"); </p><p>  disp

52、lay1(); </p><p><b>  break; </b></p><p>  case 5:system("cls"); </p><p>  insert(); </p><p><b>  break; </b></p><p>  cas

53、e 6:system("cls"); </p><p><b>  del(); </b></p><p><b>  break; </b></p><p>  case 7:system("cls"); </p><p>  modify(); </

54、p><p><b>  break; </b></p><p>  case 8:system("cls"); </p><p><b>  find(); </b></p><p><b>  break; </b></p><p> 

55、 case 9:system("cls"); </p><p><b>  read(); </b></p><p><b>  break; </b></p><p>  case 10:system("cls"); </p><p>  del_file(

56、); </p><p><b>  break; </b></p><p>  case 11:system("cls"); </p><p><b>  save(); </b></p><p><b>  break; </b></p>&

57、lt;p>  case 12:system("exit"); </p><p><b>  exit(0); </b></p><p>  default:system("cls"); </p><p>  goto start; </p><p><b>  }

58、</b></p><p>  }while(1); /*while(1),1表示真,所以while(1)表示永遠(yuǎn)循環(huán)下去*/ </p><p>  /*至此功能選擇模塊結(jié)束*/ </p><p><b>  }</b></p><p>  void input() /*學(xué)生信息錄入模塊*

59、/ </p><p><b>  { </b></p><p><b>  int i=0; </b></p><p><b>  char ch; </b></p><p><b>  do </b></p><p><b&

60、gt;  { </b></p><p>  printf("\t\t\t\t1.錄入學(xué)生信息\n輸入第%d個(gè)學(xué)生的信息\n",i+1); </p><p>  printf("\n輸入8位的學(xué)生學(xué)號(hào):"); </p><p>  scanf("%u",&stu[i].no); </

61、p><p>  fflush(stdin); </p><p>  printf("\n輸入學(xué)生姓名:"); </p><p>  fflush(stdin); </p><p>  gets(stu[i].name); </p><p>  printf("\n輸入學(xué)生性別:");

62、 </p><p>  fflush(stdin); </p><p>  gets(stu[i].sex); </p><p>  printf("\n輸入學(xué)生成績(jī)1:"); </p><p>  scanf("%f",&stu[i].score1); </p><p>

63、;  printf("\n輸入學(xué)生成績(jī)2:"); </p><p>  fflush(stdin); </p><p>  scanf("%f",&stu[i].score2); </p><p>  printf("\n輸入學(xué)生成績(jī)3:"); </p><p>  fflu

64、sh(stdin); </p><p>  scanf("%f",&stu[i].score3); </p><p>  printf("\n\n"); </p><p><b>  i++; </b></p><p>  now_no=i; </p><

65、;p>  printf("是否繼續(xù)輸入?(Y/N)"); </p><p>  fflush(stdin); </p><p>  ch=getch(); </p><p>  system("cls"); </p><p><b>  } </b></p>&

66、lt;p>  while(ch!='n'&&ch!='N'); </p><p>  system("cls"); </p><p><b>  } </b></p><p>  void sort() /*排序數(shù)據(jù)函數(shù)*/ &

67、lt;/p><p><b>  { </b></p><p>  struct student temp; </p><p><b>  int i,j; </b></p><p>  average(); </p><p>  for(i=1;i<now_no;i++)

68、</p><p><b>  { </b></p><p>  for(j=1;j<=now_no-i;j++) </p><p><b>  { </b></p><p>  if(stu[j-1].ave<stu[j].ave) </p><p><b&

69、gt;  { </b></p><p>  temp=stu[j]; </p><p>  stu[j]=stu[j-1]; </p><p>  stu[j-1]=temp; </p><p><b>  } </b></p><p><b>  } </b>&

70、lt;/p><p><b>  } </b></p><p>  printf("排序已完成進(jìn)入功能2可進(jìn)行顯示\n"); </p><p>  system("pause"); </p><p>  system("cls"); </p><p

71、><b>  } </b></p><p>  void sort1() /*排序數(shù)據(jù)函數(shù)*/ </p><p><b>  { </b></p><p>  struct student temp; </p><p><b>  int i

72、,j; </b></p><p>  for(i=1;i<now_no;i++) </p><p><b>  { </b></p><p>  for(j=1;j<=now_no-i;j++) </p><p><b>  { </b></p><p&g

73、t;  if(stu[j-1].score1<stu[j].score1) </p><p><b>  { </b></p><p>  temp=stu[j]; </p><p>  stu[j]=stu[j-1]; </p><p>  stu[j-1]=temp; </p><p>

74、<b>  } </b></p><p><b>  } </b></p><p><b>  } </b></p><p><b>  } </b></p><p>  void sort2() /*排序數(shù)據(jù)函

75、數(shù)*/ </p><p><b>  { </b></p><p>  struct student temp; </p><p><b>  int i,j; </b></p><p>  for(i=1;i<now_no;i++) </p><p><b>

76、;  { </b></p><p>  for(j=1;j<=now_no-i;j++) </p><p><b>  { </b></p><p>  if(stu[j-1].score2<stu[j].score2) </p><p><b>  { </b></p

77、><p>  temp=stu[j]; </p><p>  stu[j]=stu[j-1]; </p><p>  stu[j-1]=temp; </p><p><b>  } </b></p><p><b>  } </b></p><p><

78、;b>  } </b></p><p><b>  } </b></p><p>  void sort3() /*排序數(shù)據(jù)函數(shù)*/ </p><p><b>  { </b></p><p>  struct student temp;

79、</p><p><b>  int i,j; </b></p><p>  for(i=1;i<now_no;i++) </p><p><b>  { </b></p><p>  for(j=1;j<=now_no-i;j++) </p><p><b

80、>  { </b></p><p>  if(stu[j-1].score3<stu[j].score3) </p><p><b>  { </b></p><p>  temp=stu[j]; </p><p>  stu[j]=stu[j-1]; </p><p> 

81、 stu[j-1]=temp; </p><p><b>  } </b></p><p><b>  } </b></p><p><b>  } </b></p><p><b>  } </b></p><p>  void

82、display() /*顯示數(shù)據(jù)函數(shù)*/ </p><p><b>  { </b></p><p><b>  int i; </b></p><p><b>  char as; </b></p><p>  average();

83、</p><p><b>  do </b></p><p><b>  { </b></p><p>  printf("\t\t\t班級(jí)學(xué)生信息列表\n"); </p><p>  printf("\t學(xué)號(hào)\t姓名\t性別\t成績(jī)1\t成績(jī)2\t成績(jī)3\t平均值\n

84、"); </p><p>  for(i=0;i<now_no&&stu[i].name[0];i++) </p><p>  printf("\t%u%s\t%s\t%.2f\t%.2f\t%.2f\t%.2f\n",stu[i].no,stu[i].name,stu[i].sex,stu[i].score1,stu[i].score2

85、,stu[i].score3,stu[i].ave); </p><p>  printf("\t\t\t按任意鍵返回主菜單"); </p><p>  fflush(stdin); </p><p>  as=getch(); </p><p><b>  } </b></p><

86、;p>  while(!as); </p><p>  system("cls"); </p><p><b>  } </b></p><p>  void display1() /*顯示數(shù)據(jù)函數(shù)*/ </p><p><b>  { </b&

87、gt;</p><p><b>  int i; </b></p><p>  char as; </p><p><b>  do </b></p><p><b>  { </b></p><p>  printf("\t\t\t班級(jí)學(xué)

88、生score1成績(jī)排序\n"); </p><p>  printf("\t學(xué)號(hào)\t姓名\t性別\t成績(jī)1\n"); </p><p><b>  sort1(); </b></p><p>  for(i=0;i<now_no&&stu[i].name[0];i++) </p>

89、<p>  printf("\t%u%s\t%s\t%.2f\t\n",stu[i].no,stu[i].name,stu[i].sex,stu[i].score1); </p><p>  printf("\t\t\t班級(jí)學(xué)生score2成績(jī)排序\n"); </p><p>  printf("\t學(xué)號(hào)\t姓名\t性別\t成績(jī)

90、2\n"); </p><p><b>  sort2(); </b></p><p>  for(i=0;i<now_no&&stu[i].name[0];i++) </p><p>  printf("\t%u%s\t%s\t%.2f\t\n",stu[i].no,stu[i].name,

91、stu[i].sex,stu[i].score2); </p><p>  printf("\t\t\t班級(jí)學(xué)生score3成績(jī)排序\n"); </p><p>  printf("\t學(xué)號(hào)\t姓名\t性別\t成績(jī)3\n"); </p><p><b>  sort3(); </b></p>

92、<p>  for(i=0;i<now_no&&stu[i].name[0];i++) </p><p>  printf("\t%u%s\t%s\t%.2f\t\n",stu[i].no,stu[i].name,stu[i].sex,stu[i].score3); </p><p>  printf("\t\t\t按任意

93、鍵返回主菜單"); </p><p>  fflush(stdin); </p><p>  as=getch(); </p><p><b>  } </b></p><p>  while(!as); </p><p>  system("cls"); </

94、p><p><b>  }</b></p><p>  void insert() /*插入數(shù)據(jù)函數(shù)*/ </p><p><b>  { </b></p><p><b>  char ch; </b></p><p&g

95、t;<b>  do </b></p><p><b>  { </b></p><p>  printf("\n\t\t輸入新插入學(xué)生信息\n"); </p><p>  printf("\n輸入學(xué)生學(xué)號(hào):"); </p><p>  scanf("

96、;%u",&stu[now_no].no); </p><p>  fflush(stdin); </p><p>  printf("\n輸入學(xué)生姓名:"); </p><p>  fflush(stdin); </p><p>  gets(stu[now_no].name); </p>

97、<p>  printf("\n輸入學(xué)生性別:"); </p><p>  fflush(stdin); </p><p>  gets(stu[now_no].sex); </p><p>  printf("\n輸入學(xué)生成績(jī)1:"); </p><p>  fflush(stdin);

98、</p><p>  scanf("%f",&stu[now_no].score1); </p><p>  printf("\n輸入學(xué)生成績(jī)2:"); </p><p>  fflush(stdin); </p><p>  scanf("%f",&stu[now_

99、no].score2); </p><p>  printf("\n輸入學(xué)生成績(jī)3:"); </p><p>  fflush(stdin); </p><p>  scanf("%f",&stu[now_no].score3); </p><p>  printf("\n\n&quo

100、t;); </p><p>  now_no=now_no+1; </p><p><b>  sort(); </b></p><p>  printf("是否繼續(xù)輸入?(Y/N)"); </p><p>  fflush(stdin); </p><p>  ch=getc

101、h(); </p><p>  system("cls"); </p><p><b>  } </b></p><p>  while(ch!='n'&&ch!='N'); </p><p><b>  } </b></p&

102、gt;<p>  void del() /*刪除數(shù)據(jù)函數(shù)*/ </p><p>  {unsigned long inum; </p><p><b>  int i; </b></p><p>  printf("輸入要?jiǎng)h除學(xué)生的學(xué)號(hào):"); </p>

103、;<p>  fflush(stdin); </p><p>  scanf("%u",&inum); </p><p>  for(i=0;i<now_no;i++) </p><p><b>  { </b></p><p>  if(stu[i].no==inum)

104、</p><p><b>  { </b></p><p>  if(i==now_no)now_no-=1; </p><p><b>  else </b></p><p><b>  { </b></p><p>  stu[i]=stu[now_

105、no-1]; </p><p>  now_no-=1; </p><p><b>  } </b></p><p><b>  sort(); </b></p><p><b>  break; </b></p><p><b>  } &l

106、t;/b></p><p><b>  } </b></p><p>  system("cls"); </p><p><b>  } </b></p><p>  void save() /*保存數(shù)據(jù)函數(shù)*/ </p>

107、<p><b>  { </b></p><p>  FILE *fp; </p><p><b>  int i; </b></p><p>  char filepath[20]; </p><p>  printf("輸入要保存的文件路徑:"); </p&g

108、t;<p>  fflush(stdin); </p><p>  gets(filepath); </p><p>  if((fp=fopen("C:\\學(xué)生信息.txt","w"))==NULL) </p><p><b>  { </b></p><p>  

109、printf("\n保存失敗!"); </p><p><b>  exit(0); </b></p><p><b>  } </b></p><p>  for(i=0;i<now_no;i++) </p><p><b>  { </b><

110、/p><p>  stu[i].sum=stu[i].score1+stu[i].score2+stu[i].score3; </p><p>  stu[i].ave=stu[i].sum/3; </p><p>  fprintf(fp,"\t%u%s\t%s\t%.2f\t%.2f\t%.2f\t%.2f\n",stu[i].no,stu[i]

111、.name,stu[i].sex,stu[i].score1,stu[i].score2,stu[i].score3,stu[i].ave); </p><p><b>  } </b></p><p>  fclose(fp); </p><p>  printf("學(xué)生信息已保存在%s中!\n",filepath); &

112、lt;/p><p>  system("pause"); </p><p>  system("cls"); </p><p><b>  } </b></p><p>  void find() /*查詢函數(shù)*/ </p><p

113、><b>  { </b></p><p><b>  int i; </b></p><p>  char str[20],as; </p><p><b>  do </b></p><p><b>  { </b></p><

114、;p>  printf("輸入要查詢的學(xué)生姓名:"); </p><p>  fflush(stdin); </p><p>  gets(str); </p><p>  for(i=0;i<now_no;i++) </p><p>  if(!strcmp(stu[i].name,str)) </p&

115、gt;<p><b>  { </b></p><p>  printf("\t學(xué)號(hào)\t\t姓名\t性別\t成績(jī)1\t成績(jī)2\t成績(jī)3\t平均值\n"); </p><p>  printf("\t%u\t%s\t%s\t%.2f\t%.2f\t%.2f\t%.2f\n",stu[i].no,stu[i].name

116、,stu[i].sex,stu[i].score1,stu[i].score2,stu[i].score3,stu[i].ave); </p><p><b>  } </b></p><p>  printf("\t\t\t按任意鍵返回主菜單"); </p><p>  fflush(stdin); </p>

117、<p>  as=getch(); </p><p><b>  } </b></p><p>  while(!as); </p><p>  system("cls"); </p><p><b>  }</b></p><p>  voi

118、d average() /*求平均數(shù)*/ </p><p><b>  { </b></p><p><b>  int i; </b></p><p>  for(i=0;i<now_no;i++) </p><p><b>  { <

119、;/b></p><p>  stu[i].sum=stu[i].score1+stu[i].score2+stu[i].score3; </p><p>  stu[i].ave=stu[i].sum/3; </p><p><b>  } </b></p><p><b>  } </b>

120、</p><p>  void modify() /*修改數(shù)據(jù)函數(shù)*/ </p><p><b>  { </b></p><p><b>  int i; </b></p><p>  char str[20]; </p><p> 

121、 printf("輸入要修改的學(xué)生姓名:"); </p><p>  fflush(stdin); </p><p>  gets(str); </p><p>  for(i=0;i<now_no;i++) </p><p><b>  { </b></p><p> 

122、 if(!strcmp(stu[i].name,str)) </p><p><b>  { </b></p><p>  system("cls"); </p><p>  printf("\n\t\t輸入修改后學(xué)生信息\n"); </p><p>  printf("

123、\n輸入學(xué)生學(xué)號(hào):"); </p><p>  fflush(stdin); </p><p>  scanf("%u",&stu[i].no); </p><p>  printf("\n輸入學(xué)生性別:"); </p><p>  fflush(stdin); </p>

124、<p>  gets(stu[i].sex); </p><p>  printf("\n輸入學(xué)生成績(jī)1:"); </p><p>  fflush(stdin); </p><p>  scanf("%f",&stu[i].score1); </p><p>  printf(&q

125、uot;\n輸入學(xué)生成績(jī)2:"); </p><p>  fflush(stdin); </p><p>  scanf("%f",&stu[i].score2); </p><p>  printf("\n輸入學(xué)生成績(jī)3:"); </p><p>  fflush(stdin); &

126、lt;/p><p>  scanf("%f",&stu[i].score3); </p><p>  printf("\n\n"); </p><p><b>  sort(); </b></p><p><b>  break; </b></p&g

127、t;<p><b>  } </b></p><p><b>  } </b></p><p>  system("cls"); </p><p><b>  }</b></p><p>  void read()

128、 /*讀出數(shù)據(jù)函數(shù)*/ </p><p><b>  { </b></p><p>  FILE *fp; </p><p><b>  int i; </b></p><p>  char filepath[20]; </p><p>  printf(&qu

129、ot;輸入要讀入的文件路徑:"); </p><p>  fflush(stdin); </p><p>  gets(filepath); </p><p>  if((fp=fopen("C:\\學(xué)生信息.txt","r"))==NULL) </p><p><b>  { &l

130、t;/b></p><p>  printf("找不到%s文件!\n",filepath); </p><p>  system("pause"); </p><p><b>  exit(0); </b></p><p><b>  } </b><

131、;/p><p>  now_no=0; </p><p>  for(i=0;i<MAX&&!feof(fp);i++) </p><p><b>  { </b></p><p>  fscanf(fp,"\t%d\t%s\t%s\t%f\t%f\t%f\t%f\n",&s

132、tu[i].no,stu[i].name,stu[i].sex,&stu[i].score1,&stu[i].score2,&stu[i].score3,&stu[i].ave); </p><p>  now_no++; </p><p><b>  } </b></p><p>  fclose(fp); &

133、lt;/p><p>  printf("保存的在文件%s中的所有信息已經(jīng)讀入!\n",filepath); </p><p>  system("pause"); /*按任意鍵繼續(xù)*/ </p><p>  system("cls"); </p&g

134、t;<p><b>  }</b></p><p>  void del_file() /*刪除文件函數(shù)*/ </p><p><b>  { </b></p><p>  FILE *fp; </p><p>  char filepat

135、h[20]; </p><p>  printf("輸入要?jiǎng)h除的文件路徑:"); </p><p>  fflush(stdin); </p><p>  gets(filepath); </p><p>  fp=fopen("C:\\學(xué)生信息.txt","w"); </p&

136、gt;<p>  fclose(fp); </p><p>  printf("保存的在文件%s中的所有信息已經(jīng)刪除!\n",filepath); </p><p>  system("pause"); </p><p>  system("cls"); </p><p&g

137、t;<b>  }</b></p><p><b>  6、個(gè)人體會(huì)</b></p><p>  經(jīng)過這幾天的C語(yǔ)言課程設(shè)計(jì),感覺自己收獲不少!</p><p>  其實(shí)這個(gè)程序?qū)ξ襾?lái)說還是有比較大的難度,其中鏈表的一些算法自己都不是很懂,這根平時(shí)沒有認(rèn)真聽講是有關(guān)的,所以導(dǎo)致在寫這個(gè)程序時(shí)總出現(xiàn)一下基本的錯(cuò)誤,這次課程設(shè)

138、計(jì)是對(duì)平時(shí)學(xué)習(xí)的一個(gè)考驗(yàn)和總結(jié),經(jīng)過了這個(gè)課程設(shè)計(jì)之后,我發(fā)現(xiàn)我很多都沒有做到,發(fā)現(xiàn)自己很多的不足,對(duì)定義理解不是很透徹,許多都是一知半解,還有就是缺乏鍛煉,找不到熟悉的感覺,總感覺是那么回事,但是一做就是出錯(cuò)。</p><p>  這次課程設(shè)計(jì)其中有些事通過借鑒同學(xué)的代碼,但是自己能夠看懂,但是僅僅看懂這些還不夠,自己應(yīng)該把別人的東西看懂看透,然后將它變?yōu)樽约旱臇|西,才會(huì)有用,因此當(dāng)看懂了之后,自己應(yīng)該嘗試著自

139、己寫這個(gè)程序,直到自己能夠?qū)⑺鼘懗鰜?lái)那才是真正的進(jìn)步和掌握。</p><p>  總的來(lái)說,課程設(shè)計(jì)是培養(yǎng)學(xué)生綜合運(yùn)用所學(xué)知識(shí),發(fā)現(xiàn)、提出、分析和解決實(shí)際問題,鍛煉實(shí)踐能力的重要環(huán)節(jié),是對(duì)學(xué)生實(shí)際工作能力的具體訓(xùn)練和考察過程。隨著科學(xué)技術(shù)發(fā)展的日新月異,當(dāng)今計(jì)算機(jī)應(yīng)用在生活中可以說得是無(wú)處不在。因此作為二十一世紀(jì)的大學(xué)生來(lái)說掌握計(jì)算機(jī)開發(fā)技術(shù)是十分重要的,因此,要學(xué)好這門課程,掌握這門課程!</p>

140、<p><b>  致謝</b></p><p>  其實(shí)自己還是有很多不懂的地方,,經(jīng)過裴健和任士崢的講解之后才慢慢掌握,慢慢弄懂了,最后在經(jīng)過馬加慶老師的考察下,明白了論文的許多錯(cuò)誤,才糾正過來(lái)!因此比較感謝他們!</p><p>  感謝馬老師一直以來(lái)孜孜不倦的教誨,感謝老師無(wú)私的奉獻(xiàn),無(wú)悔的執(zhí)著,感謝同學(xué)們耐心的幫助。</p><

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說明,都需要本地電腦安裝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)論