![【數(shù)據(jù)結(jié)構(gòu)】基于緊縮圖的鄰接表的拓?fù)渑判騙第1頁(yè)](http://file3.renrendoc.com/fileroot_temp3/2021-12/10/58b0c60c-3181-441f-8622-396fffa19968/58b0c60c-3181-441f-8622-396fffa199681.gif)
![【數(shù)據(jù)結(jié)構(gòu)】基于緊縮圖的鄰接表的拓?fù)渑判騙第2頁(yè)](http://file3.renrendoc.com/fileroot_temp3/2021-12/10/58b0c60c-3181-441f-8622-396fffa19968/58b0c60c-3181-441f-8622-396fffa199682.gif)
![【數(shù)據(jù)結(jié)構(gòu)】基于緊縮圖的鄰接表的拓?fù)渑判騙第3頁(yè)](http://file3.renrendoc.com/fileroot_temp3/2021-12/10/58b0c60c-3181-441f-8622-396fffa19968/58b0c60c-3181-441f-8622-396fffa199683.gif)
![【數(shù)據(jù)結(jié)構(gòu)】基于緊縮圖的鄰接表的拓?fù)渑判騙第4頁(yè)](http://file3.renrendoc.com/fileroot_temp3/2021-12/10/58b0c60c-3181-441f-8622-396fffa19968/58b0c60c-3181-441f-8622-396fffa199684.gif)
![【數(shù)據(jù)結(jié)構(gòu)】基于緊縮圖的鄰接表的拓?fù)渑判騙第5頁(yè)](http://file3.renrendoc.com/fileroot_temp3/2021-12/10/58b0c60c-3181-441f-8622-396fffa19968/58b0c60c-3181-441f-8622-396fffa199685.gif)
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、.東北大學(xué)信息科學(xué)與工程學(xué)院數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)報(bào)告題目 基于緊縮圖的鄰接表的拓?fù)渑判蛘n題組長(zhǎng) 宋振課題組成員 常玉穎 于紅爽專業(yè)名稱 計(jì)算機(jī)科學(xué)與技術(shù)班級(jí) 計(jì)1307指導(dǎo)教師 楊雷2015 年 1月:課程設(shè)計(jì)任務(wù)書(shū)題目:基于緊縮圖的拓?fù)渑判騿?wèn)題描述:緊縮鄰接表將圖的每個(gè)頂點(diǎn)的鄰接表緊湊的存儲(chǔ)在兩個(gè)向量list和h中。其中向量list依次存儲(chǔ)頂點(diǎn)0,1,n-1的鄰接頂點(diǎn)。向量單元hi存儲(chǔ)頂點(diǎn)i的鄰接表在向量list中的起始位置。設(shè)計(jì)要求:設(shè)計(jì)基于緊縮圖的鄰接表的拓?fù)渑判虺绦?。?)采用STL的圖、棧等數(shù)據(jù)結(jié)構(gòu)。(2)實(shí)現(xiàn)STL的緊縮鄰接表結(jié)構(gòu)圖類(lèi)。(3)實(shí)現(xiàn)緊縮圖的鄰接表結(jié)構(gòu)的拓?fù)渑判?。指?dǎo)教師簽
2、字:年月日目錄1 課題概述1.1 課題任務(wù)1.2 課題原理1.3 相關(guān)知識(shí)2 需求分析2.1 課題調(diào)研2.2 用戶需求分析3 方案設(shè)計(jì)3.1 總體功能設(shè)計(jì)3.2 數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)3.3 函數(shù)原型設(shè)計(jì)3.4 主算法設(shè)計(jì)3.5 用戶界面設(shè)計(jì)4 方案實(shí)現(xiàn)4.1 開(kāi)發(fā)環(huán)境與工具4.2 程序設(shè)計(jì)關(guān)鍵技術(shù)4.3 個(gè)人設(shè)計(jì)實(shí)現(xiàn)(按組員分工)4.3.1 宋振設(shè)計(jì)實(shí)現(xiàn)5 測(cè)試與調(diào)試5.1 個(gè)人測(cè)試(按組員分工)5.1.1 宋振測(cè)試5.2 組裝與系統(tǒng)測(cè)試5.3 系統(tǒng)運(yùn)行6 課題總結(jié)6.1 課題評(píng)價(jià)6.2 團(tuán)隊(duì)協(xié)作6.3 團(tuán)隊(duì)協(xié)作6.4 個(gè)人設(shè)計(jì)小結(jié)(按組員分工)6.4.1 宋振設(shè)計(jì)小結(jié)7 附錄A 課題任務(wù)分工A-1
3、課題程序設(shè)計(jì)分工A-2 課題報(bào)告分工 附錄B 課題設(shè)計(jì)文檔(光盤(pán))B-1課程設(shè)計(jì)報(bào)告(電子版)B-2源程序代碼(*.H,*.CPP)B-3工程與可執(zhí)行文件)B-4屏幕演示錄像文件(可選)附錄C 用戶操作手冊(cè)(可選)C.1 運(yùn)行環(huán)境說(shuō)明C.2 操作說(shuō)明1課題概述1.1 課題任務(wù)基于緊縮圖的鄰接表的拓?fù)渑判騿?wèn)題【問(wèn)題描述】緊縮鄰接表將圖的每個(gè)頂點(diǎn)的鄰接表緊湊的存儲(chǔ)在兩個(gè)向量list和h中。其中向量list依次存儲(chǔ)頂點(diǎn)0,1,n-1的鄰接頂點(diǎn)。向量單元hi存儲(chǔ)頂點(diǎn)i的鄰接表在向量list中的起始位置?!驹O(shè)計(jì)要求】設(shè)計(jì)基于緊縮圖的鄰接表的拓?fù)渑判虺绦颉#?)采用STL的圖、棧等數(shù)據(jù)結(jié)構(gòu)。(2)實(shí)現(xiàn)ST
4、L的緊縮鄰接表結(jié)構(gòu)圖類(lèi)。(3)實(shí)現(xiàn)緊縮圖的鄰接表結(jié)構(gòu)的拓?fù)渑判颉?.2 課題原理將圖的結(jié)點(diǎn)存入兩個(gè)向量之中,List用以存放全部結(jié)點(diǎn),H用以存放結(jié)點(diǎn)間的相互關(guān)聯(lián)關(guān)系,通過(guò)輸入一系列結(jié)點(diǎn)信息及其發(fā)出弧的信息,確定每個(gè)結(jié)點(diǎn)的入度,進(jìn)行拓?fù)渑判蛐蛄械妮敵觥M負(fù)渑判蛩惴╞ool TopologicalSort(ALGraph G) 中,先輸出入度為零的頂點(diǎn),而后輸出新的入度為零的頂點(diǎn),此操作可利用棧實(shí)現(xiàn)。該算法大體思想為:遍歷有向圖各頂點(diǎn)的入度,將所有入度為零的頂點(diǎn)入棧;棧非空時(shí),輸出一個(gè)頂點(diǎn),并對(duì)輸出的頂點(diǎn)數(shù)計(jì)數(shù);該頂點(diǎn)的所有鄰接點(diǎn)入度減一,若減一后入度為零則入棧;重復(fù)、,直到棧為空,若輸出的頂點(diǎn)數(shù)
5、與圖的頂點(diǎn)數(shù)相等則該圖可拓?fù)渑判?,否則圖中有環(huán)。1.3相關(guān)知識(shí)數(shù)據(jù)結(jié)構(gòu):棧,拓?fù)渑判颉3绦蛘Z(yǔ)言:C+。STL中的向量模板。2需求分析2.1課題調(diào)研對(duì)一個(gè)有向無(wú)環(huán)圖 G進(jìn)行拓?fù)渑判颍菍中所有頂點(diǎn)排成一個(gè)線性序列,使得圖中任意一對(duì)頂點(diǎn)u和v,若邊(u,v)E(G),則u在線性序列中出現(xiàn)在v之前。通常,這樣的線性序列稱為滿足拓?fù)浯涡虻男蛄校?jiǎn)稱拓?fù)湫蛄?。?jiǎn)單的說(shuō),由某個(gè)集合上的一個(gè)偏序得到該集合上的一個(gè)全序,這個(gè)操作稱之為拓?fù)渑判颉N覀冃〗M內(nèi)通過(guò)查閱書(shū)籍課本和網(wǎng)上資料,了解到拓?fù)渑判虻母拍睢?2.2 用戶需求分析 拓?fù)渑判蛟诖笮凸こ讨杏袕V泛的應(yīng)用拓?fù)渑判虺S脕?lái)確定一個(gè)依賴關(guān)系集中,事物發(fā)生的順序
6、。例如,在日常工作中,可能會(huì)將項(xiàng)目拆分成A、B、C、D四個(gè)子部分來(lái)完成,但A依賴于B和D,C依賴于D。為了計(jì)算這個(gè)項(xiàng)目進(jìn)行的順序,可對(duì)這個(gè)關(guān)系集進(jìn)行拓?fù)渑判颍贸鲆粋€(gè)線性的序列,則排在前面的任務(wù)就是需要先完成的任務(wù)。用戶需求如下:用戶可以通過(guò)輸入每個(gè)結(jié)點(diǎn)和弧的信息講結(jié)點(diǎn)放入圖中,再通過(guò)棧實(shí)現(xiàn)拓?fù)渑判蛐蛄械妮敵觯豢梢栽谕負(fù)渑判驎r(shí)同時(shí)輸出結(jié)點(diǎn)信息;該程序應(yīng)該有對(duì)用戶錯(cuò)誤輸入的辨別糾錯(cuò)功能;程序應(yīng)具有演示功能和調(diào)試功能;程序應(yīng)具有良好的人機(jī)接口。程序應(yīng)能所見(jiàn)即所得的輸入數(shù)據(jù)。這就如同在VS中可視化的開(kāi)發(fā)圖形界面一樣。程序應(yīng)能精確的輸入數(shù)據(jù)。每一個(gè)點(diǎn)的坐標(biāo),每條弧的權(quán)值都應(yīng)能由用戶精確控制。程序應(yīng)能友
7、好的展現(xiàn)結(jié)果。程序應(yīng)能顯示制作者的信息。3方案設(shè)計(jì)3.1 總體功能設(shè)計(jì)第一部分是根據(jù)輸入的邊的信息情況對(duì)各個(gè)點(diǎn)進(jìn)行入度統(tǒng)計(jì);第二部分是實(shí)現(xiàn)拓?fù)渑判蚬δ茉O(shè)計(jì)的流程圖如下:開(kāi)始設(shè)輔助數(shù)組indegree記錄圖的各頂點(diǎn)的入度值,并將indegree數(shù)組各變量賦初值。輸入圖的頂點(diǎn)數(shù)、邊數(shù)建立一個(gè)棧,存儲(chǔ)圖的頂點(diǎn)的序號(hào)用鄰接表法建圖,并計(jì)算出indegree數(shù)組中各變量值根據(jù)indegree數(shù)組將入度為0的頂點(diǎn)入棧count對(duì)輸出頂點(diǎn)計(jì)數(shù)0=>count棧不空刪除棧頂元素,賦給icount+將與第i個(gè)頂點(diǎn)鏈接的各頂點(diǎn)入度減1輸出第i個(gè)頂點(diǎn)值頂點(diǎn)入度為0頂點(diǎn)序號(hào)入棧count<G.vexnum
8、輸出“拓?fù)渑判虺晒Α陛敵觥巴負(fù)渑判虿怀晒Α苯Y(jié)束3.2 數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)向量結(jié)構(gòu),用以存儲(chǔ)結(jié)點(diǎn)順序及關(guān)系;圖類(lèi)結(jié)構(gòu),主要用以對(duì)用戶輸入的結(jié)點(diǎn)信息進(jìn)行存儲(chǔ);棧結(jié)構(gòu),用來(lái)根據(jù)圖的入度機(jī)型拓?fù)渑判蜉敵觥?.3 函數(shù)原型設(shè)計(jì)函數(shù)原型參數(shù)說(shuō)明功能描述bool TopologicalSort(Graph v,vector <int> indegree)兩向量存儲(chǔ)的圖v和存儲(chǔ)入度indegree的向量在函數(shù)中實(shí)現(xiàn)拓?fù)渑判?,返回是否存在環(huán)bool IsDigit(string &str)字符類(lèi)型的&str判斷str是否為數(shù)字3.4主算法設(shè)計(jì) 在建立鄰接表輸入之前,表頭向量的每個(gè)結(jié)點(diǎn)的初始
9、狀態(tài)為數(shù)據(jù)域VEX(入度)為零,指針域NXET為空,每輸入一條弧<J,K>建立鏈表的一個(gè)結(jié)點(diǎn),同時(shí)令k的入度加1,因此在輸入結(jié)束時(shí),表頭的兩個(gè)域分別表示頂點(diǎn)的入度和指向鏈表的第一個(gè)結(jié)點(diǎn)指針。 在拓?fù)渑判虻倪^(guò)程之中,輸入入度為零(即沒(méi)有前趨)的頂點(diǎn),同時(shí)將該頂點(diǎn)的直接后繼的入度減1。 (1) 查鄰接表中入度為零的頂點(diǎn),并進(jìn)棧。 (2) 當(dāng)棧為空時(shí),進(jìn)行拓?fù)渑判颉?#160; 退棧,輸出棧頂元素V。 在鄰接表中查找Vj的直接后繼Vk,將Vk的入度減一,并令入度減至零的頂點(diǎn)進(jìn)棧。 (3)若棧空時(shí)輸出的頂點(diǎn)數(shù)不是N個(gè)則說(shuō)明有
10、向回路,否則拓?fù)渑判蚪Y(jié)束。為建立存放入度為零的頂點(diǎn)的棧,不需要另分配存儲(chǔ)單元,即可借入入度為零的數(shù)據(jù)域。一方面,入度為零的頂點(diǎn)序號(hào)即為表頭結(jié)點(diǎn)的序號(hào),另一方面,借用入度為零的數(shù)據(jù)域存放帶鏈棧的指針域(下一個(gè)入度的頂點(diǎn)號(hào))。3.5 用戶界面設(shè)計(jì)本程序使用控制臺(tái)DOS設(shè)計(jì):4 方案實(shí)現(xiàn)4.1 開(kāi)發(fā)環(huán)境與工具主要編程環(huán)境:Code:Blocks ,Microsoft Visual Studio C+6.0編程工具:C+。4.2 程序設(shè)計(jì)關(guān)鍵技術(shù)基于緊縮圖的拓?fù)渑判颍和負(fù)渑判蛩惴╞ool TopologicalSort(ALGraph G) 中,先輸出入度為零的頂點(diǎn),而后輸出新的入度為零的頂點(diǎn),此操作
11、可利用棧實(shí)現(xiàn)。該算法大體思想為:遍歷有向圖各頂點(diǎn)的入度,將所有入度為零的頂點(diǎn)入棧;棧非空時(shí),輸出一個(gè)頂點(diǎn),并對(duì)輸出的頂點(diǎn)數(shù)計(jì)數(shù);該頂點(diǎn)的所有鄰接點(diǎn)入度減一,若減一后入度為零則入棧;重復(fù)、,直到棧為空,若輸出的頂點(diǎn)數(shù)與圖的頂點(diǎn)數(shù)相等則該圖可拓?fù)渑判?,否則圖中有環(huán)。4.3 個(gè)人設(shè)計(jì)實(shí)現(xiàn)(按組員分工)4.3.1宋振設(shè)計(jì)實(shí)現(xiàn)主程序的實(shí)現(xiàn),定義結(jié)構(gòu)體,根據(jù)輸入的信息計(jì)算節(jié)點(diǎn)的入度include <iostream>#include <vector>#include <stack>#include <string>#include <stdlib.h&
12、gt;#include <stdio.h>using namespace std;struct Vnode string vernum;struct Graph vector<Vnode>Node; vector<int> List; /存所有節(jié)點(diǎn)信息 vector<int> H; /存i的鄰接節(jié)點(diǎn) int NodeNum; /節(jié)點(diǎn)數(shù);int main() static int m; Graph v; Vnode n; int num; int countN,i,j; string Node; vector <int> indegre
13、e; Clock *clock=new Clock(); cout<<"當(dāng)前進(jìn)行拓?fù)渑判虻臅r(shí)間為:"<<*clock<<endl;cout<<"-拓?fù)渑判?"<<endl;cout<<"| |"<<endl;cout<<"| 基于緊縮圖的鄰接表的拓?fù)渑判騿?wèn)題 |"<<endl;cout<<"| |"<<endl; cout<<"| |"
14、;<<endl;cout<<"| 制作人:宋振 常玉穎 于紅爽 |"<<endl;cout<<"| |"<<endl; cout<<"|-請(qǐng)輸入節(jié)點(diǎn)的總數(shù)-|"<<endl; cin>>Node; while(1) if(IsDigit(Node) int b=atoi(Node.c_str(); if(b>0) v.NodeNum=b; break; else cout<<"請(qǐng)重新輸入大于0的數(shù)字"&
15、lt;<endl; else cout<<"請(qǐng)輸入數(shù)字"<<endl; cin>>Node; for(i=0;i<v.NodeNum;i+) string temp; cout<<"請(qǐng)輸入第"<<i+1<<"個(gè)節(jié)點(diǎn)的信息"<<endl; cin>>temp; if(temp="0") break; n.vernum=temp; v.Node.push_back(n); num=v.Node.size(); f
16、or(i=0;i<num;i+) string n; cout<<"第"<<i+1<<"條邊所發(fā)出的弧,輸入0結(jié)束該節(jié)點(diǎn)的輸入"<<endl; v.H.push_back(m); for(j=0;j+) bool Numequal=false; cin>>n; if(IsDigit(n) int b=atoi(n.c_str(); if(b<=v.Node.size()&&b>=0) if(b!=i+1) for(countN=v.Hi;countN<v.
17、List.size();countN+) if(v.ListcountN=b-1) Numequal=true; if(!Numequal) if(b=0) break; b-; v.List.push_back(b); m+; else cout<<"輸入重復(fù)請(qǐng)重新輸入"<<endl; else cout<<"請(qǐng)重新輸入與本節(jié)點(diǎn)不同的節(jié)點(diǎn)編號(hào)"<<endl; else cout<<"請(qǐng)輸入編號(hào)小于總結(jié)點(diǎn)數(shù)大于0的節(jié)點(diǎn)編號(hào)"<<endl; else cout<
18、;<"請(qǐng)輸入數(shù)字"<<endl; for(i=0;i<v.Node.size();i+) int number=0; for(int j=0;j<v.List.size();j+) if(v.Listj=i) number+; indegree.push_back(number); if(TopologicalSort(v,indegree) cout<<endl; cout<<"正常完成!"<<endl; else cout<<"該有向圖有回路!"<
19、<endl; system("pause"); / 結(jié)束前暫停 return 0;4.3.2常玉穎設(shè)計(jì)實(shí)現(xiàn)拓?fù)渑判蚝瘮?shù)stack <int> s;bool TopologicalSort(Graph v,vector <int> indegree) int i,k,m,n=0; for(i=0;i<indegree.size();i+) if(!indegreei)s.push(i); cout<<"結(jié)果為:"<<endl; fopen("result.txt","
20、+w"); while(!s.empty() i = s.top(); s.pop(); cout<<i+1; cout<<"|" cout<<v.Nodei.vernum; if(n!=v.Node.size()-1) cout<<"->" n+; if(i=indegree.size()-1) for(m=v.Hi;m<v.List.size();m+) k=v.Listm; indegreek-; if(!indegreek) s.push(k); else for(m=v.Hi
21、;m<v.Hi+1;m+) k=v.Listm; indegreek-; if(!indegreek) s.push(k); if(n<indegree.size() return false; return true;4.3.3于紅爽設(shè)計(jì)實(shí)現(xiàn)判斷輸入是否為數(shù)字bool IsDigit(string &str) bool flag=true; for(unsigned int i=0 ;i<str.length();i+) if(!isdigit(stri) flag=false; break; return flag;5 測(cè)試與調(diào)試5.1 個(gè)人測(cè)試(按組員分工)5.
22、1.1宋振個(gè)人測(cè)試#include <iostream>#include <vector>#include <string>#include <stdlib.h>#include <stdio.h>using namespace std;struct Vnode string vernum;struct Graph vector<Vnode>Node; vector<int> List; vector<int> H; int NodeNum;int main() static int m; clas
23、s Graph v; Vnode n; int num;int i,j,countN; string Node; vector <int> indegree; cout<<"請(qǐng)輸入節(jié)點(diǎn)的總數(shù)"<<endl; cin>>v.NodeNum; for(i=0;i<v.NodeNum;i+) string temp; cout<<"請(qǐng)輸入第"<<i+1<<"個(gè)節(jié)點(diǎn)的信息"<<endl; cin>>temp; if(temp=&q
24、uot;0") break; n.vernum=temp; v.Node.push_back(n); num=v.Node.size(); for(i=0;i<num;i+) string n; cout<<"第"<<i+1<<"條邊所發(fā)出的弧,輸入0結(jié)束該節(jié)點(diǎn)的輸入"<<endl; v.H.push_back(m); for(j=0;j+) cin>>n; int b=atoi(n.c_str(); if(b=0) break; b-; v.List.push_back(b);
25、 m+; for(i=0;i<v.Node.size();i+) int number=0; for(j=0;j<v.List.size();j+) if(v.Listj=i) number+; indegree.push_back(number); int q; for(q=0;q<v.H.size();q+) cout<<v.Hq<<endl; for(q=0;q<v.List.size();q+) cout<<v.Listq<<endl; for(q=0;q<v.Node.size();q+) cout<
26、<v.Nodeq.vernum<<endl; for(q=0;q<indegree.size();q+) cout<<indegreeq<<endl; return 0;建圖過(guò)程:5.1.2常玉穎個(gè)人測(cè)試#include <iostream>#include <vector>#include <stack>#include <string>#include <stdlib.h>using namespace std;struct Vnode string vernum;class Gra
27、phpublic:bool TopologicalSort(Graph v,vector <int> indegree);vector<Vnode>Node;vector<int> List;vector<int> H;int NodeNum;bool Graph:TopologicalSort(Graph v,vector <int> indegree)stack <int> s;int i,k,m,n=0;for(i=0;i<indegree.size();i+)if(!indegreei)s.push(i);c
28、out<<"結(jié)果為:"<<endl;while(!s.empty()i = s.top();s.pop();cout<<i+1;cout<<"|"cout<<v.Nodei.vernum;if(n!=v.Node.size()-1)cout<<"->"n+; if(i=indegree.size()-1)for(m=v.Hi;m<v.List.size();m+)k=v.Listm;indegreek-;if(!indegreek) s.push(k)
29、; else for(m=v.Hi;m<v.Hi+1;m+)k=v.Listm;indegreek-;if(!indegreek) s.push(k);if(n<indegree.size() return false;return true;int main() static int m; class Graph v; Vnode n; int num;int i,j,countN; string Node; vector <int> indegree; cout<<"節(jié)點(diǎn)的總數(shù):"<<endl; cin>>No
30、de; int b=atoi(Node.c_str(); v.NodeNum=b; for(i=0;i<v.NodeNum;i+) v.Node.push_back(n); num=v.Node.size(); for(i=0;i<num;i+) string n; cout<<"第"<<i+1<<"條邊所發(fā)出的弧,輸入0結(jié)束該節(jié)點(diǎn)的輸入"<<endl; v.H.push_back(m); for(j=0;j+) cin>>n; int b=atoi(n.c_str(); if(b=
31、0) break;b-;v.List.push_back(b); m+; for(i=0;i<v.Node.size();i+) int number=0; for(j=0;j<v.List.size();j+) if(v.Listj=i) number+; indegree.push_back(number); if(v.TopologicalSort(v,indegree) cout<<"正常完成!"<<endl; else cout<<"該有向圖有回路!"<<endl;return 0;通
32、過(guò)入度進(jìn)行拓?fù)渑判颍{(diào)試結(jié)果為:5.1.3于紅爽個(gè)人調(diào)試輸入 #include <string> #include <cctype> #include <stdlib.h> #include <stdio.h> #include <iostream> using namespace std; bool IsDigit(string &str) bool flag=true; for(unsigned int i=0 i<str.length();i+) if(!isdigit(stri) flag=false; brea
33、k; return flag; int main() string a="123w" string b="1" string c="apple w" if(IsDigit(a) cout<<"yes"<<endl; else cout<<"no"<<endl; if(IsDigit(b) cout<<"yes"<<endl; else cout<<"no"<<e
34、ndl; if(IsDigit(c) cout<<"yes"<<endl; else cout<<"no"<<endl; 判斷123w,1,apple w是否為數(shù)字,結(jié)果如下:5.2 組裝與系統(tǒng)測(cè)試將所有的函數(shù)組裝好以后,進(jìn)行測(cè)試,如下表5.2.1所示表5.2.1 二進(jìn)制堆系統(tǒng)的測(cè)試記錄操作名稱具體操作操作結(jié)果和輸出運(yùn)行程序編譯器運(yùn)行DOS界面顯示,顯示制作人,同時(shí)提示輸入節(jié)點(diǎn)數(shù)輸入節(jié)點(diǎn)總數(shù)用戶根據(jù)自己需求輸入節(jié)點(diǎn)總數(shù)提示用戶輸入節(jié)點(diǎn)信息輸入節(jié)點(diǎn)信息,即每個(gè)節(jié)點(diǎn)所代表的的事件用戶根據(jù)自己需求輸入節(jié)點(diǎn)信息提示
35、用戶輸入節(jié)點(diǎn)發(fā)出的弧輸入節(jié)點(diǎn)發(fā)出的弧用戶根據(jù)自己需求輸入節(jié)點(diǎn)的弧統(tǒng)計(jì)各個(gè)節(jié)點(diǎn)的入度情況進(jìn)行拓?fù)渑判驘o(wú)若無(wú)回路,則輸出拓?fù)湫蛄校@示正常完成,若有回路,則輸出該有向圖有回路5.3系統(tǒng)運(yùn)行總體運(yùn)行進(jìn)入界面:輸入節(jié)點(diǎn)數(shù)和節(jié)點(diǎn)信息輸入節(jié)點(diǎn)的弧及輸出拓?fù)湫蛄? 課題總結(jié)6.1 課題評(píng)價(jià)按照課題的要求,我們組同學(xué)進(jìn)行了分工,實(shí)現(xiàn)了其所規(guī)定的設(shè)計(jì)要求,并且有所拓展,運(yùn)用課本上的知識(shí)及學(xué)習(xí)了一些本來(lái)未曾接觸的知識(shí),運(yùn)用陌生的類(lèi)模板實(shí)現(xiàn)了掌握較為熟練的功能。通過(guò)這次的實(shí)驗(yàn)設(shè)計(jì)后,大家各方面的能力都有所提高6.2 團(tuán)隊(duì)協(xié)作 由于需要學(xué)習(xí)新的知識(shí)-stl類(lèi),在完成項(xiàng)目過(guò)程中,我們進(jìn)行了明確的分工,以確保高效,每個(gè)人
36、對(duì)新知識(shí)的學(xué)習(xí),之后匯總,按照所學(xué)分配任務(wù),高效地完成了任務(wù)。6.3 下一步工作 下一步工作就是每個(gè)人根據(jù)自己的任務(wù)進(jìn)行編程調(diào)試,更加透徹的理解拓?fù)渑判?,提高一種創(chuàng)新和應(yīng)用的能力。6.4 個(gè)人設(shè)計(jì)心得(按組員分工)6.4.1宋振設(shè)計(jì)小結(jié) 緊縮圖的拓?fù)渑判?,這個(gè)題目聽(tīng)起來(lái)還蠻簡(jiǎn)單的,因?yàn)樵谡n上老師講過(guò)關(guān)于拓?fù)渑判虻南嚓P(guān)知識(shí),就是流程的先后順序,但是對(duì)于STL函數(shù)模板庫(kù)我們卻一無(wú)所知。于是便從各種搜索引擎中查找相關(guān)資料。了解的STL是什么東西,并且了解了它的運(yùn)行機(jī)制之后,我們便開(kāi)始具體的從中尋找我們能用到的數(shù)據(jù)結(jié)構(gòu)。該實(shí)驗(yàn)讓我收獲頗豐,至少懂得了什么叫STL,還有就是關(guān)于棧的抽象數(shù)據(jù)類(lèi)型里面有這么
37、多我們可以使用的庫(kù)函數(shù),這為我們以后的編程提供的很大的幫助,提高了我們編程的效率。而且這也提醒我們,以后自己編寫(xiě)的函數(shù)塊可以當(dāng)作模板儲(chǔ)存到自己的函數(shù)庫(kù)里面,若下次程序設(shè)計(jì)有類(lèi)似的算法,可以直接進(jìn)行調(diào)用,這回大大提高我們編寫(xiě)程序的速度。 6.4.2常玉穎設(shè)計(jì)小結(jié)通過(guò)這次的數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)實(shí)驗(yàn),我對(duì)數(shù)據(jù)結(jié)構(gòu)的算法有了更深的了解,也對(duì)以前學(xué)過(guò)的知識(shí)進(jìn)行了鞏固和提高。在這次實(shí)驗(yàn)過(guò)程中,雖然遇到了很多困難和新問(wèn)題,但是我沒(méi)有自暴自棄,一遍遍地調(diào)試程序,并主動(dòng)地采取查閱課本及網(wǎng)上資料等方法自主學(xué)習(xí),解決困難,把以前被動(dòng)的學(xué)習(xí)過(guò)程變成了主動(dòng)的探索研究的過(guò)程。在以后的學(xué)習(xí)過(guò)程中,我一定會(huì)多多實(shí)踐,充分利用每一次做實(shí)驗(yàn)的機(jī)會(huì),查漏補(bǔ)缺,培養(yǎng)自己編程的能力,養(yǎng)成嚴(yán)密周到、一絲不茍的編程習(xí)慣。同時(shí),我也要認(rèn)真地學(xué)習(xí)
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 糧庫(kù)員工年終工作總結(jié)
- 員工感恩公司演講稿范文(7篇)
- 2025年軟件銷(xiāo)售中介服務(wù)合同樣本
- 2025年大型購(gòu)物中心加盟合同模板
- 2025年防腐施工及后續(xù)保修合同示范文本
- 區(qū)域白酒代理業(yè)務(wù)2025年合作協(xié)議書(shū)
- 閥門(mén)產(chǎn)品購(gòu)銷(xiāo)申請(qǐng)協(xié)議2025
- 2025年個(gè)人貸款購(gòu)房合同
- 2025年網(wǎng)絡(luò)及通信協(xié)議處理軟件項(xiàng)目規(guī)劃申請(qǐng)報(bào)告模范
- 2025年特種用途鋼絲及鋼絲繩項(xiàng)目規(guī)劃申請(qǐng)報(bào)告
- 2025年寬帶研究分析報(bào)告
- 建筑與市政工程第三方質(zhì)量安全巡查方案
- 多元化票務(wù)系統(tǒng)設(shè)計(jì)-深度研究
- 二零二五版財(cái)務(wù)顧問(wèn)保密與工作內(nèi)容協(xié)議3篇
- 2025-2030年中國(guó)干混砂漿行業(yè)運(yùn)行狀況及發(fā)展趨勢(shì)預(yù)測(cè)報(bào)告
- 2024年菏澤職業(yè)學(xué)院高職單招語(yǔ)文歷年參考題庫(kù)含答案解析
- GB/T 22180-2024速凍裹衣魚(yú)
- 2025江蘇鹽城市交通投資建設(shè)控股集團(tuán)限公司招聘19人高頻重點(diǎn)提升(共500題)附帶答案詳解
- 2024托管班二人合伙的協(xié)議書(shū)
- 《輸電線路金具識(shí)別》課件
- 基于PLC的豬場(chǎng)智能液態(tài)飼喂系統(tǒng)的設(shè)計(jì)與研究
評(píng)論
0/150
提交評(píng)論