




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、2c語(yǔ)言課程實(shí)習(xí)報(bào)告學(xué) 院: 珠寶學(xué)院專 業(yè): 寶石及材料工藝學(xué)班 級(jí): 141082學(xué) 號(hào): 姓 名: 目錄第一部分:課程設(shè)計(jì)編號(hào)、名稱、內(nèi)容第二部分:程序總體設(shè)計(jì)思路第三部分:程序功能劃分、圖示及流程圖第四部分:程序設(shè)計(jì)數(shù)據(jù)、運(yùn)行結(jié)果第五部分:程序的優(yōu)缺點(diǎn)第六部分:程序改進(jìn)思路第七部分:附錄(源程序)第一部分:課程設(shè)計(jì)編號(hào)、名稱、內(nèi)容編號(hào):二十一題名稱:歌星大獎(jiǎng)賽內(nèi)容:【要求】(1) 在歌星大獎(jiǎng)賽中,有十個(gè)評(píng)委為參賽的選手打分,分?jǐn)?shù)為1100分。選手最后得分為:去掉一個(gè)最高分和一個(gè)最低分后其余8個(gè)分?jǐn)?shù)的平均植。請(qǐng)編寫(xiě)一個(gè)程序?qū)崿F(xiàn)。(2) 同時(shí)對(duì)評(píng)委評(píng)分進(jìn)行裁判,即在10個(gè)評(píng)委中找出最公平(
2、即評(píng)分最接近平均分)和最不公平(即與平均分的差距最大)的評(píng)委。【提示】一、 需求分析 這個(gè)問(wèn)題的第一個(gè)要求算法十分簡(jiǎn)單,但是要注意在程序中判斷最大、最小值的變量是如何賦值的。第二個(gè)要求為了考慮效率,要用到排序技術(shù)。第二部分:程序總體設(shè)計(jì)思路由于c語(yǔ)言是面對(duì)過(guò)程的語(yǔ)言,故我的設(shè)計(jì)思路是根據(jù)目標(biāo)程序運(yùn)行的過(guò)程來(lái)編寫(xiě)的。王老師給我安排的是21題的歌星大獎(jiǎng)賽,在編寫(xiě)本程序的過(guò)程中,首先我借助購(gòu)買的指導(dǎo)材料,了解了一些目標(biāo)程序運(yùn)行的次序與界面的操作方法,然后按照題目的具體要求進(jìn)行思考和設(shè)計(jì)。因?yàn)槔蠋煶楹灲o我的程序比較簡(jiǎn)單,再加上前期實(shí)習(xí)時(shí)王老師交給的一些c的思路和方法,我很快便將整個(gè)程序的設(shè)計(jì)思路整理清
3、楚。具體的設(shè)計(jì)思路如下:程序的要求是根據(jù)十個(gè)評(píng)委對(duì)歌手的打分情況,求出這個(gè)歌手的平均成績(jī)和最公平及最不公平的裁判。首先,我先考慮到程序的數(shù)據(jù)輸入,可以用scanf函數(shù)來(lái)解決,并將輸入的數(shù)據(jù)存放于數(shù)組中。隨后對(duì)存放在數(shù)組中的數(shù)據(jù)進(jìn)行排序,這步為執(zhí)行找出最不公平的裁判提高了效率,只需將排好序的數(shù)組的首尾分值與平均值進(jìn)行比較即可。將排好序的數(shù)組中間的八個(gè)數(shù)求平均值即為此歌手的成績(jī),可見(jiàn)排序法可大大的簡(jiǎn)化程序。接下來(lái)是最后一個(gè)任務(wù)就是找最公平的裁判,此過(guò)程我使用拆半法,先將靠近中間的一個(gè)裁判假設(shè)為最公平的,再將他前面的裁判與之比較,找出前半部分的最公平的裁判,再將之與后半部分的進(jìn)行比較,得出最終的最公
4、平的裁判。為了方便管理員更好的使用界面操作,我還設(shè)置了每輸入完一組數(shù)據(jù)并得到結(jié)果后,或接著輸入下組數(shù)據(jù)或按0跳出界面。整個(gè)程序的設(shè)計(jì)思路到此結(jié)束。第三部分:程序功能劃分、圖示及流程圖【功能模塊劃分及其流程圖】本程序功能模塊根據(jù)程序設(shè)計(jì)的需求,綜合程序的實(shí)用性、人性化、智能化的考慮,將程序劃分為6個(gè)部分分別編寫(xiě),程序主體功能將由這6個(gè)部分來(lái)完成。這6個(gè)部分依次是:1.分?jǐn)?shù)的輸入部分;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)委數(shù)據(jù)輸出系統(tǒng)
5、功能模塊圖 第四部分:程序設(shè)計(jì)數(shù)據(jù)、運(yùn)行結(jié)果本程序是一款應(yīng)用軟件,故數(shù)據(jù)設(shè)計(jì)、程序運(yùn)行結(jié)果應(yīng)在程序的運(yùn)用中得以體現(xiàn),現(xiàn)在通過(guò)一個(gè)程序的運(yùn)用事例來(lái)對(duì)數(shù)據(jù)設(shè)計(jì)、程序運(yùn)行結(jié)果進(jìn)行演示與實(shí)現(xiàn):【軟件運(yùn)用舉例】李明通過(guò)朋友介紹想了解裁判對(duì)某歌手的評(píng)分情況,于是到俱樂(lè)部管理員面前說(shuō)明了意向,裁判部管理員啟動(dòng)歌手大獎(jiǎng)賽管理系統(tǒng)。程序開(kāi)始界面如下:管理員管理員輸入評(píng)委對(duì)任意歌手的打分,輸入完畢后程序如下菜單界面: 管理員輸入輸入完畢后,按enter健,程序運(yùn)行界面如下: 此程序顯示了裁判對(duì)歌手的平均分?jǐn)?shù),以及根據(jù)裁判們打分與平均分?jǐn)?shù)間的差距判斷出的最公平和最不公平裁判的位置及打分! 為了向李明驗(yàn)證程序的準(zhǔn)確性
6、及公平與不公平裁判出現(xiàn)在每個(gè)裁判上的幾率,管理員又輸入了幾位歌手的打分 管理員輸入輸入完畢后,按enter健,程序運(yùn)行界面如下: 接著又輸入一組數(shù)據(jù)后運(yùn)行如下:當(dāng)出現(xiàn)最高分的裁判和最低分的裁判各不止一個(gè)時(shí),輸入數(shù)據(jù)后程序界面的運(yùn)行如下:第五部分:程序的優(yōu)缺點(diǎn)【程序的優(yōu)點(diǎn)】算法是程序的靈魂,程序的優(yōu)點(diǎn)首先表現(xiàn)在算法上的優(yōu)點(diǎn),其次才是功能上的。算法上的優(yōu)點(diǎn)主要體現(xiàn)在以下三點(diǎn):1. 程序采用main主函數(shù)方式設(shè)計(jì),程序的主體的功能大都由該功能完成。程序如此設(shè)計(jì)有利于程序的進(jìn)一步改進(jìn)及有助于程序執(zhí)行效率的提高。2. 程序?qū)?shù)據(jù)的讀寫(xiě)采用了scanf 函數(shù),此數(shù)據(jù)的讀取與存貯方式有利于磁盤數(shù)據(jù)的加密,即
7、無(wú)法用記事本等程序?qū)?shù)據(jù)文件進(jìn)行正常讀取,即有助于數(shù)據(jù)的保護(hù)與加密。另外,對(duì)磁盤文本數(shù)據(jù)的修改有多種方式,通過(guò)對(duì)比研究發(fā)現(xiàn),本程序采用scanf函數(shù)一次性把所有修改過(guò)的結(jié)構(gòu)體數(shù)組寫(xiě)入文本文件的修改方式,不僅克服了本次程序設(shè)計(jì)中文本文件不能順利準(zhǔn)確讀取的難點(diǎn),而且相較于傳統(tǒng)的fprintf()函數(shù)的寫(xiě)入方式與創(chuàng)建臨時(shí)交換文件的寫(xiě)入方式,寫(xiě)入效率明顯提高。3. 程序執(zhí)行使用for語(yǔ)句,c語(yǔ)言中的for語(yǔ)句使用是最為靈活的。不僅可以用于循環(huán)次數(shù)已確定的情況,而且可以用于循環(huán)次數(shù)不確定而值給出循環(huán)結(jié)束條件的情況,他完全可以代替while語(yǔ)句!有助于相應(yīng)功能準(zhǔn)確高效運(yùn)行。當(dāng)然,程序的編寫(xiě)白手寫(xiě)起的,歷時(shí)
8、天,克服了非常多的困難,感覺(jué)到了很大的壓力。程序是在邊看書(shū)、邊查資料、詢問(wèn)、長(zhǎng)期思考與設(shè)計(jì)、調(diào)試、試驗(yàn)的基礎(chǔ)上編寫(xiě)出來(lái)的,在編寫(xiě)程序的過(guò)程中,得到了許多的鍛煉,編程的思維也得以塑造。程序經(jīng)過(guò)數(shù)次精簡(jiǎn),但仍然比較大,可能是編程經(jīng)驗(yàn)不足造成的,雖不能說(shuō)本程序比一定他人與此相同的程序運(yùn)行效率更高,占有資源更少,但是程序執(zhí)行的準(zhǔn)確性還是能夠保障的。功能上的優(yōu)點(diǎn)主要體現(xiàn)在以下三點(diǎn): 簡(jiǎn)潔明了的程序菜單。程序主要采用了四組層次不同的菜單,相互獨(dú)立又相互聯(lián)系,巧妙相接,符合用戶的使用習(xí)慣與思維。 人性化的程序提示語(yǔ)言,程序提示語(yǔ)言較人性化,不僅大多為祈使語(yǔ)句、疑問(wèn)句,而且提示明確,具有較強(qiáng)的明確的指導(dǎo)作用。
9、程序提示不僅層次分明,提示方式多樣,而且提示信息井然有序,更加有利于用戶順利、準(zhǔn)確地看懂程序并進(jìn)行操作。 程序采用先對(duì)裁判分?jǐn)?shù)進(jìn)行排序,再將排序后首尾的分?jǐn)?shù)直接與平均值進(jìn)行比較,得出最差裁判。即方便的讓用戶能看懂程序,又提高了計(jì)算的效率,減少了運(yùn)算的次數(shù).再如每次評(píng)判結(jié)果操作結(jié)束后,均會(huì)提示是否返回主菜單,并提示是否再進(jìn)行類似輸入操作,這樣給用戶帶來(lái)了操作的方便,大大提高了評(píng)選的管理效率。【程序的缺點(diǎn)】主要表現(xiàn)在以下四點(diǎn): 程序雖然經(jīng)過(guò)多次精簡(jiǎn),但僅僅是形式上、小范圍的精簡(jiǎn),仍未得到本質(zhì)上的精簡(jiǎn),即未找到更加簡(jiǎn)單、更加高效、更加合理、更小占用的資源的算法。 程序仍然存在不合理的地方,例如程序某
10、些部分輸入錯(cuò)誤會(huì)導(dǎo)致程序中止或轉(zhuǎn)向其他功能模塊,即程序建議用戶注意提示,進(jìn)行合理的準(zhǔn)確的輸入,這樣更有利于管理工作。 程序功能仍然不夠完善。例如程序不能根據(jù)多組數(shù)據(jù)的輸入判斷出總的最公平和最不公平的裁判,這是程序設(shè)計(jì)時(shí)所沒(méi)有考慮到了。到了程序編寫(xiě)后期,經(jīng)老師指導(dǎo)也發(fā)現(xiàn)了此錯(cuò)誤,但卻沒(méi)有及時(shí)修改。 操作界面為dos界面,不符合時(shí)代潮流,也不符合現(xiàn)代用戶操作的習(xí)慣,信息表達(dá)方式不豐富,比較單一,缺少圖片、音樂(lè)等元化表達(dá)方式。第六部分:程序改進(jìn)思路【針對(duì)第一點(diǎn):程序算法精簡(jiǎn)問(wèn)題】改進(jìn)思路:. 算法上除了采用結(jié)構(gòu)體數(shù)組外,考慮在程序的算法設(shè)計(jì)上引入排序法,考察這樣對(duì)數(shù)據(jù)組織運(yùn)算效率上是具有提高作用的。
11、. 就現(xiàn)有知識(shí)水平、經(jīng)驗(yàn)來(lái)看,對(duì)我來(lái)說(shuō),本程序的算法設(shè)計(jì)上已經(jīng)是最精簡(jiǎn)的了。c語(yǔ)言知識(shí)博大精深,有必要對(duì)c語(yǔ)言的專著進(jìn)行研究學(xué)習(xí),多閱讀別人的程序代碼、多動(dòng)手實(shí)踐操作與設(shè)計(jì),這樣便對(duì)程序算法精簡(jiǎn)改進(jìn)提供了可能。【針對(duì)第二點(diǎn):用戶輸入錯(cuò)誤問(wèn)題】改進(jìn)思路:對(duì)每個(gè)數(shù)據(jù)輸入段代碼進(jìn)行更深的研究與分析,明確變量的類型、可能的數(shù)值,然后進(jìn)行分類判斷(if或switch語(yǔ)句),必要時(shí)借助for循環(huán)語(yǔ)句來(lái)控制程序進(jìn)行,保障各模塊運(yùn)行相對(duì)獨(dú)立,穩(wěn)定準(zhǔn)確執(zhí)行各自功能。典型方法是如果輸入數(shù)據(jù)錯(cuò)誤,通過(guò)printf輸出問(wèn)題,并用for或(do)while構(gòu)成循環(huán),直到用戶輸入正確為止。此功能本因在程序中得以體現(xiàn),但因
12、對(duì)c語(yǔ)言編程掌握的不夠全面和深入,加上時(shí)間不太充分,此程序中沒(méi)有體現(xiàn)出來(lái),是我編程工作中的失誤,再以后還需加深學(xué)習(xí)并改進(jìn)!【針對(duì)第三點(diǎn):程序功能完善問(wèn)題】改進(jìn)思路:管理員對(duì)運(yùn)動(dòng)員的成績(jī)輸入設(shè)計(jì)思路:將裁判的評(píng)給分?jǐn)?shù)全部讀入,并且全部進(jìn)行簡(jiǎn)單的排序,通過(guò)去掉排序后首尾最高和最低分,求出相應(yīng)的歌手的平均成績(jī),再將平均值與每個(gè)裁判的打分進(jìn)行比較,與平均值差值最大的定位此次打分中最不公平的裁判,與平均值差值最小的定為此次打分中最公平的裁判! 【針對(duì)第四點(diǎn):操作界面單調(diào)問(wèn)題】改進(jìn)思路:c語(yǔ)言是面向過(guò)程的語(yǔ)言,當(dāng)時(shí)語(yǔ)言開(kāi)發(fā)的程序主要是面向dos用戶,雖具有較強(qiáng)的繪圖功能等等功能,但主要還是面向dos的。當(dāng)
13、今的主流語(yǔ)言是面向?qū)ο蟮恼Z(yǔ)言,開(kāi)發(fā)的平臺(tái)大多為windows界面平臺(tái),開(kāi)發(fā)的程序也主要是windows組件基礎(chǔ)之上的圖形界面程序,故可將程序要求移植到vc+之上,借助vc+強(qiáng)大的功能,編寫(xiě)windows界面程序,利用api接口函數(shù)方便調(diào)用各種windows強(qiáng)大功能,服務(wù)程序,使程序更加豐富、直觀、生動(dòng)、高效。第七部分:附錄(原程序)#include #include #include struct test int num; float s; main() int i,j,k,bad,good; float ts,sum=0,aver=0,tm10; struct test data10,*p
14、10,*temp; do sum=0;aver=0;printf(input 10 sorces-input 0(exit)n); for(i=0;i10;i+) datai.num=i+1; scanf(%f,&datai.s); /*分?jǐn)?shù)的輸入部分*/ if(data0.s=0) printf(0); for(i=0;i10;i+) tmi=datai.s; for(i=0;i10;i+) pi=&datai; for(i=0;i9;i+) k=i; for(j=i+1;j10;j+) if(tmktmj) k=j; if(k!=i) ts=tmi;tmi=tmk;tmk=ts; temp
15、=pi;pi=pk;pk=temp; /*對(duì)輸入分值進(jìn)行排序*/ for(i=1;is; aver=sum/8; /*計(jì)算平均值的部分*/ printf(n-n); printf(the aver is:%.1fn,aver); printf(-n); (fabs(p0-s-aver)fabs(p9-s-aver)?(bad=0):(bad=9); /*通過(guò)絕對(duì)差值判斷與平均值相差最大的裁判*/double min=fabs(p5-s-aver); good=5; /*暫定第六個(gè)為最公平裁判*/ for(i=4;i0;i-) if(fabs(pi-s-aver)s-aver); good=i; else break; /*用拆半法先將前半部分與min比較*/ for(i=6;is-aver)s-aver); good=i; else break; /*用拆半法先將后半部分與min比較*/printf(the worst
溫馨提示
- 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ù)網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 稻谷加工設(shè)備智能化改造案例分析考核試卷
- 電動(dòng)工具在太陽(yáng)能光伏組件生產(chǎn)中的作用考核試卷
- 甘肅省收費(fèi)公路運(yùn)營(yíng)服務(wù)質(zhì)量(月度、年度)評(píng)價(jià)表
- 紙張的柔軟度與舒適度考核試卷
- 站內(nèi)安全防護(hù)系統(tǒng)升級(jí)與改造考核試卷
- 三年級(jí)數(shù)學(xué)口算天天練(可下載直接打印)
- 電機(jī)在電力行業(yè)能源資源開(kāi)發(fā)與利用的應(yīng)用考核試卷
- 社交心理學(xué)在品牌傳播中的應(yīng)用考核試卷
- 管道配件在農(nóng)業(yè)灌溉系統(tǒng)的應(yīng)用考核試卷
- 南京高三語(yǔ)文輔導(dǎo)作文
- 《信息加密技術(shù)》課件
- 人教部編版八年級(jí)道德與法治上冊(cè):8.2《堅(jiān)持國(guó)家利益至上》聽(tīng)課評(píng)課記錄3
- 《“長(zhǎng)賜”輪擱淺蘇伊士運(yùn)河事故探析及預(yù)防對(duì)策探究》7700字
- 2025年天翼云高級(jí)運(yùn)維工程師認(rèn)證參考試題庫(kù)(含答案)
- 加油站的員工培訓(xùn)與技能提升
- 小米財(cái)務(wù)管理
- 《變態(tài)反應(yīng)性皮膚病》課件
- 2021年高考物理試卷(福建)(空白卷)
- 2025年4月日歷表(含農(nóng)歷-周數(shù)-方便記事備忘)
- 二零二五年光伏發(fā)電項(xiàng)目碳排放權(quán)交易合作協(xié)議3篇
- 浙教版七年級(jí)下冊(cè)數(shù)學(xué)期中試卷-2
評(píng)論
0/150
提交評(píng)論