歌手比賽系統(tǒng)課程設(shè)計(jì)報(bào)告_第1頁(yè)
歌手比賽系統(tǒng)課程設(shè)計(jì)報(bào)告_第2頁(yè)
歌手比賽系統(tǒng)課程設(shè)計(jì)報(bào)告_第3頁(yè)
歌手比賽系統(tǒng)課程設(shè)計(jì)報(bào)告_第4頁(yè)
歌手比賽系統(tǒng)課程設(shè)計(jì)報(bào)告_第5頁(yè)
已閱讀5頁(yè),還剩29頁(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)介

1、精選優(yōu)質(zhì)文檔-傾情為你奉上 計(jì)算機(jī)學(xué)院信息管理與信息系統(tǒng)專業(yè)程序設(shè)計(jì)綜合課程設(shè)計(jì)報(bào)告 (2010/2011學(xué)年 第一學(xué)期)學(xué)生姓名: 學(xué)生班級(jí): 1學(xué)生學(xué)號(hào): 指導(dǎo)教師: 2011年1月7日目錄348專心-專注-專業(yè)歌手比賽系統(tǒng)第一章 課程設(shè)計(jì)的目的和要求1.1課程設(shè)計(jì)的目的C+語(yǔ)言課程設(shè)計(jì)的主要目的是培養(yǎng)學(xué)生綜合運(yùn)用C+程序設(shè)計(jì)課程所學(xué)到的知識(shí),編寫C+程序解決實(shí)際問(wèn)題的能力,以及嚴(yán)謹(jǐn)?shù)墓ぷ鲬B(tài)度和良好的程序設(shè)計(jì)習(xí)慣。通過(guò)課程設(shè)計(jì)的訓(xùn)練,學(xué)生應(yīng)該能夠了解程序設(shè)計(jì)的基本開發(fā)過(guò)程,掌握編寫、調(diào)試和測(cè)試C+語(yǔ)言程序的基本技巧,充分理解結(jié)構(gòu)化程序設(shè)計(jì)的基本方法。C+語(yǔ)言程序設(shè)計(jì)的主要任務(wù)時(shí)要求學(xué)生遵循

2、軟件開發(fā)過(guò)程的基本規(guī)范,運(yùn)用結(jié)構(gòu)化程序設(shè)計(jì)的方法,按照課程設(shè)計(jì)的題目要求,分析、設(shè)計(jì)、編寫、調(diào)試和測(cè)試C+語(yǔ)言程序及編寫設(shè)計(jì)報(bào)告。本次課程設(shè)計(jì)是通過(guò)設(shè)計(jì)一個(gè)較為簡(jiǎn)單的“歌手比賽系統(tǒng)”,進(jìn)一步熟悉C+中有關(guān)各種知識(shí)的運(yùn)用與掌握。了解系統(tǒng)開發(fā)的需求分析、模塊分析、程序流程圖、編碼測(cè)試、模塊組裝與整體調(diào)試的全過(guò)程,加深對(duì)C+的理解與Visual C+環(huán)境的使用;逐步熟悉程序設(shè)計(jì)的方法,并養(yǎng)成良好的編程習(xí)慣,進(jìn)一步培養(yǎng)完善的C+編程設(shè)計(jì)思維,為以后進(jìn)行軟件編程、數(shù)據(jù)庫(kù)管理等深入學(xué)習(xí)打下一個(gè)牢固基礎(chǔ)1.2課程設(shè)計(jì)的目標(biāo)本課程設(shè)計(jì)的目標(biāo):1. 鞏固和加深學(xué)生對(duì)C+語(yǔ)言課程的基本知識(shí)的理解和掌握;2. 掌握

3、C+語(yǔ)言編程和程序調(diào)試的基本技能;3. 掌握利用C+語(yǔ)言進(jìn)行軟件設(shè)計(jì)的方法;4. 提高書寫程序設(shè)計(jì)說(shuō)明文檔的能力;5. 提高運(yùn)用C+語(yǔ)言解決實(shí)際問(wèn)題的能力。1.3課程設(shè)計(jì)要求基本要求:1.題目:設(shè)計(jì)一個(gè)“歌手比賽系統(tǒng)”軟件;2.了解該系統(tǒng)軟件開發(fā)的相關(guān)背景;3.參考相關(guān)書籍學(xué)習(xí)課程設(shè)計(jì)的基本知識(shí);4.清楚所開發(fā)系統(tǒng)軟件的各個(gè)相關(guān)功能,以便順利開發(fā)系統(tǒng)軟件;5.對(duì)系統(tǒng)功能模塊進(jìn)行分析,寫出設(shè)計(jì)說(shuō)明文檔;6.設(shè)計(jì)完成的軟件要便于操作和使用;7.對(duì)自己所設(shè)計(jì)的程序進(jìn)行調(diào)試,并不斷完善;8.在設(shè)計(jì)過(guò)程中熟練掌握軟件編程的相關(guān)知識(shí);9.詳細(xì)體會(huì)并記錄相關(guān)過(guò)程,并將心得體會(huì)寫在課程設(shè)計(jì)報(bào)告中;10.設(shè)計(jì)完

4、成后提交課程設(shè)計(jì)報(bào)告。第二章 課程設(shè)計(jì)任務(wù)內(nèi)容2.1 課程設(shè)計(jì)題目歌手比賽系統(tǒng)。2.2 背景 時(shí)下,無(wú)論是社會(huì)上某些場(chǎng)合還是校園內(nèi),經(jīng)常舉行一些歌手演唱比賽,一般不會(huì)再像以前那樣用筆記錄比賽的情況,歌手比賽系統(tǒng)由此產(chǎn)生。它幾乎包含了一切應(yīng)有的功能,歌手信息的輸入,評(píng)委打分,成績(jī)排序等功能應(yīng)有盡有,省去了很多麻煩的環(huán)節(jié),完全可以滿足一次歌手比賽的需求。開發(fā)此系統(tǒng)只為方便一般的歌手比賽。2.3功能需求用C+實(shí)現(xiàn)歌手比賽系統(tǒng)。該系統(tǒng)主要有以下功能:1、 系統(tǒng)以菜單方式工作;2、 歌手?jǐn)?shù)據(jù)錄入功能(歌手?jǐn)?shù)據(jù)用文件保存)-輸入;3、 歌手成績(jī)(評(píng)委打分)錄入功能輸入:按輸入選手的順序?qū)ζ浞謩e打分,輸入每

5、個(gè)評(píng)委的評(píng)分,對(duì)一個(gè)選手打完分之后,顯示其總分和平均分;4、 計(jì)算總成績(jī)和平均成績(jī)(去掉一個(gè)最高分和一個(gè)最低分);5、 歌手成績(jī)排序(按平均分):對(duì)選手按平均分進(jìn)行排序,輸出選手的姓名、編號(hào)、總分和平均分;6、 歌手成績(jī)查詢功能算法;按編號(hào)查詢:輸入編號(hào),如果存在,輸出選手的數(shù)據(jù),不存在,輸出 “信息不存在”。按姓名查詢:輸入選手姓名,存在,則輸出選手?jǐn)?shù)據(jù),不存在,則輸出 “信息不存在”;7、 追加選手?jǐn)?shù)據(jù)(包括歌手姓名和編號(hào)):如果添加的選手已經(jīng)存在,則不能插入,不存在,則輸出“成功插入”。8、 寫入數(shù)據(jù)文件:將輸入的信息進(jìn)行保存,保存到自己所寫的文件中。2.4系統(tǒng)模塊圖以下是歌手管理系統(tǒng)的

6、模塊圖:歌手管理系統(tǒng)創(chuàng)建歌手信息評(píng)委打分成績(jī)排序數(shù)據(jù)查詢追加選手?jǐn)?shù)據(jù)寫入數(shù)據(jù)文件退出系統(tǒng)圖2-1 系統(tǒng)模塊圖第三章 詳細(xì)設(shè)計(jì)說(shuō)明 3.1 主函數(shù)的流程圖輸入選手?jǐn)?shù)據(jù)是否繼續(xù)輸入查詢選手?jǐn)?shù)據(jù)追加選手?jǐn)?shù)據(jù)結(jié)束YN成績(jī)排序成績(jī)輸入開始圖3-1主函數(shù)流程圖3.2 輸入歌手?jǐn)?shù)據(jù)輸入函數(shù):刷新此前的顯示界面,然后輸入在執(zhí)行上步操作后的顯示界面Singer *create() 包含的參數(shù)有:選手姓名string name;編號(hào) long num。輸入歌手編號(hào)、姓名開始添加錯(cuò)誤該信息是否存在結(jié)束NY添加到文件圖3-2輸入函數(shù)流程圖3.3 查詢歌手?jǐn)?shù)據(jù)查詢函數(shù):刷新此前的顯示界面,然后查詢?cè)趫?zhí)行上步操作后的顯示

7、界面按姓名查詢:void inquire(); 參數(shù):姓名 string name按編號(hào)查詢:void inquire()。參數(shù):編號(hào) long num輸入歌手編號(hào)或姓名開始是否存在結(jié)束NY顯示所查詢歌手?jǐn)?shù)據(jù)圖3-3 查詢函數(shù)流程圖3.4 編碼與調(diào)試此程序包含六個(gè)函數(shù):main();Singer *create();void print(); Singer *insert(); void save();void menu();void grade();void rank(); void welcome();void inquire(); Singer *import();其中:main()為主

8、函數(shù),可輸出開機(jī)界面;void menu()功能選擇界面,按提示可提供相關(guān)服務(wù);Singer *create()創(chuàng)建歌手信息表,輸入選手相關(guān)數(shù)據(jù);void print()輸出函數(shù),輸出選手的相關(guān)數(shù)據(jù);Singer *insert()插入函數(shù),插入新的選手的數(shù)據(jù);void save()寫入數(shù)據(jù)文件的函數(shù),將選手的數(shù)據(jù)保存到文件夾中;void grade()評(píng)委打分函數(shù),輸入評(píng)委所打的分?jǐn)?shù);void rank()成績(jī)排序函數(shù),對(duì)選手按平均分進(jìn)行排序,并輸出最終結(jié)果;void welcome()該函數(shù)的作用是清空屏幕;Singer *import()文件導(dǎo)入函數(shù),從某文件把選手信息導(dǎo)入系統(tǒng)。第四章

9、軟件使用說(shuō)明及運(yùn)行結(jié)果4.1使用說(shuō)明該程序可以實(shí)現(xiàn)對(duì)選手有關(guān)信息查找的功能,安裝VisualC+6.0英文版后,在工具欄“file”中單擊“new”選項(xiàng),單擊“files”菜單,選擇“C+ Source file”輸入文件名“歌手比賽系統(tǒng)”。開始輸入程序,程序輸入完成,單擊“build”工具欄,選擇“build歌手比賽系統(tǒng).cpp1”,待程序無(wú)誤后,開始執(zhí)行程序。根據(jù)數(shù)據(jù)結(jié)構(gòu)、函數(shù)功能和主要的流程圖,進(jìn)行錄入源代碼操作。在編碼時(shí),注意代碼的書寫規(guī)范,包括命名慣例、注釋、分隔和縮進(jìn)等,這樣使程序?qū)游銮逦?,增?qiáng)可讀性和可維護(hù)性。 編碼操作完成后,先靜態(tài)檢查一下有沒(méi)有語(yǔ)法錯(cuò)誤,然后進(jìn)行編譯,更深一步

10、檢查語(yǔ)法錯(cuò)誤。待編譯通過(guò)時(shí),運(yùn)行程序,觀察是否能夠正常運(yùn)行,如果有問(wèn)題,再去修改源程序,直至達(dá)到了預(yù)期的效果。4.2 運(yùn)行結(jié)果1、初始界面,提供功能選擇,輸入相應(yīng)數(shù)字或字母。圖4-1 程序截圖一2、選擇1,輸入選手信息,包括姓名和編號(hào)(編號(hào)必須是阿拉伯?dāng)?shù)字)。 圖4-2 程序截圖二3、評(píng)委打分界面,會(huì)依次提醒輸入每個(gè)評(píng)委所打的分?jǐn)?shù)(分?jǐn)?shù)必須是0到100之內(nèi)的數(shù)),輸入完畢,顯示選手的總分和平均分,也就是最終得分。 圖4-3 程序截圖三4、成績(jī)排序界面,輸入選擇“4”,輸出排序的結(jié)果,顯示有選手的編號(hào)、姓名、總分和平均分,排序是按平均分。圖4-4 程序截圖四5、下面是查詢界面,可按姓名或者編號(hào)查

11、詢,輸出選手信息。圖4-5 程序截圖五6、追加選手?jǐn)?shù)據(jù),輸入新增選手的姓名和編號(hào)。圖4-6 程序截圖六7、寫入數(shù)據(jù)文件,保存信息到自己建立的文件內(nèi)。圖4-7 程序截圖七第五章 課程設(shè)計(jì)心得與體會(huì)課程設(shè)計(jì)剛開始的時(shí)候,我真的感覺(jué)到無(wú)從下手。因?yàn)橐呀?jīng)過(guò)去一個(gè)學(xué)期了,期間又沒(méi)有怎么看書,大一的時(shí)候?qū)W的c+,不過(guò)基本上已經(jīng)忘光了,而且那時(shí)候?qū)W的不深,如果單單寫一個(gè)比較的小的程序還可以,大程序基本寫不了。當(dāng)老師把題目發(fā)給我們之后,剛開始是一籌莫展,不過(guò)短時(shí)間內(nèi)就已經(jīng)覺(jué)醒,重新對(duì)題目分析了一遍,了解了一下要用到哪方面的知識(shí),然后著手去看書,重新熟悉一下以前的知識(shí)。然后去圖書館借了一些關(guān)于數(shù)據(jù)結(jié)構(gòu)和c+的書

12、??催^(guò)那些書之后,信心增加了不少,對(duì)接下來(lái)的程序編譯有很大幫助。通過(guò)這三周的課程設(shè)計(jì),我獨(dú)立完成了一個(gè)較大的C+語(yǔ)言程序的設(shè)計(jì),并認(rèn)真完成了課程設(shè)計(jì)報(bào)告。回憶這三周的時(shí)間,我收獲很大。首先,我熟練地運(yùn)用了所學(xué)的知識(shí)編寫程序,并成功的完成,感覺(jué)成就感很強(qiáng),這大大激發(fā)了我編程的興趣;其次,在設(shè)計(jì)的過(guò)程中遇到了一些困難,我會(huì)認(rèn)真的去思考,或者充分利用網(wǎng)絡(luò)資源來(lái)尋求幫助,提高獲取信息的能力。課程設(shè)計(jì)期間,我有向老師和同學(xué)尋求幫助,在交流中共同進(jìn)步。最后,我了解了軟件開發(fā)的大體過(guò)程及各個(gè)步驟,這對(duì)將來(lái)的學(xué)習(xí)和工作是很有幫助的。對(duì)于信管專業(yè)的大學(xué)生來(lái)說(shuō),積累實(shí)戰(zhàn)經(jīng)驗(yàn)是一項(xiàng)極其重要的內(nèi)容,很可能成為將來(lái)就業(yè)

13、的敲門磚。而程序設(shè)計(jì)綜合課程設(shè)計(jì)就是積累實(shí)戰(zhàn)經(jīng)驗(yàn)的一個(gè)過(guò)程,雖然程序的規(guī)模并不大,但能夠讓我們盡早地認(rèn)識(shí)軟件開發(fā)的重要性和必要性,為將來(lái)的就業(yè)打下堅(jiān)實(shí)的基礎(chǔ)。經(jīng)過(guò)兩個(gè)星期的上機(jī)實(shí)踐學(xué)習(xí),使我對(duì)C+語(yǔ)言有了更進(jìn)一步的認(rèn)識(shí)和了解,要想學(xué)好它要重在實(shí)踐,要通過(guò)不斷的上機(jī)操作才能更好地學(xué)習(xí)它,通過(guò)實(shí)踐,我也發(fā)現(xiàn)我的好多不足之處,首先是自己編程粗心大意,經(jīng)常出錯(cuò),通過(guò)學(xué)習(xí)也有所改進(jìn);再有對(duì)C+語(yǔ)言的一些標(biāo)準(zhǔn)函數(shù)不太了解,還有對(duì)函數(shù)調(diào)用的正確使用不夠熟悉,以及對(duì)C+語(yǔ)言中經(jīng)常出現(xiàn)的錯(cuò)誤也不了解,通過(guò)實(shí)踐,使我在這幾個(gè)方面的認(rèn)識(shí)有所提高。這次的課程設(shè)讓我認(rèn)識(shí)到很多C+的內(nèi)在要素:1. 程序設(shè)計(jì)語(yǔ)言是程序設(shè)計(jì)

14、的工具。這是我通過(guò)兩周課程設(shè)計(jì)深深體會(huì)的一點(diǎn),并且發(fā)現(xiàn)如果想有效的進(jìn)行程序設(shè)計(jì),正確地應(yīng)用程序設(shè)計(jì)語(yǔ)言表達(dá)算法,必須準(zhǔn)確的運(yùn)用程序設(shè)計(jì)語(yǔ)言,掌握其語(yǔ)法知識(shí)。2. 學(xué)習(xí)程序設(shè)計(jì)必須重視時(shí)間環(huán)節(jié),多讀程序,多編寫程序,多上機(jī)實(shí)踐。這次的課程設(shè)計(jì)就使得課堂教學(xué)、式樣和實(shí)踐之間的關(guān)系更為緊密。對(duì)我的學(xué)習(xí)有著很深遠(yuǎn)的影響。3. 我發(fā)現(xiàn)作為一個(gè)程序設(shè)計(jì)人員,需要掌握面向過(guò)程的程序設(shè)計(jì),也要掌握面向?qū)ο蟮某绦蛟O(shè)計(jì)。從前,人們通過(guò)C+語(yǔ)言學(xué)習(xí)面向過(guò)程的程序設(shè)計(jì),再通過(guò)C+學(xué)習(xí)面向?qū)ο蟮某绦蛟O(shè)計(jì)。其實(shí)C+并不是純粹的面向?qū)ο蟮恼Z(yǔ)言,它是一種混合語(yǔ)言。學(xué)習(xí)C+既可以編寫面向過(guò)程的程序,也可以編寫面向?qū)ο蟮某绦?。這

15、一點(diǎn)是我通過(guò)可課程設(shè)計(jì)所的實(shí)踐發(fā)現(xiàn)的。4. 深切的感受到了C+語(yǔ)法的復(fù)雜,內(nèi)容的繁多。發(fā)現(xiàn)如果對(duì)它缺乏系統(tǒng)的了解,將難以真正的運(yùn)用,編出來(lái)的程序錯(cuò)誤百出。附錄1:參考文獻(xiàn)1譚浩強(qiáng)編著:C+程序設(shè)計(jì),北京:清華大學(xué)出版社,20042楊秀金編著:數(shù)據(jù)結(jié)構(gòu)(c+版),北京:人民郵電出版社,2009.43湛為芳編著:C+程序設(shè)計(jì)技術(shù)習(xí)題解答和實(shí)驗(yàn)指導(dǎo),北京:清華大學(xué)出版社,2009.104 伍俊良編著:Visual C+6.0課程設(shè)計(jì)與系統(tǒng)開發(fā)案例.北京:清華大學(xué)出版社,2002.115、(美)戴特爾(Deitel,H.M.)等編著,張引等譯:C+大學(xué)基礎(chǔ)教程(第五版),北京:電子工業(yè)出版社,2006

16、.6附錄2:程序清單以下是歌手比賽系統(tǒng)的源代碼:#include<iostream>#include<fstream>#include<string>#include<iomanip>using namespace std;#define NULL 0int n=0; /鏈表節(jié)點(diǎn)數(shù)bool formExist=false; /原有鏈表是否存在struct Singerstring name;long num;int sum;int mark10;float average;Singer *next;/創(chuàng)建鏈表Singer *create();/打

17、印信息void print(Singer *pt);/插入節(jié)點(diǎn)Singer *insert(Singer *head,Singer *sin);/保存到文件void save(Singer *head,char filename);/菜單void menu();/評(píng)委打分void grade(Singer *head,int mark);/成績(jī)排序void rank(Singer *&head);/歡迎void welcome();/按姓名查詢void inquire(Singer *head,string name);/按編號(hào)查詢void inquire(Singer *head,l

18、ong num);/從文件導(dǎo)入Singer *import(char filename,Singer *head);int main()Singer *head=NULL;Singer newsin;string name;void grade(Singer *);ifstream infile;char filename20;long num;char choose;bool quit=false;char c;welcome();while(true)menu();cin>>choose;switch(choose)case '1':if (formExist)

19、cout<<"您要?jiǎng)?chuàng)建新的鏈表,原有鏈表將丟失,是否繼續(xù)?(Y/N)"cin>>c;if (!(c='y'|c='Y')continue;elsen=0;head=create();system("pause");break;elsehead=create();system("pause");break;case '2':cout<<"請(qǐng)輸入文件名:"cin>>filename;head=import(filename,

20、head);system("pause");break;case '3':grade(head);system("pause");break;case '4':cout<<"成績(jī)排序結(jié)果為:"<<endl;rank(head);system("pause");break;case '5':print(head);system("pause");break;case '6':cout<<"

21、請(qǐng)輸入姓名:"<<endl;cin>>name;inquire(head,name);system("pause");break;case '7':cout<<"請(qǐng)輸入編號(hào):"<<endl;cin>>num;inquire(head,num);system("pause");break;case '8':cout<<"請(qǐng)輸入新增選手的姓名、編號(hào):"<<endl;cin>>news

22、;cin>>newsin.num;head=insert(head,&newsin);system("pause");break;case 'k':cout<<"請(qǐng)輸入文件名:"cin>>filename;save(head,filename);system("pause");break;case 'c':system("cls");welcome();break;case 'q':quit=true;brea

23、k;default:cout<<"輸入錯(cuò)誤!"<<endl;if (quit)break;/退出時(shí)提示保存cout<<"您想保存這些信息嗎? (Y/N)"cin>>c;if (c='y' | c='Y')cout<<"請(qǐng)輸入文件名:"cin>>filename;save(head,filename);return 0;/歡迎界面void welcome()cout<<"*"<<endl&l

24、t;<" 歡迎使用歌手比賽管理系統(tǒng)!"<<endl<<"制作人:黃光亮 時(shí)間:2010-12-29"<<endl<<"*"<<endl<<endl;/菜單void menu()cout<<setiosflags(ios:left);cout<<"nn您要做什么?"<<endl<<setw(20)<<"1.創(chuàng)建選手信息表"<<setw(20)<

25、<"2.從文件導(dǎo)入信息表"<<endl<<setw(20)<<"3.評(píng)委打分"<<setw(20)<<"4.成績(jī)排序"<<endl<<setw(20)<<"5.打印所有的信息"<<setw(20)<<"6.按姓名查詢"<<endl<<setw(20)<<"7.按編號(hào)查詢"<<setw(20)<<

26、;"8.追加選手?jǐn)?shù)據(jù)"<<endl<<setw(20)<<"k.保存信息表到文件"<<setw(20)<<"c.清空屏幕"<<endl<<setw(20)<<"q.退出"<<endl<<endl<<"輸入您的選擇:"/創(chuàng)建鏈表Singer *create()bool error=false;formExist=true;Singer *p1,*p2,*head;he

27、ad=NULL;p1=head;while(true)p2=p1;p1=new Singer;cout<<"請(qǐng)輸入選手的姓名:(輸0結(jié)束)"cin>>p1->name;if (p1->name="0")break;cout<<"編號(hào):"cin>>p1->num;n+;if (n=1)head=p1;p1->next=NULL;elsep2->next=p1;p1->next=NULL;cout<<"輸入結(jié)束! "<

28、<endl;return head;/輸出信息void print(Singer *head)Singer *p=head;if(p!=NULL)cout<<setw(15)<<"姓名"<<setw(10)<<"編號(hào)"<<endl;docout<<setw(15)<<p->name<<setw(10)<<p->num<<endl;p=p->next;while(p!=NULL);cout<<"

29、;合計(jì)選手"<<n<<"人。"<<endl;elsecout<<"沒(méi)有信息!"<<endl;/評(píng)委打分 void grade(Singer *head) Singer *p;p=head;if (p!=NULL)doint i, max, min;int sum=0;max = -1;min =101 ;cout <<"請(qǐng)輸入"<<p->num<<"號(hào)選手"<<p->name<&l

30、t;"的得分nn"for (i=0; i<10; i+)cout <<"第"<<i+1<<"個(gè)評(píng)委的評(píng)分:"cin>>p->marki;if(p->marki>max)max=p->marki; if(p->marki<min)min=p->marki;sum+=p->marki;p->sum=sum;p->average = (p->sum-max-min)/8.0;cout<<"總分&quo

31、t;<<p->sum<<"平均分:"<<p->average<< endl;p = p->next;while(p!= NULL);elsecout<<"n所有選手的評(píng)分輸入完畢.n"system("pause");/按平均分排序數(shù)出函數(shù)void rank(Singer *&head)/冒泡法排序/p = head;int cc;Singer *p,*q,*tail,*h;if(!head)return;tail=NULL;h = new Singe

32、r; h->next = head;/h = head;while(h->next!=tail) p=h;q=p->next;while(q->next!=tail)/swapif (p->next->average < q->next->average)p->next=q->next;q->next=q->next->next;p->next->next=q;p=p->next;else/next stepq=q->next;p=p->next;/tail is the elem

33、ent bubble out/since we use single linktail=q;/*do/求出選手的的人數(shù) p = p->next; n+; while(p->next != NULL);Singer *temp = head->next;Singer *prev = head;for(i=0; i<n-1; i+)if(head->average < temp->average)prev->next = temp->next;temp->next = head;head = temp;/* for(i=1; i<n

34、; i+)/冒泡法排序 p1 = head; p2 = head->next->next; for(j=0; j<n-i; j+) if(p1->nexti.average <= p2->average)/滿足條件交換數(shù)據(jù)位置 p1->next->next = p2->next; p2->next = p1->next; p1->next = p2; p2 = p2->next; /if p1 = p1->next; p2 = p2->next; /for /for*/ /輸出排序后數(shù)據(jù)/head = p

35、->next; p = h->next;cout <<setw(10)<<"編號(hào)"<<setw(10)<<"姓名"<<setw(10)<<"總分"<<setw(15)<<"平均分"<<endl;do cout <<setw(10)<<p->num<< setw(10)<<p->name<<setw(10)<<p-&

36、gt;sum<<setw(15)<<p->average<<endl;p = p->next; while(p != NULL); system("pause");/插入信息Singer *insert(Singer *head,Singer *sin)Singer *p0,*p1;p1=head;p0=sin;if (head=NULL)head=p0;p0->next=NULL;elsewhile(p1->next!=NULL)if (p0->num=p1->num)cout<<&quo

37、t;編號(hào)為"<<p0->num<<"的選手已存在!"<<endl;return head;p1=p1->next;p1->next=p0;p0->next=NULL;n+;cout<<"成功插入信息!"<<endl; return head;/保存到文件void save(Singer *head,char filename)Singer *p=head;bool flag=false;if (head=NULL)cout<<"沒(méi)有可以保存

38、的信息!"<<endl;return;elsefstream outfile(filename,ios:out);if (!outfile)cout<<"打開數(shù)據(jù)文件出錯(cuò)!"<<endl;return;doif(flag)outfile<<endl;outfile<<p->name<<"t"<<p->num<<'t'<<p->mark;flag=true;p=p->next;while(p!=NUL

39、L);outfile.close();cout<<"保存成功!保存到"<<filename<<endl;/按姓名查詢void inquire(Singer *head,string name)bool flag=true;Singer *p=head;int total=0;if (p=NULL)cout<<"信息為空!"<<endl;return;doif(p->name=name)if (flag)cout<<"姓名為"<<name<<"的

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論