版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
課程設(shè)計報告課程名稱《C語言程序設(shè)計》課題名稱運動會分?jǐn)?shù)統(tǒng)計系統(tǒng)專業(yè)電氣工程及其自動化班級電氣工程學(xué)號姓名指導(dǎo)教師年月日湖南工程學(xué)院課程設(shè)計任務(wù)書課程名稱《C語言程序設(shè)計》課題運動會分?jǐn)?shù)統(tǒng)計系統(tǒng)專業(yè)班級電氣工程及其自動化學(xué)生姓名學(xué)號指導(dǎo)老師審批任務(wù)書下達(dá)日期年月日任務(wù)完成日期年月日第一部分《C語言課程設(shè)計》任務(wù)書前言《C語言程序設(shè)計》課程設(shè)計是對學(xué)生的一種全面綜合訓(xùn)練,它包括問題分析,總體結(jié)構(gòu)設(shè)計,用戶界面設(shè)計,程序設(shè)計基本技能和技巧,多人合作,以至一整套軟件工作規(guī)范的訓(xùn)練和科學(xué)作風(fēng)的培養(yǎng)。是與課堂聽講、自學(xué)和練習(xí)相輔相成的必不可少的一個教學(xué)環(huán)節(jié)。通常,課程設(shè)計的課題比平時的習(xí)題復(fù)雜得多,也更接近實際。課程設(shè)計著眼于與應(yīng)用的結(jié)合點,使學(xué)生學(xué)會如何把書上學(xué)到的知識用于解決實際問題,培養(yǎng)軟件工作所需要的動手能力;另一方面,能使書上的知識變“活”,使學(xué)生更好地深化理解和靈活掌握教學(xué)內(nèi)容。為了達(dá)到上述目的,本課程設(shè)計安排了八個設(shè)計課題,訓(xùn)練重點在于基本的程序設(shè)計方法和分析問題的能力,而不強(qiáng)調(diào)面面俱到。學(xué)生可任選其中一題進(jìn)行設(shè)計,設(shè)計完畢寫出課程設(shè)計報告,用A4紙打印成冊;并將課程設(shè)計報告與源程序存盤。學(xué)習(xí)委員將課程設(shè)計報告與磁盤收齊后交指導(dǎo)老師。一、目的全面熟悉、掌握C語言基本知識,掌握C程序設(shè)計中的順序、分支、循環(huán)三種結(jié)構(gòu)及數(shù)組、函數(shù)和C語言基本圖形編程等方法,把編程和實際結(jié)合起來,增強(qiáng)對不同的問題運用和靈活選擇合適的數(shù)據(jù)結(jié)構(gòu)以及算法描述的本領(lǐng),熟悉編制和調(diào)試程序的技巧,掌握分析結(jié)果的若干有效方法,進(jìn)一步提高上機(jī)動手能力,培養(yǎng)使用計算機(jī)解決實際問題的能力,養(yǎng)成提供文檔資料的習(xí)慣和規(guī)范編程的思想,為以后在專業(yè)課程中應(yīng)用計算機(jī)系統(tǒng)解決計算、分析、實驗和設(shè)計等學(xué)習(xí)環(huán)節(jié)打下較扎實的基礎(chǔ)。二、設(shè)計要求掌握結(jié)構(gòu)化程序設(shè)計的主體思想,以自頂向下逐步求精的方法編制程序解決一些實際的問題,為將來編寫軟件積累一些典型的案例處理經(jīng)驗。1、設(shè)計正確,方案合理。2、界面友好,使用方便。3、程序精煉,結(jié)構(gòu)清晰。4、設(shè)計報告5000字以上,含程序設(shè)計說明,用戶使用說明,源程序清單及程序框圖。5、上機(jī)演示。6、按學(xué)號順序選課題號,并在規(guī)定的時間內(nèi)獨自完成相關(guān)課題的C源程序編寫、調(diào)整和運行。源程序及編譯生成各文件均保存在軟盤中;7、按本任務(wù)書的要求,按附錄的要求編寫《課程設(shè)計報告》(Word文檔格式)。并用A4的復(fù)印紙打印并裝訂;8、 在2015年7月10日之前,請各班學(xué)習(xí)委員收齊課程設(shè)計報告和源程序軟盤交王穎老師三、進(jìn)度安排第一周星期四:課題講解,查閱資料第二周星期一:總體設(shè)計,詳細(xì)設(shè)計星期二:編程,上機(jī)調(diào)試、修改程序星期四:上機(jī)調(diào)試、完善程序第二個星期二:答辯第二個星期四:撰寫課程設(shè)計報告四、設(shè)計可調(diào)試過程規(guī)范化要求需要分析分析系統(tǒng)功能需求以及用戶操作流程。概要設(shè)計在需要分析的基礎(chǔ)上,確定系統(tǒng)總體框架(系統(tǒng)功能結(jié)構(gòu)圖)詳細(xì)設(shè)計定義數(shù)據(jù)儲存結(jié)構(gòu),并設(shè)計實現(xiàn)系統(tǒng)功能的具體算法,畫出各算法的工作流程圖。代碼設(shè)計根據(jù)所設(shè)計的算法,定義相應(yīng)函數(shù)分別實現(xiàn)系統(tǒng)的各子功能模塊,同時由主程序提供友好的用戶界面,使用戶可通過選擇主菜單來調(diào)用課程設(shè)計中要求完成的各個功能模塊,子程序執(zhí)行完后還可以返回主菜單,繼續(xù)選擇其他功能執(zhí)行。源程序要求書寫規(guī)范,結(jié)構(gòu)清晰。重點函數(shù)的重點變量。重點功能部分均要求給出清晰的程序注釋五、設(shè)計報告及書寫內(nèi)容要求課程設(shè)計任務(wù)完成后,每位同學(xué)必須獨立書寫一份課程設(shè)計報告,注意:不得抄襲他人的報告(或給他人抄襲),一旦發(fā)現(xiàn),成績?yōu)榱惴?。課程設(shè)計報告的內(nèi)容應(yīng)包括以下五個部分:需求分析:包括設(shè)計題目、設(shè)計要求以及系統(tǒng)功能需求分析;概要設(shè)計:包括系統(tǒng)總體設(shè)計框架和系統(tǒng)功能模塊圖;詳細(xì)設(shè)計:包括主要功能模塊的算法設(shè)計思路以及對應(yīng)的工作流程圖;主要源程序代碼:包括存儲結(jié)構(gòu)設(shè)計說明,以及完整源程序清單;調(diào)試分析過程描述:包括測試數(shù)據(jù)、測試輸出結(jié)果,以及對程序調(diào)試過程中存在的問題的思考(列出主要問題的的出錯想象、出錯原因、及效果等);總結(jié):包括課程設(shè)計過程中的學(xué)習(xí)體會與收獲,對C語言和本次課程設(shè)計的認(rèn)識以及自己的建議等內(nèi)容。書寫格式嚴(yán)格按所附要求書寫。附:課程設(shè)計報告裝訂順序:封面、任務(wù)書、目錄、正文、評分、附件(A4大小的圖紙及程序清單)。正文格式:一級標(biāo)題用3號黑體,二級標(biāo)題用四號宋體加粗,正文用小四號宋體,行距22。正文內(nèi)容:一、課題的主要功能;二、課題的功能模塊可劃分(要求畫出模塊圖);三、主要功能的實現(xiàn)(至少要有一個主要模塊的流程圖);四、程序調(diào)試;五、總結(jié);六、附件(所有程序的原代碼,要求對程序?qū)懗霰匾淖⑨專?。正文總字?jǐn)?shù)要求在5000字以上(不含程序源代碼)。第一章需求分析1.1需求分析題目:運動會分?jǐn)?shù)統(tǒng)計系統(tǒng)1.2為什么開發(fā):本課程設(shè)計主要解決在運動會上,將各個比賽項目所有獲得名次的同學(xué)的成績輸入;成績查詢;成績修改;成績刪除;以及成績輸出。該程序用于運動會上,涉及到比賽項目成績的錄入,某個學(xué)校在某個項目中獲得成績的查詢,某個學(xué)校在某個運動項目中獲得的成績的修改,某個學(xué)校在某個運動項目中獲得的成績的刪除,以及某個學(xué)校所有獲得成績的得分報表以及團(tuán)體成績的得分報表。其中比賽成績的錄入可以按照運動項目舉行的次序輸入,也可以輸入自己指定的運動項目的成績;自己擴(kuò)展的功能是“某個學(xué)校在某個項目中獲得成績的查詢,某個學(xué)校在某個運動項目中獲得的成績的修改,某個學(xué)校在某個運動項目中獲得的成績的刪除”三項,這三項都要求輸入學(xué)校以及運動項目編號,通過這兩項作為參數(shù)具體的函數(shù)可以查詢、修改成績或者是刪除某項成績記錄,進(jìn)而影響到最后得分報表的輸出。1.3設(shè)計要求:問題描述:參加運動會的n個學(xué)校編號為l~n。比賽分成m個男子項目和w個女子項目,項目編號分別為l~m和m+1~m+w。由于各項目參加人數(shù)差別較大,有些項目取前五名,得分順序為7,5,3,2,1;還有些項目只取前三名,得分順序為5,3,2。設(shè)計一個統(tǒng)計程序按名次產(chǎn)生各種成績單、得分報表。2.基本要求:1.產(chǎn)生各學(xué)校的成績單,內(nèi)容包括各校所取得的每項成績的項目號、名次、成績、姓名和得分;產(chǎn)生團(tuán)體總分報表,內(nèi)容包括校號、男子團(tuán)體總分、女子團(tuán)體總分和團(tuán)體總分;均按名次排序。2.比賽項目既要有徑賽,又要有田賽。3.測試數(shù)據(jù):對于n=4,m=3,w=2,編號為奇數(shù)的項目取前五名,編號為偶數(shù)的項目取前三名,設(shè)計一組實例數(shù)據(jù)。4.實現(xiàn)提示:數(shù)據(jù)結(jié)構(gòu):線性表數(shù)據(jù)庫結(jié)構(gòu):下面四張表構(gòu)成該系統(tǒng)的基本數(shù)據(jù)庫,全部輸出報表由系統(tǒng)根據(jù)基本表自動生成。floatcharfloatcharcharcharcharchar成績類型性別項目編號學(xué)校編號運動員編號初始化時完成錄入姓名初始化時完成錄入姓名運動員編號校名校名學(xué)校編號項目名項目名項目編號可以假設(shè)n≤20,m≤30,w≤20,姓名長度不超過20個字符。每個項目結(jié)束時,將其編號、類型符(區(qū)分取前五名還是前三名)輸入,并輸入運動員編號、學(xué)校編號和成績等。1.4系統(tǒng)功能需求分析:(1)、數(shù)據(jù)要求1)建議輸入學(xué)校的名稱,運動項目的名稱等,其余信息學(xué)生自行設(shè)計;2)輸出形式:有合理的提示,各學(xué)校分?jǐn)?shù)為整形;3)數(shù)據(jù)的存儲結(jié)構(gòu)自行設(shè)計。4)建議運動會的相關(guān)數(shù)據(jù)要存儲在數(shù)據(jù)文件中。(2)、操作要求1)可以輸入各個項目的前三名或前五名的成績;2)能統(tǒng)計各學(xué)??偡郑?)可以按學(xué)校編號或名稱、學(xué)校總分、男女團(tuán)體總分排序輸出;4)可以按學(xué)校編號查詢學(xué)校某個項目的情況;可以按項目編號查詢?nèi)〉们叭蚯拔迕膶W(xué)校。5)數(shù)據(jù)存入文件并能隨時查詢6)規(guī)定:輸入數(shù)據(jù)形式和范圍:可以輸入學(xué)校的名稱,運動項目的名稱輸出形式:有中文提示,各學(xué)校分?jǐn)?shù)為整形界面要求:有合理的提示,每個功能可以設(shè)立菜單,根據(jù)提示,可以完成相關(guān)的功能要求。(3)、測試數(shù)據(jù)要求測試數(shù)據(jù)要求使用:1、全部合法數(shù)據(jù);2、整體非法數(shù)據(jù);3、局部非法數(shù)據(jù)。進(jìn)行程序測試,以保證程序的穩(wěn)定。第二章概要設(shè)計2.1總體設(shè)計方案的選定:程序的功能:要實現(xiàn)對心算搶答進(jìn)行統(tǒng)一有效的管理需要通過用函數(shù)、數(shù)據(jù)類型、C語句(控制語句、函數(shù)調(diào)用語句、表達(dá)式語句、復(fù)合語句等)來實現(xiàn)。由于是計算,很自然的要建立一個題庫,而這個題庫里的題目是隨機(jī)的。這個系統(tǒng)有很多個界面,這些界面的調(diào)用,最終是通過函數(shù)之間的調(diào)用來實現(xiàn)的。2.2程序的模塊組成以及各個函數(shù)的功能:1.程序的模塊組成:主函數(shù):voidmain();主菜單函數(shù):voidsolve();自定義子菜單函數(shù):voidinput();voidprint();voidbianhao();voidzongfen();清屏函數(shù):voidclrscr();光標(biāo)定位函數(shù):voidgotoxy(int,int);信息函數(shù):voidcxsch();voidcxxm()結(jié)束界面函數(shù):voidend();設(shè)置功能函數(shù):voidrenshu();voidtimu();voiddifen();voiddefen();成績排名函數(shù):voidzongfen();voidmalezf();voidfemalezf();2.各函數(shù)的主要功能:主函數(shù):顯示主菜單;自定義子菜單函數(shù):顯示子菜單;光標(biāo)定位函數(shù):進(jìn)行光標(biāo)定位。信息函數(shù):查看不同標(biāo)準(zhǔn)項目的信息。結(jié)束界面函數(shù):輸出結(jié)束畫面。設(shè)置功能函數(shù):實現(xiàn)各種設(shè)置功能。成績排名函數(shù):進(jìn)行成績排名并輸出。2.3系統(tǒng)功能結(jié)構(gòu)圖:第三章詳細(xì)設(shè)計3.1相關(guān)的數(shù)據(jù)類型:(1)、定義運動項目數(shù)據(jù)類型:定義運動項目數(shù)據(jù)類型鄰接表,用于存放運動項目的信息,包括運動項目總數(shù)、運動項目名稱、運動項目編號及在每個運動項目中取得名次的學(xué)校編號、學(xué)校名字、運動項目成績。structSchoolNode{intschool;//學(xué)校編號 chars_name[MAX];//學(xué)校名字 intrecord;//項目成績 structSchoolNode*next;//鏈域}SchoolNode;structItem{intitem;//項目編號 charitem_name[MAX];//項目名字 SchoolNode*firstschool;//鏈域指向鏈表中第一個結(jié)點}Item;structAllItems{ intitem_num;//項目總數(shù) Itemitem[MAX];}AllItems;(2)、定義學(xué)校數(shù)據(jù)類型:定義學(xué)校數(shù)據(jù)類型鄰接表,用于存放參賽學(xué)校的信息,包括學(xué)??倲?shù)、學(xué)校名稱、學(xué)校編號、學(xué)??偡帧⒛凶訄F(tuán)體總分、女子團(tuán)體總分以及每個學(xué)校獲獎的運動項目編號、運動項目名稱、取得的成績。structItemNode{ intitem;//該學(xué)校獲獎的項目編號 chari_name[MAX];//項目名字 intrecord;//項目成績 structItemNode*next;//鏈域}ItemNode;structSCHNode{ intschool;//學(xué)校編號 charschool_name[MAX];//學(xué)校名字 intshool_score;//學(xué)??偡?intboys_score;//男團(tuán)體總分 intgirl_score;//女團(tuán)體總分 ItemNode*firstitem;//鏈域指向鏈表中第一個獲獎項目的結(jié)點}SCHNode;structAllSchool{ intschool_num;//學(xué)校總數(shù) SCHNodeschool[MAX];}AllSchool;3.2總體設(shè)計: 根據(jù)運動會分?jǐn)?shù)統(tǒng)計系統(tǒng)的問題分析及設(shè)計要求,可以將此系統(tǒng)分為四個模塊:信息統(tǒng)計模塊、信息排序輸出模塊、信息查詢模塊、信息調(diào)用模塊。(1)、信息統(tǒng)計模塊實現(xiàn)信息的輸入、統(tǒng)計,涉及函數(shù)有:voidInputInfo()、(2)、信息輸出模塊實現(xiàn)信息的輸出,涉及函數(shù)有:intMenu_Select_Tow()、Sort_Schoolnum()、Sort_SchoolScore()、Sort_ManScore()、Sort_WomanScore()。(3)、信息查詢模塊實現(xiàn)信息的查詢,涉及函數(shù)有:FindInfo_SchoolNum()、FindInfo_SchoolNum()、intMenu_Select_Three()。(4)、信息調(diào)用模塊實現(xiàn)信息的調(diào)用,即從文件中讀出信息并輸出、保存信息,涉及函數(shù)有:voidsave()、voidReadInfo()。3.3主函數(shù)與各函數(shù)調(diào)用關(guān)系流程圖、結(jié)構(gòu)圖:信息統(tǒng)計模塊信息統(tǒng)計模塊信息輸出模塊信息查詢模塊信息調(diào)用模塊運動會分?jǐn)?shù)統(tǒng)計系統(tǒng)按學(xué)校編號排序信息輸入分?jǐn)?shù)統(tǒng)計按學(xué)??偡峙判虬茨袌F(tuán)體總分排序按女團(tuán)體總分排序按學(xué)校編號查詢按項目編號查詢信息保存信息讀取開始開始總分顯示菜單界面按學(xué)校名稱輸出按學(xué)校總分輸出按男團(tuán)總分輸出按女團(tuán)總分輸出退出返回主菜單主菜單輸入功能序號開始初始化N開始初始化N輸入輸入YYYY輸入學(xué)校及男女項目范圍輸入學(xué)校及男女項目范圍輸入某項目各名次成績輸入某項目各名次成績Y繼續(xù)輸入Y繼續(xù)輸入NN查詢團(tuán)體總分Case2成績查詢Case3查詢團(tuán)體總分Case2成績查詢Case3Y繼續(xù)Case1Y繼續(xù)Case1查詢各學(xué)校成績查詢各學(xué)校成績N輸出查詢學(xué)校成績N輸出查詢學(xué)校成績繼續(xù)Y繼續(xù)YNN結(jié)束—退出結(jié)束—退出圖2.1:模塊之間的調(diào)用關(guān)系第四章系統(tǒng)調(diào)試4.1調(diào)試進(jìn)行:系統(tǒng)頁面:進(jìn)入系統(tǒng):在選項中選擇要進(jìn)行的項目進(jìn)入基本設(shè)置選項:輸入完畢:按學(xué)校編號輸出:查詢某個學(xué)校成績:結(jié)束:輸入7則退出系統(tǒng),并有中文提示。如圖所示:第五章心得體會:本次課程設(shè)計,使我對數(shù)據(jù)結(jié)構(gòu)線性表,棧的設(shè)計方法、步驟、思路、有一定的了解與認(rèn)識。它相當(dāng)于實際設(shè)計工作的模擬。在課程設(shè)計過程中,基本能按照規(guī)定的程序進(jìn)行,先針對表達(dá)式算法為背景,通過調(diào)研、分析現(xiàn)有的管理模式和已有的管理軟件,建立系統(tǒng)模型;收集、調(diào)查有關(guān)資料,然后進(jìn)入草案階段,其間與指導(dǎo)教師進(jìn)行幾次方案的討論、修改,再討論、再修改,最后定案。通過此次課程設(shè)計,我了解了編寫應(yīng)用軟件的一般步驟,獲得了很多寶貴的經(jīng)驗。特別是怎么樣通過理論與實踐相結(jié)合,把書本上的內(nèi)容應(yīng)用到我們做的程序上去。怎樣使各個子模塊實施其的詳細(xì)功能,特別是各個子模塊之間的接口,一定要相當(dāng)清晰,達(dá)到相互協(xié)調(diào)的作用其次,我熟悉了數(shù)據(jù)結(jié)構(gòu)知識。學(xué)會了很多關(guān)于程序設(shè)計的經(jīng)驗和技巧,明白了程序的使用性和通用性是程序生存周期長短的關(guān)鍵,學(xué)會了調(diào)試程序的一般方法。重要的是,通過這次設(shè)計,逐步我具備了走向程序員的基本素質(zhì)。知道應(yīng)如何在困難重重中一步一步細(xì)心的發(fā)現(xiàn)問題,解決問題。并深刻體會到了團(tuán)體合作精神的重要性,知道了在軟件設(shè)計中對界面和功能如何平衡,如何達(dá)到相對的完美。!附錄:源程序#include<stdio.h>#include<string>#include<iomanip>#include<fstream>usingnamespacestd;intn;//n個學(xué)校intm;//m個男子項目intw;//w個女子項目structpro//表示項目的結(jié)構(gòu)體{stringname;//項目名稱intsnum[6];//前5名學(xué)校的編號intsnumy[4];//前3名學(xué)校的編號}p[21];structschool//表示學(xué)校的結(jié)構(gòu)體{intnum;stringname;//學(xué)校名稱intscore;//學(xué)??偡謎ntmale;//男子總分intfemale;//女子總分}sch[21];structSCHNode{ chargender;//性別 intathlete;//運動員 intgirl_score;}SCHNode;structAllSchool{ intschool_num;//學(xué)??倲?shù)}AllSchool;intintegral[5]={7,5,3,2,1};//前五名得分intintegraly[3]={7,5,3};//前三名得voidinput(){ intz; do { system("color3E");system("cls"); printf("\t\t(^o^)(^o^)\n"); printf("\t\t(^o^)以下是菜單選項,請選擇!(^o^)\n"); printf("\t\t(^o^)(^o^)\n"); printf("\t\t(^o^)1.輸入各個項目成績及信息(^o^)\n"); printf("\t\t(^o^)(^o^)\n"); printf("\t\t(^o^)2.顯示各學(xué)校總分(^o^)\n"); printf("\t\t(^o^)(^o^)\n"); printf("\t\t(^o^)3.信息排序(^o^)\n"); printf("\t\t(^o^)(^o^)\n"); printf("\t\t(^o^)4.信息查詢(^o^)\n"); printf("\t\t(^o^)(^o^)\n"); printf("\t\t(^o^)5.保存信息到文件(^o^)\n"); printf("\t\t(^o^)(^o^)\n"); printf("\t\t(^o^)6.從文件中讀入信息(^o^)\n"); printf("\t\t(^o^)(^o^)\n"); printf("\t\t(^o^)7.退出系統(tǒng)(^o^)\n"); printf("\t\t(^o^)(^o^)\n"); printf("\t請輸入1選擇的操作(0—):"); scanf("%d",&z); }while((z!=1)); system("color1e");system("cls");inti,j,y,x;printf("輸入學(xué)校數(shù)目:");y=0;while(1){scanf("%d",&n);//n:學(xué)校數(shù)目if(n>=1&&n<=20)y=1;if(y)break;elseprintf("輸入數(shù)據(jù)有誤,請重新輸入:");}for(i=1;i<=n;i++){printf("輸入第%d個學(xué)校的名稱:",i); scanf("%s",&sch[i].name);//給學(xué)校結(jié)構(gòu)體的成員初始化為sch[i].score=0;sch[i].female=0;sch[i].male=0;sch[i].num=i;}printf("輸入男子項目數(shù)和女子項目數(shù):");y=0;while(1){scanf("%d%d",&m,&w);if(m<=20&&m>=1&&w<=20&&w>=1)y=1;if(y)break;elseprintf("輸入數(shù)據(jù)有誤,請重新輸入:");}for(i=1;i<=m+w;i++){printf("輸入第%d個項目的名稱:\n",i); scanf("%s",&p[i].name);if(i%2==1){printf("輸入第%d個項目的前5名的學(xué)校編號:\n",i);for(j=1;j<=5;j++){y=0;while(1){scanf("%d",&x);//學(xué)校編號if(x>=1&&x<=20)y=1;if(y)break;elseprintf("輸入數(shù)據(jù)有誤,請重新輸入:");}p[i].snum[j]=x;//給項目結(jié)構(gòu)體的成員賦值sch[x].score+=integral[j-1];//給學(xué)校結(jié)構(gòu)體成員賦值if(i<=m)sch[x].male+=integral[j-1];//學(xué)校結(jié)構(gòu)體賦值,男子總分elsesch[x].female+=integral[j-1];//學(xué)校結(jié)構(gòu)體賦值,女子總分 }}if(i%2!=1){printf("輸入第%d個項目的前3名的學(xué)校編號:\n",i);for(j=1;j<=3;j++) { y=0; while(1) { scanf("%d",&x);//學(xué)校編號 if(x>=1&&x<=20)y=1; if(y)break; elseprintf("輸入數(shù)據(jù)有誤,請重新輸入:"); } p[i].snumy[j]=x;//給項目結(jié)構(gòu)體的成員賦值 sch[x].score+=integraly[j-1];//給學(xué)校結(jié)構(gòu)體成員賦值 if(i<=m)sch[x].male+=integraly[j-1];//學(xué)校結(jié)構(gòu)體賦值 elsesch[x].female+=integraly[j-1];//學(xué)校結(jié)構(gòu)體賦值 }}}}voidprint(inti){ printf("%d%10s%8d%9d%10d\n",sch[i].num,sch[i].name,sch[i].score,sch[i].male,sch[i].female);}voidbianhao()//按編號排序{inti,j;schoolt;for(i=1;i<n;i++){for(j=i;j<=n;j++) if(sch[i].num>sch[j].num) { t=sch[i];sch[i]=sch[j];sch[j]=t; }} printf("\n按編號排列:\n"); printf("編號學(xué)校名稱總分男子總分女子總分\n"); for(i=1;i<=n;i++)print(i);}voidzongfen()//按學(xué)??偡峙判騵inti,j;schoolt;for(i=1;i<n;i++){for(j=i;j<=n;j++) if(sch[i].score<sch[j].score) {t=sch[i];sch[i]=sch[j];sch[j]=t;}}printf("\n按學(xué)校總分排列:\n");printf("編號學(xué)校名稱總分男子總分女子總分\n");for(i=1;i<=n;i++)print(i);ofstreamfout;fout.open("運動會分?jǐn)?shù)統(tǒng)計.txt");fout<<"編號學(xué)校名稱總分男子總分女子總分"<<endl;for(i=1;i<=n;i++){ fout<<sch[i].num<<setw(13)<<sch[i].name<<setw(8)<<sch[i].score<<setw(9) <<sch[i].male<<setw(10)<<sch[i].female<<endl;}fout.close();}voidmalezf()//按學(xué)校男總分排序{inti,j;schoolt;for(i=1;i<n;i++){for(j=i;j<=n;j++) if(sch[i].male<sch[j].male) {t=sch[i];sch[i]=sch[j];sch[j]=t;}}printf("\n按學(xué)校男子總分排列:\n");printf("編號學(xué)校名稱總分男子總分女子總分\n");for(i=1;i<=n;i++) print(i);}voidfemalezf()//按學(xué)校女總分排序{inti,j;schoolt;for(i=1;i<n;i++){for(j=i;j<=n;j++) if(sch[i].female<sch[j].female) { t=sch[i];sch[i]=sch[j];sch[j]=t; }}printf("\n按學(xué)校女子總分排列:\n");printf("編號學(xué)校名稱總分男子總分女子總分\n");for(i=1;i<=n;i++)print(i); printf("\n");}voidcxsch()//查詢學(xué)校信息{inti,y,s;printf("輸入需要查詢的學(xué)校編號:");y=0;while(1){ scanf("%d",&s); if(s>=1&&s<=n)y=1; if(y)break; elseprintf("輸入數(shù)據(jù)有誤,請重新輸入:");}printf("該學(xué)校相關(guān)信息:\n");printf("編號學(xué)校名稱總分男子總分女子總分\n");for(i=1;i<=n;i++){if(sch[i].num==s){print(i);break;}} printf("\n");}voidcxxm()//查詢項目信息{inti,y,s,v;printf("輸入需要查詢的項目編號:");y=0;while(1){scanf("%d",&s);if(s>=1&&s<=n)y=1;if(y)break;elseprintf("輸入數(shù)據(jù)有誤,請重新輸入:");}printf("該項目取的前三名選0,取的前5名選1:");scanf("%d",&v);if(v==1){ printf("前5名學(xué)校編號及名稱為:%s",p[s].name);printf("名次編號學(xué)校名稱\n");for(i=1;i<=5;i++) printf("%d%d%s",p[s].snum[i],setw(12),sch[p[s].snum[i]].name);}if(v==0){ printf("前3名學(xué)校編號及名稱為:%s",p[s].name); printf("名次編號學(xué)校名稱\n"); for(i=1;i<=3;i++) printf("%d%d%s",p[s].snum[i],setw(12),sch[p[s].snum[i]].name);} printf("\n");}voidsolve()//菜單函數(shù){intz;while(1){ printf("\t\t(^o^)(^o^)\n"); printf("\t\t(^o^)以下是菜單選項,請選擇!(^o^)\n");printf("\t\t(^o^)1.按學(xué)校編號排序輸出(^o^)\n");printf("\t\t(^o^)2.按學(xué)??偡峙判蜉敵?^o^)\n");printf("\t\t(^o^)3.按學(xué)校男總分排序輸出(^o^)\n");printf("\t\t(^o^)4.按學(xué)校女總分排序輸出(^o^)\n");printf("\t\t(^o^)5.查詢某個學(xué)校成績(^o^)\n");printf("\t\t(^o^)6.查詢某個項目成績(^o^)\n");printf("\t\t(^o^)7.結(jié)束(^o^)\n\n"); printf("選擇您需要的操作(選擇序號):");scanf("%d",&z);if(z==1) { bianhao(); system("pause"); }if(z==2) { zongfen(); system("pause"); } if(z==3) { malezf(); system("pause"); } if(z==5) { cxsch(); system("pause"); } if(z==6) { cxxm(); system("pause");
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年有債務(wù)離婚協(xié)議書起草與執(zhí)行過程中的注意事項3篇
- 2024期權(quán)協(xié)議書范本:期權(quán)投資顧問服務(wù)合同3篇
- 2024年網(wǎng)絡(luò)安全與數(shù)據(jù)保護(hù)服務(wù)合同
- 2024新版風(fēng)險保障合同樣本一
- 2024房屋裝修合同(設(shè)計與施工)
- 醫(yī)藥醫(yī)療行業(yè)廣告總結(jié)
- 建筑設(shè)計行業(yè)顧問工作總結(jié)
- 2024年玻璃膠銷售與代理合同
- 數(shù)學(xué)班主任期末總結(jié)用心教育點亮學(xué)生數(shù)學(xué)夢想
- 游泳用品行業(yè)銷售工作總結(jié)
- 基于BP神經(jīng)網(wǎng)絡(luò)的零售戶銷售假煙行為的預(yù)警模型
- 中心衛(wèi)生院關(guān)于成立按病種分值付費(DIP)工作領(lǐng)導(dǎo)小組及制度的通知
- 醫(yī)院感染監(jiān)測清單
- Q∕SY 05592-2019 油氣管道管體修復(fù)技術(shù)規(guī)范
- JIS G3141-2021 冷軋鋼板及鋼帶標(biāo)準(zhǔn)
- 籃球校本課程教材
- 小學(xué)數(shù)學(xué)校本教材(共51頁)
- 遺傳群體文獻(xiàn)解讀集
- 工藝裝備環(huán)保性與安全性的設(shè)計要點
- [玻璃幕墻施工方案]隱框玻璃幕墻施工方案
- 國家開放大學(xué)電大本科《管理案例分析》2023-2024期末試題及答案(試卷代號:1304)
評論
0/150
提交評論