c語言課程設(shè)計(jì)-高考錄取分?jǐn)?shù)線_第1頁
已閱讀1頁,還剩20頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、<p>  C語言課程設(shè)計(jì)報(bào)告書</p><p><b>  姓 名:</b></p><p><b>  班 級:</b></p><p><b>  班級學(xué)號: </b></p><p><b>  指導(dǎo)老師: </b></

2、p><p><b>  一 課設(shè)題目</b></p><p><b>  高考招生錄取成績</b></p><p>  已知文本文件f1.txt中存放了某個省當(dāng)年參加高考的1000個考生的數(shù)據(jù)(考號、姓名、性別和考試成績),存放格式是每行存放一個考生的數(shù)據(jù),每個數(shù)據(jù)之間用空格隔開。</p><p> 

3、 假定當(dāng)年該省的招生計(jì)劃是:一類本科招生計(jì)劃為10%;二類本科招生計(jì)劃為15%;三類本科招生計(jì)劃為20%;四類高職高專招生計(jì)劃為25%。</p><p>  請編寫程序,實(shí)現(xiàn)以下功能:</p><p>  1.劃定各批次錄取分?jǐn)?shù)線,結(jié)果可屏幕顯示,也可存入文件;</p><p>  2.能夠統(tǒng)計(jì)各批次中男生,女生的錄取比例。統(tǒng)計(jì)結(jié)果可屏幕顯示,也可存入文件;<

4、/p><p>  3.確定每名學(xué)生的錄取情況及錄取批次;</p><p>  4.考生可以根據(jù)考號或姓名(支持重名)查詢自己的成績及錄取情況;</p><p>  5.系統(tǒng)程序要有界面;</p><p>  6.存入文件的數(shù)據(jù),每行存一種數(shù)據(jù),每行之間的不同信息用空格分隔。)</p><p><b>  二 題

5、目分析</b></p><p>  該程序題目已經(jīng)很清楚的表達(dá)出要求編好的程序能夠簡單的實(shí)行高考招生功能,首先需要在導(dǎo)入含有一千個考生信息的txt文本,以能達(dá)到錄取功能。根據(jù)該題目我們還可以知道完成數(shù)據(jù)輸入后,不僅要有比較整潔的界面,還要能根據(jù)用戶要求界面顯示出個批次中男女的比例以及錄取線、可供用戶查詢(根據(jù)考生姓名或考號)某考生成績及錄取情況。那么我們最好設(shè)置一個大循環(huán),使得考生能實(shí)現(xiàn)只要不關(guān)閉程序

6、或者按指定輸入而結(jié)束程序就能一直查詢下去,并且能用txt文本將個批次中錄取的人的一系列信息從程序中生成出來。</p><p>  但作為藝術(shù)生,我的能力有限,只能從網(wǎng)絡(luò)上尋找已經(jīng)編好的程序進(jìn)行理解,降低理解題目的難度。</p><p><b>  三 設(shè)計(jì)思路</b></p><p>  要編題目中要求的程序,就必須先將已經(jīng)寫好的一千個學(xué)生的

7、信息的文本文件輸入程序。</p><p><b>  第一步為定義:</b></p><p>  #include <stdio.h></p><p>  #include <malloc.h></p><p>  用結(jié)構(gòu)體的形式將學(xué)生的一切信息表達(dá)出來:</p><p>

8、  struct DATA</p><p><b>  {</b></p><p><b>  int ID;</b></p><p>  char name[4];</p><p>  char sex[3];</p><p>  int score;</p>

9、<p><b>  };</b></p><p><b>  定義各個函數(shù):</b></p><p>  void paixu(int*,DATA*,int);</p><p>  int sishewuru(double);</p><p>  void func1(int*,int*

10、,DATA*,int*,int,int,int,int);//統(tǒng)計(jì)男女比例</p><p>  int func2(int*,int,DATA*);//查找考生序號</p><p>  void print();</p><p>  void main()</p><p>  再應(yīng)該從f1.txt中向程序?qū)雽⒚恳粋€人的學(xué)號、姓名、性別、分?jǐn)?shù)

11、,并自動計(jì)算考生數(shù)量:</p><p>  FILE* file=fopen("f1.txt","r"),*file1;</p><p>  if(file==NULL)</p><p><b>  {</b></p><p>  printf("No such file

12、!\n");</p><p><b>  return;</b></p><p><b>  }</b></p><p>  while(EOF!=fscanf(file,"%*[^\n]\n")) length++;//自動計(jì)算考生數(shù)量</p><p>  然后比較大

13、小,將原來一千個人按成績高低排好順序:</p><p>  DATA* data=(DATA*)malloc(length*sizeof(DATA));</p><p>  int* pai=(int*)malloc(length*sizeof(int));</p><p>  rewind(file);</p><p>  for(i=0;

14、i<length;i++)</p><p><b>  {</b></p><p>  fscanf(file,"%d %s %s %d",&data[i].ID,&data[i].name,&data[i].sex,&data[i].score);</p><p><b> 

15、 pai[i]=i;</b></p><p><b>  }</b></p><p>  paixu(pai,data,length);//將1-1000的學(xué)生按成績排序</p><p>  對1000名學(xué)生的成績分別按比例進(jìn)行計(jì)算并四舍五入為整數(shù),可得出各批次最低成績,即各批次的錄取成績。要劃出各批次的錄取成績,就要將壓線的那個分

16、數(shù)計(jì)算出來。在這里,特別考慮的是:壓線分?jǐn)?shù)上人數(shù)有多個,所以,我們不能單純的將N乘以各個批次的百分點(diǎn)。編寫程序如下:</p><p>  yiben=sishewuru(length*0.1)-1;//分別按比例進(jìn)行計(jì)算并四舍五入為整數(shù)</p><p>  erben=yiben+sishewuru(length*0.15);</p><p>  sanben=er

17、ben+sishewuru(length*0.2);</p><p>  dazhuan=sanben+sishewuru(length*0.25);</p><p>  yi=data[pai[yiben]].score;er=data[pai[erben]].score;</p><p>  san=data[pai[sanben]].score;si=data

18、[pai[dazhuan]].score;</p><p>  設(shè)置界面:將“各類招生分?jǐn)?shù)線”、“ 各批次男女比例”、“ 單個學(xué)生錄取情況”、“ 退出系統(tǒng)輸入”、“ 重新打印初試界面”輸入指令分別設(shè)置為數(shù)字“0”~“4”:</p><p><b>  while(1)</b></p><p><b>  {</b><

19、/p><p><b>  print();</b></p><p>  printf("\n請輸入查詢碼:");</p><p>  for(input=getchar();;input=getchar())</p><p><b>  {</b></p><p&

20、gt;  if(!(input>='0'&&input<='4'))</p><p><b>  {</b></p><p>  printf("非法輸入,請重新輸入\n請輸入:");</p><p>  fflush(stdin);</p><

21、p><b>  }</b></p><p>  else break;</p><p><b>  }</b></p><p>  實(shí)現(xiàn)“各類招生分?jǐn)?shù)線”即“0”指令:</p><p>  getchar();</p><p>  switch(input)</p

22、><p><b>  {</b></p><p><b>  case '0':</b></p><p>  printf("\n一類本科招生線:%d\n二類本科招生線:%d\n三類本科招生線:%d\</p><p>  \n高職高專招生線:%d\n",yi,er,s

23、an,si);</p><p>  printf("是否打印為文件?(y/n):");</p><p>  if(getchar()=='y')</p><p><b>  {</b></p><p>  file1=fopen("各批次錄取分?jǐn)?shù)線.txt",&qu

24、ot;w");</p><p>  fprintf(file1,"一類本科招生線:%d\n二類本科招生線:%d\</p><p>  \n三類本科招生線:%d\n高職高專招生線:%d\n",yi,er,san,si);</p><p>  fclose(file1);</p><p><b>  }&l

25、t;/b></p><p>  fflush(stdin);</p><p><b>  break;</b></p><p>  實(shí)現(xiàn)“各批次男女比例”即“1”指令:</p><p><b>  case '1':</b></p><p>  func

26、1(male,female,data,pai,yiben,erben,sanben,dazhuan);</p><p>  printf("一本類本科招生線男女比例: %d:%d\n",male[0],female[0]);</p><p>  printf("二類本科招生線男女比例: %d:%d\n",male[1],femal

27、e[1]);</p><p>  printf("三類本科招生線男女比例: %d:%d\n",male[2],female[2]);</p><p>  printf("高職高專招生線招生線男女比例:%d:%d\n",male[3],female[3]);</p><p>  printf("是否打印為文件

28、?(y/n):");</p><p>  if(getchar()=='y')</p><p><b>  {</b></p><p>  file1=fopen("各批次錄取男女比例.txt","w");</p><p>  fprintf(file1,

29、"一類本科招生線男女比例: %d:%d\n",male[0],female[0]);</p><p>  fprintf(file1,"二類本科招生線男女比例: %d:%d\n",male[1],female[1]);</p><p>  fprintf(file1,"三類本科招生線男女比例: %d:%d\n&

30、quot;,male[2],female[2]);</p><p>  fprintf(file1,"高職高專招生線招生線男女比例:%d:%d\n",male[3],female[3]);</p><p>  fclose(file1);</p><p><b>  }</b></p><p>  f

31、flush(stdin);</p><p><b>  break;</b></p><p>  實(shí)現(xiàn)“單個學(xué)生錄取情況”即“2”指令:</p><p><b>  case '2':</b></p><p>  printf("按考號查詢輸入0 按姓名查

32、詢輸入1\n請輸入查詢碼:");</p><p>  for(input=getchar();;input=getchar())</p><p><b>  {</b></p><p>  if(input!='0'&&input!='1')</p><p>&l

33、t;b>  {</b></p><p>  printf("非法輸入,請重新輸入\n請輸入:");</p><p>  fflush(stdin);</p><p><b>  }</b></p><p>  else break;</p><p><b

34、>  }</b></p><p>  getchar();</p><p>  int shuru,j,ss[10];//假設(shè)最多10個重名的</p><p>  for(j=0;j<10;j++) ss[i]=0;</p><p>  if(input=='0')</p><p&g

35、t;<b>  {</b></p><p>  start1:printf("請輸入考號:");</p><p>  for(j=scanf("%d",&shuru);j!=1||shuru/10000!=4211;j=scanf("%d",&shuru))</p>&

36、lt;p>  {//假設(shè)考號開頭為4211</p><p>  printf("非法輸入,請重新輸入\n請輸入:");</p><p>  fflush(stdin);</p><p><b>  }</b></p><p>  getchar();</p><p>  

37、j=shuru%10000;//假設(shè)考號和序號的關(guān)系</p><p>  printf("該生考號:%d 姓名:%s 性別:%s 分?jǐn)?shù):%d 錄取情況:",</p><p>  shuru,data[j].name,data[j].sex,data[j].score);</p><p>  if(data[j].score>=yi) pri

38、ntf("一本\n");</p><p>  else if(data[j].score>=er) printf("二本\n");</p><p>  else if(data[j].score>=san) printf("三本\n");</p><p>  else if(data[j].sc

39、ore>=si) printf("高職高專\n");</p><p>  else printf("未過線,請繼續(xù)努力!\n");</p><p>  printf("是否繼續(xù)查詢?(y/n):");</p><p>  if(getchar()=='y')</p>&l

40、t;p><b>  {</b></p><p>  fflush(stdin);</p><p>  goto start1;</p><p><b>  }</b></p><p><b>  }</b></p><p><b> 

41、 else</b></p><p><b>  {</b></p><p>  start2:printf("請輸入姓名:");</p><p>  j=func2(ss,length,data);//查找考生序號</p><p>  if(j==0) printf("

42、查無此人!\n");</p><p>  else if(j==1)</p><p><b>  {</b></p><p>  printf("該生考號:%d 姓名:%s 性別:%s 分?jǐn)?shù):%d 錄取情況:",</p><p>  data[ss[0]].ID,data[ss[0]].na

43、me,data[ss[0]].sex,data[ss[0]].score);</p><p>  if(data[ss[0]].score>=yi) printf("一本\n");</p><p>  else if(data[ss[0]].score>=er) printf("二本\n");</p><p>  

44、else if(data[ss[0]].score>=san) printf("三本\n");</p><p>  else if(data[ss[0]].score>=si) printf("高職高專\n");</p><p>  else printf("未過線,請繼續(xù)努力!\n");</p><

45、;p><b>  }</b></p><p><b>  else</b></p><p><b>  {</b></p><p>  printf("有多個考生姓名為%s,數(shù)據(jù)如下:\n",data[ss[0]].name);</p><p>  f

46、or(j=j-1;j>=0;j--)</p><p><b>  {</b></p><p>  printf("該生考號:%d 姓名:%s 性別:%s 分?jǐn)?shù):%d 錄取情況:",</p><p>  data[ss[j]].ID,data[ss[j]].name,data[ss[j]].sex,data[ss[j]]

47、.score);</p><p>  if(data[ss[j]].score>=yi) printf("一本\n");</p><p>  else if(data[ss[j]].score>=er) printf("二本\n");</p><p>  else if(data[ss[j]].score>=

48、san) printf("三本\n");</p><p>  else if(data[ss[j]].score>=si) printf("高職高專\n");</p><p>  else printf("未過線,請繼續(xù)努力!\n");</p><p><b>  }</b>&l

49、t;/p><p><b>  }</b></p><p>  printf("是否繼續(xù)查詢?(y/n):");</p><p>  if(getchar()=='y')</p><p><b>  {</b></p><p>  fflush(

50、stdin);</p><p>  goto start2;</p><p><b>  }</b></p><p><b>  }</b></p><p><b>  break;</b></p><p>  實(shí)現(xiàn)“退出系統(tǒng)”即“3”指令:</p

51、><p><b>  case '3':</b></p><p>  fclose(file);</p><p>  free(data);</p><p><b>  return;</b></p><p>  實(shí)現(xiàn)“重新打印初始界面”即“4”指令:</p

52、><p><b>  case '4':</b></p><p><b>  print();</b></p><p><b>  break;</b></p><p><b>  }</b></p><p><b

53、>  }</b></p><p>  fclose(file);</p><p>  free(data);</p><p><b>  }</b></p><p>  下面,則開始對開始定義的函數(shù)進(jìn)行填充:</p><p>  根據(jù)1000名學(xué)生的成績進(jìn)行從高到底的排序:<

54、;/p><p>  void paixu(int* pai,DATA* data,int length)</p><p><b>  {</b></p><p>  int i,j,temp;</p><p>  for(i=0;i<length;i++)</p><p>  for(j=i+1

55、;j<length;j++)</p><p>  if(data[pai[i]].score<data[pai[j]].score)</p><p><b>  {</b></p><p>  temp=pai[i];</p><p>  pai[i]=pai[j];</p><p>

56、  pai[j]=temp;</p><p><b>  }</b></p><p><b>  }</b></p><p>  計(jì)算各批次比例的四舍五入:</p><p>  int sishewuru(double l)</p><p><b>  {</

57、b></p><p><b>  if(l>1)</b></p><p><b>  {</b></p><p>  if((l-(int)l)<0.5) return (int)l;</p><p>  else return (int)l+1;</p><p

58、><b>  }</b></p><p>  else return 1;</p><p><b>  }</b></p><p><b>  各批次男女比例:</b></p><p>  void func1(int* male,int* female,DATA* da

59、ta,int* pai,int a,int b,int c,int d)</p><p><b>  {</b></p><p><b>  int i;</b></p><p>  for(i=0;i<4;i++) {male[i]=0;female[i]=0;}</p><p>  for

60、(i=0;i<=a;i++)</p><p><b>  {</b></p><p>  if(data[pai[i]].sex[0]==-60) male[0]++;</p><p>  else female[0]++;</p><p><b>  }</b></p><

61、;p>  for(;i<=b;i++)</p><p><b>  {</b></p><p>  if(data[pai[i]].sex[0]==-60) male[1]++;</p><p>  else female[1]++;</p><p><b>  }</b></p&

62、gt;<p>  for(;i<=c;i++)</p><p><b>  {</b></p><p>  if(data[pai[i]].sex[0]==-60) male[2]++;</p><p>  else female[2]++;</p><p><b>  }</b>

63、;</p><p>  for(;i<=d;i++)</p><p><b>  {</b></p><p>  if(data[pai[i]].sex[0]==-60) male[3]++;</p><p>  else female[3]++;</p><p><b>  }&

64、lt;/b></p><p><b>  }</b></p><p><b>  界面:</b></p><p>  void print()</p><p><b>  {</b></p><p>  printf("---------

65、-----------------------高考招生錄取程序-------------------------------\n");</p><p>  printf("今年招生計(jì)劃:一類本科招生計(jì)劃為 10%\n 二類本科招生計(jì)劃為 15%\n\</p><p>  三類本科招生計(jì)劃為 20%\n

66、 四類高職高專招生計(jì)劃為25%\n");</p><p>  printf("查詢: \n各類招生分?jǐn)?shù)線輸入 0 各批次男女比例輸入1\</p><p>  \n單個學(xué)生錄取情況輸入2 退出系統(tǒng)輸入 3\n重新打印初試界面輸入4\n");</p><p><b>

67、;  }</b></p><p>  根據(jù)考生的姓名或考號進(jìn)行單個學(xué)生成績查詢:</p><p>  int func2(int* ss,int length,DATA* data)</p><p><b>  {</b></p><p>  int i,j=0;</p><p>  

68、char s[4];</p><p><b>  while(1)</b></p><p><b>  {</b></p><p>  i=scanf("%s",s);</p><p>  fflush(stdin);</p><p><b> 

69、 if(i!=1) </b></p><p><b>  {</b></p><p>  printf("非法輸入,請重新輸入\n請輸入:");</p><p><b>  continue;</b></p><p><b>  }</b><

70、;/p><p>  for(i=0;i<length;i++)</p><p><b>  {</b></p><p>  if(data[i].name[0]==s[0]&&data[i].name[1]==s[1]&&data[i].name[2]==s[2])</p><p>&l

71、t;b>  {</b></p><p>  ss[j++]=i;</p><p><b>  }</b></p><p><b>  }</b></p><p><b>  break;</b></p><p><b>  }

72、</b></p><p><b>  return j;</b></p><p><b>  }</b></p><p><b>  四、實(shí)現(xiàn)結(jié)果</b></p><p><b>  系統(tǒng)界面</b></p><p>&

73、lt;b>  各類招生錄取成績</b></p><p><b>  各批次男女比例</b></p><p><b>  五 課設(shè)總結(jié)</b></p><p>  在進(jìn)行幾次上機(jī)實(shí)習(xí)后,我感覺c語言真是一門很神奇的學(xué)科,它在只借助一臺計(jì)算機(jī),一個vc++,就能帶給人們那么多實(shí)用的東西!</p>

74、<p>  而且,我對c語言有了全新的認(rèn)識,以前不知道的東西在上機(jī)之后完全了解了,以前一知半解的東西在上機(jī)之后感覺分變得更加明了了。很多錯誤都是始料未及的,往往一點(diǎn)的小差錯都會導(dǎo)致整個程序無法運(yùn)行或者錯誤運(yùn)行。</p><p>  在上機(jī)實(shí)習(xí)的前幾節(jié)課,我感覺有點(diǎn)茫然不知所措,只有將書上的相關(guān)知識一遍又一遍地了解。</p><p>  在多次了解后,開始理解編程就順利多了。&

75、lt;/p><p><b>  六 程序代碼</b></p><p>  #include <stdio.h></p><p>  #include <malloc.h></p><p>  struct DATA</p><p><b>  {</b>

76、</p><p><b>  int ID;</b></p><p>  char name[4];</p><p>  char sex[3];</p><p>  int score;</p><p><b>  };</b></p><p>  

77、void paixu(int*,DATA*,int);</p><p>  int sishewuru(double);</p><p>  void func1(int*,int*,DATA*,int*,int,int,int,int);//統(tǒng)計(jì)男女比例</p><p>  int func2(int*,int,DATA*);//查找考生序號</p>

78、<p>  void print();</p><p>  void main()</p><p><b>  {</b></p><p>  int length=0,i,yiben,erben,sanben,dazhuan,male[4],female[4];</p><p>  int yi,er,sa

79、n,si;</p><p>  char input;</p><p>  FILE* file=fopen("f1.txt","r"),*file1;</p><p>  if(file==NULL)</p><p><b>  {</b></p><p>

80、;  printf("No such file!\n");</p><p><b>  return;</b></p><p><b>  }</b></p><p>  while(EOF!=fscanf(file,"%*[^\n]\n")) length++;//自動計(jì)算考生數(shù)量

81、</p><p>  DATA* data=(DATA*)malloc(length*sizeof(DATA));</p><p>  int* pai=(int*)malloc(length*sizeof(int));</p><p>  rewind(file);</p><p>  for(i=0;i<length;i++)<

82、;/p><p><b>  {</b></p><p>  fscanf(file,"%d %s %s %d",&data[i].ID,&data[i].name,&data[i].sex,&data[i].score);</p><p><b>  pai[i]=i;</b>

83、;</p><p><b>  }</b></p><p>  paixu(pai,data,length);//將1-1000的學(xué)生按成績排序</p><p>  yiben=sishewuru(length*0.1)-1;//分別按比例進(jìn)行計(jì)算并四舍五入為整數(shù)</p><p>  erben=yiben+sishew

84、uru(length*0.15);</p><p>  sanben=erben+sishewuru(length*0.2);</p><p>  dazhuan=sanben+sishewuru(length*0.25);</p><p>  yi=data[pai[yiben]].score;er=data[pai[erben]].score;</p>

85、;<p>  san=data[pai[sanben]].score;si=data[pai[dazhuan]].score;</p><p><b>  while(1)</b></p><p><b>  {</b></p><p><b>  print();</b></p&

86、gt;<p>  printf("\n請輸入查詢碼:");</p><p>  for(input=getchar();;input=getchar())</p><p><b>  {</b></p><p>  if(!(input>='0'&&input<=&#

87、39;4'))</p><p><b>  {</b></p><p>  printf("非法輸入,請重新輸入\n請輸入:");</p><p>  fflush(stdin);</p><p><b>  }</b></p><p>  els

88、e break;</p><p><b>  }</b></p><p>  getchar();</p><p>  switch(input)</p><p><b>  {</b></p><p><b>  case '0':</b&g

89、t;</p><p>  printf("\n一類本科招生線:%d\n二類本科招生線:%d\n三類本科招生線:%d\</p><p>  \n高職高專招生線:%d\n",yi,er,san,si);</p><p>  printf("是否打印為文件?(y/n):");</p><p>  if(get

90、char()=='y')</p><p><b>  {</b></p><p>  file1=fopen("各批次錄取分?jǐn)?shù)線.txt","w");</p><p>  fprintf(file1,"一類本科招生線:%d\n二類本科招生線:%d\</p><

91、p>  \n三類本科招生線:%d\n高職高專招生線:%d\n",yi,er,san,si);</p><p>  fclose(file1);</p><p><b>  }</b></p><p>  fflush(stdin);</p><p><b>  break;</b>&

92、lt;/p><p><b>  case '1':</b></p><p>  func1(male,female,data,pai,yiben,erben,sanben,dazhuan);</p><p>  printf("一類本科招生線男女比例: %d:%d\n",male[0],female[0

93、]);</p><p>  printf("二類本科招生線男女比例: %d:%d\n",male[1],female[1]);</p><p>  printf("三類本科招生線男女比例: %d:%d\n",male[2],female[2]);</p><p>  printf("高職高專招生線

94、招生線男女比例:%d:%d\n",male[3],female[3]);</p><p>  printf("是否打印為文件?(y/n):");</p><p>  if(getchar()=='y')</p><p><b>  {</b></p><p>  file1=

95、fopen("各批次錄取男女比例.txt","w");</p><p>  fprintf(file1,"一類本科招生線男女比例: %d:%d\n",male[0],female[0]);</p><p>  fprintf(file1,"二類本科招生線男女比例: %d:%d\n",male

96、[1],female[1]);</p><p>  fprintf(file1,"三類本科招生線男女比例: %d:%d\n",male[2],female[2]);</p><p>  fprintf(file1,"高職高專招生線招生線男女比例:%d:%d\n",male[3],female[3]);</p><p>

97、;  fclose(file1);</p><p><b>  }</b></p><p>  fflush(stdin);</p><p><b>  break;</b></p><p><b>  case '2':</b></p><

98、p>  printf("按考號查詢輸入0 按姓名查詢輸入1\n請輸入查詢碼:");</p><p>  for(input=getchar();;input=getchar())</p><p><b>  {</b></p><p>  if(input!='0'&&

99、input!='1')</p><p><b>  {</b></p><p>  printf("非法輸入,請重新輸入\n請輸入:");</p><p>  fflush(stdin);</p><p><b>  }</b></p><p&

100、gt;  else break;</p><p><b>  }</b></p><p>  getchar();</p><p>  int shuru,j,ss[10];//假設(shè)最多10個重名的</p><p>  for(j=0;j<10;j++) ss[i]=0;</p><p> 

101、 if(input=='0')</p><p><b>  {</b></p><p>  start1:printf("請輸入考號:");</p><p>  for(j=scanf("%d",&shuru);j!=1||shuru/10000!=4211;j=scan

102、f("%d",&shuru))</p><p>  {//假設(shè)考號開頭為4211</p><p>  printf("非法輸入,請重新輸入\n請輸入:");</p><p>  fflush(stdin);</p><p><b>  }</b></p>&l

103、t;p>  getchar();</p><p>  j=shuru%10000;//假設(shè)考號和序號的關(guān)系</p><p>  printf("該生考號:%d 姓名:%s 性別:%s 分?jǐn)?shù):%d 錄取情況:",</p><p>  shuru,data[j].name,data[j].sex,data[j].score);</p>

104、;<p>  if(data[j].score>=yi) printf("一本\n");</p><p>  else if(data[j].score>=er) printf("二本\n");</p><p>  else if(data[j].score>=san) printf("三本\n")

105、;</p><p>  else if(data[j].score>=si) printf("高職高專\n");</p><p>  else printf("未過線,請繼續(xù)努力!\n");</p><p>  printf("是否繼續(xù)查詢?(y/n):");</p><p>

106、  if(getchar()=='y')</p><p><b>  {</b></p><p>  fflush(stdin);</p><p>  goto start1;</p><p><b>  }</b></p><p><b>  

107、}</b></p><p><b>  else</b></p><p><b>  {</b></p><p>  start2:printf("請輸入姓名:");</p><p>  j=func2(ss,length,data);//查找考生序號<

108、;/p><p>  if(j==0) printf("查無此人!\n");</p><p>  else if(j==1)</p><p><b>  {</b></p><p>  printf("該生考號:%d 姓名:%s 性別:%s 分?jǐn)?shù):%d 錄取情況:",</p>

109、<p>  data[ss[0]].ID,data[ss[0]].name,data[ss[0]].sex,data[ss[0]].score);</p><p>  if(data[ss[0]].score>=yi) printf("一本\n");</p><p>  else if(data[ss[0]].score>=er) printf

110、("二本\n");</p><p>  else if(data[ss[0]].score>=san) printf("三本\n");</p><p>  else if(data[ss[0]].score>=si) printf("高職高專\n");</p><p>  else printf

111、("未過線,請繼續(xù)努力!\n");</p><p><b>  }</b></p><p><b>  else</b></p><p><b>  {</b></p><p>  printf("有多個考生姓名為%s,數(shù)據(jù)如下:\n",

112、data[ss[0]].name);</p><p>  for(j=j-1;j>=0;j--)</p><p><b>  {</b></p><p>  printf("該生考號:%d 姓名:%s 性別:%s 分?jǐn)?shù):%d 錄取情況:",</p><p>  data[ss[j]].ID,da

113、ta[ss[j]].name,data[ss[j]].sex,data[ss[j]].score);</p><p>  if(data[ss[j]].score>=yi) printf("一本\n");</p><p>  else if(data[ss[j]].score>=er) printf("二本\n");</p>

114、<p>  else if(data[ss[j]].score>=san) printf("三本\n");</p><p>  else if(data[ss[j]].score>=si) printf("高職高專\n");</p><p>  else printf("未過線,請繼續(xù)努力!\n");<

115、;/p><p><b>  }</b></p><p><b>  }</b></p><p>  printf("是否繼續(xù)查詢?(y/n):");</p><p>  if(getchar()=='y')</p><p><b> 

116、 {</b></p><p>  fflush(stdin);</p><p>  goto start2;</p><p><b>  }</b></p><p><b>  }</b></p><p><b>  break;</b>&l

117、t;/p><p><b>  case '3':</b></p><p>  fclose(file);</p><p>  free(data);</p><p><b>  return;</b></p><p><b>  case '4&

118、#39;:</b></p><p><b>  print();</b></p><p><b>  break;</b></p><p><b>  }</b></p><p><b>  }</b></p><p>

119、  fclose(file);</p><p>  free(data);</p><p><b>  }</b></p><p>  void paixu(int* pai,DATA* data,int length)</p><p><b>  {</b></p><p>

120、;  int i,j,temp;</p><p>  for(i=0;i<length;i++)</p><p>  for(j=i+1;j<length;j++)</p><p>  if(data[pai[i]].score<data[pai[j]].score)</p><p><b>  {</b&g

121、t;</p><p>  temp=pai[i];</p><p>  pai[i]=pai[j];</p><p>  pai[j]=temp;</p><p><b>  }</b></p><p><b>  }</b></p><p>  in

122、t sishewuru(double l)</p><p><b>  {</b></p><p><b>  if(l>1)</b></p><p><b>  {</b></p><p>  if((l-(int)l)<0.5) return (int)l;&l

123、t;/p><p>  else return (int)l+1;</p><p><b>  }</b></p><p>  else return 1;</p><p><b>  }</b></p><p>  void func1(int* male,int* female

124、,DATA* data,int* pai,int a,int b,int c,int d)</p><p><b>  {</b></p><p><b>  int i;</b></p><p>  for(i=0;i<4;i++) {male[i]=0;female[i]=0;}</p><p

125、>  for(i=0;i<=a;i++)</p><p><b>  {</b></p><p>  if(data[pai[i]].sex[0]==-60) male[0]++;</p><p>  else female[0]++;</p><p><b>  }</b></p

126、><p>  for(;i<=b;i++)</p><p><b>  {</b></p><p>  if(data[pai[i]].sex[0]==-60) male[1]++;</p><p>  else female[1]++;</p><p><b>  }</b&g

127、t;</p><p>  for(;i<=c;i++)</p><p><b>  {</b></p><p>  if(data[pai[i]].sex[0]==-60) male[2]++;</p><p>  else female[2]++;</p><p><b>  }

128、</b></p><p>  for(;i<=d;i++)</p><p><b>  {</b></p><p>  if(data[pai[i]].sex[0]==-60) male[3]++;</p><p>  else female[3]++;</p><p><

129、b>  }</b></p><p><b>  }</b></p><p>  void print()</p><p><b>  {</b></p><p>  printf("--------------------------------高考招生錄取程序-----

130、--------------------------\n");</p><p>  printf("今年招生計(jì)劃:一類本科招生計(jì)劃為 10%\n 二類本科招生計(jì)劃為 15%\n\</p><p>  三類本科招生計(jì)劃為 20%\n 四類高職高專招生計(jì)劃為25%\n");</p>

131、<p>  printf("查詢: \n各類招生分?jǐn)?shù)線輸入 0 各批次男女比例輸入1\</p><p>  \n單個學(xué)生錄取情況輸入2 退出系統(tǒng)輸入 3\n重新打印初試界面輸入4\n");</p><p><b>  }</b></p><p> 

132、 int func2(int* ss,int length,DATA* data)</p><p><b>  {</b></p><p>  int i,j=0;</p><p>  char s[4];</p><p><b>  while(1)</b></p><p>

133、;<b>  {</b></p><p>  i=scanf("%s",s);</p><p>  fflush(stdin);</p><p><b>  if(i!=1) </b></p><p><b>  {</b></p><p

134、>  printf("非法輸入,請重新輸入\n請輸入:");</p><p><b>  continue;</b></p><p><b>  }</b></p><p>  for(i=0;i<length;i++)</p><p><b>  {<

135、;/b></p><p>  if(data[i].name[0]==s[0]&&data[i].name[1]==s[1]&&data[i].name[2]==s[2])</p><p><b>  {</b></p><p>  ss[j++]=i;</p><p><b&

136、gt;  }</b></p><p><b>  }</b></p><p><b>  break;</b></p><p><b>  }</b></p><p><b>  return j;</b></p><p&g

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論