版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、運動會計分系統(tǒng)課程設(shè)計報告計算機科學(xué)與工程學(xué)院數(shù)字媒體與技術(shù)專業(yè)數(shù)據(jù)結(jié)構(gòu)與算法課程設(shè)計報告學(xué)生班級:學(xué)生學(xué)號:學(xué)生:指導(dǎo)教師:2021 年9 月1日目錄第一章課程設(shè)計的目的和要求11.1課程設(shè)計的目的11.2課程設(shè)計問題描述11.3課程設(shè)計基本要求21.4課程設(shè)計測試數(shù)據(jù)2第二章課程設(shè)計任務(wù)容3第三章詳細(xì)設(shè)計說明43.1數(shù)據(jù)類型定義43.2程序功能圖及功能說明53.2.1程序功能圖63.2.2程序功能說明63.3程序流程圖73.4算法設(shè)計8第四章程序測試94.1多組數(shù)據(jù)輸入與輸出94.2操作過程13第五章課程設(shè)計心得與體會14第六章致16附錄一參考文獻(xiàn)17附錄二程序清單18運動會計分學(xué)校統(tǒng)第一
2、章課程設(shè)計的目的和要求1.1課程設(shè)計目的數(shù)據(jù)結(jié)構(gòu)作為一門學(xué)科主要研究數(shù)據(jù)的各種邏輯結(jié)構(gòu)和存儲結(jié)構(gòu),以及對數(shù)據(jù)的各種操作。因此,主要有三個方面的容:數(shù)據(jù)的邏輯結(jié)構(gòu);數(shù)據(jù)的物理存儲結(jié)構(gòu);對數(shù)據(jù)的操作(或算法)。通常,算法的設(shè)計取決于數(shù)據(jù)的邏輯結(jié)構(gòu),算法的實現(xiàn)取決于數(shù)據(jù)的物理存儲結(jié)構(gòu)。數(shù)據(jù)結(jié)構(gòu)是信息的一種組織方式,其目的是為了提高算法的效率,它通常與一組算法的集合相對應(yīng),通過這組算法集合可以對數(shù)據(jù)結(jié)構(gòu)中的數(shù)據(jù)進(jìn)行某種操作。在當(dāng)今信息時代,信息技術(shù)己成為當(dāng)代知識經(jīng)濟(jì)的核心技術(shù)。我們時刻都在和數(shù)據(jù)打交道。比如人們在外出工作時找最短路徑,在銀行查詢存款、通過互聯(lián)網(wǎng)查新聞、以及遠(yuǎn)程教育報名等,所有這些都在與
3、數(shù)據(jù)發(fā)生關(guān)學(xué)校。實際上,現(xiàn)實世界中的實體經(jīng)過抽象以后,就可以成為計算機上所處理的數(shù)據(jù)。數(shù)據(jù)結(jié)構(gòu)課程主要是研究非數(shù)值計算的程序設(shè)計問題中所出現(xiàn)的計算機操作對象以及它們之間的關(guān)學(xué)校和操作的學(xué)科。數(shù)據(jù)結(jié)構(gòu)是介于數(shù)學(xué)、計算機軟件和計算機硬件之間的一門計算機專業(yè)的核心課程,它是計算機程序設(shè)計、數(shù)據(jù)庫、操作學(xué)校統(tǒng)、編譯原理及人工智能等的重要基礎(chǔ),廣泛的應(yīng)用于信息學(xué)、學(xué)校統(tǒng)工程等各種領(lǐng)域。學(xué)習(xí)數(shù)據(jù)結(jié)構(gòu)是為了將實際問題中所涉及的對象在計算機中表示出來并對它們進(jìn)行處理。通過課程設(shè)計可以提高學(xué)生的思維能力,促進(jìn)學(xué)生的綜合應(yīng)用能力和專業(yè)素質(zhì)的提高。課程設(shè)計的目的:1)要求學(xué)生達(dá)到熟練掌握c語言的基本知識和技能。2)
4、了解并掌握數(shù)據(jù)結(jié)構(gòu)與算法的設(shè)計方法,具備初步的獨立分析和設(shè)計能力。3)提高程序設(shè)計和調(diào)試能力。學(xué)生通過上機實習(xí),驗證自己設(shè)計的算法的正確性。學(xué)會有效利用基本調(diào)試方法,迅速找出程序代碼中的錯誤并且修改。4)培養(yǎng)算法分析能力。分析所設(shè)計算法的時間復(fù)雜度和空間復(fù)雜度,進(jìn)一步提高程序設(shè)計水平。5)初步掌握軟件開發(fā)過程的問題分析、學(xué)校統(tǒng)設(shè)計、程序編碼、測試等基本方法和技能。1.2課程設(shè)計問題描述參加運動會的學(xué)校有n個,其中學(xué)校編號從1至n。比賽分成w個女子項目和m個男子項目。運動會比賽項目編號是:男子1m,女子m+1m+w。在比賽的結(jié)果中,不同的項目取前五名或者取前三名的積分;取前五名的積分分別為:7、
5、5、3、2、1,前三名的積分分別為:5、3、2;哪些取前五名或前三名由學(xué)生自己設(shè)定。(m1.3課程設(shè)計基本要求(1)能夠方便快捷的輸入各個項目的前三名或前五名的成績(2)能夠按學(xué)校編號、學(xué)校總分、男女團(tuán)體總分進(jìn)行排序并輸出(3)能夠精確的統(tǒng)計各學(xué)校的總分(4)能夠按學(xué)校編號查詢學(xué)校某個項目的基本情況,能夠按項目編號查詢?nèi)〉们叭蚯拔迕膶W(xué)校1.4課程設(shè)計測試數(shù)據(jù)a)按1鍵進(jìn)入添加學(xué)校的界面,根據(jù)提示,再輸入:汽車學(xué)校。再輸入:8,成功添加了一個學(xué)校。再輸入:2進(jìn)入運動項目添加界面,根據(jù)提示,再輸入:跳高;1;0;1;2;3。之后輸入0。再次進(jìn)入學(xué)校統(tǒng)界面b)按3鍵查看學(xué)校統(tǒng)中輸出的結(jié)果c)按4
6、鍵查看學(xué)校統(tǒng)中輸出的結(jié)果d)按5鍵查看學(xué)校統(tǒng)中輸出的結(jié)果e)按6鍵查看學(xué)校統(tǒng)中輸出的結(jié)果f)按7鍵根據(jù)提示輸入項目編號并查看學(xué)校統(tǒng)中輸出的結(jié)果g)按8鍵根據(jù)提示輸入學(xué)校編號并查看學(xué)校統(tǒng)中輸出的結(jié)果第二章課程設(shè)計任務(wù)容a.可以輸入各個項目的前三名或前五名的成績b.可以按學(xué)校編號、學(xué)校總分、男女團(tuán)體總分排序輸出c.可以統(tǒng)計出各學(xué)校的總分d.可以按學(xué)校編號查詢學(xué)校某個項目的情況e.可以按項目編號查詢?nèi)〉们叭蚯拔迕膶W(xué)校f.數(shù)據(jù)存入文件中,并且可以隨時查詢g.學(xué)校統(tǒng)操作規(guī)定:輸入數(shù)據(jù)形式和圍:可以輸入學(xué)院(學(xué)校)的名稱和運動會項目的名稱輸出形式:有中文提示,各學(xué)院(學(xué)校)分?jǐn)?shù)為整形h.界面要求:有合
7、理的操作提示,每個功能都可以設(shè)立菜單,并且根據(jù)提示,可以完成相關(guān)的功能要求i.存儲結(jié)構(gòu):學(xué)生自己可以根據(jù)學(xué)校統(tǒng)功能要求自己設(shè)計,但是要求運動會的相關(guān)數(shù)據(jù)要存儲在數(shù)據(jù)文件中,實時保存第三章詳細(xì)設(shè)計說明3.1數(shù)據(jù)類型定義(1)運動項目定義:typedef struct sport /運動項目結(jié)構(gòu)char name20; /運動項目名稱int isboy; /0為女項目,1為男項目int is3; /0為取前五名,1為取前五名int number; /項目編號int first; /第一名學(xué)校的編號int second; /第二名學(xué)校的編號int third; /第三名學(xué)校的編號int fourth
8、; /第四名學(xué)校的編號int fifth; /第五名學(xué)校的編號sport *next;sport;、運動項目結(jié)構(gòu)體定義如下:char型的數(shù)組,int型的number,first,second,third,fourth,fifth以及sport類型的指針next。(2)學(xué)校的定義:typedef struct department /學(xué)校的結(jié)構(gòu)char name20; /學(xué)校的名稱int number; /學(xué)校的編號int boy; /男子團(tuán)體總分int girl; /女子團(tuán)體總分department *next;department;將學(xué)校自定義為一個結(jié)構(gòu)體命名為department;學(xué)校的結(jié)
9、構(gòu)體定義如下:char型的數(shù)組,int型的變量unmber ,int型的變量boy,girl以及department類型的指針next。3.2程序功能圖及功能說明3.2.1程序功能圖圖2 程序功能圖3.2.2程序功能說明如上圖標(biāo)示:1直接輸入學(xué)校別名稱2直接輸入運動項目的名稱,編號,及男女項目代碼,以便之后執(zhí)行的簡單快捷3直接跳轉(zhuǎn)到“按學(xué)校別輸出總分”的界面,查看按學(xué)校別編號輸出的總分4直接跳轉(zhuǎn)到“按總分排序”的界面,查看按總分排列的順序5直接跳轉(zhuǎn)到“按男團(tuán)體輸出總分”的界面,查看按男團(tuán)體總分排列的順序6直接跳轉(zhuǎn)到“按女團(tuán)體輸出總分”的界面,查看按女團(tuán)體總分排列的順序7輸入所要查出的項目的編號
10、,即可查看所排列的順序8輸入所要查出的學(xué)校別的標(biāo)號,即可查看所排列的順序0退出鍵,保存文本,關(guān)閉程序圖1 程序流程圖如上圖所示:本學(xué)校統(tǒng)在第一次運行時,將直接輸出菜單,如果不是第一次運行,則在學(xué)校統(tǒng)運行的初期會進(jìn)行數(shù)據(jù)的讀取。然后,可以根據(jù)輸出的菜單對需要進(jìn)行的功能進(jìn)行選擇,選擇完畢后將該功能進(jìn)行運行。例如:輸入運動項目,輸入學(xué)校別,按學(xué)校別編號出總分,按男女團(tuán)體總分?jǐn)?shù)輸出,按項目標(biāo)號查詢,按學(xué)校別標(biāo)號查詢,退出。運行完畢后,將數(shù)據(jù)輸出到屏幕,如果要結(jié)束學(xué)校統(tǒng)則自動將數(shù)據(jù)保存到相應(yīng)的文本,否則繼續(xù)輸出菜單。3.4算法設(shè)計主要算法的設(shè)計思想:本程序主要是使用鏈表來實現(xiàn)操作。一個運動會包括運動項目
11、和參加運動會的成員。因此構(gòu)造兩個鏈表department,sport。根據(jù)輸入的不同選擇不同的功能,有輸入運動項目,輸入學(xué)校別,按學(xué)校別編號輸出總分,按總分排序,按男團(tuán)體總分排序,按女團(tuán)體總分排序,按項目標(biāo)號查詢,按學(xué)校別標(biāo)號查詢,退出。為了操作的方便,并且能夠保存輸入數(shù)據(jù),所以通過文件操作來實現(xiàn)數(shù)據(jù)的寫和讀。每次添加新的數(shù)據(jù)后都要輸入0退出,數(shù)據(jù)才能保存。對于總分的排序使用了冒泡排序。為了使整個程序看起來更加友好,又添加了程序啟動畫面。3.5相關(guān)知識鏈表是一種物理存儲單元上非連續(xù)、非順序的存儲結(jié)構(gòu),數(shù)據(jù)元素的邏輯順序是通過鏈表中的指針次序?qū)崿F(xiàn)的。鏈表由一學(xué)校列結(jié)點(鏈表中每一個元素稱為結(jié)點)
12、組成,結(jié)點可以在運行時動態(tài)生成。每個結(jié)點包括兩個部分:一個是存儲數(shù)據(jù)元素的數(shù)據(jù)域,另一個是存儲下一個結(jié)點地址的指針域。相比于線性表順序結(jié)構(gòu),鏈表比較方便插入和刪除操作。冒泡排序,是指計算機的一種排序方法,它的時間復(fù)雜度為o(n2),雖然不及堆排序、快速排序的o(nlogn,底數(shù)為2),但是有兩個優(yōu)點:1.“編程復(fù)雜度”很低,很容易寫出代碼;2.具有穩(wěn)定性,這里的穩(wěn)定性是指原序列中相同元素的相對順序仍然保持到排序后的序列,而堆排序、快速排序均不具有穩(wěn)定性。不過,一路、二路歸并排序、不平衡二叉樹排序的速度均比冒泡排序快,且具有穩(wěn)定性,但速度不及堆排序、快速排序。冒泡排序是經(jīng)過n-1趟子排序完成的,
13、第i趟子排序從第1個數(shù)至第n-i個數(shù),若第i個數(shù)比后一個數(shù)大(則升序,小則降序)則交換兩數(shù)。第四章程序測試4.1多組數(shù)據(jù)輸入與輸出圖3 程序頁面圖圖3為本程序的頁面圖,為了使程序更加人性化,加入了“程序讀取,請耐心等待”的字樣。圖4 程序菜單圖圖4為本程序的菜單,顯示了本程序的主要功能,可以讓使用者輕松,快捷的,選擇所要進(jìn)行的操作。圖5 程序輸入學(xué)校別圖如圖5所示,在菜單中選擇“1”按回車鍵,彈出輸入一個學(xué)校,輸入“計算機”,編號“1”單擊回車鍵,返回菜單。圖6程序輸入運動項目圖圖7程序輸入運動項目圖如圖6,圖7所示,在菜單中選擇“2”,按回車鍵,彈出“輸入一個運動項目”,輸入“100米”,編
14、號“1”類型“0”等操作之后。按回車鍵,返回菜單。圖8 程序輸入學(xué)校別編號查詢圖如圖8所示,在菜單中選擇“8”,按回車鍵,彈出“輸入學(xué)校的編號”,輸入“2”,按回車鍵,彈回菜單。(1)輸入:4輸出: 學(xué)校名編號男團(tuán)總分女團(tuán)總分總分法律學(xué)校41 01電子學(xué)校3279數(shù)學(xué)學(xué)校5 6 511旅游學(xué)校15914歷史學(xué)校2 9 7 16中文學(xué)校615 11 26計算機學(xué)校721 11 32(2)輸入:6輸出:法律學(xué)校4 0 0 0電子學(xué)校3 3 14數(shù)學(xué)學(xué)校5 6 39旅游學(xué)校17 7 14歷史學(xué)校2 9918中文學(xué)校615 11 26計算機學(xué)校721 11 32(3)輸入:8輸出:請輸入學(xué)校的編號:再
15、輸入2回車則輸出:學(xué)校名:中文學(xué)校男子團(tuán)體總分:3 女子團(tuán)體部分:10 總分:13(4)輸入:0 退出4.2操作過程(1)用戶進(jìn)入程序啟動界面,等load完成后進(jìn)入主菜單.主菜單有以下9個選項。1.輸入學(xué)校別2.輸入運動項目3.按學(xué)校別編號輸出總分4.按總分排序5.按男團(tuán)體總分排序6.按女團(tuán)體總分排序7.按項目編號查詢8.按學(xué)校別編號查詢0.退出(2)輸入0至8中的一個數(shù)。(3)輸入1,進(jìn)行添加學(xué)校操作,分別輸入學(xué)校的名稱和編號。(4)輸入2,進(jìn)行添加運動項目操作,分別輸入項目名稱,編號,項目類型,名次選取,排名情況。(5)輸入0,則退出學(xué)校統(tǒng),并且保存輸入的信息.每次添加完都要輸入0退出學(xué)校
16、統(tǒng)才有效。(6)輸入3,輸出按學(xué)校編號總分排名。(7)輸入4,輸出按總分排名。(8)輸入5,輸出按男團(tuán)體總分排序。(9)輸入6,輸出按女團(tuán)體總分排序。(10)輸入7,進(jìn)入按項目編號查詢界面.輸入要查詢的項目編號。(11)輸入8,進(jìn)入按學(xué)校別編號查詢界面,輸入要查詢的學(xué)校的編號。第五章課程設(shè)計心得與體會二周的課程設(shè)計結(jié)束了,在這次的課程設(shè)計中不僅檢驗了我所學(xué)習(xí)的知識,也培養(yǎng)了我如何去把握一件事情,如何去做一件事情,又如何完成一件事情。經(jīng)過二周的課程設(shè)計,過程曲折可謂一語難盡。整天都是對著電腦,不然就是翻閱資料。在此期間我失落過,也曾一度熱情高漲。點點滴滴令我回味無長。這次課程設(shè)計使我體會到只有做
17、到細(xì)心耐心,恒心才能做好事情。這次的課程設(shè)計,加強了我們動手、思考和解決問題的能力。鞏固和加深了對數(shù)據(jù)結(jié)構(gòu)的理解,提高綜合運用本課程所學(xué)知識的能力。培養(yǎng)了我選用參考書,查閱手冊及文獻(xiàn)資料的能力。培養(yǎng)獨立思考,深入研究,分析問題、解決問題的能力。通過實際編譯學(xué)校統(tǒng)的分析設(shè)計、編程調(diào)試,掌握應(yīng)用軟件的分析方法和工程設(shè)計方法。通過課程設(shè)計,培養(yǎng)了我嚴(yán)肅認(rèn)真的工作作風(fēng),逐步建立正確的生產(chǎn)觀念、經(jīng)濟(jì)觀念和全局觀念。而且做課程設(shè)計同時也是對課本知識的鞏固和加強,平時看課本時,有些問題就不是很能理解,做完課程設(shè)計,那些問題就迎刃而解了。而且還可以記住很多東西。認(rèn)識來源于實踐,實踐是認(rèn)識的動力和最終目的,實踐
18、是檢驗真理的唯一標(biāo)準(zhǔn)。所以這個期末測試之后的課程設(shè)計對我們的作用是非常大的。這次的課程設(shè)計使我懂得了理論與實際相結(jié)合是很非常重要的,只有理論知識是遠(yuǎn)遠(yuǎn)不夠的,只有把所學(xué)的理論知識與實踐相結(jié)合起來,從理論中得出結(jié)論,才能真正為.服務(wù),從而提高自己的實際動手能力和獨立思考的能力。在整個設(shè)計過程中,構(gòu)思是很花費時間的。調(diào)試時經(jīng)常會遇到這樣那樣的錯誤,有的是因為粗心造成的語法錯誤。當(dāng)然,很多也時用錯了方法,總是實現(xiàn)不了。同時在設(shè)計的過程中發(fā)現(xiàn)了自己的不足之處,對以前所學(xué)過的知識理解得不夠深刻,掌握得不夠牢固。根據(jù)我在課程設(shè)計中遇到得問題,我將在以后的學(xué)習(xí)過程中注意以下幾點:1、認(rèn)真上好專業(yè)實驗課,多在
19、實踐中鍛煉自己。2、寫程序的過程中要考慮周到,嚴(yán)密。3、在做設(shè)計的時候要有信心,有耐心,切勿浮躁。4、認(rèn)真的學(xué)習(xí)課本知識,掌握課本中的知識點,并在此基礎(chǔ)上學(xué)會靈活運用。5、在課余時間里多寫程序,熟練掌握在調(diào)試程序的過程中所遇到的常見錯誤,以便能節(jié)省調(diào)試程序的時間。每個實驗通常都要花費很久的時間才能理清一個程序的思路,而且要不斷的調(diào)試程序才能把程序調(diào)試正確,同時還要做到界面的輸出也是需要美化的。這次課程設(shè)計終于順利完成了,在設(shè)計中遇到了很多專業(yè)知識問題,最后在老師的辛勤指導(dǎo)下,也完成了課程設(shè)計。通過這次的課程設(shè)計,讓我更加了解到數(shù)據(jù)結(jié)構(gòu)的重要性。以及它對我們專業(yè)的發(fā)展發(fā)揮的作用。對我們而言,知識
20、上的收獲很重要,但精神上的豐收更加可喜。讓我知道了學(xué)無止境的道理。我們每一個人永遠(yuǎn)不能滿足于現(xiàn)有的成就,人生就像在爬山,一座山峰的后面還有更高的山峰在等著你。挫折是一份財富,經(jīng)歷是一份擁有。這次課程設(shè)計必將成為我人生旅途上一個非常美好的回憶!同時在做課程設(shè)計時要能夠從多方面去考慮,去研究,用多種算法去實現(xiàn)要求。此次課程設(shè)計,學(xué)到了很多課學(xué)不到的東西,比如獨立思考解決問題,出現(xiàn)差錯的隨機應(yīng)變,這些都讓我受益非淺,今后的制作應(yīng)該能夠更輕松,自己也都能夠解決并高質(zhì)量的完成項目。第六章致在此感對我?guī)椭^的同學(xué)們,你們對我的幫助和支持,讓我感受到兄弟的友情。課程設(shè)計強化了我的對于數(shù)據(jù)結(jié)構(gòu)的基礎(chǔ)知識的認(rèn)識
21、,并且將知識逐步實踐化,使得自己對c有了更深刻的理解。并真誠地感我的數(shù)據(jù)結(jié)構(gòu)任課老師曾老師。附錄一參考文獻(xiàn)1譚浩強.c+程序設(shè)計.:清華大學(xué),2021年2嚴(yán)蔚敏,吳偉民.數(shù)據(jù)結(jié)構(gòu)與算法分析(c+版)(第2版).:清華大學(xué),2021年3 clifford a. shaffer,銘著數(shù)據(jù)結(jié)構(gòu)與算法分析(c+版)(第2版).: 電子工業(yè),2021年4網(wǎng)址:.chinadforce.附錄二程序清單#include#include#include#include#include#include#include#includetypedef struct department /學(xué)校的結(jié)構(gòu)char nam
22、e20; /學(xué)校的名稱int number; /學(xué)校的編號int boy; /男子團(tuán)體總分int girl; /女子團(tuán)體總分department *next; department;typedef struct sport /運動項目結(jié)構(gòu)char name20; /運動項目名稱int isboy; /0為女項目,1為男項目int is3; /0為取前五名,1為取前五名int number; /項目編號int first; /第一名學(xué)校的編號int second; /第二名學(xué)校的編號int third; /第三名學(xué)校的編號int fourth; /第四名學(xué)校的編號int fifth; /第五名學(xué)
23、校的編號sport *next;sport;int getint(int a) /字符轉(zhuǎn)換成數(shù)字return (int)(a-'0');department * head1;/-啟動畫面函數(shù)-void cover() system("color 1b");char line="程序讀取中請耐心等待."char bar="."int i,j,k=0,x=0,y=0;for(i=0;isystem("cls");for(j=0;jcoutfor(j=0;jcoutfor(j=1;jcoutfor(x=s
24、trlen(line)/2;x>i;x-)coutif(k=4)i+;coutfor(j=0;jcoutcoutfor(j=0;jcoutcoutcout.write(bar,k);coutfor(j=0;jcoutfor(j=0;jcoutcoutfor(j=0;jcoutfor(j=0;jcoutcoutfor(j=0;jk+;if(k>4)k=0;void department_add() /添加學(xué)校department * p;int mark=0;p=new department;coutcin>>p->name;char c;while (mark!=
25、1)coutcin>>c;if (!isdigit(c)/是否為數(shù)字coutelsemark=1;p->number=c;p->boy=0;p->girl=0;p->next=head1->next;head1->next=p;coutint department_getlong(department *first)/得到鏈表長度int i=0;while (first->next!=null)i+;first=first->next;return i;void department_write()/將學(xué)校數(shù)據(jù)寫入文本departme
26、nt * p;p=head1;p=p->next;ofstream outfile("department.txt",ios:out);outfilewhile (p!=null)outfilenamenumberboygirlp=p->next;outfile.close();coutvoid department_read()/從文本讀入學(xué)校數(shù)據(jù)int i;ifstream infile ("department.txt",ios:in);infile>>i;while(i>0)department * p;p=new
27、department;infile>>p->name>>p->number>>p->boy>>p->girl;p->next=head1->next;head1->next=p;i-;coutvoid department_output(department *p)/輸出學(xué)校coutwhile(p)coutnamenumber)boygirlgirl+p->boy)p=p->next;int department_isexist(int a)/檢驗學(xué)校是否存在int b=0;departmen
28、t *p;p=head1;p=p->next;while(p)if(p->number=a)return 1;p=p->next;return 0;void department_show(int a)/輸出所有學(xué)校department *p;p=head1;p=p->next;while(p)if(p->number=a)coutnamereturn;while(a!=0)coutcoutcout*"cout*"coutcout*"coutcout*"coutcout*"coutcout*"cout*&
29、quot;cout*"coutcout*"cout*"cout/cin>>ch;/choose=int(ch0)+int(ch1)-'0' /處理異常狀態(tài)cin>>choose;if (!isdigit(choose)system("cls");coutelseswitch(getint(choose)case 1:system("cls");department_add();break;case 2:system("cls");coutsport_output(p
30、2);coutdepartment_output(p1);sport_add();break;case 3:system("cls");department_output(p1);break;case 4:system("cls");department_order(p1,0);department_output(p1);break;case 5:system("cls");department_order(p1,1);department_output(p1);break;case 6:system("cls")
31、;department_order(p1,2);department_output(p1);break;case 7:system("cls");coutcin>>temp;sport_search(temp);break;case 8:system("cls");cout>temp;department_search(temp);break;case 0:system("cls");a=0;break;default:system("cls");coutdepartment_write();sp
32、ort_write();system("exit");首頁45678p=p->next;coutvoid department_search(int a)/按編號搜索學(xué)校department *p;p=head1;p=p->next;while(p)if(p->number=a)coutnameboygirlboy+p->girl)return;p=p->next;coutvoid department_addmark(int a,int b,int c)/a為分?jǐn)?shù),b為學(xué)校編號,c=1表示男,c=0表示女department *p;p=hea
33、d1;p=p->next;while(p)if(p->number=b)if(c='1')p->boy=p->boy+a;elsep->girl=p->girl+a;p=p->next;void department_order(department *temp,int type) /type=0按總分,type=1按男總分,type=2按女總分,department *p,*q,*small,*temp1;temp1=new department;temp1->next=null;p=temp;while(p)small=p;q
34、=p->next;while(q)switch(type)case 0:if(q->boy+q->girl)girl+small->boy)small=q;break;case 1:if(q->boyboy)small=q;break;case 2:if(q->girlgirl)small=q;break;default:coutif(small!=p)temp1->boy=p->boy;p->boy=small->boy;small->boy=temp1->boy;temp1->girl=p->girl;p-
35、>girl=small->girl;small->girl=temp1->girl;strcpy(temp1->name,p->name);strcpy(p->name,small->name);strcpy(small->name,temp1->name);temp1->number=p->number;p->number=small->number;small->number=temp1->number; /將學(xué)校的名字互換q=q->next;p=p->next;sport * he
36、ad2;int sport_isexist(int a) /檢查運動項目(編號)是否已經(jīng)存在int b=0;sport *p;p=head2;p=p->next;while(p)if(p->number=a)return 1;p=p->next;return 0;void sport_add() /添加項目sport * p;int mark=0;p=new sport;coutcin>>p->name;char c;while (mark!=1)coutcin>>c;if (!isdigit(c)coutif(sport_isexist(c)c
37、outelsemark=1;p->number=c;mark=0;while (mark!=1)cout>c;p->isboy=(int)(c-'0');/字符轉(zhuǎn)換成數(shù)字if (!isdigit(c)coutelse if(p->isboyisboy>1)coutelsemark=1;p->isboy=c;mark=0;while (mark!=1)cout>c;p->is3=(int)(c-'0');if (!isdigit(c)coutelse if(p->is3is3>1)coutelsemark
38、=1;p->is3=c;mark=0;while (mark!=1)coutcin>>c;if (!isdigit(c)coutelseif(!department_isexist(c)coutelsemark=1;p->first=c;if(p->is3='0')department_addmark(5,c,p->isboy);elsedepartment_addmark(7,c,p->isboy);mark=0;while (mark!=1)coutcin>>c;if (!isdigit(c)coutif(!depart
39、ment_isexist(c)coutelsemark=1;p->second=c;if(p->is3='0')department_addmark(3,c,p->isboy);elsedepartment_addmark(5,c,p->isboy);mark=0;while (mark!=1)coutcin>>c;if (!isdigit(c)coutelseif(!department_isexist(c)coutelsemark=1;p->third=c;if(p->is3='0')department_ad
40、dmark(2,c,p->isboy);elsedepartment_addmark(3,c,p->isboy);mark=0;if(p->is3='1')while (mark!=1)coutcin>>c;if (!isdigit(c)coutelseif(!department_isexist(c)coutelsemark=1;p->fourth=c;department_addmark(2,c,p->isboy);mark=0;while (mark!=1)coutcin>>c;if (!isdigit(c)coute
41、lseif(!department_isexist(c)coutelsemark=1;p->fifth=c;department_addmark(1,c,p->isboy);elsep->fourth='0'p->fifth='0'p->next=head2->next;head2->next=p;coutint sport_getlong(sport *first) /得到項目鏈表長度int i=0;while (first->next!=null)i+;first=first->next;return i;void sport_write() /將項目數(shù)據(jù)寫入文本文檔sport * p;p=head2;p=p->next;ofstream outfile("sport.txt",ios:out);outfilewhi
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 暑假自學(xué)課2023年小學(xué)英語三升四課本預(yù)習(xí)-第11講-四上U2新課預(yù)習(xí)人教PEP版(學(xué)生版)
- 2024年建筑智能化系統(tǒng)安裝工程
- 2024年建筑設(shè)施安裝合作協(xié)議
- 黃金卷03-2024年高考生物模擬卷14
- 2024醫(yī)療設(shè)備設(shè)計勞務(wù)分包合同
- 2023年頭孢類抗菌藥物項目綜合評估報告
- 神內(nèi)科實習(xí)護(hù)士簡短心得體會5篇
- 2024年新式項目經(jīng)理聘用協(xié)議
- 2024年教育輔導(dǎo)合作宣言
- 2024年招投標(biāo)廉潔自律合同
- 江蘇省南京市聯(lián)合體2023~2024學(xué)年八年級下學(xué)期期末考試數(shù)學(xué)試卷
- 2024年交管12123學(xué)法減分考試試題庫及答案
- DZ∕T 0262-2014 集鎮(zhèn)滑坡崩塌泥石流勘查規(guī)范(正式版)
- 微量元素與人體健康智慧樹知到期末考試答案章節(jié)答案2024年吉林大學(xué)
- 大學(xué)生數(shù)媒個人職業(yè)生涯規(guī)劃
- 2024燕舞集團(tuán)限公司公開招聘10人公開引進(jìn)高層次人才和急需緊缺人才筆試參考題庫(共500題)答案詳解版
- 湘教版一年級上冊音樂全冊教案2
- 延安紅色文化資源開發(fā)利用研究
- 專題08 上海卷作文(課件)-2022年高考語文作文評析+素材拓展+名師下水文
- TB 10012-2019 鐵路工程地質(zhì)勘察規(guī)范
- 溫濕度計的原理說明 溫濕度計工作原理
評論
0/150
提交評論