




已閱讀5頁(yè),還剩15頁(yè)未讀, 繼續(xù)免費(fèi)閱讀
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
課程設(shè)計(jì)學(xué) 號(hào) 班 級(jí) 姓 名 指導(dǎo)教師 20XX年 07月 17日課程設(shè)計(jì)任務(wù)書一、課程設(shè)計(jì)題目:選美比賽管理二、課程設(shè)計(jì)工作自20XX年7月9日起至20XX年7月16日止三、課程設(shè)計(jì)內(nèi)容:運(yùn)用所學(xué)的C語(yǔ)言知識(shí),編制和調(diào)試程序,具有如下功能:一批選手參加比賽,比賽的規(guī)則是最后得分越高,名次越低。當(dāng)半決賽結(jié)束時(shí),要在現(xiàn)場(chǎng)按照選手的出場(chǎng)順序宣布最后得分和最后名次,獲得相同分?jǐn)?shù)的選手具有相同的名次,名次連續(xù)編號(hào),不用考慮同名次的選手人數(shù)。例如:選手序號(hào): 1,2,3,4,5,6,7選手得分: 5,3,4,7,3,5,6輸出名次為: 3,1,2,5,1,3,4編寫程序完成半決賽的評(píng)分排名工作,并按以上格式將結(jié)果輸出到屏幕及文件beauty.dat四、課程設(shè)計(jì)要求:程序質(zhì)量:l 貫徹結(jié)構(gòu)化程序設(shè)計(jì)思想。l 用戶界面友好,功能明確,操作方便;可以加以其它功能或修飾。l 用戶界面中的菜單至少應(yīng)包括“信息錄入”、“查詢”、“排名”、“退出”4項(xiàng)。l 代碼應(yīng)適當(dāng)縮進(jìn),并給出必要的注釋,以增強(qiáng)程序的可讀性。課程設(shè)計(jì)說(shuō)明書:課程結(jié)束后,上交課程設(shè)計(jì)說(shuō)明書(打印稿和電子稿),其內(nèi)容如下:l 封面l 目錄l 課程設(shè)計(jì)任務(wù)書l 需求分析(分析題目的要求)l 程序流程圖(總體流程圖和主要功能模塊流程圖)l 核心技術(shù)的實(shí)現(xiàn)說(shuō)明及相應(yīng)程序段l 個(gè)人總結(jié)l 參考資料l 源程序及適當(dāng)?shù)淖⑨屩笇?dǎo)教師:_ 學(xué)生簽名:_目錄一、需求分析經(jīng)過(guò)對(duì)程序設(shè)計(jì)題目的分析可知,此問(wèn)題用鏈表來(lái)完成。建立結(jié)構(gòu)體player,來(lái)存儲(chǔ)選手信息,包括選手序號(hào)、姓名、分?jǐn)?shù)、名次以及指向下一結(jié)點(diǎn)的指針next。按序號(hào)從小到大建立鏈表,依次將各結(jié)點(diǎn)賦初值,名次先初始化為0。將此鏈表按分?jǐn)?shù)進(jìn)行排序,為每個(gè)結(jié)點(diǎn)的名次賦值,保存。輸出結(jié)果。整個(gè)程序的設(shè)計(jì)實(shí)現(xiàn)大致分為3大模塊,第一大模塊為選手信息錄入模塊,其中包括錄入信息、排序、保存等;第二大模塊為查詢選手信息模塊,其中包括按姓名查詢、按序號(hào)查詢、按名次查詢;第三大模塊為輸出比賽結(jié)果模塊。程序中用到的函數(shù):主菜單函數(shù)menu()、建立結(jié)點(diǎn)函數(shù)creatone()、建立鏈表函數(shù)inseart()、排出名次函數(shù)sorts()、保存函數(shù)save()、子菜單函menu1()、按姓名查詢函數(shù)searchname()、按序號(hào)查詢函數(shù)searchid()、按名次查詢函數(shù)searchorder()、輸出比賽結(jié)果函數(shù)print()。其實(shí)現(xiàn)的功能具體如下:1、建立結(jié)點(diǎn)函數(shù)creatone():錄入選手信息(姓名、分?jǐn)?shù))建立選手結(jié)點(diǎn),即創(chuàng)建人物。2、建立鏈表函數(shù)inseart():將各個(gè)結(jié)點(diǎn)按序號(hào)鏈接在一起,構(gòu)建一個(gè)鏈表。3、排出名次函數(shù)sorts():對(duì)鏈表中分?jǐn)?shù)進(jìn)行排序,分?jǐn)?shù)越少名次越高。將得到的名次賦給各個(gè)結(jié)點(diǎn)中的order。4、保存函數(shù)save():對(duì)輸出到屏幕的選手信息按指定路徑加以保存。5、按姓名查詢函數(shù)searchname():輸入姓名,到鏈表中去比對(duì),成功則輸出此人信息,否則輸出無(wú)此人信息。按序號(hào)、名次查詢結(jié)構(gòu)與此相同。6、輸出比賽結(jié)果函數(shù)print():按名次輸出各個(gè)選手的信息。二、程序流程圖總體結(jié)構(gòu)圖開(kāi)始調(diào)用system()為屏幕即字體設(shè)置顏色定義一些變量、為頭結(jié)點(diǎn)分配空間并使它的next指向空無(wú)條件循環(huán)choice = menu()choice =11P!=NULL調(diào)用creatone() insert()函數(shù)調(diào)用sorts()save()函數(shù)Choice!=4choice=21查詢菜單查詢函數(shù)調(diào)用print()Choice=3結(jié)束程序運(yùn)行情況:主菜單錄入選手信息:查詢子菜單:名次查詢:輸出比賽結(jié)果:三、核心技術(shù)的實(shí)現(xiàn)說(shuō)明及相應(yīng)程序段本程序采用鏈表結(jié)構(gòu),其中主函數(shù)以菜單的形式調(diào)用其他函數(shù)來(lái)實(shí)現(xiàn)要求的所有功能。在這些函數(shù)當(dāng)中,排出名次函數(shù)sorts()是程序中最為核心的部分,下面對(duì)此函數(shù)加以說(shuō)明。此函數(shù)的目標(biāo)是對(duì)選手鏈表按分?jǐn)?shù)進(jìn)行排名,為結(jié)構(gòu)體中的order項(xiàng)賦值。具體的程序說(shuō)明如下:/-排序函數(shù)-struct player * sorts( struct player * head,int n )struct player * min;struct player * p;int count = 0;int order = 1;min = head-next;p = min-next;while ( countscorep-score & p-order=0 )min = p;p = p-next;min-order = order;count+;p = min-next;while ( p!=NULL )if ( min-score=p-score )p-order = order;count+;p = p-next;order+;min = head-next;if ( min-order!=0 )min = min-next;p = min-next;return head;四、個(gè)人總結(jié)在設(shè)計(jì)此程序時(shí)由于已經(jīng)1年沒(méi)復(fù)習(xí)C語(yǔ)言知識(shí)了忘記了好多語(yǔ)句,所以我又把C程序設(shè)計(jì)閱讀了幾邊把忘記的知識(shí)補(bǔ)充上,這使我的C語(yǔ)言基礎(chǔ)知識(shí)更牢靠了。這次C程序的設(shè)計(jì)不同于以前,其要求更高了,我設(shè)計(jì)了一個(gè)小程序就用了5天的時(shí)間,現(xiàn)在知道了做程序員是很辛苦的。此次我設(shè)計(jì)的程序通過(guò)了測(cè)試,基本能達(dá)到課程設(shè)計(jì)要求,本人知識(shí)有限程序可能還有不合理之處望老師批評(píng)指正。五、參考文獻(xiàn)1 譚浩強(qiáng) C程序設(shè)計(jì) 北京:清華大學(xué)出版社,20XX2 譚浩強(qiáng) C程序設(shè)計(jì)題解與上機(jī)指導(dǎo)北京:清華大學(xué)出版社,20XX六、源程序/=/在選美大獎(jiǎng)賽的半決勝賽現(xiàn)場(chǎng),有一批選手參加比賽,比賽的規(guī)則是最/后得分越高,名次越低。當(dāng)半決決賽結(jié)束時(shí),要在現(xiàn)場(chǎng)按照選手的出場(chǎng)/順序宣布最后得分和最后名次,獲得相同分?jǐn)?shù)的選手具有相同的名次,/名次連續(xù)編號(hào),不用考慮同名次的選手人數(shù)。/=/-頭文件-#include #include #include #include /-宏定義-#define L sizeof(struct player)/-結(jié)構(gòu)體-struct playerint id;/序號(hào)int order;/名次char name30;/姓名int score;/分?jǐn)?shù)struct player * next;/-菜 單-int menu()int a;printf(nnn 歡迎進(jìn)入選美成績(jī)管理系統(tǒng)! nnn);printf( *MENU*n);printf( 1、選手信息錄入n);printf( 2、選手信息查詢n);printf( 3、輸出比賽結(jié)果n);printf( 4、退 出n);printf( *n);doprintf(請(qǐng)輸入1-4中的一個(gè)選項(xiàng):);scanf(%d,&a);while(a4|a4|aname);if( strcmp( p-name,end )=0 )/*判斷是否停止輸入*/p = NULL;elseprintf(最后得分: );scanf(%d,&p-score);p-id = i;p-order = 0;p-next = NULL;printf(n);return p;/-建立鏈表-struct player * insert( struct player * head,struct player * p )struct player * q;q = head;while ( q-next!=NULL )q = q-next;q-next = p;return head;/-排序函數(shù)-struct player * sorts( struct player * head,int n )struct player * min;struct player * p;int count = 0;int order = 1;min = head-next;p = min-next;while ( countscorep-score & p-order=0 )min = p;p = p-next;min-order = order;count+;p = min-next;while ( p!=NULL )if ( min-score=p-score )p-order = order;count+;p = p-next;order+;min = head-next;if ( min-order!=0 )min = min-next;p = min-next;return head;/-按名字查找-void searchname( struct player * head )struct player * q;char name30;q = head-next;printf ( 請(qǐng)輸入要查詢的選手的姓名: );scanf ( %s,name );while ( q!=NULL & strcmp(q-name,name)!=0 )q = q-next;if ( q=NULL )printf (沒(méi)有此人的信息!nn);elseprintf (n%d號(hào)選手%sn 名 次:第%d名n 最后得分:%d分nnn,q-id,q-name,q-order,q-score);/-按序號(hào)查找-void searchid( struct player * head )struct player * q;int id = 0;q = head-next;printf ( 請(qǐng)輸入要查詢的選手的序號(hào): );scanf ( %d,&id );while ( q!=NULL & q-id!=id )q = q-next;if ( q=NULL )printf (沒(méi)有此人的信息!nn);elseprintf (n%d號(hào)選手%sn 名 次:第%d名n 最后得分:%d分nnn,q-id,q-name,q-order,q-score);/-按名次查找-void searchorder( struct player * head )struct player * q;int order = 0;int n = 0;q = head-next;printf ( 請(qǐng)輸入要查詢的選手的名次: );scanf ( %d,&order );while ( q!=NULL )if ( q-order=order )printf (n%d號(hào)選手%sn 名 次:第%d名n 最后得分:%d分n,q-id,q-name,q-order,q-score);n = 1;q = q-next;if ( n=0 )printf (沒(méi)有此人的信息!nn);/-輸出比賽結(jié)果-void print( struct player * head,int n )struct player * p;int count = 0;int i = 1;while ( countnext;printf(nn第%d名:n,i);while ( p!=NULL )if (p-order=i)printf (n%d號(hào)選手%s 最后得分:%d分,p-id,p-name,p-score);count+;p = p-next;i+;/*-保存文件-*/void save(struct player *head)FILE *fp;struct player *p;p = head-next; if(fp = fopen(beauty.dat,wb)=NULL)printf(Cant open the filen);exit(0);while(p!=NULL)fwrite(p,L,1,fp);p = p-next;fclose(fp);/-主函數(shù)-int main()int system (const char *);system (color 2e);struct player * head;struct player * p;int choice;int i = 0;head = (struct player *)malloc(L);head-next = NULL;while(1) /*主菜單*/ choice = menu();switch(choice)case 1:printf(請(qǐng)依次輸入要錄入的選手信息,在姓名欄輸入end結(jié)束:nn);while(1)p = creatone( p,i );if ( p=NULL )break;i+;head = insert( head,p );sort
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 工程測(cè)量技術(shù)實(shí)踐訓(xùn)練題
- 2025年上半年宜昌市直事業(yè)單位招考工作人員(62名)易考易錯(cuò)模擬試題(共500題)試卷后附參考答案
- 2025年上半年宜賓江安縣招考工作人員易考易錯(cuò)模擬試題(共500題)試卷后附參考答案
- 2025年上半年安徽省阜陽(yáng)潁上縣江店孜鎮(zhèn)人民政府招聘易考易錯(cuò)模擬試題(共500題)試卷后附參考答案
- 2024年抽紗刺繡工藝品項(xiàng)目投資申請(qǐng)報(bào)告代可行性研究報(bào)告
- 2025年上半年安徽省宿州市直事業(yè)單位易考易錯(cuò)模擬試題(共500題)試卷后附參考答案
- 2025年上半年安徽省交通控股集團(tuán)限公司社會(huì)化公開(kāi)招聘易考易錯(cuò)模擬試題(共500題)試卷后附參考答案
- 2025年上半年安徽宿州市督查信息中心選調(diào)事業(yè)單位3人易考易錯(cuò)模擬試題(共500題)試卷后附參考答案
- 2025年上半年安徽宿州學(xué)院專職輔導(dǎo)員招聘10人(第二批)易考易錯(cuò)模擬試題(共500題)試卷后附參考答案
- 2025年上半年安慶市太湖縣縣人民醫(yī)院招考專業(yè)技術(shù)人員易考易錯(cuò)模擬試題(共500題)試卷后附參考答案
- 2025年食品供應(yīng)商合同范本
- 《網(wǎng)絡(luò)信息安全教學(xué)》課件
- 徐州2025年江蘇徐州市口腔醫(yī)院招聘非在編醫(yī)務(wù)人員53人筆試歷年參考題庫(kù)附帶答案詳解-1
- 2025年01月2025中國(guó)作家協(xié)會(huì)所屬單位公開(kāi)招聘11人筆試歷年典型考題(歷年真題考點(diǎn))解題思路附帶答案詳解
- 用色彩情感引發(fā)共鳴社交媒體運(yùn)營(yíng)秘訣
- 2025年江西機(jī)電職業(yè)技術(shù)學(xué)院高職單招職業(yè)技能測(cè)試近5年??及鎱⒖碱}庫(kù)含答案解析
- 2025年江蘇旅游職業(yè)學(xué)院高職單招職業(yè)技能測(cè)試近5年??及鎱⒖碱}庫(kù)含答案解析
- (高清版)JTGT 3650-01-2022 公路橋梁施工監(jiān)控技術(shù)規(guī)程
- GB/T 28799.2-2020冷熱水用耐熱聚乙烯(PE-RT)管道系統(tǒng)第2部分:管材
- 2023-瑞幸咖啡vi手冊(cè)
- 10000中國(guó)普通人名大全
評(píng)論
0/150
提交評(píng)論