《C語言程序設(shè)計(jì)課程設(shè)計(jì)》題目_第1頁
《C語言程序設(shè)計(jì)課程設(shè)計(jì)》題目_第2頁
《C語言程序設(shè)計(jì)課程設(shè)計(jì)》題目_第3頁
《C語言程序設(shè)計(jì)課程設(shè)計(jì)》題目_第4頁
《C語言程序設(shè)計(jì)課程設(shè)計(jì)》題目_第5頁
已閱讀5頁,還剩15頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、C 語言程序設(shè)計(jì)課程設(shè)計(jì)題目軟件工程10-2班C語言程序設(shè)計(jì)課程設(shè)計(jì)題目一元稀疏多項(xiàng)式的運(yùn)算問題描述:設(shè)有兩個(gè)帶頭指針的單鏈表表示兩個(gè)一元稀疏多項(xiàng)式A、B,實(shí)現(xiàn)兩個(gè)一元稀疏多項(xiàng)式的處理。實(shí)現(xiàn)要求:輸入并建立多項(xiàng)式;輸出多項(xiàng)式,輸出形式為整數(shù)序列:n,c1, e1,c2,e2cn,en,其中n是多項(xiàng)式的項(xiàng)數(shù),ci, ei分別為第i項(xiàng)的系數(shù)和指數(shù)。序列 按指數(shù)降序排列;多項(xiàng)式A和B相加,建立多項(xiàng)式A+B,輸出相加的多項(xiàng)式;多項(xiàng) 式A和B相減,建立多項(xiàng)式A-B,輸出相減的多項(xiàng)式;多項(xiàng)式A和B相 乘,建立多項(xiàng)式A某B,輸出相乘的多項(xiàng)式;設(shè)計(jì)一個(gè)菜單,至少具有 上述操作要求的基本功能。測試數(shù)據(jù):(1)(

2、2 某+5 某 8-3.1 某 11)+(7-5 某 8+11 某 9)(2)(6 某-3-某+4.4 某 2-1.2 某 9)-(-6 某-3+5.4 某 2+7.8 某15)(3)(某+某 2+某 3)+0(4)(某+某 3)-(-某-某-3)成績排序假設(shè)某年級(jí)有 4 個(gè)班,每班有 45 名同學(xué)。本學(xué)期有 5 門課程考試, 每門課程成績是百分制。假定每個(gè)同學(xué)的成績記錄包含:學(xué)號(hào)、姓名各門 課程的成績共 7 項(xiàng),其中學(xué)號(hào)是一個(gè) 10 位的字符串,每個(gè)學(xué)生都有唯一 的學(xué)號(hào),并且這 4 個(gè)班的成績分別放在 4 個(gè)數(shù)組中,完成以下操作要求:編寫一個(gè)成績生成函數(shù),使用隨機(jī)數(shù)方法,利用隨機(jī)函數(shù)生成學(xué)生

3、 的各門課程的成績(每門課程的成績都是0S100之間的整數(shù)),通過調(diào) 用該函數(shù)生成全部學(xué)生的成績;編寫一個(gè)平均成績計(jì)算函數(shù),計(jì)算每個(gè)同學(xué)的平均成績并保存在成 績數(shù)組中;用冒泡排序法對(duì) 4 個(gè)班的成績按每個(gè)同學(xué)的平均成績的以非遞增方 式軟件工程10-2班C語言程序設(shè)計(jì)課程設(shè)計(jì)題目進(jìn)行班內(nèi)排序;用選擇排序法對(duì) 4 個(gè)班的成績按每個(gè)同學(xué)的平均成績的以非遞增方 式進(jìn)行班內(nèi)排序;對(duì)已按平均成績排好序的 4 個(gè)班的同學(xué)的構(gòu)造一個(gè)所有按平均成績 的以非遞增方式排列的新的單鏈表;設(shè)計(jì)一個(gè)菜單,至少具有上述操作要求的基本功能。迷宮問題問題描述:以一個(gè) m 某 n 的長方陣表示迷宮,0 和 1 分別表示迷宮中 的

4、通路和障礙。設(shè)計(jì)一個(gè)程序,對(duì)任意設(shè)定的迷宮,求出一條從入口到出口 的通路,或得出沒有通路的結(jié)論。實(shí)現(xiàn)要求:實(shí)現(xiàn)一個(gè)以鏈表作存儲(chǔ)結(jié)構(gòu)的棧類型,然后編寫一個(gè)求解迷宮的非 遞歸程序。求得的通路以三元組(i,j,d)的形式輸出,其中:(i,j)指 示迷宮中的一個(gè)坐標(biāo),d表示走到下一坐標(biāo)的方向。編寫遞歸形式的算法,求得迷宮中所有可能的通路;以方陣形式 輸出迷宮及其通路。測試數(shù)據(jù)迷宮的測試數(shù)據(jù)如下:左上角(1,1)為入口,右下角(8,9)為出口。12345678000000011000101111110100100000110100001000100001001010110100000001001110

5、實(shí)現(xiàn)提示:2軟件工程10-2班C語言程序設(shè)計(jì)課程設(shè)計(jì)題目計(jì)算機(jī)解迷宮通常用的是“窮舉求解”方法,即從入口出發(fā),順著某 一個(gè)方向進(jìn)行探索,若能走通,則繼續(xù)往前進(jìn);否則沿著原路退回,換一 個(gè)方向繼續(xù)探索,直至出口位置,求得一條通路。假如所有可能的通路都 探索到而未能到達(dá)出口,則所設(shè)定的迷宮沒有通路。可以二維數(shù)組存儲(chǔ)迷宮數(shù)據(jù),通常設(shè)定入口點(diǎn)的下標(biāo)為(1,1),出 口點(diǎn)的下標(biāo)為(m,n)。為處理方便起見,可在迷宮的四周加一圈障礙。 對(duì)于迷宮中任一位置,均可約定有東、南、西、北四個(gè)方向可通。棧及其操作問題描述:棧(Stack):是限制在表的一端進(jìn)行插入和刪除操作的線性表。又稱 為后進(jìn)先出LIFO(Lat

6、InFirtOut)或先進(jìn)后出FILO(FirtlnLatOut)線性表。棧頂(Top):允許進(jìn)行插入、刪除操作的一端,又稱為表尾。用棧頂 指針(top)來指示棧頂元素。棧底(Bottom):是固定端,又稱為表頭???棧:當(dāng)表中沒有元素時(shí)稱為空棧。設(shè)棧S=(a1,a2,an),則al稱為棧底元素,an為棧頂元素。棧中 元素按al,a2,an的次序進(jìn)棧,退棧的第一個(gè)元素應(yīng)為棧頂元素an。 即棧的修改是按后進(jìn)先出的原則進(jìn)行的。棧的鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)稱為鏈棧,是運(yùn)算受限的單鏈表。其插入和刪除操 作只能在表頭位置上進(jìn)行。鏈棧的基本形式如下:3top 空鏈棧t opana3a2a1非空鏈棧軟件工程10-2班C

7、語言程序設(shè)計(jì)課程設(shè)計(jì)題目實(shí)現(xiàn)要求:鏈?;静僮鞯膶?shí)現(xiàn):棧的初始化,生成一個(gè)空棧;壓棧,即元素 進(jìn)棧;彈棧,即元素出棧;十進(jìn)制整數(shù)N向其它進(jìn)制數(shù)d (二、八、十六)的轉(zhuǎn)換是計(jì)算機(jī)實(shí)現(xiàn) 計(jì)算的基本問題。轉(zhuǎn)換法則:該轉(zhuǎn)換法則對(duì)應(yīng)于一個(gè)簡單算法原理: n=(ndivd)某d+nmodd其中:div為整除運(yùn)算,mod為求余運(yùn)算在文字處理軟件或編譯程序設(shè)計(jì)時(shí),常常需要檢查一個(gè)字符串或一 個(gè)表達(dá)式中的括號(hào)是否相匹配匹配思想:從左至右掃描一個(gè)字符串(或表達(dá)式),則每個(gè)右括號(hào)將與 最近遇到的那個(gè)左括號(hào)相匹配。則可以在從左至右掃描過程中把所遇到的 左括號(hào)存放到堆棧中。每當(dāng)遇到一個(gè)右括號(hào)時(shí),就將它與棧頂?shù)淖罄ㄌ?hào) (

8、如果存在)相匹配,同時(shí)從棧頂刪除該左括號(hào)。算法思想:設(shè)置一個(gè)棧,當(dāng)讀到左括號(hào)時(shí),左括號(hào)進(jìn)棧。當(dāng)讀到右括 號(hào)時(shí),則從棧中彈出一個(gè)元素,與讀到的左括號(hào)進(jìn)行匹配,若匹配成功, 繼續(xù)讀入;否則匹配失敗,返回 FLASE。4軟件工程10-2班C語言程序設(shè)計(jì)課程設(shè)計(jì)題目用 C 語言設(shè)計(jì)一個(gè)年歷系統(tǒng)問題描述:年歷系統(tǒng)首先對(duì)于輸入的任一年,能夠給出該年每月的日期及實(shí)際周幾的對(duì)應(yīng)情況,并與實(shí)際的星期數(shù)垂直對(duì)齊,如下表所示(當(dāng)輸入2004 時(shí)顯示如下):Inputtheyear:2004Thecalendaroftheyear2004.Januray1February2=SunMonTueWedThuFriSat

9、SunMonTueWedThuFriSat123123456745678910891011121314111213141516171516171819202218192022222324222324252627282 526272829303129=Mar ch3April4SunMonTueWedThuFriSatSunMonTueWedThuFriSat12345612378910111213456789101415161718192022121314151617212223242526271819202222232428 293031252627282930功能要求:(1)輸入任一年將顯

10、示出該年的所有月份日期,對(duì)應(yīng)的星期,輸出的格 式如上表要求(注意閏年情況);輸入任意日期(包括年、月、日,格式有yyy/mm/dd、dd/mm/yyyy、 mm/dd/yyyy、和 yyyy,mm,dd、mm,dd,yyyy、dd,mm,yyyy 六種基本情況), 要求能夠顯示出該日期是本年的哪一周,是星期幾。航班信息管理問題描述:飛機(jī)航班系統(tǒng)的數(shù)據(jù)包括兩部分:5軟件工程10-2班C語言程序設(shè)計(jì)課程設(shè)計(jì)題目航班信息:航班號(hào)、最大載客數(shù)、起飛地點(diǎn)、起飛時(shí)間、降落地點(diǎn)、 降落時(shí)間,單價(jià);乘客信息:航班號(hào)、身份證號(hào)碼、姓名、性別、出生年月、座位號(hào)。 乘客訂票的主要方式是:乘客提出航班號(hào)、起飛地點(diǎn)、起

11、飛時(shí)間、降落地 點(diǎn)、訂票數(shù)等訂票要求,根據(jù)事先保存的航班數(shù)據(jù)決定乘客能否訂票?只 有全部滿足了乘客的訂票要求并且所訂航班有足夠的未訂座位之后才能完 成訂票處理,并且修改該航班的未訂座位數(shù)(每個(gè)航班的未訂座位數(shù)的初 始值就是該航班的最大載客數(shù));否則,訂票失敗,并且給出不能訂票的 原因。要求將航班數(shù)據(jù)保存在數(shù)據(jù)文件中,在處理時(shí)按航班的起飛地點(diǎn)建立 不同的鏈表。功能要求:(1)增加航班記錄。將新的航班記錄增加到原有的航班數(shù)據(jù)文件中。在 進(jìn)行處理時(shí)必須檢查所要增加的航班記錄是否存在,如果已經(jīng)存在,應(yīng)給 出提示信息后停止增加;航班取消。如果某次航班的乘客數(shù)太少(已訂票的少于本次航班最 大載客數(shù)的 10

12、%),將取消該航班,但該航班的記錄仍然保存在原有的航 班數(shù)據(jù)文件中;航班查詢。應(yīng)該有以下幾種基本的查詢方式:按航班號(hào)、按起飛地 點(diǎn)和起飛時(shí)間、按降落地點(diǎn),按起飛地點(diǎn)和降落地點(diǎn);航班訂票。按上述問題描述中的乘客訂票方式完成航班訂票處理。 設(shè)計(jì)一個(gè)菜單,至少具有上述操作要求的基本功能。學(xué)生成績管理問題描述:設(shè)學(xué)生信息包括:學(xué)號(hào)、姓名、學(xué)期、每門課程的成績(每學(xué)期的課 程門數(shù)是不一樣的),對(duì)學(xué)生的成績信息進(jìn)行管理。實(shí)現(xiàn)要求:實(shí)現(xiàn):學(xué)生信息的錄入;修改;刪除和查詢,按學(xué)期、學(xué)號(hào)、成績不 及格等查詢。6軟件工程10-2班C語言程序設(shè)計(jì)課程設(shè)計(jì)題目輸入學(xué)生的成績信息,包含學(xué)號(hào)、姓名、性別等基本信息和各課成

13、 績顯示全部學(xué)生各科成績信息;對(duì)各科成績統(tǒng)計(jì)分析(總分、平均分、最高分、最低分、及格率 等);統(tǒng)計(jì)各科各分?jǐn)?shù)段人數(shù);按學(xué)號(hào)或姓名查找并顯示某個(gè)學(xué)生的各科成績;按課程成績或總 分由高到低排序顯示;更新某個(gè)學(xué)生的基本信息或課程成績;設(shè)i 一個(gè)菜單,具有上述規(guī)定的操作要求、退出系統(tǒng)等最基本的功 能。運(yùn)動(dòng)會(huì)管理系統(tǒng)問題描述:校際運(yùn)動(dòng)會(huì)管理系統(tǒng)。設(shè)有 n 個(gè)學(xué)校參加校際運(yùn)動(dòng)會(huì),共有男子競賽 項(xiàng)目數(shù)m,女子競賽項(xiàng)目數(shù)w。每個(gè)學(xué)校可以參加所有競賽項(xiàng)目,也可以 只參加部分競賽項(xiàng)目,每個(gè)學(xué)校對(duì)每個(gè)項(xiàng)目的參賽運(yùn)動(dòng)員不能超過 4 人, 每個(gè)運(yùn)動(dòng)員最多只能參加 3 項(xiàng)單項(xiàng)比賽,團(tuán)體賽不受限制。各項(xiàng)目名次取法有如下幾種

14、:用戶自定義:(各名次權(quán)值由用戶指定)參賽人數(shù)超過 6 人,取前 5 名:第 1 名得分 7,第 2 名得分 5,第 3 名 得分 3,第 4 名得分 2,第 5 名得分 1;參賽人數(shù)不超過 6 人,取前 3 名:第 1 名得分 5,第 2 名得分 3, 第 3 名得分 2;團(tuán)體項(xiàng)目的名次取法和上面相同,但分?jǐn)?shù)加倍。功能要求:運(yùn)動(dòng)員報(bào)名登記,以學(xué)校為單位進(jìn)行運(yùn)動(dòng)員報(bào)名登記,登記的限制 要求按問題描述的要求;參賽信息查詢,查看參賽學(xué)校信息和比賽項(xiàng)目信息;競賽檢錄, 每項(xiàng)比賽開始前完成參賽運(yùn)動(dòng)員的檢錄;競賽成績登記,填寫比賽名次,然后根據(jù)競賽檢錄的運(yùn)動(dòng)員人數(shù)和 上述的記分方式自動(dòng)完成各學(xué)校的成績登

15、記并實(shí)時(shí)生成各學(xué)校的團(tuán)體總分比賽成績查詢,可以按競賽項(xiàng)目、參賽學(xué)校、參賽運(yùn)動(dòng)員查看比賽 成績;7軟件工程10-2班C語言程序設(shè)計(jì)課程設(shè)計(jì)題目競賽成績排序,以學(xué)校為單位,按總成績的高低,分別排序輸出每 個(gè)學(xué)校的總成績、男子總成績、女子總成績;設(shè)計(jì)一個(gè)菜單,至少具有上述操作要求的基本功能。(本題由2 人完成)銀行存款方案比較 問題描述:設(shè)銀行整存整取不同期限的月利率分別是:活期月息為0.75%,一年期月息為 1.75%,三年期月息為 2.15%,五年期月息為 2.75%,且銀行對(duì) 定期存款過期部分不支付利息?,F(xiàn)在某人將手頭多余的錢存入銀行,其多余的錢是第一年每月2000 元,以后每年每月多余的錢在

16、上一年隊(duì)每月多余錢的基礎(chǔ)上再增加8%, 現(xiàn)在該人計(jì)劃按上述方式在銀行存款 15 年。實(shí)現(xiàn)要求:按活期存款,15年里共存入的本金有多少?利息有多少? 15年后全部取出后本、息之和是多少?按一年定期存款,15年里共存入的本金有多少?利息有多少? 15年后全部取出后本、息之和是多少?按三年定期存款,15年里共存入的本金有多少?利息有多少? 15年后全部取出后本、息之和是多少?按五年定期存款,15年里共存入的本金有多少?利息有多少? 15 年后全部取出后本、息之和是多少?設(shè)計(jì)一個(gè)菜單,具有上述要求的所有功能、退出系統(tǒng)等最基本的功能。問題描述:集合運(yùn)算設(shè)有兩個(gè)用單鏈表表示的集合A、B,其元素類型是int

17、且以非遞減 方式存儲(chǔ),其頭結(jié)點(diǎn)分別為a、b。要求下面各問題中的結(jié)果集合同樣以 非遞減方式存儲(chǔ),結(jié)果集合不影響原集合。實(shí)現(xiàn)要求:8軟件工程10-2班C語言程序設(shè)計(jì)課程設(shè)計(jì)題目編寫集合元素測試函數(shù)IN_SET,如果元素已經(jīng)在集合中返回0,否 則返回1;編寫集合元素輸入并插入到單鏈表中的函數(shù)INSERT_SET,保證所 輸入的集合中的元素是唯一且以非遞減方式存儲(chǔ)在單鏈表中;編寫集合元素輸出函數(shù),對(duì)建立的集合鏈表按非遞增方式輸出; 編寫求集合A、B的交C=AAB的函數(shù),并輸出集合C的元素;編寫求集 合A、B的并D=AUB的函數(shù),并輸出集合D的元素;求集合A與B的對(duì) 稱差E=(A-B)U(B-A)的函數(shù)

18、,并輸出集合D的元素;設(shè)計(jì)一個(gè)菜單, 具有輸入集合元素、求集合A、B的交C、求集合A、B的并D、求集合A 與B的對(duì)稱差E、退出等基本的功能。測試數(shù)據(jù):由讀者自定,但集合 A、B 的元素個(gè)數(shù)不得少于 16 個(gè)。矩陣的操作設(shè)有兩個(gè)矩陣A=(aij)m某n,B=(bij)p某q。實(shí)現(xiàn)要求:編寫矩陣輸入函數(shù)INPUT_MAT,通過該函數(shù)完成矩陣的輸入并返回 保存矩陣的三元組(不能使用全局變量);(2)編寫矩陣輸出函數(shù)OUTPUT_MAT,通過該函數(shù)完成矩陣的輸出,輸 出的形式是標(biāo)準(zhǔn)的矩陣形式(即二維數(shù)組的形式);求矩陣的轉(zhuǎn)置,矩陣的轉(zhuǎn)置A=(aji)n某m,轉(zhuǎn)置前輸出原矩陣, 轉(zhuǎn)置后輸出轉(zhuǎn)置矩陣;求矩

19、陣A、B的和。矩陣A和B能夠相加的條件是:m=p, n=q;矩 陣 A 和 B 如果不能相加,請給出提示信息;若能夠相加,則求和矩陣 C 并 輸出 C;C二A+B=(cij)m 某 n, 其中 cij二aij+bij求矩陣A、B的差。矩陣A和B能夠相減的條件是:m=p,n=q;矩 陣 A 和 B 如果不能相減,請給出提示信息;若能夠相減,則求差矩陣 C 并 輸出C;C=A-B=(cij)m 某 n, 其中 cij二aij-bij9軟件工程10-2班C語言程序設(shè)計(jì)課程設(shè)計(jì)題目求矩陣A、B的積。矩陣A和B能夠相乘的條件是:p=n;矩陣A和 B 如果不能相乘,請給出提示信息;若能夠相乘,則求積矩陣

20、D 并輸出 DD=A 某 B=(dij)m 某 q,其中 dij=Saik 某 bkj, k=1,2,n設(shè)計(jì)一個(gè)菜單,具有求矩陣的轉(zhuǎn)置、求矩陣的和、求矩陣的積、退 出等基本的功能。在求矩陣的和或求矩陣的積時(shí)要求能夠先提示輸入兩個(gè) 矩陣的,然后再進(jìn)行相應(yīng)的操作。數(shù)據(jù)匯總問題描述:在數(shù)據(jù)處理中經(jīng)常需要對(duì)大量數(shù)據(jù)進(jìn)行匯總,將相同關(guān)鍵字記錄的某 些數(shù)據(jù)項(xiàng)的值疊加起來,生成一個(gè)分類匯總表。實(shí)現(xiàn)要求:編寫實(shí)現(xiàn)將數(shù)據(jù)記錄插入到數(shù)據(jù)文件的最后的函數(shù);編寫以收款機(jī)為單位的數(shù)據(jù)分類處理函數(shù)。構(gòu)造n個(gè)單鏈表,每個(gè) 鏈表保存一臺(tái)收款機(jī)的銷售記錄,這n個(gè)單鏈表的頭指針存放在一個(gè)指針 數(shù)組中,通過數(shù)組的下標(biāo)就可以知道是哪

21、臺(tái)收款機(jī)。讀取數(shù)據(jù)文件的記錄 將所有的銷售記錄(數(shù)據(jù)文件中的全部記錄)分解插入到n個(gè)單鏈表;編寫以商品為單位的數(shù)據(jù)分類處理函數(shù)。構(gòu)造m個(gè)單鏈表,每個(gè)鏈 表保存一種商品的銷售記錄,這m個(gè)單鏈表的頭指針存放在一個(gè)指針數(shù)組 中,通過數(shù)組的下標(biāo)就可以知道是哪種商品。讀取數(shù)據(jù)文件的記錄,將所 有的銷售記錄(數(shù)據(jù)文件中的全部記錄)分解插入到 m 個(gè)單鏈表;統(tǒng)計(jì)每臺(tái)收款機(jī)的銷售總額;以收款機(jī)為單位,將所有收款機(jī)按銷售總額的非遞減順序構(gòu)造一個(gè) 單鏈表并輸出;10軟件工程10-2班C語言程序設(shè)計(jì)課程設(shè)計(jì)題目以商品為單位,統(tǒng)計(jì)每種商品的銷售總額;以商品為單位,將所有銷售的商品按銷售總額的非遞減順序構(gòu)造一 個(gè)單鏈表

22、并輸出;設(shè)計(jì)一個(gè)菜單,具有上述要求的所有功能、退出系統(tǒng)等最基本的功 能。13joeph 環(huán) 題目之一:問題描述:實(shí)現(xiàn)要求:輸出形式:建立一個(gè)輸出函數(shù),將正確的序列輸出。輸出形式:建立一個(gè)輸出函數(shù),將正確的序列輸出。測試數(shù)據(jù):m 的初值為 20,n=7,7 個(gè)人的密碼依次為 3,1,7,2,4,7,4,首先m=6,則正確的輸出是什么?題目之二:11軟件工程10-2班C語言程序設(shè)計(jì)課程設(shè)計(jì)題目問題描述:實(shí)現(xiàn)要求:輸出形式:建立一個(gè)輸出函數(shù),將正確的序列輸出。輸出形式:建立一個(gè)輸出函數(shù),將正確的序列輸出。測試數(shù)據(jù):m 的初值為 31,n=7,7 個(gè)人的密碼依次為 3,1,7,2,4,7,4,首先m=

23、6,則正確的輸出是什么?隊(duì)列及其操作隊(duì)列(Queue):也是運(yùn)算受限的線性表。是一種先進(jìn)先出 (FirtlnFirtOut,簡稱FIFO)的線性表。只允許在表的一端進(jìn)行插入,而 在另一端進(jìn)行刪除。隊(duì)首(front):允許進(jìn)行刪除的一端稱為隊(duì)首。隊(duì)尾 (rear):允許進(jìn)行插入的一端稱為隊(duì)尾。隊(duì)列中沒有元素時(shí)稱為空隊(duì)列。在空隊(duì)列中依次加入元素al,a2,,an之后,al是隊(duì)首兀素,an是隊(duì)尾兀素。顯然退出隊(duì)列的次 序也只能是a1,a2,an,即隊(duì)列的修改是依先進(jìn)先出的原則進(jìn)行的。12軟件工程10-2班C語言程序設(shè)計(jì)課程設(shè)計(jì)題目隊(duì)列的鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)簡稱為鏈隊(duì)列,它是限制僅在表頭進(jìn)行刪除操作 和表尾進(jìn)

24、行插入操作的單鏈表。需要兩類不同的結(jié)點(diǎn):數(shù)據(jù)兀素結(jié)點(diǎn),隊(duì)列的隊(duì)首指針和隊(duì)尾指針的 結(jié)點(diǎn),鏈隊(duì)的基本形式如下:空隊(duì)列只有一個(gè)兀素的隊(duì)列queue有 n 個(gè)兀素的隊(duì)列data 數(shù)據(jù)元素結(jié)點(diǎn) queuefro nt rear 指針結(jié)點(diǎn) queueaa1a2a3an 實(shí) 現(xiàn)要求:鏈隊(duì)列基本操作的實(shí)現(xiàn):鏈隊(duì)列的初始化,生成一個(gè)空鏈隊(duì)列;鏈 隊(duì)列的撤消,即刪除隊(duì)列中的所有結(jié)點(diǎn),僅留下指針結(jié)點(diǎn);鏈隊(duì)列的入隊(duì)操作,即在已知隊(duì)列的隊(duì)尾插入一個(gè)元素e,即修改 隊(duì)尾指針;鏈隊(duì)列的出隊(duì)操作,即返回隊(duì)首結(jié)點(diǎn)的元素值并刪除隊(duì)首結(jié)點(diǎn);(4) 設(shè)計(jì)一個(gè)菜單,具有上述要求的所有功能、退出系統(tǒng)等最基本的功能。13軟件工程10-2

25、班C語言程序設(shè)計(jì)課程設(shè)計(jì)題目背包問題的求解題目之一:問題描述:假設(shè)有一個(gè)能裝入總體積為T的背包和n件體積分別為w1,w2,wn 的物品,能否從n件物品中挑選若干件恰好裝滿背包,即使 w1+w2+wn二T,要求找出所有滿足上述條件的解。例如:當(dāng)T=10,各件 物品的體積1,8,4,3,5,2時(shí),可找到下列 4組解:(1,4,3,2) (1,4,5)(8,2)(3,5,2)。問題提示:可利用回溯法的設(shè)計(jì)思想來解決背包問題。首先將物品排成一列,然 后順序選取物品裝入背包,假設(shè)已選取了前 i 件物品之后背包還沒有裝滿 則繼續(xù)選取第 i+1 件物品,若該件物品太大不能裝入,則棄之而繼續(xù)選 取下一件,直至

26、背包裝滿為止。但如果在剩余的物品中找不到合適的物品 以填滿背包,則說明剛剛裝入背包的那件物品不合適,應(yīng)將它取出 棄之一邊,繼續(xù)再從它之后的物品中選取,如此重復(fù),直至求得滿足 條件的解,或者無解。假設(shè)有n件物品,這些物品的重量分別是W1,W2,Wn,物品的價(jià)值 分別是VI, V2,Vn。求從這n件物品中選取一部分物品的方案,使 得所選中的物品的總重量不超過限定的重量W(W問題提示:利用遞歸尋找物品的選擇方案。假設(shè)前面已有了多種選擇的方案,并 保留了其中總價(jià)值最大的方案于數(shù)組option中,該方案的總價(jià)值保存 于變量ma某_value14軟件工程10-2班C語言程序設(shè)計(jì)課程設(shè)計(jì)題目中。當(dāng)前正在考察

27、新方案,其物品選擇情況保存于數(shù)組eop中。假 設(shè)當(dāng)前方案已考慮了 i-1件物品,現(xiàn)在要考慮第i件物品:當(dāng)前方案已包 含的物品的重量之和為tw;因此,若其余物品都選擇是可能的話,本方 案所能達(dá)到的總價(jià)值的期望值設(shè)為tv。引入tv是當(dāng)一旦當(dāng)前方案的總價(jià) 值的期望值也小于前面方案的總價(jià)值ma某_value時(shí),繼續(xù)考察當(dāng)前方案 已無意義,應(yīng)終止當(dāng)前方案而去考察下一個(gè)方案。第 i 件物品的選擇有兩種可能:物品 i 被選擇。這種可能性僅當(dāng)包含它不會(huì)超過方案總重量的限制 才是可行的。選中之后繼續(xù)遞歸去考慮其余物品的選擇;物品 i 不被選擇。這種可能性僅當(dāng)不包含物品 i 也有可能找到價(jià)值 更大的方案的情況。猴子摘桃子問題描述:五只猴子一起摘了一堆桃子,因?yàn)樘?,五只猴子決定先睡一覺再分。 不久,其中一只猴子醒來了,它見別的猴子沒有醒來,便將一堆桃子平均 分成 5 份,結(jié)果多了一個(gè),就將多的這個(gè)吃了,拿走其中的一份并離開。 又不久,第二只猴子醒來了,它不知道有一個(gè)同伴已經(jīng)拿走過桃子,便又 將剩下的桃子平均分成 5 份,發(fā)現(xiàn)也多了一個(gè),同樣吃

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論