版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
..11/淮海工學(xué)院淮海工學(xué)院姓姓名:韋迪 系院 指指導(dǎo)教師評語成績簽名年月日..11/課程設(shè)計目12、初步掌握軟件開發(fā)過程的問題分析、系統(tǒng)設(shè)計、程序編碼、測試等基本方法和技能3、提高綜合運用所學(xué)的理論知識和方法獨立分析和解決問題的能力4課程設(shè)計任務(wù)與要求CC設(shè)計題目從任務(wù)書所列選題表中選取,每班每題不得超過2人。據(jù)結(jié)構(gòu)課程所學(xué)的知識。學(xué)生自選課題需在8周前報課程設(shè)計指導(dǎo)教師批準(zhǔn)方可生效。要求12、設(shè)計的題目要求達(dá)到一定工作量(300行以上代碼,并具有一定的深度和難度3、程序設(shè)計語言推薦使用C/C++,程序書寫規(guī),源程序需加必要的注4、每位同學(xué)需提交可獨立運行的程序5、每位同學(xué)需獨立提交設(shè)計報告書(每人一份要求編排格式統(tǒng)一、規(guī)、容充實,不少于10(代碼不算6、課程設(shè)計實踐作為培養(yǎng)學(xué)生動手能力的一種手段,單獨考核..PAGEPAGE2/課程設(shè)計說明~問題描述]中國移動公司正在積極推3G信應(yīng)用,計劃在高校之間建立一個專用通信網(wǎng)絡(luò),請為其規(guī)劃一個投資最省[基本要用無向網(wǎng)模擬該系統(tǒng),頂點表示各高校,邊表示線路建設(shè)成高校數(shù)量不少于10個,覆蓋南、中、北、等地的高輸出方案的結(jié)果直觀、明交互式改變某些線路的建設(shè)成本,可重新輸出新方二概要設(shè)課程設(shè)計說明二概要設(shè)voidmenu(graph*g);//菜voidEditgraph(graph*g);// intCreategraph(graph*g)//創(chuàng)建通信網(wǎng)絡(luò)系統(tǒng)intInsertVex(graph*g,stringv)//添加高校voidChangeVex(graph*g,stringv)// 修改高校intInsertArc(graph*g,stringv,stringw)// intDeleteArc(graph*g,stringv,stringw) 刪除高校間的路voidChangeWeight(graph*g,stringv,stringw)// intDestroygraph(graph*g)// intDisplay(graph*g)// voidsave(graph 保存通信網(wǎng)絡(luò)系基本操作 初始化L為空表 銷毀L 將L置為空表 若L為空表則返回0,否則返回表中元素個數(shù) 若L中存在元素e則將當(dāng)前指針指向e所在位置并返回真 返回L中第i個元素的值 L第i位置插入e,L長度增加1DelList(L,I,&e)刪除L的第i元素,并用e回其值,L度減少1typedefstruct{int 權(quán)typedef{stringvexs[MAX_VERTEX_NUM];//頂ArcNodearcs[MAX_VERTEX_NUM][MAX_VERTEX_NUM];//鄰接矩陣intvexnum,arcnum;//頂點數(shù)和邊數(shù)}graph;//圖的類typedef{stringadjvex;intlowcost;}minside;//求最小生成樹時的輔助數(shù)組的三詳細(xì)設(shè)創(chuàng)建通信系intCreategraph(graph{inti,j,k,w;stringif(未找到文件){cout<<"openerror!"<return0;}{(*g).arcs[i][j].adj=INFINITY;// }{無向}return}添加高intInsertVex(graph*g,string{//在圖g增添新頂點vif(頂點數(shù)為0){ }cout<<"請輸入要添加的高校名:";intn=LocateVex(g,v);if(高校名重復(fù)){ }int{初始化該列鄰接矩陣的}圖g頂點數(shù)加1return1;}刪除學(xué)intDeleteVex(graph*g,string{//刪除g中頂點v及其相關(guān)的弧 頂點數(shù)為0){ }intk=LocateVex(g,v);{ }inti,j;intif(v不是圖g頂點)return0;if(有入弧或{修改弧}for(序號k面的頂點向量依次前移)移動待刪除頂點之后的矩陣元return}..PAGEPAGE10/修改高校voidChangeVex(graph*g,stringv)//修改高校{cout<<"請輸入要修改的高校名:";intn=LocateVex(g,v);{ }stringcout<<"請輸入修改后的高校名:";g-}添加路intInsertArc(graph*g,stringv,string{//在g中增添弧, 若g是無向的,則還增添對稱弧if(頂點數(shù)為0){cout<<"未建立通信網(wǎng)絡(luò)系統(tǒng)!\n";system(暫停);}intv1,w1;v1=LocateVex(g,v);w1=LocateVex(g,w);{cout<<"高校名輸入錯誤!\n";system(暫停);}elseif(線兩頭高校名重{cout<<"該線路已存在!\n";system(暫停);}弧或邊數(shù)加cout<<"請輸入該條線路的建設(shè)費boolbRet=cin.good();{cout<<"輸入的成本不是整型的!\n";system(暫停);}return1;}刪除線intDeleteArc(graph*g,stringv,string{//在g中刪除弧, 若g是無向的,則還刪除對稱弧if(頂點數(shù)為0){cout<<"未建立通信網(wǎng)絡(luò)系統(tǒng)!\n";system(暫停);}intintm=LocateVex(g,w);{cout<<"學(xué)校名輸入錯誤!\n";system(暫停);}elseif(費無{cout<<"不存在該線路!\n";system(暫停);編}return}四程序設(shè)計與調(diào)試分的健壯性不能達(dá)到預(yù)期的結(jié)果,這些都是需要改進(jìn)的。在編寫程序過程中,因為函數(shù)調(diào)用不準(zhǔn)確,使得循環(huán)進(jìn)不去,在程序中的函數(shù)調(diào)用是個非常重的部分,也是經(jīng)常需要用到的,為了達(dá)到了預(yù)期結(jié)果,后來改變函數(shù)的調(diào)用關(guān)系五用戶手【使用說明使用高校專用通信網(wǎng)絡(luò)系選擇1.構(gòu)造通信網(wǎng)絡(luò)系統(tǒng),則顯示出10高校45線路的通信系統(tǒng)矩陣創(chuàng)建成功,選擇2.編輯通信網(wǎng)絡(luò)系統(tǒng),顯示出功能1~8銷毀系統(tǒng),選擇1.銷毀通信網(wǎng)絡(luò)系統(tǒng)添加高校,選擇2.添加一個高校,并輸入要添加的高校名刪除高校,選擇3.刪除一個高校,并輸入要刪除的高校名。若輸入的高校名不存在,則顯示不修改高校名,選擇4.修改高校名,并輸入要修改的高校名。若輸入的高校名不存在,則顯示不存添加高校間的線路,選擇5.添加一條高線間的線路,輸入要添加線路兩端的高校名。若輸入的高刪除高線間的線路,選擇6.刪除一條高校間的線路,并輸入要刪除線路兩端的高校名。若輸入的修改線路的成本,選擇7.修改線路的成本,并輸入要刪除線路連段的高校名。若輸入的高校名推出編輯通信網(wǎng)絡(luò)系統(tǒng),選擇8.退出。回到高校專用通信網(wǎng)絡(luò)建設(shè)系統(tǒng)生成最佳方案,選擇3.生成最佳方案。并輸入起始學(xué)校和要保存的文件名輸出通信網(wǎng)絡(luò)系統(tǒng),選擇4.輸出通信網(wǎng)絡(luò)系統(tǒng)保存通信網(wǎng)絡(luò)系統(tǒng),選擇5.保存通信網(wǎng)絡(luò)系統(tǒng)。并輸入要保存的文件名退出,選擇6.退出系統(tǒng)六測試成通信網(wǎng)絡(luò)系添加一個高刪除一個高修改高校添加一條高校間的線刪除高校間的線修改高校間的成生成最佳路輸出通信網(wǎng)絡(luò)系七附錄(源程序清單#include"stdafx.h"#defineMAX_VERTEX_NUM#defineINFINITY32768usingnamespacestd;typedefstructArcNode{intadj;/typedefstruct{stringvexs[MAX_VERTEX_NUM];/ArcNodearcs[MAX_VERTEX_NUM][MAX_VERTEX_NUM];/接矩陣intvexnum,arcnum;/點數(shù)和邊數(shù)voidmenu(graph*g);voidEditgraph(graphintLocateVex(graph*g,stringv)//求頂點位置函數(shù),若v在,輸出j;若不存在,輸出{intj=-1,k;{if(g->vexs[k]==v)//判斷是否存在頂點{}}return}intCreategraph(graph*g)//采用鄰接矩陣法,構(gòu)造有向網(wǎng){stringva,vb;{return0;}infile>>g->vexnum;//從文件讀入頂點數(shù)infile>>g->arcnum;//從文件讀入邊數(shù)for(i=0;ivexnum;++i)// for(i=0;i<(*g).vexnum;++i)初始化鄰接矩陣{(*g).arcs[i][j].adj=INFINITY;}{(*g).arcs[i][j].adj=(*g).arcs[j][i].adj=w;// 無向}return1;}intInsertVex(graph*g,stringg中增添新頂點v{}intn=LocateVex(g,v);{}int(*g).vexs[(*g).vexnum]=v;構(gòu)造新頂點向量{(*g).arcs[(*g).vexnum][i].adj=INFINITY;//初始化該行鄰接矩陣的值(*g).arcs[i][(*g).vexnum].adj=INFINITY; 初始化該列鄰接矩陣的}(*g).vexnum+=1; return1;}intDeleteVex(graph*g,string刪除g中頂點v及其相關(guān)的弧{}intk=LocateVex(g,v);{}intm=0;if(k<0)//v 不是圖g的頂點return0;if((*g).arcs[j][k].adj!=m)有入弧或邊{(*g).arcnum 修改弧}for(j=k+1;j<(*g).vexnum;j++)k面的頂點向量依次前移(*g).arcs[i][j-1]=(*g).arcs[i][j]; (*g).arcs[j-1][i]=(*g).arcs[j][i];動待刪除頂點之下的矩陣元素(*g).vexnum更新圖的頂點數(shù)return}voidChangeVex(graph*g,stringv)//修改高校{intn=LocateVex(g,v);{}stringg-}intInsertArc(graph*g,stringv,string{//在g中增添弧, 若g是無向的,則還增添對稱弧{}intv1,w1;v1=LocateVex(g,v);尾w1=LocateVex(g,w);頭{}elseif(g-{}(*g).arcnum++;弧或邊數(shù)加1boolbRet=cin.good();{}return1;}intDeleteArc(graph*g,stringv,string{//在g中刪除弧, 若g是無向的,則還刪除對稱弧{}intn=LocateVex(g,v);intm=LocateVex(g,w);{}elseif(g-{}return}voidChangeWeight(graph*g,stringv,string{intm=LocateVex(g,v);intn=LocateVex(g,w);{}elseif(g-{}charcout<<"請輸入該路線修改后的成boolbRet=cin.good();{}{g->arcs[m][n].adj=g-}}intDestroygraph(graph毀圖if(g-{}intreturn}intDisplay(graph*g)//以矩陣方式輸出{if(g-{}int cout<vexs[i]<<"";{cout<vexs[i]<<"";{ ∞"<<"";cout<arcs[i][j].adj<<"}}return}{intlowcost;}minside;//求最小生成樹時的輔助數(shù)組的intminimum(graph*G,minside{//求closedge[i].lowcost小值,并返回iinti=0,j,k,min;while(closedge[i].lowcost==0)//找到第一個值不0closedge[i].lowcost序號min=closedge[i].lowcost;//min記第一個不為0 {}returnk;//回當(dāng)前最小正值的序}voidMiniSpanTree_Prim(graph*g,string{if(g-{}int{}minsideclosedge[MAX_VERTEX_NUM];intk=LocateVex(g,s);stringa[30],b[30];//a[],b[]中間變量,用來存放邊的頂點for(int 初始化{{}}charofstreamoutfile(name);for(inte=1;e<=g->vexnum-1;e++)//n-1{intk0=minimum(g,closedge);stringu0=closedge[k0].adjvex;stringv0=g->vexs[k0];intm=LocateVex(g,u0);int 成本為 {if(g-{}}}}voidsave(graph{if(g-{}charofstreamoutfile(name);for(int{}for(
溫馨提示
- 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)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 《物流企業(yè)運營管理》課件
- 肺癌手術(shù)的術(shù)前全身評估
- 《課自我保護(hù)》課件
- 商業(yè)模式培訓(xùn)教程
- 固收合同范例
- 跨境物流合同范例
- 農(nóng)村村民房屋出售合同范例
- 窗簾電機(jī)售后合同范例
- 內(nèi)培老師合同范例
- 飯店代理推廣合同范例
- 《機(jī)電概念設(shè)計基礎(chǔ)》課件-運行時行為
- 2024-2030年中國奶粉行業(yè)營銷策略及未來5發(fā)展趨勢報告
- 2024年度危化品安全管理員聘用合同2篇
- 2025屆杭州第二中學(xué)高三第五次模擬考試數(shù)學(xué)試卷含解析
- 廣東省廣州海珠區(qū)2023-2024學(xué)年八年級上學(xué)期期末物理試卷(含答案)
- 開題報告:新業(yè)態(tài)下大學(xué)生高質(zhì)量充分就業(yè)實現(xiàn)路徑研究-基于雙邊匹配的視角
- 江蘇南京市棲霞區(qū)八校聯(lián)考2024-2025學(xué)年九年級上冊歷史調(diào)研試卷(含答案)
- 醫(yī)院滿意度調(diào)查系統(tǒng)方案
- 2024年度企業(yè)信息化建設(shè)與技術(shù)實施合同3篇
- 2024年自考《00504藝術(shù)概論》考試復(fù)習(xí)題庫(含答案)
- GB/T 25229-2024糧油儲藏糧倉氣密性要求
評論
0/150
提交評論