c課程設計報告歌星管理系統(tǒng)報告_第1頁
已閱讀1頁,還剩18頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

1、<p><b>  C語言課程設計報告</b></p><p><b>  學生:定明靜</b></p><p>  學號:20061003225</p><p>  班級:19106922</p><p><b>  一、題目要求</b></p>&l

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

3、/p><p>  根據(jù)題目要求,第一個的算法要在程序中判斷最大最小的變量是如何賦值的。第二個為了考慮效率,要用到排序技術。</p><p><b>  三、總體設計</b></p><p>  四、詳細設計 </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><p>  if(h==jud[i].cha)printf("\nThe most unfair judge's na

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

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

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

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

16、作刪除已到期的訂戶記錄;提供統(tǒng)計和顯示操作統(tǒng)計本期雜志訂戶數(shù)并打印運算結(jié)果;另外還要提供鍵盤式選擇菜單以實現(xiàn)功能選擇。</p><p><b>  總體設計</b></p><p><b>  四 詳細設計主函數(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>  練習一</b></p><p>  編寫一個函數(shù),這個函數(shù)同時求出個學生成績的最高分、最低分、平均分以及超過平均分的認輸,并編寫主函數(shù)完成:1、輸入個學生的成績;2、調(diào)用此函

38、數(shù)進行統(tǒng)計;3、輸出統(tǒng)計結(jié)果。(要求使用動態(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>  運行截圖如下: 窗體頂端</p><p><b>  練習二、</b></p><p>  用測試法求三色球問題。若一個口袋中放有12個球,其中有3個紅的,3個白的6個黑的,從中任取8個球,問共有多少種不同的顏色搭配?</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個紅球,\n%d個白球,\n%d個黑球",i,j,k);</p><p><b>  }</b></p&g

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

評論

0/150

提交評論