數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)49626new_第1頁
數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)49626new_第2頁
數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)49626new_第3頁
數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)49626new_第4頁
數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)49626new_第5頁
已閱讀5頁,還剩9頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、上交內(nèi)容要求上交的內(nèi)容必須由以下部分組成a)需求分析:在該部分中敘述,每個模塊的功能要求。b)概要設(shè)計(jì):在此說明每個部分的算法設(shè)計(jì)說明(可以是描述每一個算法的流程圖),每個程序中使用的存儲結(jié)構(gòu)設(shè)計(jì)說明(如果指定存儲結(jié)構(gòu)請寫出該存儲結(jié)構(gòu)的定義。c)詳細(xì)設(shè)計(jì): 各個算法實(shí)現(xiàn)的源程序,對每個題目要有相應(yīng)的源程序(可以是一組源程序,每個功能模塊采用不同的函數(shù)實(shí)現(xiàn))。源程序要按照寫程序的規(guī)則來編寫。要結(jié)構(gòu)清晰,重點(diǎn)函數(shù)的重點(diǎn)變量,重點(diǎn)功能部分要加上清晰的程序注釋。d)調(diào)試分析: 測試數(shù)據(jù),測試輸出的結(jié)果(程序運(yùn)行截圖及相關(guān)說明)。 e) 總結(jié): 總結(jié)可以包括 : 課程設(shè)計(jì)過程的收獲、遇到問題、遇到問題解

2、決問題過程的思考、程序調(diào)試能力的思考、對數(shù)據(jù)結(jié)構(gòu)這門課程的思考、在課程設(shè)計(jì)過程中對數(shù)據(jù)結(jié)構(gòu)課程的認(rèn)識等內(nèi)容。數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)題目1. “隨機(jī)漫步”問題 問題描述:有一類問題總稱為“隨機(jī)漫步”(random walk)問題,這類問題長久以來吸引著數(shù)學(xué)界的興趣。所有這些問題即使是最簡單的解決起來也是極其困難的。而且它們在很大程度上還遠(yuǎn)沒有得到解決。一個這樣的問題可以描述為:在矩形的房間里,鋪有nm塊瓷磚,現(xiàn)將一只蟑螂放在地板中間一個指定方格里。蟑螂隨機(jī)地從一塊瓷磚“漫步”到另一塊瓷磚。假設(shè)它可能從其所在的瓷磚移動到其周圍八塊瓷磚中的任何一個(除非碰到墻壁),那么它把每一塊瓷磚都至少接觸一次將花費(fèi)多

3、長時(shí)間?雖然這個問題可能很難用純粹的概率技術(shù)來解決,但是使用計(jì)算機(jī)的話卻十分容易。使用計(jì)算機(jī)解決此問題的技術(shù)稱為“模擬”。這種技術(shù)廣泛應(yīng)用于工業(yè)中,用來預(yù)測運(yùn)輸流量,存貨控制等等。該問題可采用如下方法進(jìn)行模擬:用一個nm數(shù)組作為計(jì)數(shù)器來表示蟑螂到達(dá)每一塊瓷磚的次數(shù),每個數(shù)組單元的初始值均置為零。蟑螂在地板上的位置用坐標(biāo)(ibug,jbug)表示。蟑螂的八種可能移動用在位置(ibug + imovek,jbug + jmovek)的瓷磚表示,其中0k7,并且 imove0 = -1 jmove0 = 1imove1 = 0 jmove1 = 1imove2 = 1 jmove2 = 1imove

4、3 = 1 jmove3 = 0imove4 = 1 jmove4 = -1imove5 = 0 jmove5 = -1imove6 = -1 jmove6 = -1imove7 = -1 jmove7 = 0蟑螂向其相鄰的八個方格的隨機(jī)漫步通過產(chǎn)生一個隨機(jī)數(shù)值k(0k7)來模擬。當(dāng)然,蟑螂不能爬出屋外,所以應(yīng)該去掉通往墻壁的坐標(biāo)值并形成一個新的隨機(jī)組合。蟑螂每次進(jìn)入一個方格,該方格的計(jì)數(shù)器就增加一,從而計(jì)數(shù)器的一個非零元素就表示蟑螂到達(dá)對應(yīng)方格的次數(shù)。當(dāng)每一個方格被至少進(jìn)入一次時(shí),試驗(yàn)就完成了。試編寫程序進(jìn)行上述規(guī)定的模擬試驗(yàn)?;疽竽愕某绦虮仨殻?)夠處理所有的n和m值, n和m滿足:2

5、n40,2m20;2) 對“n = 15,m = 15,起始點(diǎn)為(10,10)”和“n = 39,m = 19,起始點(diǎn)為(1,1)”進(jìn)行實(shí)驗(yàn)。對于每次試驗(yàn),打?。后脒M(jìn)行的合法移動的總次數(shù)。最終的計(jì)數(shù)器數(shù)組,顯示出漫步的“密度”,即在實(shí)驗(yàn)中每一塊瓷磚被接經(jīng)過的次數(shù)。2. 飛機(jī)訂票系統(tǒng)任務(wù):通過此系統(tǒng)可以實(shí)現(xiàn)如下功能:錄入:可以錄入航班情況(數(shù)據(jù)可以存儲在一個數(shù)據(jù)文件中,數(shù)據(jù)結(jié)構(gòu)、具體數(shù)據(jù)自定)查詢:可以查詢某個航線的情況(如,輸入航班號,查詢起降時(shí)間,起飛抵達(dá)城市,航班票價(jià),票價(jià)折扣,確定航班是否滿倉);可以輸入起飛抵達(dá)城市,查詢飛機(jī)航班情況;訂票:(訂票情況可以存在一個數(shù)據(jù)文件中,結(jié)構(gòu)自己設(shè)

6、定)可以訂票,如果該航班已經(jīng)無票,可以提供相關(guān)可選擇航班;退票: 可退票,退票后修改相關(guān)數(shù)據(jù)文件;客戶資料有姓名,證件號,訂票數(shù)量及航班情況,訂單要有編號。修改航班信息:當(dāng)航班信息改變可以修改航班數(shù)據(jù)文件要求:根據(jù)以上功能說明,設(shè)計(jì)航班信息,訂票信息的存儲結(jié)構(gòu),設(shè)計(jì)程序完成功能;3. 文章編輯功能:輸入一頁文字,程序可以統(tǒng)計(jì)出文字、數(shù)字、空格的個數(shù)。靜態(tài)存儲一頁文章,每行最多不超過80個字符,共N行;要求(1)分別統(tǒng)計(jì)出其中英文字母數(shù)和空格數(shù)及整篇文章總字?jǐn)?shù);(2)統(tǒng)計(jì)某一字符串在文章中出現(xiàn)的次數(shù),并輸出該次數(shù);(3)刪除某一子串,并將后面的字符前移。存儲結(jié)構(gòu)使用線性表,分別用幾個子函數(shù)實(shí)現(xiàn)相

7、應(yīng)的功能;輸入數(shù)據(jù)的形式和范圍:可以輸入大寫、小寫的英文字母、任何數(shù)字及標(biāo)點(diǎn)符號。輸出形式:(1)分行輸出用戶輸入的各行字符;(2)分4行輸出全部字母數(shù)、數(shù)字個數(shù)、空格個數(shù)、文章總字?jǐn)?shù)(3)輸出刪除某一字符串后的文章;4. 運(yùn)動會分?jǐn)?shù)統(tǒng)計(jì)任務(wù):參加運(yùn)動會有n個學(xué)校,學(xué)校編號為1n。比賽分成m個男子項(xiàng)目,和w個女子項(xiàng)目。項(xiàng)目編號為男子1m,女子m+1m+w。不同的項(xiàng)目取前五名或前三名積分;取前五名的積分分別為:7、5、3、2、1,前三名的積分分別為:5、3、2;哪些取前五名或前三名由學(xué)生自己設(shè)定。(m=20,n=20)功能要求:1) 可以輸入各個項(xiàng)目的前三名或前五名的成績;2) 能統(tǒng)計(jì)各學(xué)校總分

8、,3) 可以按學(xué)校編號或名稱、學(xué)??偡?、男女團(tuán)體總分排序輸出;4) 可以按學(xué)校編號查詢學(xué)校某個項(xiàng)目的情況;可以按項(xiàng)目編號查詢?nèi)〉们叭蚯拔迕膶W(xué)校。5) 數(shù)據(jù)存入文件并能隨時(shí)查詢 6) 規(guī)定:輸入數(shù)據(jù)形式和范圍:可以輸入學(xué)校的名稱,運(yùn)動項(xiàng)目的名稱輸出形式:有中文提示,各學(xué)校分?jǐn)?shù)為整形界面要求:有合理的提示,每個功能可以設(shè)立菜單,根據(jù)提示,可以完成相關(guān)的功能要求。存儲結(jié)構(gòu):學(xué)生自己根據(jù)系統(tǒng)功能要求自己設(shè)計(jì),但是要求運(yùn)動會的相關(guān)數(shù)據(jù)要存儲在數(shù)據(jù)文件中。(數(shù)據(jù)文件的數(shù)據(jù)讀寫方法等相關(guān)內(nèi)容在c語言程序設(shè)計(jì)的書上,請自學(xué)解決)請?jiān)谧詈蟮纳辖毁Y料中指明你用到的存儲結(jié)構(gòu);測試數(shù)據(jù):要求使用1、全部合法數(shù)據(jù);

9、2、整體非法數(shù)據(jù);3、局部非法數(shù)據(jù)。進(jìn)行程序測試,以保證程序的穩(wěn)定。測試數(shù)據(jù)及測試結(jié)果請?jiān)谏辖坏馁Y料中寫明;5. 宿舍管理查詢軟件1) 任務(wù):為宿舍管理人員編寫一個宿舍管理查詢軟件, 程序設(shè)計(jì)要求:A. 采用交互工作方式 B. 建立數(shù)據(jù)文件 ,數(shù)據(jù)文件按關(guān)鍵字(姓名、學(xué)號、房號)進(jìn)行排序(冒泡、選擇、插入排序等任選一種)2) 查詢菜單: (用二分查找實(shí)現(xiàn)以下操作)A. 按姓名查詢 B. 按學(xué)號查詢 C. 按房號查詢3) 打印任一查詢結(jié)果(可以連續(xù)操作)6. 地圖著色問題設(shè)計(jì)要求:已知中國地圖,對各省進(jìn)行著色,要求相鄰省所使用的顏色不同,并保證使用的顏色總數(shù)最少。7. 校園導(dǎo)航問題設(shè)計(jì)要求:設(shè)計(jì)

10、你的學(xué)校的平面圖,至少包括10個以上的場所,每兩個場所間可以有不同的路,且路長也可能不同,找出從任意場所到達(dá)另一場所的最佳路徑(最短路徑)。1、 基本要求:1) 設(shè)計(jì)校園平面圖,在校園景點(diǎn)選10個左右景點(diǎn)。以圖中頂點(diǎn)表示校園內(nèi)各景點(diǎn),存放景點(diǎn)名稱、代號、簡介等信息;以邊表示路徑,存放路徑長度等有關(guān)信息。2) 為來訪客人提供圖中任意景點(diǎn)相關(guān)信息的查詢。3) 為來訪客人提供任意景點(diǎn)的問路查詢,即查詢?nèi)我鈨蓚€景點(diǎn)之間的一條最短路徑。2、 實(shí)現(xiàn)提示:一般情況下,校園的道路是雙向通行的,可設(shè)計(jì)校園平面圖是一個無向網(wǎng)。頂點(diǎn)和邊均含有相關(guān)信息。8. 教學(xué)計(jì)劃編制問題問題描述: 大學(xué)的每個專業(yè)都要制定教學(xué)計(jì)劃

11、。假設(shè)任何專業(yè)都有固定的學(xué)習(xí)年限,每學(xué)年含兩學(xué)期,每學(xué)期的時(shí)間長度和學(xué)分上限值均相等,每個專業(yè)開設(shè)的課程都是確定的,而且課程在開設(shè)時(shí)間的安排必須滿足先修關(guān)系。每門課程有哪些先修課程是確定的,可以有任意多門,也可以沒有。每門課恰好占一個學(xué)期。試在這樣的前提下設(shè)計(jì)一個教學(xué)計(jì)劃編制程序?;疽螅?(1)輸入?yún)?shù)包括:學(xué)期總數(shù),一學(xué)期的學(xué)分上限,每門課的課程號(固定占3位的字母數(shù)字串)、學(xué)分和直接先修課的課程號。(2)允許用戶指定下列兩種編排策略之一:一是使學(xué)生在各學(xué)期中的學(xué)習(xí)負(fù)擔(dān)盡量均勻;二是使課程盡可能地集中在前幾個學(xué)期中。(3)若根據(jù)給定的條件問題無解,則報(bào)告適當(dāng)?shù)男畔ⅲ环駝t將教學(xué)計(jì)劃輸出到用

12、戶指定的文件中。計(jì)劃的表格格式自行設(shè)計(jì)。測試數(shù)據(jù)學(xué)期總數(shù):6;學(xué)分上限:10;該專業(yè)共開設(shè)12門課,課程號從C01到C12,學(xué)分順序?yàn)?,3,4,3,2,3,4,4,7,5,2,3。先修關(guān)系如下: 課程編號課程名稱先決條件C1程序設(shè)計(jì)基礎(chǔ)無C2離散數(shù)學(xué)C1C3數(shù)據(jù)結(jié)構(gòu)C1,C2C4匯編語言C1C5語言的設(shè)計(jì)和分析C3,C4C6計(jì)算機(jī)原理C11C7編譯原理C5,C3C8操作系統(tǒng)C3,C6C9高等數(shù)學(xué)無C10線性代數(shù)C9C11普通物理C9C12數(shù)值分析C9,C10,C1實(shí)現(xiàn)提示可設(shè)學(xué)期總數(shù)不超過12,課程總數(shù)不超過100。如果輸入的先修課程號不在該專業(yè)開設(shè)的課程序列中,則作為錯誤處理。應(yīng)建立內(nèi)部課

13、程序號與課程號之間的對應(yīng)關(guān)系。9. 散列法的實(shí)驗(yàn)研究散列法中,散列函數(shù)構(gòu)造方法多種多樣,同時(shí)對于同一散列函數(shù)解決沖突的方法也可以不同。兩者是影響查詢算法性能的關(guān)鍵因素。對于幾種典型的散列函數(shù)構(gòu)造方法,做實(shí)驗(yàn)觀察,不同的解決沖突方法對查詢性能的影響。10. 圖書借閱管理系統(tǒng)主要分為兩大功能:1) 圖書管理(增加圖書、查詢圖書、刪除圖書、圖書借閱、還書);2) 會員管理(增加會員、查詢會員、刪除會員、借書信息);11. 學(xué)生成績管理 實(shí)現(xiàn)功能:輸入、輸出、插入、刪除、查找、追加、讀入、顯示、保存、拷貝、排序、索引、分類合計(jì)、退出。12. 活期儲蓄帳目管理 活期儲蓄處理中,儲戶開戶、銷戶、存入、支出

14、活動頻繁,系統(tǒng)設(shè)計(jì)要求:1) 能比較迅速地找到儲戶的帳戶,以實(shí)現(xiàn)存款、取款記賬;2) 能比較簡單,迅速地實(shí)現(xiàn)插入和刪除,以實(shí)現(xiàn)開戶和銷戶的需要。13. 二叉排序樹的實(shí)現(xiàn) 用順序和二叉鏈表作存儲結(jié)構(gòu) 1) 以回車(n)為輸入結(jié)束標(biāo)志,輸入數(shù)列L,生成一棵二叉排 序樹T;2) 對二叉排序樹T作中序遍歷,輸出結(jié)果; 3) 輸入元素x,查找二叉排序樹T,若存在含x的結(jié)點(diǎn),則刪除該結(jié)點(diǎn),并作中序遍歷(執(zhí)行操作2);否則輸出信息“無x”;14. 最小生成樹問題設(shè)計(jì)要求:在n(大于10)個城市之間建設(shè)網(wǎng)絡(luò),只需保證連通即可,求最經(jīng)濟(jì)的架設(shè)方法。存儲結(jié)構(gòu)采用多種。求解算法多種。15通訊錄的制作模塊要求: 第一

15、個模塊主函數(shù)main()的功能是:根據(jù)選單的選項(xiàng)調(diào)用各函數(shù),并完成相應(yīng)的功能。 第二個模塊Menu()的功能是:顯示英文提示選單。 第三個模塊Quit()的功能是:退出選單。 第四個模塊Create()的功能是:創(chuàng)建新的通訊錄。 第五個模塊Add()的功能是:在通訊錄的末尾,寫入新的信息,并返回選單。 第六個模塊Find()的功能是:查詢某人的信息,如果找到了,則顯示該人的信息,如果未找到,則提示通訊錄中沒有此人的信息,并返回選單。 第七個模塊Alter()的功能是:修改某人的信息,如果未找到要修改的人,則提示通訊錄中沒有此人的信息,并返回選單。 第八個模塊Delete()的功能是:刪除某人的

16、信息,如果未找到要刪除的人,則提示通訊錄中沒有此人的信息,并返回選單。 第九個模塊List()的功能是:顯示通訊錄中的所有記錄。;設(shè)計(jì)要求: 1) 每條信息至包含 :姓名(NAME )、性別(GENDER)、電話(TEL) 、城市(CITY)郵編(EIP)幾項(xiàng)。2) 作為一個完整的系統(tǒng),應(yīng)具有友好的界面和較強(qiáng)的容錯能力16. 哈夫曼編碼/譯碼器問題描述:利用哈夫曼編碼進(jìn)行信息通信可以大大提高信道利用率,縮短信息傳輸時(shí)間,降低傳輸成本。但是,這要求在發(fā)送端通過一個編碼系統(tǒng)對待傳數(shù)據(jù)預(yù)先編碼,在接收端將傳來的數(shù)據(jù)進(jìn)行譯碼(復(fù)原)。對于雙工信道(即可以雙向傳輸信息的信道),每端都需要一個完整的編/譯

17、碼系統(tǒng)。試為這樣的信息收發(fā)站寫一個哈夫曼編/譯碼系統(tǒng)?;疽?一個完整的系統(tǒng)應(yīng)具有以下功能:(1)I:初始化(Initialization)。從終端讀入字符集大小n,以及n個字符和n個權(quán)值,建立哈夫曼樹,并將它存于文件hfmTree中。(2)E:編碼(Encoding)。利用已建好的哈夫曼樹(如不在內(nèi)存,則從文件htmTree中讀入),對文件ToBeTran中的正文進(jìn)行編碼,然后將結(jié)果存入文件CodeFile中。(3)D:譯碼(Decoding)。利用已建好的哈夫曼樹將文件CodeFile中的代碼進(jìn)行譯碼,結(jié)果存入文件TextFile中。(4)P:印代碼文件(Print)。將文件CodeFi

18、le以緊湊格式顯示在終端上,每行50個代碼。同時(shí)將此字符形式的編碼寫入文件CodePrint中。(5)T:印哈夫曼樹(Tree Printing)。將已在內(nèi)存中的哈夫曼樹以直觀的方式(樹或凹入表形式)顯示在終端上,同時(shí)將此字符形式的哈夫曼樹寫入文件TreePrint中。測試數(shù)據(jù)(1)數(shù)據(jù)一:已知某系統(tǒng)在通信聯(lián)絡(luò)中只可能出現(xiàn)8種字符,其概率分別為0.05,0.29,0.07,0.08,0.14,0.23,0.03,0.11,以此設(shè)計(jì)哈夫曼編碼。利用此數(shù)據(jù)對程序進(jìn)行調(diào)試。(2)用下表給出的字符集和頻度的實(shí)際統(tǒng)計(jì)數(shù)據(jù)建立哈夫曼樹,并實(shí)現(xiàn)以下報(bào)文的編碼和譯碼:“THISPROGRAMISMYFAVOR

19、ITE”。 字符ABCDEFGHIJKLM頻度1866413223210321154757153220字符NOPQRSTUVWXYZ頻度576315148518023818116117. 圖書管理系統(tǒng)問題描述:設(shè)計(jì)一個計(jì)算機(jī)管理系統(tǒng)完成圖書管理基本業(yè)務(wù)?;疽?1) 每種書的登記內(nèi)容包括書號、書名、著作者、現(xiàn)存量和庫存量;2) 對書號建立索引表(線性表)以提高查找效率;3) 系統(tǒng)主要功能如下:采編入庫:新購一種書,確定書號后,登記到圖書帳目表中,如果表中已有,則只將庫存量增加; 借閱:如果一種書的現(xiàn)存量大于0,則借出一本,登記借閱者的書證號和歸還期限,改變現(xiàn)存量;歸還:注銷對借閱者的登記,改

20、變該書的現(xiàn)存量。18. 散列表的設(shè)計(jì)與實(shí)現(xiàn)問題描述: 設(shè)計(jì)散列表實(shí)現(xiàn)電話號碼查找系統(tǒng)?;疽?1) 設(shè)每個記錄有下列數(shù)據(jù)項(xiàng):電話號碼、用戶名、地址;2) 從鍵盤輸入各記錄,分別以電話號碼和用戶名為關(guān)鍵字建立散列表;3) 采用一定的方法解決沖突;4) 查找并顯示給定電話號碼的記錄;5) 查找并顯示給定用戶名的記錄。6) 設(shè)計(jì)不同的散列函數(shù),比較沖突率;7) 在散列函數(shù)確定的前提下,嘗試各種不同類型處理沖突的方法,考察平均查找長度的變化。19. 走迷宮游戲程序開始運(yùn)行時(shí)顯示一個迷宮地圖,迷宮左上方有一只老鼠,迷宮的右下方有一個糧倉。游戲的任務(wù)是使用鍵盤操縱老鼠在規(guī)定時(shí)間走到糧倉處。要求:1) 正

21、確檢測結(jié)果,若老鼠在規(guī)定時(shí)間內(nèi)走到糧倉處,提示成功,否則提示失??;2) 添加編輯迷宮功能,可修改當(dāng)前迷宮,修改內(nèi)容:墻變路、路變墻;3) 找出走出迷宮的所有路徑,以及最短路徑。20. 順序結(jié)構(gòu)、動態(tài)鏈表結(jié)構(gòu)下的一元多項(xiàng)式的加法、減法、乘法的實(shí)現(xiàn)。設(shè)有一元多項(xiàng)式Am(x)和Bn(x). Am(x)=A0+A1x1+A2x2+A3x3+ +Amxm Bn(x)=B0+B1x1+B2x2+B3x3+ +Bnxn請實(shí)現(xiàn)求M(x)= Am(x)+Bn(x)、M(x)= Am(x)-Bn(x)和M(x)= Am(x)Bn(x)。要求: 1) 首先判定多項(xiàng)式是否稀疏2) 分別采用順序和動態(tài)存儲結(jié)構(gòu)實(shí)現(xiàn);3)

22、 結(jié)果M(x)中無重復(fù)階項(xiàng)和無零系數(shù)項(xiàng);4) 要求輸出結(jié)果的升冪和降冪兩種排列情況21. 利用棧求表達(dá)式的值編寫程序?qū)崿F(xiàn)表達(dá)式求值,即驗(yàn)證某算術(shù)表達(dá)式的正確性,若正確,則計(jì)算該算術(shù)表達(dá)式的值。主要功能描述如下:1、從鍵盤上輸入表達(dá)式。2、分析該表達(dá)式是否合法:(1)是數(shù)字,則判斷該數(shù)字的合法性。若合法,則壓入數(shù)據(jù)到堆棧中。(2)是規(guī)定的運(yùn)算符,則根據(jù)規(guī)則進(jìn)行處理。在處理過程中,將計(jì)算該表達(dá)式的值。(3)若是其它字符,則返回錯誤信息。3、若上述處理過程中沒有發(fā)現(xiàn)錯誤,則認(rèn)為該表達(dá)式合法,并打印處理結(jié)果。程序中應(yīng)主要包含下面幾個功能函數(shù):void initstack():初始化堆棧 int Mak

23、e_str():語法檢查并計(jì)算 int push_operate(int operate):將操作碼壓入堆棧 int push_num(double num):將操作數(shù)壓入堆棧 int procede(int operate):處理操作碼 int change_opnd(int operate):將字符型操作碼轉(zhuǎn)換成優(yōu)先級 int push_opnd(int operate):將操作碼壓入堆棧 int pop_opnd():將操作碼彈出堆棧 int caculate(int cur_opnd):簡單計(jì)算+,-,*,/ double pop_num():彈出操作數(shù)22. 簡易文本編輯器要求:1)

24、 具有圖形菜單界面;2) 查找,替換(等長,不等長),插入(插串,文本塊的插入)、塊移動(行塊,列塊移動),刪除3) 可正確存盤、取盤;4) 正確顯示總行數(shù)。23. 二叉樹的中序、前序、后序的遞歸、非遞歸遍歷算法,層次序的非遞歸遍歷算法的實(shí)現(xiàn),應(yīng)包含建樹的實(shí)現(xiàn)。要求:遍歷的內(nèi)容應(yīng)是千姿百態(tài)的。樹與二叉樹的轉(zhuǎn)換的實(shí)現(xiàn)。以及樹的前序、后序的遞歸、非遞歸遍歷算法,層次序的非遞歸遍歷算法的實(shí)現(xiàn),應(yīng)包含建樹的實(shí)現(xiàn)。要求:遍歷的內(nèi)容應(yīng)是千姿百態(tài)的。24. 學(xué)生搭配問題一班有m個女生,有n個男生(m不等于n),現(xiàn)要開一個舞會. 男女生分別編號坐在舞池的兩邊的椅子上.每曲開始時(shí),依次從男生和女生中各出一人配對

25、跳舞, 本曲沒成功配對者坐著等待下一曲找舞伴. 請?jiān)O(shè)計(jì)一系統(tǒng)模擬動態(tài)地顯示出上述過程,要求如下:1) 輸出每曲配對情況2) 計(jì)算出任何一個男生(編號為X)和任意女生(編號為Y),在第K曲配對跳舞的情況.至少求出K的兩個值。3) 盡量設(shè)計(jì)出多種算法及程序。提示:用隊(duì)列來解決比較方便。25. 敢死隊(duì)問題( 有M個敢死隊(duì)員要炸掉敵人的一碉堡,誰都不想去,排長決定用輪回?cái)?shù)數(shù)的辦法來決定哪個戰(zhàn)士去執(zhí)行任務(wù)。如果前一個戰(zhàn)士沒完成任務(wù),則要再派一個戰(zhàn)士上去?,F(xiàn)給每個戰(zhàn)士編一個號,大家圍坐成一圈,隨便從某一個戰(zhàn)士開始計(jì)數(shù),當(dāng)數(shù)到5時(shí),對應(yīng)的戰(zhàn)士就去執(zhí)行任務(wù),且此戰(zhàn)士不再參加下一輪計(jì)數(shù)。如果此戰(zhàn)士沒完成任務(wù),再

26、從下一個戰(zhàn)士開始數(shù)數(shù),被數(shù)到第5時(shí),此戰(zhàn)士接著去執(zhí)行任務(wù)。以此類推,直到任務(wù)完成為止。假設(shè)排長為1號,請你設(shè)計(jì)一程序,求出從第幾號戰(zhàn)士開始計(jì)數(shù)才能讓排長最后一個留下來去執(zhí)行任務(wù)。 要求:至少采用兩種不同的數(shù)據(jù)結(jié)構(gòu)的方法實(shí)現(xiàn)。26. 猴子吃桃子問題 有一群猴子摘了一堆桃子,他們每天都吃當(dāng)前桃子的一半且再多吃一個,到了第10天就只余下一個桃子。用多種方法實(shí)現(xiàn)求出原來這群猴子共摘了多少個桃子。要求:1) 采用數(shù)組數(shù)據(jù)結(jié)構(gòu)實(shí)現(xiàn)上述求解2) 采用鏈數(shù)據(jù)結(jié)構(gòu)實(shí)現(xiàn)上述求解3) 采用遞歸實(shí)現(xiàn)上述求解27. 排序綜合 利用隨機(jī)函數(shù)產(chǎn)生N個隨機(jī)整數(shù)(20000以上),對這些數(shù)進(jìn)行多種方法進(jìn)行排序。要求:1) 至少

27、采用三種方法實(shí)現(xiàn)上述問題求解(提示,可采用的方法有插入排序、希爾排序、起泡排序、快速排序、選擇排序、堆排序、歸并排序)。并把排序后的結(jié)果保存在不同的文件中。2) 統(tǒng)計(jì)每一種排序方法的性能(以上機(jī)運(yùn)行程序所花費(fèi)的時(shí)間為準(zhǔn)進(jìn)行對比),找出其中兩種較快的方法。28. 學(xué)生成績管理系統(tǒng)現(xiàn)有學(xué)生成績信息文件1(1.txt),內(nèi)容如下姓名 學(xué)號 語文 數(shù)學(xué) 英語 張明明 01 67 78 82李成友 02 78 91 88張輝燦 03 68 82 56王露 04 56 45 77陳東明 05 67 38 47. . . . 學(xué)生成績信息文件2(2.txt),內(nèi)容如下:姓名 學(xué)號 語文 數(shù)學(xué) 英語 陳果 3

28、1 57 68 82李華明 32 88 90 68張明東 33 48 42 56李明國 34 50 45 87陳道亮 35 47 58 77. . . . 試編寫一管理系統(tǒng),要求如下:1) 實(shí)現(xiàn)對兩個文件數(shù)據(jù)進(jìn)行合并,生成新文件3.txt2) 抽取出三科成績中有補(bǔ)考的學(xué)生并保存在一個新文件4.txt3) 對合并后的文件3.txt中的數(shù)據(jù)按總分降序排序(至少采用兩種排序方法實(shí)現(xiàn))4) 輸入一個學(xué)生姓名后,能查找到此學(xué)生的信息并輸出結(jié)果(至少采用兩種查找方法實(shí)現(xiàn))5) 要求使用結(jié)構(gòu)體,鏈或數(shù)組等實(shí)現(xiàn)上述要求.29. 圖的遍歷和生成樹求解實(shí)現(xiàn)要求:1) 先任意創(chuàng)建一個圖;2) 圖的DFS,BFS的遞

29、歸和非遞歸算法的實(shí)現(xiàn)3) 最小生成樹(兩個算法)的實(shí)現(xiàn),求連通分量的實(shí)現(xiàn)4) 要求用鄰接矩陣、鄰接表、十字鏈表多種結(jié)構(gòu)存儲實(shí)現(xiàn)30. 線索二叉樹的應(yīng)用要求:實(shí)現(xiàn)線索樹建立、插入、刪除、恢復(fù)線索的實(shí)現(xiàn)。31. 稀疏矩陣實(shí)現(xiàn)與應(yīng)用要求:實(shí)現(xiàn)三元組,十字鏈表下的稀疏矩陣的加、轉(zhuǎn)、乘的實(shí)現(xiàn)。32. 樹的應(yīng)用要求:實(shí)現(xiàn)樹與二叉樹的轉(zhuǎn)換的實(shí)現(xiàn)。以及樹的前序、后序的遞歸、非遞歸算法,層次序的非遞歸算法的實(shí)現(xiàn),應(yīng)包含建樹的實(shí)現(xiàn)。33.簡單的職工管理系統(tǒng)1.問題描述對單位的職工進(jìn)行管理,包括插入、刪除、查找、排序等功能。2.要求職工對象包括姓名、性別、出生年月、工作年月、學(xué)歷、職務(wù)、住址、電話等信息。(1)新增

30、一名職工:將新增職工對象按姓名以字典方式職工管理文件中。(2)刪除一名職工:從職工管理文件中刪除一名職工對象。(3)查詢:從職工管理文件中查詢符合某些條件的職工。(4)修改:檢索某個職工對象,對其某些屬性進(jìn)行修改。(5)排序:按某種需要對職工對象文件進(jìn)行排序。3.實(shí)現(xiàn)提示職工對象數(shù)不必很多,便于一次讀入內(nèi)存,所有操作不經(jīng)過內(nèi)外存交換。(1)由鍵盤輸入職工對象,以文件方式保存。程序執(zhí)行時(shí)先將文件讀入內(nèi)存。(2)對職工對象中的姓名按字典順序進(jìn)行排序。(3)對排序后的職工對象進(jìn)行增、刪、查詢、修改、排序等操作。34、鏈表、棧與隊(duì)列的可視化演示要求能夠動態(tài)、可視化、可交互式地實(shí)現(xiàn)以下幾種數(shù)據(jù)結(jié)構(gòu)的功能:(1)Stack-Array與Stack-Linked List的Push與Pop功能;(2)Queue-Array與Queue-Linked List的Enqueue、Dequeue功能;(3)List-Array與List-Linked List的Insert、Delete、first、next、current、inList、Set Current功能。35、排序算法的可視化演示 要求能夠動態(tài)、可視化、可交互式地實(shí)現(xiàn)各種排序算法。具體包括:

溫馨提示

  • 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)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論