c課程設(shè)計(jì)報(bào)告歌星管理系統(tǒng)報(bào)告_第1頁(yè)
已閱讀1頁(yè),還剩18頁(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>  C語(yǔ)言課程設(shè)計(jì)報(bào)告</b></p><p><b>  學(xué)生:定明靜</b></p><p>  學(xué)號(hào):20061003225</p><p>  班級(jí):19106922</p><p><b>  一、題目要求</b></p>&l

2、t;p> ?。?)在歌星打獎(jiǎng)賽中,有10個(gè)評(píng)委為參賽的選手打分,分?jǐn)?shù)為1~100分。選手最后得分為:去掉一個(gè)最高分和一個(gè)最低分后其余8個(gè)分?jǐn)?shù)的平均值。請(qǐng)編寫一個(gè)程序?qū)崿F(xiàn)。</p><p> ?。?)同時(shí)對(duì)評(píng)委進(jìn)行裁判,即在10個(gè)評(píng)委中找出最公平(即評(píng)分最接近平均分)和最不公平(即與平均分差距最大)的評(píng)委。</p><p><b>  二、需求分析</b><

3、/p><p>  根據(jù)題目要求,第一個(gè)的算法要在程序中判斷最大最小的變量是如何賦值的。第二個(gè)為了考慮效率,要用到排序技術(shù)。</p><p><b>  三、總體設(shè)計(jì)</b></p><p>  四、詳細(xì)設(shè)計(jì) </p><p>  #include<stdio.h> </p

4、><p>  #include"math.h"</p><p>  #define stu struct judge</p><p><b>  stu</b></p><p><b>  {</b></p><p>  int score; /*結(jié)構(gòu)

5、體*/</p><p>  double cha;</p><p>  char name[20];</p><p><b>  };</b></p><p>  void main() /*主函數(shù)*/</p><p>  { int i,</p><p>  m

6、ax=1,min=100,sum=0;</p><p>  double aver,h=1.0,k=100.0;</p><p>  stu jud[10];</p><p>  printf("Please input datas:"); </p><p>  for(i=0;i<10;i++)</p>

7、<p>  scanf("%d,%s",&jud[i].score,&jud[i].name);</p><p>  for(i=0;i<10;i++)</p><p>  { sum+=jud[i].score; </p><p>  if(jud[i].score<min)min=jud[i].sco

8、re; /*找出最低分*/</p><p>  if(jud[i].score>max)max=jud[i].score; /*找出最高分*/</p><p><b>  }</b></p><p>  printf("\nmax=%d,min=%d",max,min);</p><p> 

9、 aver=((sum-max-min)/8);</p><p>  printf("\naver=%f",aver); /***平均分***/</p><p>  for(i=0;i<10;i++)</p><p>  { jud[i].cha=fabs(jud[i].score-aver);</p><p>

10、  printf("\n%f",jud[i].cha);</p><p>  if(jud[i].cha<k)k=jud[i].cha;</p><p>  if(jud[i].cha>h)h=jud[i].cha;</p><p><b>  }</b></p><p>  for(i=

11、0;i<10;i++)</p><p>  {if(k==jud[i].cha)printf("\nThe most fair judge's name is %s",jud[i].name);/*最公平評(píng)委*/</p><p>  if(h==jud[i].cha)printf("\nThe most unfair judge's na

12、me is %s",jud[i].name);/*最不公平評(píng)委*/</p><p><b>  }</b></p><p><b>  運(yùn)行結(jié)果如圖 :</b></p><p><b>  雜志訂閱管理軟件</b></p><p><b>  一、題目要求&

13、lt;/b></p><p>  使用計(jì)算機(jī)對(duì)一種雜志的訂閱進(jìn)行管理,該雜志擁有最多訂戶不超過(guò)10人,每個(gè)訂戶的信息包括:姓名、性別、地址、電話號(hào)碼、雜志單價(jià)、訂閱數(shù)、訂閱期限(至年月).現(xiàn)要求用彩旦選者并完成下述的功能:</p><p>  增加新訂戶,即將訂戶的全部信息輸入到文件中;</p><p>  根據(jù)當(dāng)天的日期對(duì)訂戶文件進(jìn)行查詢, 刪除已經(jīng)到期的訂

14、戶記錄;</p><p>  (3)統(tǒng)計(jì)本期雜志訂戶數(shù)并打印運(yùn)算結(jié)果;</p><p><b>  本期訂戶信息表</b></p><p>  訂戶名 訂閱數(shù) 單價(jià) 金額</p><p>  李平 2 5.5 11.0</p><p>  黃海

15、 1 5.5 5.5</p><p>  合計(jì) 3 1.0 16.5</p><p><b>  需求分析</b></p><p>  根據(jù)題目要求,訂戶的信息用文件存儲(chǔ),提供文件的輸入輸出操作;提供文件的添加操作增加新訂戶 ;對(duì)訂戶文件的查尋,提供文件的查找操作;通過(guò)文件的刪除操

16、作刪除已到期的訂戶記錄;提供統(tǒng)計(jì)和顯示操作統(tǒng)計(jì)本期雜志訂戶數(shù)并打印運(yùn)算結(jié)果;另外還要提供鍵盤式選擇菜單以實(shí)現(xiàn)功能選擇。</p><p><b>  總體設(shè)計(jì)</b></p><p><b>  四 詳細(xì)設(shè)計(jì)主函數(shù)</b></p><p><b>  N</b></p><p>

17、<b>  Y </b></p><p>  #include<stdio.h>#include<stdlib.h>#include<string.h>#define N 10struct user</p><p>  { char name[10]; char sex[5]; char

18、 address[10]; char phone[20]; int amount; float price; char date[20];} U[N];void input(int);void printf_one(int i);void printf_back();void add();void printf_head();void enter();void del();

19、void browse();void search();int printf_message();int save(int n);int load();void printf_face();void printf_one(int i);void menu();void menu(){ int n,w1; do {  puts("\t\t*******

20、*****************MENU********************");  puts("\t\t**              </p><p><b>  Y</b></p>&l

21、t;p>  void enter(){int i,n;printf("\t\thow many users(1-%d)?:>>>",N);scanf("%d",&n);printf("\n\t\t enter message now\n\n");for(i=1;i<=n;i++) {printf("\n\t\

22、t input %dth user message.\n",i); input(i-1);</p><p>  }if(i!=0) save(n);printf_back();}追加模塊</p><p>  void add(){  int i,n,m,k; FILE *fp; n=load(); printf(

23、"\t\t how many users are you want to add(1-%d)?:",N-n); scanf("%d",&m); k=m+n; for(i=n+1;i<=k;i++) {printf("\n\t\t input %dth user message.\n",i-n); inpu

24、t(i-1); }  if((fp=fopen("message.txt","ab"))==NULL)  {printf("cannot open file\n");  }  for(i=n;i<k;i++)  {    if(fwrite(&U[i],sizeof(st

25、ruct user),1,fp)!=1)  printf("file write error\n");  }</p><p>  fclose(fp);   printf_back();}瀏覽模塊</p><p>  void browse(){  int i,n; n=load();

26、0;printf_face(); for(i=0;i<n;i++)  {if((i!=0)&&(i%10==0))   {printf("\n\n\t\t pass any key to continue  ...");   getchar();   put

27、s("\n\n");   }   printf_one(i);  } printf("\n\t\t there are  %d message.\n",n); printf("\n\t\t pass any key to back   ...\n&q

28、uot;); getchar(); menu();}刪除模塊</p><p>  void del(){ int n,k,i,w1=1,w2; struct user W; n=load();do { do  { k=-1;  printf("\n\n\t\t

29、 enter date that you want to search!   date:");  scanf("%s",W.date);  printf_face();  for(i=0;i<n;i++) if(strcmp(W.date,U[i].date)>0)   

30、0;{ k=i;  U[k].amount=0; printf_one(k); }  if(k==-1)    {    printf("\n\n\t\t NO exist!please");    printf("\n\n\t\t

31、 are you again?\n\t   1).again    2).no and back   [ ]\b\b");    scanf("%d",&w1);    if(w1!=1)  break;  

32、0; } } while(k==-1&&w1==1);   if(k</p><p>  FILE *fp; float sum2=0.0,sum3=0.0,b[11]; char p[]={"total"}; if((fp=fopen("message.txt&qu

33、ot;,"rb"))==NULL) {printf("\n\t\t cannot write file\n"); return NULL; }    // fwrite(&U[i],sizeof(struct user),1,fp); for(b[0]=0.0,i=0;i<n;i++) {&

34、#160; b[i]=U[i].amount*U[i].price;  sum1+=U[i].amount;  sum2+=U[i].price;  sum3+=b[i]; } printf_head(); for(i=0;i<n;i++) { printf("\t\t%9s 

35、      %d       %4.2f     %4.2f     \n",U[i].name,U[i].amount,U[i].price,b[i]); } printf("\t\t%9s &

36、#160;     %d       %4.2</p><p><b>  瀏覽模塊</b></p><p><b>  刪除模塊</b></p><p><b>  查找模塊</b></p>

37、;<p><b>  打印模塊 </b></p><p><b>  退出 </b></p><p><b>  練習(xí)一</b></p><p>  編寫一個(gè)函數(shù),這個(gè)函數(shù)同時(shí)求出個(gè)學(xué)生成績(jī)的最高分、最低分、平均分以及超過(guò)平均分的認(rèn)輸,并編寫主函數(shù)完成:1、輸入個(gè)學(xué)生的成績(jī);2、調(diào)用此函

38、數(shù)進(jìn)行統(tǒng)計(jì);3、輸出統(tǒng)計(jì)結(jié)果。(要求使用動(dòng)態(tài)分配)</p><p>  #include<stdio.h></p><p>  #include"stdlib.h"</p><p>  int over(int *p,int m)</p><p>  {int i,k=0,max=0,min=100;</

39、p><p>  float aver=0.0;</p><p>  for(i=0;i<m;i++)</p><p>  {aver+=*(p+i);</p><p>  if(*(p+i)>max) max=*(p+i);</p><p>  if(*(p+i)<min) min=*(p+i);<

40、/p><p><b>  }</b></p><p><b>  aver/=m;</b></p><p>  printf("\n max=%d,\n min=%d,\n aver=%f",max,min,aver);</p><p>  for(i=0;i<m;i++)&l

41、t;/p><p>  {if(*(p+i)>=aver) k++;}</p><p>  printf("\n k=%d",k);</p><p>  return (0);</p><p><b>  }</b></p><p>  void main()</p>

42、;<p>  int i,n,* score;int num;</p><p>  printf("\n n=?");</p><p>  scanf("%d",&n);</p><p>  score=(int*)malloc(n*sizeof(int));</p><p>  

43、if(!num||!score) exit(0);</p><p>  printf("\n enter data:");</p><p>  for(i=0;i<n;i++) scanf("%d",score+i);</p><p>  over(score,n);</p><p>  free

44、(score);</p><p>  運(yùn)行截圖如下: 窗體頂端</p><p><b>  練習(xí)二、</b></p><p>  用測(cè)試法求三色球問(wèn)題。若一個(gè)口袋中放有12個(gè)球,其中有3個(gè)紅的,3個(gè)白的6個(gè)黑的,從中任取8個(gè)球,問(wèn)共有多少種不同的顏色搭配?</p><p><b>  程序如下:</b&g

45、t;</p><p>  #include<stdio.h></p><p>  void main()</p><p>  {int i,j,k,m=0;</p><p>  for(i=0;i<=3;i++)</p><p>  {for(j=0;j<=3;j++)</p>&

46、lt;p><b>  k=7-i-j;</b></p><p>  if(k>=0&&k<=6)m++;</p><p>  printf("\n\n\n%d個(gè)紅球,\n%d個(gè)白球,\n%d個(gè)黑球",i,j,k);</p><p><b>  }</b></p&g

47、t;<p>  printf("\nThere are %d kinds",m);</p><p><b>  }運(yùn)行截圖如下: </b></p><p><b>  練習(xí)三、</b></p><p>  用迭代法求x= 的值,迭代公式為Xn+1=(Xn+a/Xn)/2;<

48、;/p><p><b>  程序如下:</b></p><p>  #include<stdio.h></p><p>  #include<math.h></p><p>  void main()</p><p>  {float x1,x2,a;</p>&

49、lt;p>  printf("\n a=?");</p><p>  scanf("%f",&a);</p><p>  scanf("%f",&x1);</p><p><b>  while(1)</b></p><p>  { x2=

50、(x1+a/x1)/2;</p><p>  if(fabs(x2-x1)<1e-6)break;</p><p><b>  x1=x2;</b></p><p><b>  }</b></p><p>  printf("\n %f",x2);</p>&

溫馨提示

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