大獎賽評分系統C語言課程設計_第1頁
大獎賽評分系統C語言課程設計_第2頁
大獎賽評分系統C語言課程設計_第3頁
大獎賽評分系統C語言課程設計_第4頁
大獎賽評分系統C語言課程設計_第5頁
已閱讀5頁,還剩16頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

⑷從2月26日起,學生每天至少要到設計教室半天以上;設計報告撰寫格式要求:設計報告的主要內容是詳細寫出在設計過程中所用到的主要技術或方法;課程設計報告按通用格式書寫,具體要求見資料:“課程設計說明書的書寫內容與格式”時間安排:第一天:學生先在實驗室集中,由指導教師介紹課程設計的目的、布置任務后選題;第二天-第四天:學生在實驗室完成設計,經教師檢查并回答提問,確認設計完成;第五天:教師在計算機上先檢查設計報告、學生修改后打印提交指導教師簽字:2月20日系主任簽字:2月23日目錄1.設計題目 52.開發(fā)環(huán)境 53.開發(fā)工具 54.完成時間 55.設計思想 56.設計過程及設計步驟 67.測試運行 68.評價與修訂 79.設計體會 710.參考文獻 8《比賽評分系統的設計》課程報告1設計題目比賽評分系統的設計2開發(fā)環(huán)境2.1硬件環(huán)境微機系列,內存在1G以上2.2軟件環(huán)境MicrosoftWindowsXP,MicrosoftWindows7;3.開發(fā)工具VisualC++6.04.完成時間.2.25.3.15.設計思想首先根據設計題目思考設計的要點,確定要做的事情,在網上翻閱了許多資料都過于復雜,最后我決定用類似for結構,switch結構一些簡單的結構寫出程序.然后根據思想畫出程序框圖,然后列出基本步驟完成程序,再運行測試,最后修改完善整個程序程序。6.設計過程及設計步驟6.1算法設計比賽評分系統的算法流程圖如圖6-1所示。開始開始輸入選手數及裁判數m,nk=0k++k<=n?i=0i++i<=m?輸入評分a[i]sum=0j=0j++j<=m?sum=sum+a[j]pj=(sum-a[1]-a[2]-a[m]-a[m-1])/(m-4)b[n]=pjA是是是否否否

AAj=0j++j<=n?x=0,k=0x++x<=n?b[j]>b[x]?p=n-kp==1?k++p=0Bp==2?p==3?輸出第一名輸出第二名輸出第三名是是是是是否否否否否BBv=0v++v<=50?j=0j++k=0j<=n?x=0x++x<=n?b[j]>b[x]?p=n-kp==v?輸出該選手成績結束是是是k++是是否否否否圖6-1比賽評分系統的算法流程圖6.2比賽評分系統的設計步驟1.宏定義符號常量N(選手數),M(評委數),P(評分選項數);2.定義評委評分,選手得分的數組fen[50];3.用for循環(huán)嵌套經過評委數量與選手數量控制評分項的完整輸入,再用scanf語句對應二維數組a[]使評分與選手結合,在k=N時跳出循環(huán);4.用冒泡法將評分按大小排序,接著去除二個最高分與二個最低分算出選手最終得分;部分程序如下:for(b=0;b<n;b++)

{

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

{

printf("請%d號裁判輸入對%d號選手評分",i+1,b+1);

scanf("%d",&fen[i]);

}

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

for(x=j+1;x<m;x++)

if(fen[j]<fen[x])

{zhong=fen[x];

fen[x]=fen[j];

fen[j]=zhong;

}

c++;

sum=0;

for(a=0;a<m;a++)

sum=sum+fen[a];

pj=(sum-fen[0]-fen[1]-fen[m-2]-fen[m-1])/(m-4);

he[c]=pj;

printf("去掉2個最高分和2個最低分號%d選手的平均分為%f分\n",b+1,pj);

}5.用一個for循環(huán)經過x控制姓名數量,經過scanf函數實現選手姓名的錄入,在x<n是跳出循環(huán);部分程序如下:for(v=1;v<50;v++)

{

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

{k=0;

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

if(he[j]>he[x])

k++;

p=n-k;

if(p==v)

{printf("第%d號選手獲得第%d名成績?yōu)?f\n",j,p,he[j]);break;}

}

}6.用printf函數和for循環(huán)將最后的比賽名次與獲獎選手姓名一一對應的完整輸出;7.程序調試1.第一次運行程序時,發(fā)現人數設定不符合題目要求,重新修改后運行結果良好;圖7-1輸入數據的運行截圖第二次運行程序成功后,發(fā)現獎項設置不符合實際情況,返回程序做出修改后運行結果良好;圖7-2運行結果截圖8.遇到的問題及不足8.1評價1.程序沒用復雜的結構,具有簡潔性;2.程序不夠貼合實際,還需做出更進一步的設計;3.程序設計的能力還需加強;4.沒有使用文件系統,程序中信息無法長期保存和連續(xù)使用;8.2修訂1.對程序中的人數和獎項設定做了修改,形成動態(tài)改變,使之更具有通用性;2.對程序中的評分精確度做出了改正,使之保留得分的小數點后2-3位;3.程序不能夠做到靈活可變,但試著改進后發(fā)現不成功;4.應在程序中加入數據文件的應用。10.參考文獻[1]譚浩強?C語言程序設計教程?北京:清華大學出版社,5月[2]王路明?C語言程序設計教程?北京:北京郵電大學出版社,5月[3]譚浩強·C++程序設計·北京:清華大學出版社·實訓體會經過這次實訓也讓我們同學之間的關系更加融洽。在制作作品的過程中我深深感受到了同學們互幫互助的融洽學習氛圍。每當遇到困難時我身邊的同學都會很熱心的過來提供幫助。正是因為她們幫我解決了一個又一個的困難。我的作品才能夠得以完成。經過這次實訓我深刻體會到了同學之情的珍貴。我相信在今后的日子里一定會加倍的珍惜這份情誼。這次實訓還讓我體會到了成功的喜悅。當經過努力把那些作品完成的時候,那種成就感,我想只有設計者本人能夠體會。有了這次經歷我相信我以后一定會認真的對待每個任務,爭取把每件事情都做到最好。這次的實訓真真是苦不堪言啊,看著選好的題目,比賽評分系統的設計應該還算比較簡單的了,但苦苦思索就是無法動手開編,那種完全沒有頭緒的感覺,直叫人為當初沒有學好專業(yè)知識而叫苦不迭,可還是要將實訓進行下去,只好依靠互聯網的神奇力量找了一份參考,做出修改和設定后就算是完成了,運行成功后再次作了修改。雖然報告是勉強過關了,但我能感覺到的是經過這次的實訓,我們除了抗壓能力隱忍能力耍小聰明的能力強了那么一丁點而已,這次的實訓讓我們真真領會了學習的嚴謹性和學好專業(yè)知識的重要性,現在的我們明白了掌握專業(yè)知識的必要性,因此更加迫切的需要黃老師帶領我們去學習真正的專業(yè)技能,更加真實的希望以后的實訓更加有長進了。設計過程中現場提問(或答辯)記載:1.問:對于選手和評委的人數設定是否符和要求?答:是嚴格按照題目要求來做的,選手,評委都是可輸入的。2.問:對于各獎項人數的設定是否符合實際情況?答:一等獎設定的是1名,二等獎設定的是2名,三等獎設定的是3名,還算符合實際。問:一等獎的選手得分仿佛過于精確了,小數點后的位數是否能夠減少幾位?答:是修改的時候沒有改到的地方,在輸出時%f改為%.2f即可解決。指導教師評語:成績評定等級:指導教師(簽名):年2月附錄:源程序代碼比賽評分系統的設計程序#include<stdio.h>

main()

{intn,m,b,s,i,j,x,a,fen[50],c=0,k=0,p,v,d,e,g;

doublef,zhong=0,sum=0,pj,he[51];

printf("請輸入比賽選手人數n以及裁判人數m中間以逗號隔開:");

scanf("%d,%d",&n,&m);

for(b=0;b<n;b++)

{

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

{

printf("請%d號裁判輸入對%d號選手評分",i+1,b+1);

scanf("%d",&fen[i]);

}

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

for(x=j+1;x<m;x++)

if(fen[j]<fen[x])

{zhong=fen[x];

fen[x]=fen[j];

fen[j]=zhong;

}

c++;

sum=0;

for(a=0;a<m;a++)

sum=sum+fen[a];

pj=(sum-fen[0]-fen[1]-fen[m-2]-fen[m-1])/(m-4);

he[c]=pj;

printf("去掉2個最高分和2個最低分號%d選手的平均分為%f分\n",b+1,pj);

}

printf("\n*******獲獎名單******\n");

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

{k=0;

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

if(he[j]>he[x])

k++;

p=n-k;

if(p==1)

printf("第%d名選手獲得一等獎\n",j);

if(p==2)

printf("第%d名選手獲得二等獎\n",j);

if(p==3)

printf("第%d名選手獲得三等獎\n",j);

}

p=0;

printf("\n*******成績表*******\n");

for(v=1;v<50;v++)

{

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

{k=0;

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

if(he[j]>he[x])

k++;

p=n-k;

if(p==v)

{printf("第%d號選手獲得第%d名成績?yōu)?f\n",j,p,he[j

溫馨提示

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

評論

0/150

提交評論