版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、C語(yǔ)言課程實(shí)習(xí)報(bào)告課程名稱:歌星大獎(jiǎng)賽學(xué)院:信息工程學(xué)院專業(yè):通信工程班級(jí):學(xué)號(hào):姓名:指導(dǎo)老師:第一部分:課程設(shè)計(jì)編號(hào)、名稱、內(nèi)容名稱:歌星大獎(jiǎng)賽內(nèi)容:【要求】( 1) 在歌星大獎(jiǎng)賽中,有十個(gè)評(píng)委為參賽的選手打分,分?jǐn)?shù)為1100分。選手最后得分為:去掉一個(gè)最高分和一個(gè)最低分后其余8個(gè)分?jǐn)?shù)的平均植。請(qǐng)編寫一個(gè)程序?qū)崿F(xiàn)。( 2) 同時(shí)對(duì)評(píng)委評(píng)分進(jìn)行裁判,即在10個(gè)評(píng)委中找出最公平(即評(píng)分最接近平均分)和最不公平(即與平均分的差距最大)的評(píng)委?!咎崾尽恳弧⑿枨蠓治鲞@個(gè)問題的第一個(gè)要求算法比較簡(jiǎn)單,但是要注意在程序中判斷最大、最小值的變量是如何賦值的。第二個(gè)要求為了考慮效率,要用到排序技術(shù)。第二部分
2、:程序總體設(shè)計(jì)思路C語(yǔ)言是面對(duì)過程的語(yǔ)言,故我的設(shè)計(jì)思路是根據(jù)目標(biāo)程序運(yùn)行的過程來編寫的。在編寫本程序的過程中,首先我借助購(gòu)買的指導(dǎo)材料,了解了一些目標(biāo)程序運(yùn)行的次序與界面的操作方法,然后按照題目的具體要求進(jìn)行思考和設(shè)計(jì)。具體的設(shè)計(jì)思路如下:程序的要求是根據(jù)十個(gè)評(píng)委對(duì)歌手的打分情況,求出這個(gè)歌手的平均成績(jī)和最公平及最不公平的裁判。首先,我先考慮到程序的數(shù)據(jù)輸入,可以用scanf函數(shù)來解決,并將輸入的數(shù)據(jù)存放于數(shù)組中。隨后對(duì)存放在數(shù)組中的數(shù)據(jù)進(jìn)行排序,這步為執(zhí)行找出最不公平的裁判提高了效率,只需將排好序的數(shù)組的首尾分值與平均值進(jìn)行比較即可。將排好序的數(shù)組中間的八個(gè)數(shù)求平均值即為此歌手的成績(jī),可見
3、排序法可大大的簡(jiǎn)化程序。接下來是最后一個(gè)任務(wù)就是找最公平的裁判,此過程我使用拆半法,先將靠近中間的一個(gè)裁判假設(shè)為最公平的,再將他前面的裁判與之比較,找出前半部分的最公平的裁判,再將之與后半部分的進(jìn)行比較,得出最終的最公平的裁判。為了方便管理員更好的使用界面操作,我還設(shè)置了每輸入完一組數(shù)據(jù)并得到結(jié)果后,或接著輸入下組數(shù)據(jù)或按0跳出界面。整個(gè)程序的設(shè)計(jì)思路到此結(jié)束。第三部分:程序功能劃分、圖示及流程圖【功能模塊劃分及其流程圖】本程序功能模塊根據(jù)程序設(shè)計(jì)的需求,綜合程序的實(shí)用性、人性化、智能化的考慮,將程序劃分為6個(gè)部分分別編寫,程序主體功能將由這6個(gè)部分來完成。這6個(gè)部分依次是:1 .分?jǐn)?shù)的輸入部
4、分;2 .對(duì)分?jǐn)?shù)進(jìn)行的排序部分;3 .計(jì)算平均值的部分;4 .我由最不公平裁判部分;5 .我由最公平裁判部分;6 .數(shù)據(jù)的輸由部分總體設(shè)計(jì):歌星大獎(jiǎng)賽評(píng)分系統(tǒng)分?jǐn)?shù)輸入分?jǐn)?shù)排斗計(jì)算平均分找出最不公平評(píng)委找出最公平評(píng)委系統(tǒng)功能模塊圖程序流程直到用戶選系統(tǒng)的執(zhí)行應(yīng)從功能菜單的選擇開始,依據(jù)用戶的選擇來進(jìn)行后續(xù)的處理,擇退出系統(tǒng)為止,其間應(yīng)對(duì)用戶的選擇做出判斷及異常處理。系統(tǒng)的流程圖如下:第四部分:程序設(shè)計(jì)數(shù)據(jù)、運(yùn)行結(jié)果現(xiàn)在通過本程序是一款應(yīng)用軟件,故數(shù)據(jù)設(shè)計(jì)、程序運(yùn)行結(jié)果應(yīng)在程序的運(yùn)用中得以體現(xiàn),一個(gè)程序的運(yùn)用事例來對(duì)數(shù)據(jù)設(shè)計(jì)、程序運(yùn)行結(jié)果進(jìn)行演示與實(shí)現(xiàn):【軟件運(yùn)用舉例】程序開始界面如下:管理員輸入
5、評(píng)委對(duì)任意歌手的打分,輸入完畢后程序如下菜單界面:管理員輸入評(píng)委對(duì)任意歌手的打分,當(dāng)輸入有誤后程序如下菜單界面:此程序顯示了裁判對(duì)歌手的平均分?jǐn)?shù),以及根據(jù)裁判們打分與平均分?jǐn)?shù)間的差距判斷出的最公平和最不公平裁判的位置及打分!當(dāng)出現(xiàn)最高分的裁判和最低分的裁判各不止一個(gè)時(shí),輸入數(shù)據(jù)后程序界面的運(yùn)行如下:第五部分:程序改進(jìn)思路【針對(duì)第一點(diǎn):程序算法精簡(jiǎn)問題】>>改進(jìn)思路:1 .算法上除了采用結(jié)構(gòu)體數(shù)組外,考慮在程序的算法設(shè)計(jì)上引入排序法,考察這樣對(duì)數(shù)據(jù)組織運(yùn)算效率上是具有提高作用的。2 .就現(xiàn)有知識(shí)水平、經(jīng)驗(yàn)來看,對(duì)我來說,本程序的算法設(shè)計(jì)上已經(jīng)是最精簡(jiǎn)的了。C語(yǔ)言知識(shí)博大精深,有必要對(duì)
6、C語(yǔ)言的專著進(jìn)行研究學(xué)習(xí),多閱讀別人的程序代碼、多動(dòng)手實(shí)踐操作與設(shè)計(jì),這樣便對(duì)程序算法精簡(jiǎn)改進(jìn)提供了可能。【針對(duì)第二點(diǎn):用戶輸入錯(cuò)誤問題】>>改進(jìn)思路:對(duì)每個(gè)數(shù)據(jù)輸入段代碼進(jìn)行更深的研究與分析,明確變量的類型、可能的數(shù)值,然后進(jìn)行分類判斷(if或switch語(yǔ)句),必要時(shí)借助for循環(huán)語(yǔ)句來控制程序進(jìn)行,保障各模塊運(yùn)行相對(duì)獨(dú)立,穩(wěn)定準(zhǔn)確執(zhí)行各自功能。典型方法是如果輸入數(shù)據(jù)錯(cuò)誤,通過printf輸出問題,并用for或(do)while構(gòu)成循環(huán),直到用戶輸入正確為止。此功能本因在程序中得以體現(xiàn),但因?qū)語(yǔ)言編程掌握的不夠全面和深入,加上時(shí)間不太充分,此程序中沒有體現(xiàn)出來,是我編程工作中
7、的失誤,再以后還需加深學(xué)習(xí)并改進(jìn)!【針對(duì)第三點(diǎn):程序功能完善問題】>>改進(jìn)思路:管理員對(duì)運(yùn)動(dòng)員的成績(jī)輸入設(shè)計(jì)思路:將裁判的評(píng)給分?jǐn)?shù)全部讀入,并且全部進(jìn)行簡(jiǎn)單的排序,通過去掉排序后首尾最高和最低分,求出相應(yīng)的歌手的平均成績(jī),再將平均值與每個(gè)裁判的打分進(jìn)行比較,與平均值差值最大的定位此次打分中最不公平的裁判,與平均值差值最小的定為此次打分中最公平的裁判!第七部分:附錄(原程序)#include<>#include<>#include<>#include<>structtestintnum;floats;voidmain()inti,j,k
8、,bad,good;floatts,m,sum=0,aver=0,tm10;doublemin;structtestscore10,*Judge10,*temp;dosum=0;aver=0;printf("請(qǐng)選擇:繼續(xù)請(qǐng)按1,退出請(qǐng)按2n");scanf("%f",&m);if(m=2)exit(0);for(i=0;i<10;i+)printf("請(qǐng)第d位評(píng)委打分n",i+1);scorei.num=i+1;scanf("%f",&scorei.s);/*分?jǐn)?shù)的輸入部分*/if(score
9、i.s>100|scorei.s<1)printf("分?jǐn)?shù)在1-100之間,請(qǐng)重新輸入n");scanf("%f",&scorei.s);continue;if(score0.s=0)break;for(i=0;i<10;i+)tmi=scorei.s;for(i=0;i<10;i+)Judgei=&scorei;for(i=0;i<9;i+)k=i;for(j=i+1;j<10;j+)if(tmk<tmj)k=j;if(k!=i)ts=tmi;tmi=tmk;tmk=ts;temp=Judgei
10、;Judgei=Judgek;Judgek=temp;/*對(duì)輸入分值進(jìn)行排序*/for(i=1;i<9;i+)sum+=Judgei->s;aver=sum/8;/*計(jì)算平均值的部分*/printf("nn");printf("該選手的平均分為:%.3fn",aver);printf("n");(fabs(Judge0->s-aver)>fabs(Judge9->s-aver)(bad=0):(bad=9);/*通過絕對(duì)差值判斷與平均值相差最大的裁判*/min=fabs(Judge5->s-aver
11、);good=5;/*暫定第六個(gè)為最公平裁判*/for(i=4;i>0;i-)if(fabs(Judgei->s-aver)<=min)min=fabs(Judgei->s-aver);good=i;elsebreak;/*用拆半法先將前半部分與min比較*/for(i=6;i<9;i+)if(fabs(Judgei->s-aver)<=min)min=fabs(Judgei->s-aver);good=i;elsebreak;/*用拆半法先將后半部分與min比較*/printf("最不公平評(píng)委:第儂評(píng)委他的打分:%.3fn",Judgebad->num,Judgebad->s);/*打印出最
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年建筑渣土運(yùn)輸合同范文
- 插畫設(shè)計(jì)合同范本2024年
- 合作經(jīng)營(yíng)協(xié)議合同范本
- 醫(yī)院科室承包合同書2024年
- 酒店客房預(yù)訂協(xié)議書模板
- 常州市物業(yè)管理委托合同樣本
- 家具代理合同格式
- 股權(quán)轉(zhuǎn)讓合同模板(公司版)
- 招標(biāo)合同履約保證金的管理與使用
- 錄音制品版權(quán)使用許可合同范本
- 河南中職語(yǔ)文-基礎(chǔ)模塊上冊(cè)-(高教版)第一單元測(cè)試題含答案
- 設(shè)備維修保養(yǎng)人員專業(yè)素質(zhì)培養(yǎng)
- 27《一個(gè)粗瓷大碗》(教學(xué)設(shè)計(jì))統(tǒng)編版語(yǔ)文三年級(jí)上冊(cè)
- 學(xué)前兒童聽說游戲活動(dòng)(學(xué)前兒童語(yǔ)言教育活動(dòng)課件)
- 培訓(xùn)機(jī)構(gòu)校長(zhǎng)競(jìng)聘
- 企業(yè)微信指導(dǎo)手冊(cè)管理員版
- 孫子兵法中的思維智慧智慧樹知到期末考試答案2024年
- 臨床試驗(yàn)方案偏離處理流程
- 乳腺癌一病一品
- JTT327-2016 公路橋梁伸縮裝置通用技術(shù)條件
- 定量化學(xué)分析實(shí)驗(yàn)室的整理、整頓、清掃
評(píng)論
0/150
提交評(píng)論