




已閱讀5頁,還剩15頁未讀, 繼續(xù)免費閱讀
版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
課程設計學 號 班 級 姓 名 指導教師 20XX年 07月 17日課程設計任務書一、課程設計題目:選美比賽管理二、課程設計工作自20XX年7月9日起至20XX年7月16日止三、課程設計內(nèi)容:運用所學的C語言知識,編制和調(diào)試程序,具有如下功能:一批選手參加比賽,比賽的規(guī)則是最后得分越高,名次越低。當半決賽結束時,要在現(xiàn)場按照選手的出場順序宣布最后得分和最后名次,獲得相同分數(shù)的選手具有相同的名次,名次連續(xù)編號,不用考慮同名次的選手人數(shù)。例如:選手序號: 1,2,3,4,5,6,7選手得分: 5,3,4,7,3,5,6輸出名次為: 3,1,2,5,1,3,4編寫程序完成半決賽的評分排名工作,并按以上格式將結果輸出到屏幕及文件beauty.dat四、課程設計要求:程序質(zhì)量:l 貫徹結構化程序設計思想。l 用戶界面友好,功能明確,操作方便;可以加以其它功能或修飾。l 用戶界面中的菜單至少應包括“信息錄入”、“查詢”、“排名”、“退出”4項。l 代碼應適當縮進,并給出必要的注釋,以增強程序的可讀性。課程設計說明書:課程結束后,上交課程設計說明書(打印稿和電子稿),其內(nèi)容如下:l 封面l 目錄l 課程設計任務書l 需求分析(分析題目的要求)l 程序流程圖(總體流程圖和主要功能模塊流程圖)l 核心技術的實現(xiàn)說明及相應程序段l 個人總結l 參考資料l 源程序及適當?shù)淖⑨屩笇Ы處煟篲 學生簽名:_目錄一、需求分析經(jīng)過對程序設計題目的分析可知,此問題用鏈表來完成。建立結構體player,來存儲選手信息,包括選手序號、姓名、分數(shù)、名次以及指向下一結點的指針next。按序號從小到大建立鏈表,依次將各結點賦初值,名次先初始化為0。將此鏈表按分數(shù)進行排序,為每個結點的名次賦值,保存。輸出結果。整個程序的設計實現(xiàn)大致分為3大模塊,第一大模塊為選手信息錄入模塊,其中包括錄入信息、排序、保存等;第二大模塊為查詢選手信息模塊,其中包括按姓名查詢、按序號查詢、按名次查詢;第三大模塊為輸出比賽結果模塊。程序中用到的函數(shù):主菜單函數(shù)menu()、建立結點函數(shù)creatone()、建立鏈表函數(shù)inseart()、排出名次函數(shù)sorts()、保存函數(shù)save()、子菜單函menu1()、按姓名查詢函數(shù)searchname()、按序號查詢函數(shù)searchid()、按名次查詢函數(shù)searchorder()、輸出比賽結果函數(shù)print()。其實現(xiàn)的功能具體如下:1、建立結點函數(shù)creatone():錄入選手信息(姓名、分數(shù))建立選手結點,即創(chuàng)建人物。2、建立鏈表函數(shù)inseart():將各個結點按序號鏈接在一起,構建一個鏈表。3、排出名次函數(shù)sorts():對鏈表中分數(shù)進行排序,分數(shù)越少名次越高。將得到的名次賦給各個結點中的order。4、保存函數(shù)save():對輸出到屏幕的選手信息按指定路徑加以保存。5、按姓名查詢函數(shù)searchname():輸入姓名,到鏈表中去比對,成功則輸出此人信息,否則輸出無此人信息。按序號、名次查詢結構與此相同。6、輸出比賽結果函數(shù)print():按名次輸出各個選手的信息。二、程序流程圖總體結構圖開始調(diào)用system()為屏幕即字體設置顏色定義一些變量、為頭結點分配空間并使它的next指向空無條件循環(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結束程序運行情況:主菜單錄入選手信息:查詢子菜單:名次查詢:輸出比賽結果:三、核心技術的實現(xiàn)說明及相應程序段本程序采用鏈表結構,其中主函數(shù)以菜單的形式調(diào)用其他函數(shù)來實現(xiàn)要求的所有功能。在這些函數(shù)當中,排出名次函數(shù)sorts()是程序中最為核心的部分,下面對此函數(shù)加以說明。此函數(shù)的目標是對選手鏈表按分數(shù)進行排名,為結構體中的order項賦值。具體的程序說明如下:/-排序函數(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;四、個人總結在設計此程序時由于已經(jīng)1年沒復習C語言知識了忘記了好多語句,所以我又把C程序設計閱讀了幾邊把忘記的知識補充上,這使我的C語言基礎知識更牢靠了。這次C程序的設計不同于以前,其要求更高了,我設計了一個小程序就用了5天的時間,現(xiàn)在知道了做程序員是很辛苦的。此次我設計的程序通過了測試,基本能達到課程設計要求,本人知識有限程序可能還有不合理之處望老師批評指正。五、參考文獻1 譚浩強 C程序設計 北京:清華大學出版社,20XX2 譚浩強 C程序設計題解與上機指導北京:清華大學出版社,20XX六、源程序/=/在選美大獎賽的半決勝賽現(xiàn)場,有一批選手參加比賽,比賽的規(guī)則是最/后得分越高,名次越低。當半決決賽結束時,要在現(xiàn)場按照選手的出場/順序宣布最后得分和最后名次,獲得相同分數(shù)的選手具有相同的名次,/名次連續(xù)編號,不用考慮同名次的選手人數(shù)。/=/-頭文件-#include #include #include #include /-宏定義-#define L sizeof(struct player)/-結構體-struct playerint id;/序號int order;/名次char name30;/姓名int score;/分數(shù)struct player * next;/-菜 單-int menu()int a;printf(nnn 歡迎進入選美成績管理系統(tǒng)! nnn);printf( *MENU*n);printf( 1、選手信息錄入n);printf( 2、選手信息查詢n);printf( 3、輸出比賽結果n);printf( 4、退 出n);printf( *n);doprintf(請輸入1-4中的一個選項:);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 ( 請輸入要查詢的選手的姓名: );scanf ( %s,name );while ( q!=NULL & strcmp(q-name,name)!=0 )q = q-next;if ( q=NULL )printf (沒有此人的信息!nn);elseprintf (n%d號選手%sn 名 次:第%d名n 最后得分:%d分nnn,q-id,q-name,q-order,q-score);/-按序號查找-void searchid( struct player * head )struct player * q;int id = 0;q = head-next;printf ( 請輸入要查詢的選手的序號: );scanf ( %d,&id );while ( q!=NULL & q-id!=id )q = q-next;if ( q=NULL )printf (沒有此人的信息!nn);elseprintf (n%d號選手%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 ( 請輸入要查詢的選手的名次: );scanf ( %d,&order );while ( q!=NULL )if ( q-order=order )printf (n%d號選手%sn 名 次:第%d名n 最后得分:%d分n,q-id,q-name,q-order,q-score);n = 1;q = q-next;if ( n=0 )printf (沒有此人的信息!nn);/-輸出比賽結果-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號選手%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(請依次輸入要錄入的選手信息,在姓名欄輸入end結束:nn);while(1)p = creatone( p,i );if ( p=NULL )break;i+;head = insert( head,p );sort
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 大類資產(chǎn)配置報告2025年6月份總第86期:平衡穩(wěn)健配置資產(chǎn)防御外部風險沖擊
- 2025年廣播媒體融合傳播中的媒體融合與綠色可持續(xù)發(fā)展報告
- 2025年廢舊輪胎資源化利用項目市場拓展與技術創(chuàng)新路徑研究報告
- 2025年天然植物精油護膚品牌市場占有率預測報告
- 礦山智能化開采中無人駕駛設備應用案例分析報告
- 智能制造2025年行業(yè)發(fā)展趨勢報告:科技與互聯(lián)網(wǎng)助力產(chǎn)業(yè)升級
- 工業(yè)互聯(lián)網(wǎng)平臺數(shù)據(jù)加密算法在2025年的效能與安全性分析報告
- 2025年二手電商信用體系建設與消費者權益保護法律問題分析報告
- 天然氣水合物(可燃冰)開采技術2025年深海資源開發(fā)利用政策法規(guī)解讀報告
- 2025年鄉(xiāng)村振興中的職業(yè)技能培訓與農(nóng)村社區(qū)服務體系建設報告
- 腹股溝疝護理新進展
- 食品標準操作規(guī)程
- 青海大學《普通化學》2022-2023學年第一學期期末試卷
- 《傳感器與檢測技術》全套教案
- 浙江省杭州市2023-2024學年高一下學期期末教學質(zhì)量檢測政治試題
- 初中語文:非連續(xù)性文本閱讀練習(含答案)
- 電網(wǎng)工程勞務分包投標方案(技術方案)
- 國開(山東)2024年《小學生心理健康教育》形考1-3終考答案
- 《積極心理學(第3版)》 課件 第10章 感恩
- 人工智能營銷(第2版)課件全套 陽翼 第1-8章 邁入人工智能領域-人工智能營銷的倫理與法律問題
- 上海市2023-2024學年八年級下學期期末數(shù)學練習卷(解析版)
評論
0/150
提交評論