資源描述:
《200704033009選美比賽管理》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在工程資料-天天文庫。
1、沈陽航空工業(yè)學(xué)院課程設(shè)計學(xué)號200704033009班級7403301姓名姬鵬博指導(dǎo)教師王曉巖2009年3月6日沈陽航空工業(yè)學(xué)院課程設(shè)計任務(wù)書院系:航空宇航工程學(xué)院專業(yè):飛行器設(shè)計與工程班級:7403301學(xué)號:200704033009題目:選美比賽管理一、課程設(shè)計時間2008~09第2學(xué)期第1周,共計1周,20學(xué)時。二、課程設(shè)計內(nèi)容用C語言編寫程序完成以下任務(wù):一批選手參加比賽,比賽的規(guī)則是最后得分越高,名次越低。當(dāng)半決賽結(jié)束時,要在現(xiàn)場按照選手的出場順序宣布最后得分和最后名次,獲得相同分?jǐn)?shù)的選
2、手具有相同的名次,名次連續(xù)編號,不用考慮同名次的選手人數(shù)。例如:選手序號:1,2,3,4,5,6,7選手得分:5,3,4,7,3,5,6輸出名次為:3,1,2,5,1,3,4編寫程序完成半決賽的評分排名工作,并按以上格式將結(jié)果輸出到屏幕及文件beauty.dat。三、課程設(shè)計要求1.程序質(zhì)量:2貫徹結(jié)構(gòu)化的程序設(shè)計思想。2用戶界面友好,功能明確,操作方便。2用戶界面中的菜單至少應(yīng)包括“數(shù)據(jù)輸入”、“選手排名”、“保存結(jié)果”、“退出”4項。2代碼應(yīng)適當(dāng)縮進,并給出必要的注釋,以增強程序的可讀性。2.
3、課程設(shè)計說明書:課程結(jié)束后,上交課程設(shè)計說明書和源程序。課程設(shè)計說明書的格式和內(nèi)容參見提供的模板。四、指導(dǎo)教師和學(xué)生簽字指導(dǎo)教師:________學(xué)生簽名:________五、說明書成績六、教師評語沈陽航院設(shè)計用紙目錄一、需求分析1二、程序流程圖2三、核心技術(shù)的實現(xiàn)說明及相應(yīng)程序段6四、課設(shè)總結(jié)11五、參考文獻11六、源程序1216沈陽航院設(shè)計用紙一、需求分析通過對我的程序分析可知,整個程序的設(shè)計實現(xiàn)大致分為七個模塊,其中每一個模塊對應(yīng)一個函數(shù),它們的功能分別是:數(shù)據(jù)輸入,選手排序,保存數(shù)據(jù),返回
4、,選手總分,選手平均分和方差,入選率。在這些函數(shù)當(dāng)中,前四個函數(shù)的實現(xiàn)嚴(yán)格按照題目的要求,而后面的三個函數(shù)屬于附加功能。1、數(shù)據(jù)輸入主要實現(xiàn)程序最初運行時學(xué)生數(shù)據(jù)的錄入以及其后的運行中學(xué)生數(shù)據(jù)的追加功能;2、排序函數(shù)按照題目的具體要求實現(xiàn)的是總成績的遞增排序以及名次顯示序號的顯示,其中總成績相同者名次相同;4、保存數(shù)據(jù)對顯示出來的成績名次學(xué)好排序;5、選手總分可以實現(xiàn)對學(xué)生總分的累加并顯示出來6、平均分及方差實現(xiàn)的是對顯示目前所有的有效學(xué)生記錄的成績球平均分及方差。16沈陽航院設(shè)計用紙除上面介紹的
5、功能之外,程序還具有退出功能,可以在程序的一次運行當(dāng)中循環(huán)執(zhí)行所有的功能,并根據(jù)需要終止程序的執(zhí)行。每一個選手記錄都包含序號、成績、名次,在程序當(dāng)中,將選手記錄類型定義為結(jié)構(gòu)體類型,添加以及追加的選手信息直接寫入E盤的beauty.txt文件中,其它函數(shù)每次對選手記錄的訪問,其數(shù)據(jù)來源都是beauty.txt文件,這樣做不但可以保證選手?jǐn)?shù)據(jù)的一致性,而且可以對選手?jǐn)?shù)據(jù)進行永久保存,保證每次運行程序都可以采用原來的數(shù)據(jù)。16沈陽航院設(shè)計用紙二、程序流程圖1、程序總體結(jié)構(gòu)圖2、具體功能框圖16沈陽航院
6、設(shè)計用紙(1)輸入數(shù)據(jù)函數(shù)(N-S流程圖)Add()16沈陽航院設(shè)計用紙(4)按總分排序函數(shù)(N-S流程圖)show()16沈陽航院設(shè)計用紙以下是附加函數(shù)(sum(),ave())16沈陽航院設(shè)計用紙三、核心技術(shù)的實現(xiàn)說明及相應(yīng)程序段本程序主要由六個自定義函數(shù)和一個主函數(shù)組成,其中主函數(shù)以菜單的形式調(diào)用其它函數(shù)來實現(xiàn)要求的所有功能。在這些函數(shù)當(dāng)中,添加數(shù)據(jù)函數(shù)、排序函數(shù)、計算函數(shù)是程序中較為核心的部分,下面分別進行說明。1、添加數(shù)據(jù)函數(shù)2、主要是通過現(xiàn)輸入選手的人數(shù),確定范圍。然后再通過循環(huán),分別
7、輸入選手的學(xué)號、成績。voidadd(){intn,j;printf("*****************************先輸入選手的人數(shù):");scanf("%3d",&n);temp=n;printf("*******************輸入序號和與之所對應(yīng)的分?jǐn)?shù):");for(j=0;j<=n-1;j++)scanf("%3d%3d",&stu[j].num,&stu[j].score);}}fclose(fp);2、排序函數(shù)該函數(shù)的核心內(nèi)容是16沈陽航院設(shè)計用紙:通過輸入選
8、手的成績對選手進行排序,然后再依照這個順序?qū)λ麄兊拿芜M行賦值。最后在對序號進行排序,是最后的輸出以型號的形式輸出來,在這其中排序主要是運用“冒泡法”排序中成績相同的人保持名次相同,接下來應(yīng)有相應(yīng)的名次差,一下是所編的函數(shù)的程序:voidshow(){structstudentt;inti,j;intn=temp;for(j=0;j<=n-2;j++){for(i=0;i<=n-2-j;i++){if(stu[i].score>stu[i+1].score){t=stu[i];st