版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1/1數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)報(bào)告數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)報(bào)告書
學(xué)校青島科技高校
學(xué)號(hào)
姓名
指導(dǎo)老師劉勇
課程設(shè)計(jì)的名稱:同學(xué)成果管理
1.問題描述:
同學(xué)成果管理是學(xué)校教務(wù)管理的重要組成部分,其處理信息量很大,該題目是對(duì)同學(xué)的成果管理作一個(gè)簡(jiǎn)潔的模擬,其中同學(xué)信息包括:學(xué)號(hào)、姓名與成果。成果分為課程1成果、課程2成果、課程3成果和總成果。要求設(shè)計(jì)一個(gè)簡(jiǎn)易的成果管理系統(tǒng),輸入各門功課的成果后能自動(dòng)求出總成果,并通過菜單選擇操作方式完成下列功能:
①登記同學(xué)成果;
②②查詢同學(xué)成果;
③插入同學(xué)成果;
④④刪除同學(xué)成果;
⑤按總成果降序排序。
2.基本要求:
該題目涉及到單鏈表的各種操作,包括單鏈表的建立、結(jié)點(diǎn)的查找、插入、刪除等基本運(yùn)算。首先建立同學(xué)成果單鏈表,鏈表中每個(gè)結(jié)點(diǎn)由4個(gè)域組成,分別為:學(xué)號(hào)、姓名、成果、存放下一個(gè)結(jié)點(diǎn)地址的next域。然后將要求完成的四項(xiàng)功能寫成四個(gè)函數(shù),登記同學(xué)成果對(duì)應(yīng)建立同學(xué)單鏈表的功能,后三個(gè)功能分別對(duì)應(yīng)單鏈表的查詢、插入與刪除三大基本操作。
3.算法思想:
Creat函數(shù)算法思想:從0至n循環(huán)輸入n個(gè)同學(xué)的三科成果,并且計(jì)算總成果。
Inquiry函數(shù)算法思想:將學(xué)號(hào)與已輸入的全部學(xué)號(hào)做比較,一旦相同則輸出該學(xué)號(hào)信息,否則顯示沒有該同學(xué)信息。
Insert函數(shù)算法思想:生成一個(gè)新節(jié)點(diǎn),然后將其接到原有鏈表尾部。
Delete函數(shù)算法思想:通過ID找到該節(jié)點(diǎn),并刪去該節(jié)點(diǎn)。
Sort(函數(shù)算法思想:利用排序算法對(duì)每一個(gè)節(jié)點(diǎn)作比較并更換其在鏈表中的位置挨次。
4.模塊劃分
(1)LinkListCreat(LinkListT,intn)其功能是制造節(jié)點(diǎn),錄入成果。
(2)voidInquiry(LinkListT)其功能是查詢與已知ID全都的同學(xué)信息并展現(xiàn)出來(lái)。(3)voidInsert(LinkListT,intn)其功能是添加若干個(gè)同學(xué)的成果信息。
(4)voidDelete(LinkListT)其功能是刪除若干個(gè)同學(xué)的成果信息。
(5)voidSort(LNode*p)其功能是排序并展現(xiàn)若干個(gè)同學(xué)的成果信息。
5.數(shù)據(jù)結(jié)構(gòu):
數(shù)據(jù)類型LNode定義如下:
typedefstructLNode
{
intID;
charname[20];
intscore1;
intscore2;
intscore3;
inttotal;
structLNode*next;
}LNode,*LinkList;
6.源程序:
源代碼
//main.c
#include
#include
typedefstructLNode
{
intID;
charname[20];
intscore1;
intscore2;
intscore3;
inttotal;
structLNode*next;
}LNode,*LinkList;
LinkListCreat(LinkListT,intn);voidDelete(LinkListT);
voidInquiry(LinkListT);
voidInsert(LinkListT,intn);voidSort(LNode*p);
voidInsert(LinkListT,intn){
inti;
LNode*r=T,*p;
while((r->next)!=NULL)
{
r=r->next;
}
for(i=0;iname);
printf("Pleaseenterthestudent'sscore1:");
scanf("%d",
printf("Pleaseenterthestudent'sscore2:");
scanf("%d",
printf("Pleaseenterthestudent'sscore3:");
scanf("%d",
p->total=p->score1+p->score2+p->score3;
printf("Thetotalscoreis%d\n",p->total);
p->next=NULL;
r->next=p;
r=p;
}
printf("\nInsertiscomplete!");
}
voidInquiry(LinkListT)
{
intid;
printf("PleaseenterthestudentIDyouwanttoinquireabout:");
scanf("%d",
LNode*p=T;
p=p->next;
while(p!=NULL)
{
if(p->ID==id)
{
printf("\nThestudentscoresinformationhasbeensuccessfullyinquired!\n");
printf("ID:%d\nName:%s\nScore1:%d\nScore2:%d\nScore
3:%d\n",p->ID,p->name,p->score1,p->score2,p->score3);
break;
}
else
{
p=p->next;
}
}
if(!p)
printf("Sorry!Didnotinquirythestudentscoresinformation!");}
。。。。。。獵取源程序:1135047472
7.測(cè)試狀況:
截圖:
程序輸出為:Num:1
ID:1Name:n1Score1:78Score2:89Score3:84
total:251
Num:2
ID:3
Name:n3
Score1:68
Score2:89
Score3:90
total:247
課程設(shè)計(jì)的名稱:停車場(chǎng)的管理
1.問題描述:
設(shè)停車場(chǎng)內(nèi)只有一個(gè)可停放n輛汽車的狹長(zhǎng)通道,且只有一個(gè)大門可供汽車進(jìn)出。汽車在停車場(chǎng)內(nèi)按車輛到達(dá)時(shí)間的先后挨次,依次由北向南排列(大門在最南端,最先到達(dá)的第一輛車停放在車場(chǎng)的最北端),若車場(chǎng)內(nèi)已停滿n輛汽車,則后來(lái)的汽車只能在門外的便道上等候,一旦有車開走,則排在便道上的第一輛車即可開入;
當(dāng)停車場(chǎng)內(nèi)某輛車要離開時(shí),在它之后開入的車輛必需先退出車場(chǎng)為它讓路,待該輛車開出大門外,其它車輛再按原次序進(jìn)入車場(chǎng),每輛停放在車場(chǎng)的車在它離開停車場(chǎng)時(shí)必需按它停留的時(shí)間長(zhǎng)短交納費(fèi)用。
試為停車場(chǎng)編制按上述要求進(jìn)行管理的模擬程序。
2.基本要求:
綜合利用棧和隊(duì)列模擬停車場(chǎng)管理,學(xué)習(xí)利用棧和隊(duì)列解決實(shí)際問題。
以棧模擬停車場(chǎng),以隊(duì)列模擬車場(chǎng)外的便道,根據(jù)從終端讀入的輸入數(shù)據(jù)序列進(jìn)行模擬管理。每一組輸入數(shù)據(jù)包括三個(gè)數(shù)據(jù)項(xiàng):汽車“到達(dá)”或“離去”信息、汽車牌照號(hào)碼及到達(dá)或離去的時(shí)刻,對(duì)每一組輸入數(shù)據(jù)進(jìn)行操作后的輸出數(shù)據(jù)為:若是車輛到達(dá),則輸出汽車在停車場(chǎng)內(nèi)或便道上的停車位置;若是車離去;則輸出汽車在停車場(chǎng)內(nèi)停留的時(shí)間和應(yīng)交納的費(fèi)用(在便道上停留的時(shí)間不收費(fèi))。棧以挨次結(jié)構(gòu)實(shí)現(xiàn),隊(duì)列以鏈表實(shí)現(xiàn)。
需另設(shè)一個(gè)棧,臨時(shí)停放為給要離去的汽車讓路而從停車場(chǎng)退出來(lái)的汽車,也用挨次存儲(chǔ)結(jié)構(gòu)實(shí)現(xiàn)。輸入數(shù)據(jù)按到達(dá)或離去的時(shí)刻有序。棧中每個(gè)元素表示一輛汽車,包含兩個(gè)數(shù)據(jù)項(xiàng):汽車的牌照號(hào)碼和進(jìn)入停車場(chǎng)的時(shí)刻。
3.算法思想:
停車場(chǎng)運(yùn)用棧的算法思想管理車輛信息;便道運(yùn)用隊(duì)列的算法思想管理等待進(jìn)入停車場(chǎng)的車輛信息;臨時(shí)停放讓路的車輛信息也用隊(duì)列算法思想管理。
4.模塊劃分:
voidPRINT(CarNode*p,introom其功能為打印出場(chǎng)車的信息
voidArrive(SeqStackCar*Enter,LinkQueueCar*W)其功能為記錄進(jìn)場(chǎng)車和等待進(jìn)場(chǎng)車信息voidLeave(SeqStackCar*Enter,SeqStackCar*Temp,LinkQueueCar*W)其功能為記錄出場(chǎng)車信息
voidList1(SeqStackCar*S)其功能為顯示存車信息
5.數(shù)據(jù)結(jié)構(gòu):
(1)數(shù)據(jù)類型Time定義如下:
typedefstructtime
{
inthour;
intmin;
}Time;
(2)數(shù)據(jù)類型CarNode定義如下:
typedefstructnode
{
charnum[10];
Timereach;
Timeleave;
}CarNode;
(3)數(shù)據(jù)類型SeqStackCar定義如下:
typedefstructNODE
{
CarNode*stack[MAX+1];
inttop;
}SeqStackCar;
(4)數(shù)據(jù)類型QueueNode定義如下:
typedefstructcar
{
CarNode*data;
structcar*next;
}QueueNode;
(5)數(shù)據(jù)類型LinkQueueCar定義如下:
typedefstructNode
{
QueueNode*head;
QueueNode*rear;
}LinkQueueCar;
6.源程序:
源代碼
獵取源程序請(qǐng)加:11350474727.測(cè)試狀況:
截圖:
程序輸出為:
TheSystemofparking
1.cararrive
2.carleave
3.showcar
0.quitsystem
ParkingLot
place:1arrivedtime:5:45number:2
place:2arrivedtime:9:14number:1
Returnmainmeun(1.return0.quit)
課程設(shè)計(jì)的名稱:二叉樹的基本操作的實(shí)現(xiàn)
1.問題描述:
?在主程序中編寫一個(gè)簡(jiǎn)潔的菜單,將有關(guān)二叉樹的操作?建立一棵二叉樹的存儲(chǔ)結(jié)構(gòu)
?遍歷一棵二叉樹(包括層次遍歷)
?統(tǒng)計(jì)二叉樹葉子結(jié)點(diǎn)的個(gè)數(shù)
?求二叉樹的深度
?子樹交換
2.基本要求:
?建立一棵二叉樹的存儲(chǔ)結(jié)構(gòu)
?遍歷一棵二叉樹(包括層次遍歷)
?統(tǒng)計(jì)二叉樹葉子結(jié)點(diǎn)的個(gè)數(shù)
?求二叉樹的深度
?子樹交換
3.算法思想:
CreatBiTree運(yùn)用遞歸制造二叉樹的每一個(gè)節(jié)點(diǎn);
Exchange通過遞歸交換左右子樹;
Depth通過遞歸計(jì)算二叉樹的深度。
InorderTraverse遞歸中序遍歷二叉樹。
PreOrderTraverse遞歸先續(xù)遍歷二叉樹。PostOrderTraverse遞歸后續(xù)遍歷二叉樹。
4.模塊劃分:
(1)BiTreeCreatBiTree(BiTreeT)其功能是制造一顆二叉樹;(2)intDepth(BiTreeT)其功能是計(jì)算一顆二叉樹的深度(3)voidExchange(BiTreeT)其功能是交換左右子樹
(4)voidInorderTraverse(BiTreeT)其功能是中序遍歷(5)voidPreOrderTraverse(BiTreeT)其功能是前序遍歷
(6)voidPostOrderTraverse(BiTreeT)其功能是后序遍歷5.數(shù)據(jù)結(jié)構(gòu):
(1)數(shù)據(jù)類型BiTNode定義如下:
typedefstructBiTNode
{
chardata;
structBiTNode*lchild,*rchild;
}BiTNode,*BiTree;
6.源程序:
源代碼獵取源程序請(qǐng)加:1135047472
7.測(cè)試狀況:
截圖:
程序輸出為:
Pleaseinputthenumofyourchoice:5
LevelOrder:ACBED
Pleaseinputthenumofyourchoice:7
Depthis3
Pleaseinputthenumofyourchoice:6
TheNodeCountis5
課程設(shè)計(jì)的名稱:圖的基本操作的實(shí)現(xiàn)
1.問題描述:
在主程序中建立一個(gè)菜單,實(shí)現(xiàn)圖的基本操作
2.基本要求:
圖的基本操作,包括:
建立圖的存儲(chǔ)結(jié)構(gòu),
實(shí)現(xiàn)圖的深度優(yōu)先搜尋遍歷,
廣度優(yōu)先搜尋遍歷
利用圖的拓?fù)渑判蝌?yàn)證圖中是否存在環(huán)
3.算法思想:
createGraph通過for循環(huán)利用鏈表結(jié)構(gòu)錄入點(diǎn)和邊的數(shù)據(jù)。
BFS和DFS以及TopologicalSort利用遞歸思想實(shí)現(xiàn)遍歷和排序。
4.模塊劃分:
voidcreateGraph其功能為錄入點(diǎn)和邊以及其關(guān)系的數(shù)據(jù)。voidBFS(ALGraph
intarcs[40][40];
intvexnum,arcnum;
intkind;
}MGRAPH;
(2)數(shù)據(jù)類型LNode定義如下:
typedefstruct
{
intadjvex;
structnode3*next;
}EDGENODE;
(3)數(shù)據(jù)類型LNode定義如下:
typedefstruct
{
intvertex;
EDGENODE*link;
intid;
}VEXNODE;
(4)數(shù)據(jù)類型LNode定義如下:
typedefstruct
{
VEXNODEadjlist[40];
intvexnum,arcnum;
intkind;
}ADJGRAPH;
6.源程序:
源代碼:獵取源請(qǐng)加:1135047472
7.測(cè)試狀況:
截圖:
程序輸出為:
請(qǐng)輸入圖的頂點(diǎn)個(gè)數(shù):4
請(qǐng)輸入邊數(shù):4
第1個(gè)頂點(diǎn)的名稱:a
第2個(gè)頂點(diǎn)的名稱:b
第3個(gè)頂點(diǎn)的名稱:c
第4個(gè)頂點(diǎn)的名稱:d
請(qǐng)輸入第1條邊的起始位置與終止位置:ab
請(qǐng)輸入第2條邊的起始位置與終止位置:ac
請(qǐng)輸入第3條邊的起始位置與終止位置:ad
請(qǐng)輸入第4條邊的起始位置與終止位置:bc
深度遍歷排序:0123
廣度遍歷排序:0123
該有向圖無(wú)回路
課程設(shè)計(jì)的名稱:哈希查找的設(shè)計(jì)與實(shí)現(xiàn)1.問題描述:
編寫一個(gè)程序?qū)崿F(xiàn)哈希表的相關(guān)運(yùn)算。
2.基本要求:
完成如下功能:
(1)建立{16,74,60,43,54,90。46,31,29,88,77}哈希表A[0..12],哈希函數(shù)為H(k)=key%p,并用線性探查法解決沖突;
(2)在上述哈希表中查找關(guān)鍵字為29的記錄;
(3)在上述哈希表中刪除關(guān)鍵字為77的記錄,再將其插入。
3.算法思想:
CreatHT通過m次循環(huán)對(duì)哈希表初始化。
InsertHT通過循環(huán)體將數(shù)組內(nèi)元素放入哈希表中
SearchHT采納線性探查法找下一個(gè)地址
DeleteHT調(diào)用SearchHT找到該關(guān)鍵字并刪除
DispHT利用循環(huán)體輸出哈希表
4.模塊劃分:
voidCreatHT(HashTableha,intx,intn,intm,intp)創(chuàng)建哈希表;
intInsertHT(Ha
溫馨提示
- 1. 本站所有資源如無(wú)特殊說明,都需要本地電腦安裝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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 含子女撫養(yǎng)的離婚協(xié)議書模板
- 企業(yè)運(yùn)營(yíng)管理咨詢協(xié)議樣本
- 2024工程挖掘機(jī)租賃合同標(biāo)準(zhǔn)范文
- 新住宅按揭貸款合同樣本
- 2024錄制合同模板
- 2024廣告刊登協(xié)議范本
- 動(dòng)物醫(yī)院聘用合同2024年
- 省級(jí)代理合作協(xié)議書的注意事項(xiàng)
- 我國(guó)自學(xué)考試網(wǎng)上輔導(dǎo)協(xié)議書樣本大全
- 2023年高考地理第一次模擬考試卷-(河北A卷)(全解全析)
- 每日消防安全巡查記錄表
- 起重作業(yè)吊裝令
- 三角函數(shù)知識(shí)點(diǎn)復(fù)習(xí)總結(jié)填空
- 大學(xué)鋼琴即興伴奏教案
- 最新VTE指南解讀(靜脈血栓栓塞癥的臨床護(hù)理指南解讀)
- 博鰲亞洲論壇海南年會(huì)PPT模板
- 新教材人教版高中化學(xué)選擇性必修三全冊(cè)教學(xué)課件
- 2023年銀行業(yè)風(fēng)險(xiǎn)管理(中級(jí))考試考試題庫(kù)(真題整理)
- 監(jiān)護(hù)儀培訓(xùn)-PPT課件
- 溝通技巧游戲
- 教室的衛(wèi)生調(diào)查及測(cè)量方法林蓉
評(píng)論
0/150
提交評(píng)論