運動會計分系統(tǒng)課程設(shè)計報告_第1頁
運動會計分系統(tǒng)課程設(shè)計報告_第2頁
運動會計分系統(tǒng)課程設(shè)計報告_第3頁
運動會計分系統(tǒng)課程設(shè)計報告_第4頁
運動會計分系統(tǒng)課程設(shè)計報告_第5頁
已閱讀5頁,還剩24頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、-. z計算機科學(xué)與工程學(xué)院計算機科學(xué)與工程學(xué)院數(shù)字媒體與技術(shù)專業(yè)數(shù)字媒體與技術(shù)專業(yè)? ?數(shù)據(jù)構(gòu)造與算法課程設(shè)計數(shù)據(jù)構(gòu)造與算法課程設(shè)計? ?報告報告學(xué)生班級:學(xué)生班級:學(xué)學(xué)生生* * *:學(xué)生:學(xué)生:指導(dǎo)教師指導(dǎo)教師:2021 年9 月1 日-. z目錄第一章課程設(shè)計的目的和要求第一章課程設(shè)計的目的和要求 11.1 課程設(shè)計的目的 11.2 課程設(shè)計問題描述 11.3 課程設(shè)計根本要求 11.4 課程設(shè)計測試數(shù)據(jù) 1第二章課程設(shè)計任務(wù)容第二章課程設(shè)計任務(wù)容 2第三章詳細設(shè)計說明第三章詳細設(shè)計說明 33.1 數(shù)據(jù)類型定義 33.2 程序功能圖及功能說明 4程序功能圖 4程序功能說明 43.3 程

2、序流程圖 53.4 算法設(shè)計 6第四章程序測試第四章程序測試 74.1 多組數(shù)據(jù)輸入與輸出 74.2 操作過程 10第五章課程設(shè)計心得與體會第五章課程設(shè)計心得與體會 11第六章致第六章致 12附錄一參考文獻附錄一參考文獻 13附錄二程序清單附錄二程序清單 14-. z運動會計分學(xué)校統(tǒng)運動會計分學(xué)校統(tǒng)第第一一章章課課程程設(shè)設(shè)計計的的目目的的和和要要求求1.1 課程設(shè)計目的數(shù)據(jù)構(gòu)造作為一門學(xué)科主要研究數(shù)據(jù)的各種邏輯構(gòu)造和存儲構(gòu)造,以及對數(shù)據(jù)的各種操作。因此,主要有三個方面的容:數(shù)據(jù)的邏輯構(gòu)造;數(shù)據(jù)的物理存儲構(gòu)造;對數(shù)據(jù)的操作或算法。通常,算法的設(shè)計取決于數(shù)據(jù)的邏輯構(gòu)造,算法的實現(xiàn)取決于數(shù)據(jù)的物理存

3、儲構(gòu)造。數(shù)據(jù)構(gòu)造是信息的一種組織方式,其目的是為了提高算法的效率,它通常與一組算法的集合相對應(yīng),通過這組算法集合可以對數(shù)據(jù)構(gòu)造中的數(shù)據(jù)進展*種操作。 在當今信息時代,信息技術(shù)己成為當代知識經(jīng)濟的核心技術(shù)。我們時刻都在和數(shù)據(jù)打交道。比方人們在外出工作時找最短路徑,在銀行查詢存款、通過互聯(lián)網(wǎng)查新聞、以及遠程教育報名等,所有這些都在與數(shù)據(jù)發(fā)生關(guān)學(xué)校。實際上,現(xiàn)實世界中的實體經(jīng)過抽象以后,就可以成為計算機上所處理的數(shù)據(jù)。 數(shù)據(jù)構(gòu)造課程主要是研究非數(shù)值計算的程序設(shè)計問題中所出現(xiàn)的計算機操作對象以及它們之間的關(guān)學(xué)校和操作的學(xué)科。數(shù)據(jù)構(gòu)造是介于數(shù)學(xué)、計算機軟件和計算機硬件之間的一門計算機專業(yè)的核心課程,它是

4、計算機程序設(shè)計、數(shù)據(jù)庫、操作學(xué)校統(tǒng)、編譯原理及人工智能等的重要根底,廣泛的應(yīng)用于信息學(xué)、學(xué)校統(tǒng)工程等各種領(lǐng)域。 學(xué)習(xí)數(shù)據(jù)構(gòu)造是為了將實際問題中所涉及的對象在計算機中表示出來并對它們進展處理。通過課程設(shè)計可以提高學(xué)生的思維能力,促進學(xué)生的綜合應(yīng)用能力和專業(yè)素質(zhì)的提高。課程設(shè)計的目的:1要求學(xué)生到達熟練掌握 C 語言的根本知識和技能。2了解并掌握數(shù)據(jù)構(gòu)造與算法的設(shè)計方法,具備初步的獨立分析和設(shè)計能力。3提高程序設(shè)計和調(diào)試能力。學(xué)生通過上機實習(xí),驗證自己設(shè)計的算法的正確性。學(xué)會有效利用根本調(diào)試方法,迅速找出程序代碼中的錯誤并且修改。4培養(yǎng)算法分析能力。分析所設(shè)計算法的時間復(fù)雜度和空間復(fù)雜度,進一步提

5、高程序設(shè)計水平。5初步掌握軟件開發(fā)過程的問題分析、學(xué)校統(tǒng)設(shè)計、程序編碼、測試等根本方法和技能。-. z1.2 課程設(shè)計問題描述參加運動會的學(xué)校有 n 個,其中學(xué)校編號從 1 至 n。比賽分成 w 個女子工程和 m 個男子工程。運動會比賽工程編號是:男子 1m,女子 m+1m+w。在比賽的結(jié)果中,不同的工程取前五名或者取前三名的積分;取前五名的積分分別為:7、5、3、2、1,前三名的積分分別為:5、3、2;哪些取前五名或前三名由學(xué)生自己設(shè)定。m=20,n=201.3 課程設(shè)計根本要求1能夠方便快捷的輸入各個工程的前三名或前五名的成績2能夠按學(xué)校編號、學(xué)??偡?、男女團體總分進展排序并輸出3能夠準確

6、的統(tǒng)計各學(xué)校的總分4能夠按學(xué)校編號查詢學(xué)校*個工程的根本情況,能夠按工程編號查詢?nèi)〉们叭蚯拔迕膶W(xué)校1.4 課程設(shè)計測試數(shù)據(jù)a) 按 1 鍵進入添加學(xué)校的界面,根據(jù)提示,再輸入:汽車學(xué)校。再輸入:8,成功添加了一個學(xué)校。再輸入:2 進入運開工程添加界面,根據(jù)提示,再輸入:跳高;1;0;1;2;3。之后輸入 0。再次進入學(xué)校統(tǒng)界面b) 按 3 鍵查看學(xué)校統(tǒng)中輸出的結(jié)果c) 按 4 鍵查看學(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)中輸出的

7、結(jié)果第二章課課程程設(shè)設(shè)計計任任務(wù)務(wù)容容A. 可以輸入各個工程的前三名或前五名的成績B. 可以按學(xué)校編號、學(xué)校總分、男女團體總分排序輸出C. 可以統(tǒng)計出各學(xué)校的總分D. 可以按學(xué)校編號查詢學(xué)校*個工程的情況-. zE. 可以按工程編號查詢?nèi)〉们叭蚯拔迕膶W(xué)校F. 數(shù)據(jù)存入文件中,并且可以隨時查詢G. 學(xué)校統(tǒng)操作規(guī)定:輸入數(shù)據(jù)形式和圍:可以輸入學(xué)院學(xué)校的名稱和運動會工程的名稱輸出形式:有中文提示,各學(xué)院學(xué)校分數(shù)為整形H. 界面要求:有合理的操作提示,每個功能都可以設(shè)立菜單,并且根據(jù)提示,可以完成相關(guān)的功能要求I. 存儲構(gòu)造:學(xué)生自己可以根據(jù)學(xué)校統(tǒng)功能要求自己設(shè)計,但是要求運動會的相關(guān)數(shù)據(jù)要存儲在

8、數(shù)據(jù)文件中,實時保存第第三三章章詳詳細細設(shè)設(shè)計計說說明明3.1 數(shù)據(jù)類型定義(1)運開工程定義:typedef struct Sport /運開工程構(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é)校的編號 Sport *ne*t;Sport;、運開工程構(gòu)造

9、體定義如下:char 型的數(shù)組,int 型的number,first,second,third,fourth,fifth 以及 sport 類型的指針ne*t。-. z(2)學(xué)校的定義:typedef struct Department /學(xué)校的構(gòu)造 char name20; /學(xué)校的名稱 int number; /學(xué)校的編號 int boy; /男子團體總分 int girl; /女子團體總分 Department *ne*t; Department;將學(xué)校自定義為一個構(gòu)造體命名為 Department;學(xué)校的構(gòu)造體定義如下:char 型的數(shù)組,int 型的變量 unmber ,int 型的

10、變量 boy,girl 以及Department 類型的指針 ne*t。3.2 程序功能圖及功能說明3.2.1 程序功能圖圖 2 程序功能圖3.2.2 程序功能說明如上圖標示:1 直接輸入學(xué)校別名稱2 直接輸入運開工程的名稱,編號,及男女工程代碼,以便之后執(zhí)行的簡單快捷3 直接跳轉(zhuǎn)到“按學(xué)校別輸出總分的界面,查看按學(xué)校別編號輸出的總分4 直接跳轉(zhuǎn)到“按總分排序的界面,查看按總分排列的順序5 直接跳轉(zhuǎn)到“按男團體輸出總分的界面,查看按男團體總分排列的順序6 直接跳轉(zhuǎn)到“按女團體輸出總分的界面,查看按女團體總分排列的順序7 輸入所要查出的工程的編號,即可查看所排列的順序8 輸入所要查出的學(xué)校別的標

11、號,即可查看所排列的順序0 退出鍵,保存文本,關(guān)閉程序輸入學(xué)校別1輸入運開工程2按學(xué)校別編號輸出總分3按總分排序4按男團體總分排序5按女團體總分排序6按工程標號查詢7按學(xué)校別標號查詢8退出0運動會計分學(xué)校統(tǒng)-. z3.3 程序流程圖圖 1 程序流程圖如上圖所示:本學(xué)校統(tǒng)在第一次運行時,將直接輸出菜單,如果不是第一次運行,則在學(xué)校統(tǒng)運行的初期會進展數(shù)據(jù)的讀取。然后,可以根據(jù)輸出的菜單對需要進展的功能進展選擇,選擇完畢后將該功能進展運行。例如:輸入運開工程,輸入學(xué)校別,按學(xué)校別編號出總分,按男女團體總分數(shù)輸出,按工程標號查詢,按學(xué)校別標號查詢,退出。運行完畢后,將數(shù)據(jù)輸出到屏幕,如果要完畢學(xué)校統(tǒng)則

12、自動將數(shù)據(jù)保存到相應(yīng)的文本,否則繼續(xù)輸出菜單。3.4 算法設(shè)計主要算法的設(shè)計思想:本程序主要是使用鏈表來實現(xiàn)操作。一個運動會包括運開工程和參加運動會的成員。因此構(gòu)造兩個鏈表 Department,Sport。根據(jù)輸入的不同選擇不同的功能,第一次運行輸出菜單讀入數(shù)據(jù)是否判斷功能 i=.i=1i=2i=3i=4i=5i=6i=7i=8i=0輸入運開工程輸入學(xué)校別按學(xué)校別編號輸出總分按總分排序按男團體總分排序按女團體總分排序按工程標號查詢按學(xué)校別標號查詢退出功能運行輸出信息關(guān)閉程序是保存數(shù)據(jù)到文本否開場完畢-. z有輸入運開工程,輸入學(xué)校別,按學(xué)校別編號輸出總分,按總分排序,按男團體總分排序,按女團

13、體總分排序,按工程標號查詢,按學(xué)校別標號查詢,退出。為了操作的方便,并且能夠保存輸入數(shù)據(jù),所以通過文件操作來實現(xiàn)數(shù)據(jù)的寫和讀。每次添加新的數(shù)據(jù)后都要輸入 0 退出,數(shù)據(jù)才能保存。對于總分的排序使用了冒泡排序。為了使整個程序看起來更加友好,又添加了程序啟動畫面。3.5 相關(guān)知識鏈表是一種物理存儲單元上非連續(xù)、非順序的存儲構(gòu)造,數(shù)據(jù)元素的邏輯順序是通過鏈表中的指針次序?qū)崿F(xiàn)的。鏈表由一學(xué)校列結(jié)點鏈表中每一個元素稱為結(jié)點組成,結(jié)點可以在運行時動態(tài)生成。每個結(jié)點包括兩個局部:一個是存儲數(shù)據(jù)元素的數(shù)據(jù)域,另一個是存儲下一個結(jié)點地址的指針域。 相比于線性表順序構(gòu)造,鏈表比較方便插入和刪除操作。冒泡排序,是指

14、計算機的一種排序方法,它的時間復(fù)雜度為 On2,雖然不及堆排序、快速排序的 Onlogn,底數(shù)為 2,但是有兩個優(yōu)點:1.“編程復(fù)雜度很低,很容易寫出代碼;2.具有穩(wěn)定性,這里的穩(wěn)定性是指原序列中一樣元素的相對順序仍然保持到排序后的序列,而堆排序、快速排序均不具有穩(wěn)定性。不過,一路、二路歸并排序、不平衡二叉樹排序的速度均比冒泡排序快,且具有穩(wěn)定性,但速度不及堆排序、快速排序。冒泡排序是經(jīng)過 n-1 趟子排序完成的,第 i 趟子排序從第 1 個數(shù)至第 n-i 個數(shù),假設(shè)第 i 個數(shù)比后一個數(shù)大則升序,小則降序則交換兩數(shù)。第第四四章章程程序序測測試試4.1 多組數(shù)據(jù)輸入與輸出圖 3 程序頁面圖圖

15、3 為本程序的頁面圖,為了使程序更加人性化,參加了“程序讀取,請耐心等待的字樣。圖 4 程序菜單圖圖 4 為本程序的菜單,顯示了本程序的主要功能,可以讓使用者輕松,快捷的,選擇所要進展的操作。圖 5 程序輸入學(xué)校別圖-. z如圖 5 所示,在菜單中選擇“1按回車鍵,彈出輸入一個學(xué)校,輸入“計算機,編號“1單擊回車鍵,返回菜單。圖 6 程序輸入運開工程圖圖 7 程序輸入運開工程圖如圖 6,圖 7 所示,在菜單中選擇“2,按回車鍵,彈出“輸入一個運開工程,輸入“100 米,編號“1 類型“0等操作之后。按回車鍵,返回菜單。圖 8 程序輸入學(xué)校別編號查詢圖如圖 8 所示,在菜單中選擇“8,按回車鍵,

16、彈出“輸入學(xué)校的編號,輸入“2,按回車鍵,彈回菜單。1輸入:4輸出: 學(xué)校名編號男團總分女團總分總分法律學(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 322輸入: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 323輸入:8輸出:請輸入學(xué)校的再輸入 2 回車則輸出:-. z學(xué)校名:中文學(xué)校男子團體總分:3 女子團體局部:10 總分:134輸入:0 退出4.2

17、 操作過程(1)用戶進入程序啟動界面,等 load 完成后進入主菜單.主菜單有以下 9 個選項。1.輸入學(xué)校別2.輸入運開工程3.按學(xué)校別編號輸出總分4.按總分排序5.按男團體總分排序6.按女團體總分排序7.按工程編號查詢8.按學(xué)校別編號查詢0.退出(2)輸入 0 至 8 中的一個數(shù)。(3)輸入 1,進展添加學(xué)校操作,分別輸入學(xué)校的名稱和編號。(4)輸入 2,進展添加運開工程操作,分別輸入工程名稱,編號,工程類型,名次選取,排名情況。(5)輸入 0,則退出學(xué)校統(tǒng),并且保存輸入的信息.每次添加完都要輸入 0 退出學(xué)校統(tǒng)才有效。(6)輸入 3,輸出按學(xué)校編號總分排名。(7)輸入 4,輸出按總分排名

18、。(8)輸入 5,輸出按男團體總分排序。(9)輸入 6,輸出按女團體總分排序。(10)輸入 7,進入按工程編號查詢界面.輸入要查詢的工程編號。(11)輸入 8,進入按學(xué)校別編號查詢界面,輸入要查詢的學(xué)校的編號。第第五五章章課課程程設(shè)設(shè)計計心心得得與與體體會會-. z二周的課程設(shè)計完畢了,在這次的課程設(shè)計中不僅檢驗了我所學(xué)習(xí)的知識,也培養(yǎng)了我如何去把握一件事情,如何去做一件事情,又如何完成一件事情。經(jīng)過二周的課程設(shè)計,過程曲折可謂一語難盡。整天都是對著電腦,不然就是翻閱資料。在此期間我失落過,也曾一度熱情高漲。點點滴滴令我回味無長。這次課程設(shè)計使我體會到只有做到細心耐心,恒心才能做好事情。這次的

19、課程設(shè)計,加強了我們動手、思考和解決問題的能力。穩(wěn)固和加深了對數(shù)據(jù)構(gòu)造的理解,提高綜合運用本課程所學(xué)知識的能力。培養(yǎng)了我選用參考書,查閱手冊及文獻資料的能力。培養(yǎng)獨立思考,深入研究,分析問題、解決問題的能力。通過實際編譯學(xué)校統(tǒng)的分析設(shè)計、編程調(diào)試,掌握應(yīng)用軟件的分析方法和工程設(shè)計方法。通過課程設(shè)計,培養(yǎng)了我嚴肅認真的工作作風(fēng),逐步建立正確的生產(chǎn)觀念、經(jīng)濟觀念和全局觀念。而且做課程設(shè)計同時也是對課本知識的穩(wěn)固和加強,平時看課本時,有些問題就不是很能理解,做完課程設(shè)計,那些問題就迎刃而解了。而且還可以記住很多東西。認識來源于實踐,實踐是認識的動力和最終目的,實踐是檢驗真理的唯一標準。所以這個期末測

20、試之后的課程設(shè)計對我們的作用是非常大的。這次的課程設(shè)計使我懂得了理論與實際相結(jié)合是很非常重要的,只有理論知識是遠遠不夠的,只有把所學(xué)的理論知識與實踐相結(jié)合起來,從理論中得出結(jié)論,才能真正為社會效勞,從而提高自己的實際動手能力和獨立思考的能力。在整個設(shè)計過程中,構(gòu)思是很花費時間的。調(diào)試時經(jīng)常會遇到這樣那樣的錯誤,有的是因為粗心造成的語法錯誤。當然,很多也時用錯了方法,總是實現(xiàn)不了。同時在設(shè)計的過程中發(fā)現(xiàn)了自己的缺乏之處,對以前所學(xué)過的知識理解得不夠深刻,掌握得不夠結(jié)實。根據(jù)我在課程設(shè)計中遇到得問題,我將在以后的學(xué)習(xí)過程中注意以下幾點: 1、認真上好專業(yè)實驗課,多在實踐中鍛煉自己。2、寫程序的過程

21、中要考慮周到,嚴密。3、在做設(shè)計的時候要有信心,有耐心,切勿急躁。4、認真的學(xué)習(xí)課本知識,掌握課本中的知識點,并在此根底上學(xué)會靈活運用。5、在課余時間里多寫程序,熟練掌握在調(diào)試程序的過程中所遇到的常見錯誤,以便能節(jié)省調(diào)試程序的時間。-. z每個實驗通常都要花費很久的時間才能理清一個程序的思路,而且要不斷的調(diào)試程序才能把程序調(diào)試正確,同時還要做到界面的輸出也是需要美化的。這次課程設(shè)計終于順利完成了,在設(shè)計中遇到了很多專業(yè)知識問題,最后在教師的辛勤指導(dǎo)下,也完成了課程設(shè)計。通過這次的課程設(shè)計,讓我更加了解到數(shù)據(jù)構(gòu)造的重要性。以及它對我們專業(yè)的開展發(fā)揮的作用。對我們而言,知識上的收獲很重要,但精神上

22、的豐收更加可喜。讓我知道了學(xué)無止境的道理。我們每一個人永遠不能滿足于現(xiàn)有的成就,人生就像在爬山,一座山峰的后面還有更高的山峰在等著你。挫折是一份財富,經(jīng)歷是一份擁有。這次課程設(shè)計必將成為我人生旅途上一個非常美好的回憶!同時在做課程設(shè)計時要能夠從多方面去考慮,去研究,用多種算法去實現(xiàn)要求。此次課程設(shè)計,學(xué)到了很多課學(xué)不到的東西,比方獨立思考解決問題,出現(xiàn)過失的隨機應(yīng)變,這些都讓我受益非淺,今后的制作應(yīng)該能夠更輕松,自己也都能夠解決并高質(zhì)量的完成工程。第第六六章章致致在此感對我?guī)椭^的同學(xué)們,你們對我的幫助和支持,讓我感受到兄弟的友情。課程設(shè)計強化了我的對于數(shù)據(jù)構(gòu)造的根底知識的認識,并且將知識逐步

23、實踐化,使得自己對 c 有了更深刻的理解。并真誠地感我的數(shù)據(jù)構(gòu)造任課教師曾教師。附錄一參考文獻1譚浩強.?C+程序設(shè)計?.:清華大學(xué),2004 年2嚴蔚敏,吳偉民.?數(shù)據(jù)構(gòu)造與算法分析C+版第 2 版?.:清華大學(xué),2006 年3 Clifford A. Shaffer,銘著?數(shù)據(jù)構(gòu)造與算法分析C+版第 2 版?.: 電子工業(yè),2021 年4網(wǎng)址:.chinadforce.附錄二程序清單*include*include*include*include-. z*include*include*include*includetypedef struct Department /學(xué)校的構(gòu)造 char

24、 name20; /學(xué)校的名稱 int number; /學(xué)校的編號 int boy; /男子團體總分 int girl; /女子團體總分 Department *ne*t; Department;typedef struct Sport /運開工程構(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é)

25、校的編號 int fifth; /第五名學(xué)校的編號 Sport *ne*t;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,*=0,y=0; for(i=0;i=strlen(line)/2;) system(cls); for(j=0;j9;j+) /改變行坐標 coutendl; for(j=0;j(75-strlen(line

26、)/2;j+) /改變列坐標 cout ; for(j=1;j=i;j+) /進度顯示器 couti;*-) cout; if(k=4) i+; coutendl; for(j=0;j(75-strlen(line)/2;j+) /行坐標定位 cout ; coutline; /輸出線條 coutendl; for(j=0;j(65-strlen(bar)/2;j+) cout ; cout(i+7)*5% Loading; cout.write(bar,k); coutendl; for(j=0;j10;j+) coutendl; for(j=0;j24;j+) cout ; cout程序設(shè)

27、計員:數(shù)字媒體 09702 班 田野 endl; for(j=0;j24;j+) cout ; for(j=0;j=18;j+) cout; coutendl; for(j=0;j4) k=0; void department_add() /添加學(xué)校 Department * p; int mark=0; p=new Department; coutp-name; char c; while (mark!=1) coutc; if (!isdigit(c)/是否為數(shù)字 -. z cout數(shù)據(jù)非法number=c; p-boy=0; p-girl=0; p-ne*t=head1-ne*t; he

28、ad1-ne*t=p; cout成功添加了一個學(xué)校ne*t!=NULL) i+; first=first-ne*t; return i;void department_write()/將學(xué)校數(shù)據(jù)寫入文本 Department * p; p=head1; p=p-ne*t; ofstream outfile(Department.t*t,ios:out); outfiledepartment_getlong(p)+1 ; while (p!=NULL) outfilename number boy girlne*t; outfile.close(); coutWrite Success!i;-.

29、 z while(i0) Department * p; p=new Department; infilep-namep-numberp-boyp-girl; p-ne*t=head1-ne*t; head1-ne*t=p; i-; coutDepartment Data Read Success!endl;void department_output(Department *p)/輸出學(xué)校 cout學(xué)校名編號男團總分女團總分總分tn;while(p) coutname tnumber)tboytgirlt girl+p-boy)ne*t; int department_ise*ist(int

30、 a)/檢驗學(xué)校是否存在 int b=0; Department *p; p=head1; p=p-ne*t; while(p) if(p-number=a) return 1; p=p-ne*t; return 0;void department_show(int a)/輸出所有學(xué)校 Department *p; p=head1; p=p-ne*t; while(p) -. z if(p-number=a) coutnamene*t; coutne*t; while(p) if(p-number=a) cout學(xué)校名:name男子團體總分:boy女子團體總分:girl總分:boy+p-gir

31、l)ne*t; coutne*t; while(p) if(p-number=b) if(c=1) p-boy=p-boy+a; else p-girl=p-girl+a; -. z p=p-ne*t; void department_order(Department *temp,int type) /type=0 按總分,type=1 按男總分,type=2 按女總分, Department *p,*q,*small,*temp1; temp1=new Department; temp1-ne*t=NULL; p=temp; while(p) small=p; q=p-ne*t; while

32、(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: couterrorboy=p-boy; p-boy=small-boy; -. z small-boy=temp1-boy; temp1-girl=p-girl; p-girl=small-girl; small-girl=temp1-girl; strcpy(temp1-name,

33、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-ne*t; p=p-ne*t; Sport * head2;int sport_ise*ist(int a) /檢查運開工程(編號)是否已經(jīng)存在 int b=0; Sport *p; p=head2; p=p-ne*t; while(p) if(p-number=a) return 1; p

34、=p-ne*t; return 0;void sport_add() /添加工程 Sport * p; int mark=0; p=new Sport;coutp-name; char c; while (mark!=1) coutc; if (!isdigit(c) cout數(shù)據(jù)非法endl; else if(sport_ise*ist(c) cout該編號已存在number=c; mark=0; while (mark!=1) coutc; p-isboy=(int)(c-0);/字符轉(zhuǎn)換成數(shù)字 if (!isdigit(c) cout數(shù)據(jù)非法isboyisboy1) cout數(shù)據(jù)非法is

35、boy=c; mark=0; while (mark!=1) coutc; p-is3=(int)(c-0);-. z if (!isdigit(c) cout數(shù)據(jù)非法is3is31) cout數(shù)據(jù)非法is3=c; mark=0; while (mark!=1) coutc; if (!isdigit(c) cout數(shù)據(jù)非法endl; else if(!department_ise*ist(c) coutfirst=c; if(p-is3=0) department_addmark(5,c,p-isboy); else department_addmark(7,c,p-isboy); mark

36、=0; while (mark!=1) coutc; if (!isdigit(c) cout數(shù)據(jù)非法endl; else if(!department_ise*ist(c) coutsecond=c; if(p-is3=0) department_addmark(3,c,p-isboy); else department_addmark(5,c,p-isboy); mark=0; while (mark!=1) coutc; if (!isdigit(c) cout數(shù)據(jù)非法endl; else if(!department_ise*ist(c) coutthird=c; if(p-is3=0

37、) department_addmark(2,c,p-isboy); else-. z department_addmark(3,c,p-isboy); mark=0; if(p-is3=1) while (mark!=1) coutc; if (!isdigit(c) cout數(shù)據(jù)非法endl; else if(!department_ise*ist(c) coutfourth=c; department_addmark(2,c,p-isboy); mark=0; while (mark!=1) coutc; if (!isdigit(c) cout數(shù)據(jù)非法endl; else if(!de

38、partment_ise*ist(c) cout該學(xué)校不存在,請先添加fifth=c; department_addmark(1,c,p-isboy); else p-fourth=0; p-fifth=0; p-ne*t=head2-ne*t; head2-ne*t=p; cout成功添加了一個運開工程ne*t!=NULL) i+; first=first-ne*t; return i;void sport_write() /將工程數(shù)據(jù)寫入文本文檔 Sport * p; p=head2; p=p-ne*t; ofstream outfile(Sport.t*t,ios:out); outfi

39、lesport_getlong(p)+1 ; while (p!=NULL) outfilename number isboy is3 first second third fourth fifthne*t; outfile.close(); coutWrite Success!i; while(i0) Sport * p; p=new Sport; infilep-namep-numberp-isboyp-is3p-firstp-secondp-thirdp-fourthp-fifth; p-ne*t=head2-ne*t; head2-ne*t=p; i-; coutSport Data

40、Read Success!endl;void sport_output(Sport *p) /輸出工程的情況 coutname tNum B/G 3/5 first second third fourth fifth endl; while(p) coutname t number) isboy) is3) first); department_show(p-second); department_show(p-third); department_show(p-fourth); department_show(p-fifth);/printf(n); p=p-ne*t;coutn; coutne*t; while(p) -. z if(p-number=a) cout工程名:nameendlisboy=1) cout男子工程; else cout女子工程; coutendlfirst); coutendlsecond); coutendlthird); coutendlfourth); coutendlfifth); return; p=p-ne*t; coutne*t=NULL; head2=new Sport; head2-ne*t=NULL; /schoo

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論