欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

標題: C語言程序設計-課程設計論文 [打印本頁]

作者: sans    時間: 2015-4-7 01:05
標題: C語言程序設計-課程設計論文

 

 

 

中 國 地 質 大 學

C語言程序設計

 

 

 

課程名 計算機高級語言課程設計(C)

教師姓                  

本科生姓名                  

本科生學號   20121002504         

本科生專業   地球化學            

所在院   地球科學學院        

類別:    .      本科生              

日期:          2015年1月23    

 

 

 

 

 

 

課程設計評語

對課程論文的評語:

 

平時成績:

課程論文成績:

總 成 績:

評閱人簽名:

 

注:1、無評閱人簽名成績無效;

2、必須用鋼筆或圓珠筆批閱,用鉛筆閱卷無效;

3、如有平時成績,必須在上面評分表中標出,并計算入總成績。

目 錄

1.題目要求

2.需求分析

3.總體設計

4.詳細設計

5.上機操作

6.總結

7.致謝

參考文獻

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1.題目要求

題目:歌星大賽獎

要求:

(1)在歌星大賽中,有十個評委為參賽的選手打分。分數為1-100分。選手最后得分為:去掉一個最高分,去掉一個最低分其余8個分數的平均值。試寫一段程序實現。

(2)同時對評委評分進行判斷,即在10個評委中找出最公平(評分最接近平均分)的和最不公平的(即與平均分的差距最大)的評委。

2.需求分析

這個問題的第一個算法要求簡單,但是要注意在程序中判斷最大,最小的變量是如何賦值;第二個要求要考慮效率,要用到排序技術。注意,要用到文件儲存信息。

3.總體設計

評分系統需要錄入歌星的信息,輸入10個評委的評分,然后求出相應的平均數,再求出最公平的和最不公平的評委,保存再相應的文件夾中。分為錄入,計算,瀏覽,修改,刪除,查詢模塊。


 



 

 數據結構體設計:定義結構體變量struct people,進行數據輸入,輸出,保存,修改等功能。

     其中定義M=50,指該數據庫最多能放50組數據。N為可變數據組數,即當前數據組數。

4.詳細設計

4.1主函數

main()

{

void re_file();            //讀文件

int sele;

sele=1;

while(sele)

{

system("cls");

printf("\n\n");               //顯示界面

printf("    ****************************************\n");

printf("    *                                      *\n");

printf("    *      1:瀏覽                  2:刪除  *\n");

printf("    *      3:增加                  4:修改  *\n");

printf("    *      5:退出                  6:計算  *\n");

printf("    *      7查詢                           *\n");

printf("    *                                      *\n");

printf("    ****************************************\n");

printf("\n\n    請輸入選擇功能序號:");

scanf("%d",&sele);       //通過輸入按鍵來判斷執行那個步驟

switch(sele)

{

case 1:display();break;

case 2:display();delete1();break;

case 3:apepend();display();break;

case 4:display();modify();break;

case 5:sele=0;break;

case 6:caculate();display();break;

case 7:query();break;

}

wr_file();    //寫文件

printf("\n按任意鍵繼續\n");

getch();

}

}

4.2各功能模塊設計

4.2.1數據讀入模塊

  /*先定義一個結構體struct  people,包含每位歌星的評分信息,在用可讀的方式打開文件zhongmo.txt.*/

struct people

{

 char name[40];

 char xuhao;

 float pinjunfen;

 float pingfen[10];

 char xuanpingwei[2];

}ss[M]; 

/*M為最多的明星個數,程序中采用宏定義的方式,可以隨時改變源程序中定義的修改值。本程序中宏定義:#define M 50。*/

//數據讀入模塊

void re_file()

{

  char i;

  FILE *fp;

  fp=fopen("zhangmo.txt","r");

  while(fscanf(fp,"%s%s%d%d%d",ss[i].name,&ss[i].xuhao,&ss[i].pinjunfen,

         ss[i].xuanpingwei[0],ss[i].xuanpingwei[1]

         )!=EOF)  i++;

  fclose(fp);

}

/*本程序為了簡化計算結果,分數采用100進制整數形式,如果需要修改,可以定義為float類型。*/

4.2.2計算模塊

本程序的目的是為了計算出每位明星的平均分和最佳或者最差評分員。采用冒泡法來計算最小值和最大值,從而判斷平均值。在判斷最好和最差評分員。

void caculate()

{char fenshu[10],zhongjinazhi;

 int zhonggong=0;

 int i,j,k;

 int zuixiaozhi,zuidazhi;

 for(k=0;k<N;k++)

{

 for(i=0;i<10;i++)

 fenshu[i]=ss[k].pingfen[i];

 

 for(i=0;i<9;i++)

 for(j=i;j<9;j++)

 { 

     if(fenshu[i]>fenshu[j+1])

       {

              zhongjinazhi=fenshu[i];

         fenshu[i]=fenshu[j+1];

         fenshu[j+1] =zhongjinazhi;      

       }

 }

for(i=1;i<9;i++)

zhonggong=zhonggong+fenshu[i];

zhonggong=zhonggong/8;

ss[k].pinjunfen=zhonggong;

zuidazhi=abs(zhonggong-ss[k].pingfen[0])

for(i=1;i<10;i++)

{

 if(abs(zhonggong-ss[k].pingfen[i])>zuidazhi)

       j=i;

}

ss[k].xuanpingwei[0]=j;//最差評委

zuixiaozhi=abs(zhonggong-ss[k].pingfen[0]);

for(i=1;i<10;i++)

{

  if(zuixiaozhi>abs(zhonggong-ss[k].pingfen[i]))

  {

    zuixiaozhi=abs(zhonggong-ss[k].pingfen[i]);

       j=i;

  }

}

ss[k].xuanpingwei[1]=j;//最好評委

 }

}

4.2.3增加模塊

從鍵盤添加新的明星信息和評分

void apepend()

{

  int n,i,j;

  printf("\n增加歌星人數");

  scanf("%d",&n);  N=N+n;      //新增人數疊加,不影響原來的明星

  printf("\n現在,輸入相關信息:\n");

  for(i=1;i<n+1;i++)

  {

       printf("歌星:");

    scanf("%s",&ss[N-n-1+i].name);

       printf("序號:"); 

       scanf("%s",&ss[N-n-1+i].xuhao);

       printf("評委打分:");

       for(j=0;j<10;j++)

       { 

              printf("評委%d:",j+1);

           scanf("%d",&ss[N-n-1+i].pingfen[j]);

       }

  }

}

4.2.4修改模塊

該程序的功能是根據姓名或者序號修改明星的評分,序號,或者姓名。

void modify()

{

 int i,j=-1,t;

 char m[40],d[10];

 printf("\n\n\n");

 printf("    *******************************************\n");

 printf("    *                                         *\n");

 printf("    *  1:姓名         2:序號                  *\n");

 printf("    *                                         *\n");

 printf("    *******************************************\n");

 printf("請輸入修改選項:");

 scanf("%d",&i);

 if(i==1)

 {

   printf("請輸入歌星:");

   scanf("%s",&m);

   for(i=0;i<N;i++)

   if(strcmp(m,ss[i].name)==0)

          j=i;

 }

else if(i==2)

{

  printf("請輸入序號:");

  scanf("%s",&d);

  for(i=0;i<N;i++)

       if(strcmp(d,ss[i].xuhao)==0)

                j=i;

}

if(j==-1)

printf("沒有找到!\n");

else {

   printf("序號  歌星    評委1   2   3   4   5   6   7   8   9  10  平均分最差評委最好評委\n");

       printf("%3s%6s%8d%5d%5d%4d%4d%4d%4d%4d%4d%4d%8d%8d%6d\n",ss[j].xuhao,ss[j].name,

              ss[j].pingfen[0],ss[j].pingfen[1],ss[j].pingfen[2],ss[j].pingfen[3],

              ss[j].pingfen[4],ss[j].pingfen[5],ss[j].pingfen[6],ss[j].pingfen[7],

              ss[j].pingfen[8],ss[j].pingfen[9],ss[j].pinjunfen,ss[j].xuanpingwei[0],

              ss[j].xuanpingwei[1]);

}

printf("\n\n");

printf("     ********************************************************************\n");

printf("     *                                                                  *\n");

printf("     *        1:序號           2:歌星名                 3:評分        *\n");

printf("     *                                                                  *\n");

printf("     ********************************************************************\n");

scanf("%d",&t);

switch(t)

{

    case 1:printf("序號改為:");scanf("%s",&ss[j].xuhao);break;

       case 2:printf("姓名改為:");scanf("%s",ss[j].name);break;

       case 3:printf("評分改為:");

                 {

                  for(i=0;i<10;i++)

                     {

                        printf("評委%d",i+1);

                       scanf("%f",&ss[i].pingfen[i]);

                     }

                 }

              break;

}

}

4.2.5刪除模塊

該程序的功能是根據序號或者明星姓名刪除某位明星的評分數據。

void delete1()

{

int i,j=-1;

char m[40],d[10];

printf("刪除模塊:");

printf("\n\n");

printf("     ******************************************************************\n");

printf("     *                                                                *\n");

printf("     *        1:歌星名          2:序號                                *\n");

printf("     *                                                                *\n");

printf("     ******************************************************************\n");

printf("輸入刪除選項:\n");

scanf("%d",&i);

if(i==1)

{

 printf("輸入歌星名:");

 scanf("%s",m);

 for(i=0;i<N;i++)

       if(strcmp(m,ss[i].name)==0)

              j=i;

}

if(i==2)

{

 printf("輸入序號:");

 scanf("%s",d);

 for(i=0;i<N;i++)

       if(strcmp(d,ss[i].xuhao)==0)

              j=i;

}

 

if(j!=-1)

{

  N=N-1;

  for(i=j;i<=N&&j!=-1;i++)

         ss[i]=ss[i+1];

}

else if(j==-1)

printf("沒有找到!\n");

}

4.2.6瀏覽模塊

該模塊的功能是顯示所有的明星評分數據。

void display()

{

int i,j;

system("cls");

  printf("序號  歌星    評委1   2   3   4   5   6   7   8   9  10  平均分最差評委最好評委\n");

for(j=0,i=1;j<N;i++,j++)

{                                                                                        printf("%3s%6s%8d%5d%5d%4d%4d%4d%4d%4d%4d%4d%8d%8d%6d\n",ss[j].     xuhao,ss[j].name,

              ss[j].pingfen[0],ss[j].pingfen[1],ss[j].pingfen[2],ss[j].pingfen[3],

              ss[j].pingfen[4],ss[j].pingfen[5],ss[j].pingfen[6],ss[j].pingfen[7],

              ss[j].pingfen[8],ss[j].pingfen[9],ss[j].pinjunfen,ss[j].xuanpingwei[0],

              ss[j].xuanpingwei[1]);

   if(i%10==0)

   {

          printf("按任意鍵繼續....");

          getch();

          puts("\n");

  printf("序號  歌星    評委1   2   3   4   5   6   7   8   9  10  平均分最差評委最好評委\n");

   }

}

}

4.2.7查詢模塊

通過輸入序號或者歌星名,調取歌星的信息

void query()

{

int i,j[20]={-1},d,k,t=0;

char m[20];

printf("查詢模塊:");

printf("\n\n");

printf("   ********************************************************************\n");

printf("   *                                                                  *\n");

printf("   *        1:歌星名                     2:序號                      *\n");

printf("   *                                                                  *\n");

printf("   ********************************************************************\n");

printf("輸入查詢選項:\n");

scanf("%d",&k);

if(k==1)

{

  printf("請輸入姓名:");

  scanf("%s",&m);

  for(i=0;i<N;i++)

         if(strcmp(m,ss[i].name)==0)

         {

           j[t]=i;t=t+1;

         }

         else if(k==2)

     {

       printf("請輸入序號");

       scanf("%d",&d);

        for(i=0;i<N;i++)

       if(d==ss[i].xuhao)

          {

           j[t]=i;t++;

          }

      if(j[0]==-1&&t==0)

       printf("沒有找到!\n");

      if(j[0]!=-1&&t!=0)

         {

       printf("序號  歌星    評委1   2   3   4   5   6   7   8   9  10  平均分最差               評委最好評委\n");

 for(i=0;i<t;i++)   printf("%3s%6s%8d%5d%5d%4d%4d%4d%4d%4d%4d%4d%8d%8d%6d\n",ss[i].xuhao,ss[i].name,

              ss[i].pingfen[0],ss[i].pingfen[1],ss[i].pingfen[2],ss[i].pingfen[3],

              ss[i].pingfen[4],ss[i].pingfen[5],ss[i].pingfen[6],ss[i].pingfen[7],

              ss[i].pingfen[8],ss[i].pingfen[9],ss[i].pinjunfen,ss[i].xuanpingwei[0],

              ss[i].xuanpingwei[1]);

         }

   }

}

}

5上機操作

5.1主界面顯示:

圖5-1主界面

5.2瀏覽模塊:按1進入

圖5-2瀏覽模塊

5-3增加模塊:按3

圖5-3增加模塊

 

5-4刪除模塊:刪除歌星1的數據

圖5-4刪除模塊

5.5修改模塊:按2修改。已將序號2變成了序號33.

圖5-5修改模塊

5.6刪除模塊:已將序號為33的學員信息刪除。

圖5-6刪除模塊

 

5.7計算模塊:計算當前輸入信息,判斷平均分,最好評委,最差評委。

圖5-7計算模塊

5.8查詢模塊,可通過序號或者歌星名查詢信息。

圖5-8-1查詢模塊

顯示相應的值:

5-8-2查詢模塊

5.9退出程序:

圖5-9退出程序

5-10保存的文件夾

6.總結

通過對本程序的寫入,運行,調試,我知道如何將分離的模塊函數綜合起來,將C語言課程中學到的理論知識運用到實際中,編寫一個小小的明星評分系統,很有些成就感。

在運行程序中,我有幾次忘了改文件的輸出格式,導致輸出結構體亂碼,文件的寫入方式不對,也導致文件不能打開。明星評分系統寫的函數不對,也導致輸出的結果不對,最后改對了。

7.致謝

     感謝學校能給我們這次機會實習,有幸接觸到計算機編程,雖然和專業不大關系,但我們學習到了編程的奧秘和樂趣。

參考文獻

[1] 譚浩強. C程序設計(第三版)[M]. 北京: 清華大學出版社, 2005.

[2] 張冬梅, 劉遠興, 陳晶, 等. 基于PBL的C語言課程設計及學習指導[M]. 北京: 清華大學出版社, 2011.

[3] 網絡資源……

 

 





歡迎光臨 (http://www.raoushi.com/bbs/) Powered by Discuz! X3.1