版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)報(bào)告題目一、學(xué)生管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn) 采用順序表結(jié)構(gòu)實(shí)現(xiàn)題目二、圖的算法實(shí)現(xiàn)采用鄰接表和鄰接矩陣結(jié)構(gòu)實(shí)現(xiàn)班 級(jí):_計(jì)算機(jī)101_姓 名:_劉文輝_指導(dǎo)教師:_董躍華_成 績:_ 信息工程學(xué)院 2012 年 06月18 日目 錄1需求分析31.1目的31.2功能32詳細(xì)設(shè)計(jì)32.1數(shù)據(jù)類型4 2.2總體功能流程圖42.3偽碼算法5 3調(diào)試分析143.1遇到的問題143.2算法的時(shí)空分析143.3改進(jìn)設(shè)想143.4經(jīng)驗(yàn)體會(huì)144測(cè)試結(jié)果155參考文獻(xiàn)16 1、 需求分析1.1、 目的設(shè)計(jì)并實(shí)現(xiàn)一個(gè)學(xué)生管理系統(tǒng),即定義一個(gè)包含學(xué)生信息(學(xué)號(hào),姓名,成績)的的順序表,可以不考慮重名的
2、情況 熟練查找和排序的數(shù)據(jù)結(jié)構(gòu)算法 熟練掌握數(shù)據(jù)結(jié)構(gòu) 復(fù)習(xí)C語言的各個(gè)知識(shí)點(diǎn)1.2、 功能(1) 根據(jù)指定學(xué)生個(gè)數(shù),逐個(gè)輸入學(xué)生信息;(2) 逐個(gè)顯示學(xué)生表中所有學(xué)生的相關(guān)信息;(3) 給定一個(gè)學(xué)生信息,插入到表中指定的位置;(4) 刪除指定位置的學(xué)生記錄;(5) 統(tǒng)計(jì)表中學(xué)生個(gè)數(shù);(6) 利用直接插入排序或者折半插入排序按照姓名進(jìn)行排序;(7) 利用快速排序按照學(xué)號(hào)進(jìn)行排序;(8) 根據(jù)姓名進(jìn)行折半查找,要求使用遞歸算法實(shí)現(xiàn),成功返回此學(xué)生的學(xué)號(hào)和成績;(9) 根據(jù)學(xué)號(hào)進(jìn)行折半查找,要求使用非遞歸算法實(shí)現(xiàn),成功返回此學(xué)生的姓名和成績。 2、詳細(xì)設(shè)計(jì)2.1、數(shù)據(jù)類型1、 本次程序采用順序存儲(chǔ)結(jié)
3、構(gòu),利用結(jié)構(gòu)體數(shù)組的優(yōu)點(diǎn)進(jìn)行設(shè)計(jì)。ADT List數(shù)據(jù)對(duì)象:D=ai|aiElemset,i=1,2,n,n>=0數(shù)據(jù)關(guān)系:R1=<a(i-1),a(i)>|a(i-1),a(i) D,i=2,n基本操作:Last_locate()操作結(jié)果:得到最后一個(gè)元素的位置基本操作:Stu_Insert()操作結(jié)果:學(xué)生信息的插入基本操作:Stu_Insert_appoint()操作結(jié)果:學(xué)生信息插入到指定位置基本操作:Stu_Delete_appoint()操作結(jié)果:刪除某位置上的學(xué)生信息基本操作:Stu_OutAll() 操作結(jié)果:學(xué)生信息的輸出基本操作:Stu_Count()操作
4、結(jié)果:學(xué)生個(gè)數(shù)的統(tǒng)計(jì)基本操作:InsertSort()操作結(jié)果:按姓名直接排序基本操作:Stu_Partition(int low,int high)操作結(jié)果:按學(xué)號(hào)快速排序基本操作:Stu_Search_Bin ()操作結(jié)果:非遞歸折半查找基本操作:DG_Stu_Search_Bin(char key10,int low,int high)操作結(jié)果:遞歸折半查找 ADT List2.2、總體功能流程圖1、功能模塊2、主界面流程圖2.3、偽碼算法1、插入操作的偽代碼及流程圖int Stu_Insert()scanf("%d",&n);for(i=0;i<n;i
5、+) scanf("%d",&stui.number); scanf("%s",&); scanf("%d",&stui.score);return 1;2、插入學(xué)生信息到指定位置的偽代碼及流程圖int Stu_Insert_appoint() scanf("%d",&j);/j為插入的位置 for(i=Last_locate();i<=j;i-)/進(jìn)行元素后移操作 tui+1.number=stui.number;stui+1.name15=stui.nam
6、e15;stui+1.score=stui.score;scanf("%d",&stuj.number);scanf("%s",&);scanf("%d",&stuj.score);3、刪除指定位置的學(xué)生信息的偽代碼及流程圖int Stu_Delete_appoint()scanf("%d",&j);free(stuj)for(i=j+1;i<=Last_locate();i+)stui-1=stui;return 1; 4、學(xué)生信息的全部結(jié)果輸出的偽代碼及流
7、程圖int Stu_OutAll()int i=0;while(stui.number)printf("%dtt",stui.number);printf("%stt",);printf("%dttn",stui.score);i+;return 1;5、學(xué)生數(shù)量統(tǒng)計(jì)的偽代碼及流程圖int Stu_Count()int i=0;while(stui.number)i+;printf("學(xué)生總?cè)藬?shù):t");printf("%d",i);return 1;6、快速排序的偽代碼及流程
8、圖int Score_Partition()Privotkey = stulow.key;While(low<high)While(low<high&&stuhigh.key>=privotkey) high;StulowßàStuhighWhile(low<high&&Stulow.key<=privotkey) +lowStulowßàStuhighreturn low;7、直接插入排序偽代碼及流程圖Void InsertSort()For(i=2;i<= Last_locate()
9、;+i)If(LT(stui.key,stu.i-1.key)Stu0=stuiStui=stui-1For(j=i-2;LT(stu0.key,stuj.key);-j)Stuj+1=stuj;Stuj+1=stu08、折半查找非遞歸偽代碼及流程圖int Search_Bin (SSTable ST, int key ) int low, high, mid; low = 1; high = ST.length; while (low <= high) mid = (low + high) / 2; if (key=ST.elemmid.key) return mid; else if
10、 (key<ST.elemmid.key) high = mid - 1; else low = mid + 1; return 0; 9、折半查找遞歸偽代碼及流程圖int DGSearch_Bin (SSTable ST,int key,int low,int high) int lo, hig, mi; low = 1; hig = ST.length; mid = (lo + hig) / 2; if(ST.elemmi.key=key) return mid; if(ST.elemmi.key>key) return D(ST,key,lo,mi-1); if(ST.ele
11、mmi.key<key) return D(ST,key,mid+1,high); return 0;3、 調(diào)試設(shè)計(jì)3.1、遇到的問題幾乎沒什么大問題3.2、算法的時(shí)空分析T(n)=O(n2)3.3、改進(jìn)設(shè)想在進(jìn)入某個(gè)功能模塊時(shí),或者某個(gè)功能的某個(gè)步驟時(shí),可以允許出現(xiàn)輸入錯(cuò)誤,因此,要實(shí)現(xiàn)進(jìn)入某個(gè)步驟時(shí)實(shí)現(xiàn)撤銷操作.3.4、經(jīng)驗(yàn)體會(huì)由于第一次寫這么復(fù)雜的程序,開始有點(diǎn)無從下手,在選擇合適的數(shù)據(jù)結(jié)構(gòu)的時(shí)候不知道怎么去選,只能一個(gè)一個(gè)的去試,最后從結(jié)合了C語言的結(jié)構(gòu)體和程序需要用到的算法中慢慢摸索到了合適的數(shù)據(jù)結(jié)構(gòu),寫程序時(shí)會(huì)出現(xiàn)好多小的語法問題或者邏輯問題,一點(diǎn)點(diǎn)邏輯問題就會(huì)讓人抓狂。但最后還是靜下心來梳理情緒,慢慢的找到了問題。開始的時(shí)候沒有好好理解折半插入排序。便把第0個(gè)位置也存了信息。導(dǎo)致哨兵沒地方放。然后又全部修改了。也許哨兵不一定要放在第0個(gè)位置。但開始遇到的
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(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)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 采購合同的續(xù)簽規(guī)定3篇
- 采購合同跟蹤的創(chuàng)新發(fā)展思路3篇
- 采購合同跟蹤的實(shí)踐探索與思考3篇
- 醫(yī)學(xué)影像隱私訪問控制-洞察分析
- 采購合同流程的監(jiān)控與評(píng)估3篇
- 采購合同跟單中的問題處理與改進(jìn)實(shí)踐3篇
- 稀土礦床地質(zhì)特征研究-洞察分析
- 土壤侵蝕防治-洞察分析
- 采購合同執(zhí)行流程的奧秘3篇
- 采購合同中的風(fēng)險(xiǎn)管理與控制3篇
- 七年級(jí)上冊(cè)語文第三單元知識(shí)速記清單(統(tǒng)編版2024)
- JJF 2143-2024 微波消解儀溫度參數(shù)校準(zhǔn)規(guī)范
- 2023-2024學(xué)年海南省陵水縣九年級(jí)(上)期末物理試卷
- 廣東省惠州市惠城區(qū)尚書實(shí)驗(yàn)分校2023-2024學(xué)年八年級(jí)上學(xué)期12月練習(xí)數(shù)學(xué)試卷
- 職業(yè)技能大賽電池制造工職業(yè)技能競(jìng)賽理論知識(shí)題及答案
- 2024秋期國家開放大學(xué)專科《高等數(shù)學(xué)基礎(chǔ)》一平臺(tái)在線形考(形考任務(wù)一至四)試題及答案
- 九年級(jí)上冊(cè)部編版歷史-1-4單元(1-12課)復(fù)習(xí)
- 【課件】第六單元碳和碳的氧化物+新版教材單元分析-2024-2025學(xué)年九年級(jí)化學(xué)人教版(2024)上冊(cè)
- DL-T 380-2010接地降阻材料技術(shù)條件
- DPtech-FW1000系列防火墻系統(tǒng)操作手冊(cè)
評(píng)論
0/150
提交評(píng)論