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

下載本文檔

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

文檔簡(jiǎn)介

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

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

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

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

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

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

7、信息的文本文件輸入程序。</p><p><b>  第一步為定義:</b></p><p>  #include <stdio.h></p><p>  #include <malloc.h></p><p>  用結(jié)構(gòu)體的形式將學(xué)生的一切信息表達(dá)出來(lái):</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>  定義各個(gè)函數(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*);//查找考生序號(hào)</p><p>  void print();</p><p>  void main()</p><p>  再應(yīng)該從f1.txt中向程序?qū)雽⒚恳粋€(gè)人的學(xué)號(hào)、姓名、性別、分?jǐn)?shù)

11、,并自動(dòng)計(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++;//自動(dòng)計(jì)算考生數(shù)量</p><p>  然后比較大

13、小,將原來(lái)一千個(gè)人按成績(jī)高低排好順序:</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é)生按成績(jī)排序</p><p>  對(duì)1000名學(xué)生的成績(jī)分別按比例進(jìn)行計(jì)算并四舍五入為整數(shù),可得出各批次最低成績(jī),即各批次的錄取成績(jī)。要?jiǎng)澇龈髋蔚匿浫〕煽?jī),就要將壓線(xiàn)的那個(gè)分

16、數(shù)計(jì)算出來(lái)。在這里,特別考慮的是:壓線(xiàn)分?jǐn)?shù)上人數(shù)有多個(gè),所以,我們不能單純的將N乘以各個(gè)批次的百分點(diǎn)。編寫(xiě)程序如下:</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è)置界面:將“各類(lèi)招生分?jǐn)?shù)線(xiàn)”、“ 各批次男女比例”、“ 單個(gè)學(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請(qǐng)輸入查詢(xú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("非法輸入,請(qǐng)重新輸入\n請(qǐng)輸入:");</p><p>  fflush(stdin);</p><

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

22、><p><b>  {</b></p><p><b>  case '0':</b></p><p>  printf("\n一類(lèi)本科招生線(xiàn):%d\n二類(lèi)本科招生線(xiàn):%d\n三類(lèi)本科招生線(xiàn):%d\</p><p>  \n高職高專(zhuān)招生線(xià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ù)線(xiàn).txt",&qu

24、ot;w");</p><p>  fprintf(file1,"一類(lèi)本科招生線(xiàn):%d\n二類(lèi)本科招生線(xiàn):%d\</p><p>  \n三類(lèi)本科招生線(xiàn):%d\n高職高專(zhuān)招生線(xià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("一本類(lèi)本科招生線(xiàn)男女比例: %d:%d\n",male[0],female[0]);</p><p>  printf("二類(lèi)本科招生線(xiàn)男女比例: %d:%d\n",male[1],femal

27、e[1]);</p><p>  printf("三類(lèi)本科招生線(xiàn)男女比例: %d:%d\n",male[2],female[2]);</p><p>  printf("高職高專(zhuān)招生線(xiàn)招生線(xiàn)男女比例:%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、"一類(lèi)本科招生線(xiàn)男女比例: %d:%d\n",male[0],female[0]);</p><p>  fprintf(file1,"二類(lèi)本科招生線(xiàn)男女比例: %d:%d\n",male[1],female[1]);</p><p>  fprintf(file1,"三類(lèi)本科招生線(xiàn)男女比例: %d:%d\n&

30、quot;,male[2],female[2]);</p><p>  fprintf(file1,"高職高專(zhuān)招生線(xiàn)招生線(xiàn)男女比例:%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)“單個(gè)學(xué)生錄取情況”即“2”指令:</p><p><b>  case '2':</b></p><p>  printf("按考號(hào)查詢(xún)輸入0 按姓名查

32、詢(xún)輸入1\n請(qǐng)輸入查詢(xú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("非法輸入,請(qǐng)重新輸入\n請(qǐng)輸入:");</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個(gè)重名的</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("請(qǐng)輸入考號(hào):");</p><p>  for(j=scanf("%d",&shuru);j!=1||shuru/10000!=4211;j=scanf("%d",&shuru))</p>&

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

37、j=shuru%10000;//假設(shè)考號(hào)和序號(hào)的關(guān)系</p><p>  printf("該生考號(hào):%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("高職高專(zhuān)\n");</p><p>  else printf("未過(guò)線(xiàn),請(qǐng)繼續(xù)努力!\n");</p><p>  printf("是否繼續(xù)查詢(xún)?(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("請(qǐng)輸入姓名:");</p><p>  j=func2(ss,length,data);//查找考生序號(hào)</p><p>  if(j==0) printf("

42、查無(wú)此人!\n");</p><p>  else if(j==1)</p><p><b>  {</b></p><p>  printf("該生考號(hào):%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("高職高專(zhuān)\n");</p><p>  else printf("未過(guò)線(xiàn),請(qǐng)繼續(xù)努力!\n");</p><

45、;p><b>  }</b></p><p><b>  else</b></p><p><b>  {</b></p><p>  printf("有多個(gè)考生姓名為%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("該生考號(hào):%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("高職高專(zhuān)\n");</p><p>  else printf("未過(guò)線(xiàn),請(qǐng)繼續(xù)努力!\n");</p><p><b>  }</b>&l

49、t;/p><p><b>  }</b></p><p>  printf("是否繼續(xù)查詢(xún)?(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>  下面,則開(kāi)始對(duì)開(kāi)始定義的函數(shù)進(jìn)行填充:</p><p>  根據(jù)1000名學(xué)生的成績(jī)進(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ì)劃:一類(lèi)本科招生計(jì)劃為 10%\n 二類(lèi)本科招生計(jì)劃為 15%\n\</p><p>  三類(lèi)本科招生計(jì)劃為 20%\n

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

67、;  }</b></p><p>  根據(jù)考生的姓名或考號(hào)進(jìn)行單個(gè)學(xué)生成績(jī)查詢(xún):</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("非法輸入,請(qǐng)重新輸入\n請(qǐng)輸入:");</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>  各類(lèi)招生錄取成績(jī)</b></p><p><b>  各批次男女比例</b></p><p><b>  五 課設(shè)總結(jié)</b></p><p>  在進(jìn)行幾次上機(jī)實(shí)習(xí)后,我感覺(jué)c語(yǔ)言真是一門(mén)很神奇的學(xué)科,它在只借助一臺(tái)計(jì)算機(jī),一個(gè)vc++,就能帶給人們那么多實(shí)用的東西!</p>

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

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*);//查找考生序號(hào)</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++;//自動(dòng)計(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é)生按成績(jī)排序</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請(qǐng)輸入查詢(xú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("非法輸入,請(qǐng)重新輸入\n請(qǐng)輸入:");</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一類(lèi)本科招生線(xiàn):%d\n二類(lèi)本科招生線(xiàn):%d\n三類(lèi)本科招生線(xiàn):%d\</p><p>  \n高職高專(zhuān)招生線(xià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ù)線(xiàn).txt","w");</p><p>  fprintf(file1,"一類(lèi)本科招生線(xiàn):%d\n二類(lèi)本科招生線(xiàn):%d\</p><

91、p>  \n三類(lèi)本科招生線(xiàn):%d\n高職高專(zhuān)招生線(xià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("一類(lèi)本科招生線(xiàn)男女比例: %d:%d\n",male[0],female[0

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

94、招生線(xiàn)男女比例:%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,"一類(lèi)本科招生線(xiàn)男女比例: %d:%d\n",male[0],female[0]);</p><p>  fprintf(file1,"二類(lèi)本科招生線(xiàn)男女比例: %d:%d\n",male

96、[1],female[1]);</p><p>  fprintf(file1,"三類(lèi)本科招生線(xiàn)男女比例: %d:%d\n",male[2],female[2]);</p><p>  fprintf(file1,"高職高專(zhuān)招生線(xiàn)招生線(xiàn)男女比例:%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("按考號(hào)查詢(xún)輸入0 按姓名查詢(xún)輸入1\n請(qǐng)輸入查詢(xú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("非法輸入,請(qǐng)重新輸入\n請(qǐng)輸入:");</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個(gè)重名的</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("請(qǐng)輸入考號(hào):");</p><p>  for(j=scanf("%d",&shuru);j!=1||shuru/10000!=4211;j=scan

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

103、t;p>  getchar();</p><p>  j=shuru%10000;//假設(shè)考號(hào)和序號(hào)的關(guān)系</p><p>  printf("該生考號(hào):%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("高職高專(zhuān)\n");</p><p>  else printf("未過(guò)線(xiàn),請(qǐng)繼續(xù)努力!\n");</p><p>  printf("是否繼續(xù)查詢(xún)?(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("請(qǐng)輸入姓名:");</p><p>  j=func2(ss,length,data);//查找考生序號(hào)<

108、;/p><p>  if(j==0) printf("查無(wú)此人!\n");</p><p>  else if(j==1)</p><p><b>  {</b></p><p>  printf("該生考號(hào):%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("高職高專(zhuān)\n");</p><p>  else printf

111、("未過(guò)線(xiàn),請(qǐng)繼續(xù)努力!\n");</p><p><b>  }</b></p><p><b>  else</b></p><p><b>  {</b></p><p>  printf("有多個(gè)考生姓名為%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("該生考號(hào):%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("高職高專(zhuān)\n");</p><p>  else printf("未過(guò)線(xiàn),請(qǐng)繼續(xù)努力!\n");<

115、;/p><p><b>  }</b></p><p><b>  }</b></p><p>  printf("是否繼續(xù)查詢(xún)?(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ì)劃:一類(lèi)本科招生計(jì)劃為 10%\n 二類(lèi)本科招生計(jì)劃為 15%\n\</p><p>  三類(lèi)本科招生計(jì)劃為 20%\n 四類(lèi)高職高專(zhuān)招生計(jì)劃為25%\n");</p>

131、<p>  printf("查詢(xún): \n各類(lèi)招生分?jǐn)?shù)線(xiàn)輸入 0 各批次男女比例輸入1\</p><p>  \n單個(gè)學(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("非法輸入,請(qǐng)重新輸入\n請(qǐng)輸入:");</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. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 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ì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論