管道鋪設(shè)施工的最佳選擇_第1頁
管道鋪設(shè)施工的最佳選擇_第2頁
管道鋪設(shè)施工的最佳選擇_第3頁
管道鋪設(shè)施工的最佳選擇_第4頁
管道鋪設(shè)施工的最佳選擇_第5頁
已閱讀5頁,還剩11頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

管道鋪設(shè)施工的最佳選擇一、問題描述題目內(nèi)容:在意聯(lián)通網(wǎng)表示的村莊之間管道的連接,設(shè)計(jì)一個(gè)將所有村莊連接起來的管道構(gòu)成的最小生成樹。基本要求:實(shí)現(xiàn)村莊之間管道總長最短。測試數(shù)據(jù):村莊村莊距離村莊村莊距離AB32.8DE67.3AC44.6DF98.7AH12.1EF85.6AI18.2EG10.5BC5.9FI79.2CD21.3GH52.5CD41.1HI8.7CG56.4二、需求分析此程序無需輸入數(shù)據(jù),直接從文件序所需要的數(shù)據(jù),以此數(shù)據(jù)構(gòu)建聯(lián)通網(wǎng),并輸出由此聯(lián)通網(wǎng)生成的最小樹,即為管道鋪設(shè)施工的最佳選擇。三、概要設(shè)計(jì)抽象數(shù)據(jù)類型:圖的鄰接矩陣存儲表示:constMAX_VERTEX_NUM=30;//最大頂點(diǎn)個(gè)數(shù)typedefstructArcCell{ doubleadj;//對無權(quán)圖,用1,0表示相鄰否,對帶權(quán)圖,則為權(quán)值 boolkind; //為1表示可供選擇,否則不行}ArcCell,AdjMatrix[MAX_VERTEX_NUM][MAX_VERTEX_NUM];typedefstruct{ charvexs[MAX_VERTEX_NUM];//描述定點(diǎn)的數(shù)組 AdjMatrixarcs; intvexnum,arcnum;//圖的當(dāng)前頂點(diǎn)數(shù)和邊數(shù)}MGraph;主程序模塊:voidmain(){ 定義聯(lián)通網(wǎng); 讀入數(shù)據(jù)初始化聯(lián)通網(wǎng); 處理數(shù)據(jù)并輸出結(jié)果;}四、詳細(xì)設(shè)計(jì)1、圖的鄰接矩陣constMAX_VERTEX_NUM=30;//最大頂點(diǎn)個(gè)數(shù)typedefstructArcCell{ doubleadj;//對無權(quán)圖,用1,0表示相鄰否,對帶權(quán)圖,則為權(quán)值 boolkind; //為1表示可供選擇,否則不行}ArcCell,AdjMatrix[MAX_VERTEX_NUM][MAX_VERTEX_NUM];typedefstruct{ charvexs[MAX_VERTEX_NUM];//描述定點(diǎn)的數(shù)組 AdjMatrixarcs; intvexnum,arcnum;//圖的當(dāng)前頂點(diǎn)數(shù)和邊數(shù)}MGraph;2、構(gòu)建圖的鄰接矩陣doublemax_num=1000;voidCreateMGraph(MGraph&G){ //采用鄰接矩陣存儲表示,構(gòu)造無向圖G ifstreamin1("vex.txt"); //讀取頂點(diǎn)的信息 ifstreamin2("edge.txt"); //讀取邊的信息 intline=0;//用作頂點(diǎn)和邊的數(shù)目的計(jì)數(shù)器 strings1,s2; for(inti=1;getline(in1,s1);i++,line++){ istringstreamiss1(s1); iss1>>G.vexs[i]; } G.vexnum=line;line=0; for(i=1;i<=G.vexnum;++i) for(intj=1;j<=G.vexnum;++j){ if(i!=j){ G.arcs[i][j].adj=max_num; G.arcs[i][j].kind=0; } else{ G.arcs[i][j].adj=0; G.arcs[i][j].kind=1; } } charv1,v2; doubleweight; for(intk=1;getline(in2,s2);k++,line++){ istringstreamiss2(s2); iss2>>v1>>v2>>weight; G.arcs[v1-'A'+1][v2-'A'+1].adj=weight; G.arcs[v2-'A'+1][v1-'A'+1].adj=weight; } G.arcnum=line; cout<<"初始化的鄰接矩陣:\n"; for(i=1;i<=G.vexnum;++i){ cout<<setfill(''); cout<<setw(8)<<char(i+'A'-1); } cout<<endl<<endl; for(i=1;i<=G.vexnum;++i){ //輸出鄰接矩陣 cout<<char(i+'A'-1); for(intj=1;j<=G.vexnum;++j){ cout<<setfill(''); cout<<setw(8)<<G.arcs[i][j].adj; } cout<<endl; }}3、生成最小數(shù)并輸出結(jié)果voidprim(MGraphG){ doublemin; intk1,k2,num=1; G.arcs[1][1].adj=1; for(inti=1;i<=G.vexnum;i++) G.arcs[i][1].kind=1; while(num!=G.vexnum){ min=max_num; for(inti=1;i<=G.vexnum;i++)//找出符合條件的權(quán)重最小的邊 for(intj=1;j<=G.vexnum;j++) if(min>G.arcs[i][j].adj&&i!=j&&G.arcs[i][j].kind==1&&(G.arcs[i][i].adj!=1||G.arcs[j][j].adj!=1)){ min=G.arcs[i][j].adj; k1=i;k2=j; } G.arcs[k1][k2].adj=-G.arcs[k1][k2].adj;//將找到的邊的權(quán)重設(shè)為其負(fù)值 G.arcs[k1][k2].kind=G.arcs[k2][k1].kind=0;//將該條邊設(shè)置為不可選 for(intj=1;j<=G.vexnum;j++){ if(j!=k2) G.arcs[j][k1].kind=1;//把矩陣中k1列代表的邊(出該條邊意外)設(shè)為可選 } G.arcs[k1][k1].adj=1;//這一步是為了接下來能夠方便找出符合要求的權(quán)重最小的邊 num++; } cout<<"=========================================================================\n"; cout<<"通過算法處理后的鄰接矩陣:\n"; for(i=1;i<=G.vexnum;++i){ cout<<setfill(''); cout<<setw(8)<<char(i+'A'-1); } cout<<endl<<endl; for(i=1;i<=G.vexnum;++i){ //輸出處理后的鄰接矩陣 cout<<char(i+'A'-1); for(intj=1;j<=G.vexnum;++j){ cout<<setfill(''); cout<<setw(8)<<G.arcs[i][j].adj; } cout<<endl; } cout<<"最小生成樹(普里姆算法):\n"; cout<<"頂點(diǎn)\t"<<"頂點(diǎn)\t"<<"邊的權(quán)重\n"; for(i=1;i<=G.vexnum;++i) for(intj=1;j<=G.vexnum;++j) if(G.arcs[j][i].adj<0) cout<<char(i+'A'-1)<<"\t"<<char(j+'A'-1)<<"\t"<<G.arcs[i][j].adj<<endl;}4、主函數(shù)voidmain(){ MGraphG; CreateMGraph(G); prim(G);}5、圖的相關(guān)數(shù)據(jù)edge.txt:AB32.8AC44.6AH12.1AI12.8BC5.9CD21.3CE41.1CG56.4DE67.3DF98.7EF85.6EG10.5FI79.2GH52.5HI8.7vex.txt:ABCDEFGHI五、調(diào)試分析該程序通過普里姆算法實(shí)現(xiàn),主要由兩個(gè)部分組成,一個(gè)是讀入圖的數(shù)據(jù)構(gòu)建鄰接矩陣,一個(gè)是通過鄰接矩陣生成圖的最小樹。在生成最小樹是需要特別注意選取權(quán)重最小的邊,包括正確的選取范圍和對已選的邊予以標(biāo)記。六、用戶手冊按照已有規(guī)則在指定的txt文件輸入相關(guān)的信息即可。為了簡化問題,突出重點(diǎn),算法沒有設(shè)計(jì)對讀入的數(shù)據(jù)判錯(cuò)的功能。七、測試結(jié)果村莊村莊距離村莊村莊距離AB32.8CE41.1AH12.1EG10.5BC5.9FI79.2CD21.3HI8.7八、附錄源程序文件清單Prim.cppPrim.h一下包含在Prim.h中#include<iostream>#include<fstream>#include<sstream>#include<string>#include<iomanip>usingnamespacestd;

論大學(xué)生寫作能力寫作能力是對自己所積累的信息進(jìn)行選擇、提取、加工、改造并將之形成為書面文字的能力。積累是寫作的基礎(chǔ),積累越厚實(shí),寫作就越有基礎(chǔ),文章就能根深葉茂開奇葩。沒有積累,胸?zé)o點(diǎn)墨,怎么也不會(huì)寫出作文來的。寫作能力是每個(gè)大學(xué)生必須具備的能力。從目前高校整體情況上看,大學(xué)生的寫作能力較為欠缺。一、大學(xué)生應(yīng)用文寫作能力的定義那么,大學(xué)生的寫作能力究竟是指什么呢?葉圣陶先生曾經(jīng)說過,“大學(xué)畢業(yè)生不一定能寫小說詩歌,但是一定要寫工作和生活中實(shí)用的文章,而且非寫得既通順又扎實(shí)不可?!睂τ诖髮W(xué)生的寫作能力應(yīng)包含什么,可能有多種理解,但從葉圣陶先生的談話中,我認(rèn)為:大學(xué)生寫作能力應(yīng)包括應(yīng)用寫作能力和文學(xué)寫作能力,而前者是必須的,后者是“不一定”要具備,能具備則更好。眾所周知,對于大學(xué)生來說,是要寫畢業(yè)論文的,我認(rèn)為寫作論文的能力可以包含在應(yīng)用寫作能力之中。大學(xué)生寫作能力的體現(xiàn),也往往是在撰寫畢業(yè)論文中集中體現(xiàn)出來的。本科畢業(yè)論文無論是對于學(xué)生個(gè)人還是對于院系和學(xué)校來說,都是十分重要的。如何提高本科畢業(yè)論文的質(zhì)量和水平,就成為教育行政部門和高校都很重視的一個(gè)重要課題。如何提高大學(xué)生的寫作能力的問題必須得到社會(huì)的廣泛關(guān)注,并且提出對策去實(shí)施解決。二、造成大學(xué)生應(yīng)用文寫作困境的原因:(一)大學(xué)寫作課開設(shè)結(jié)構(gòu)不合理。就目前中國多數(shù)高校的學(xué)科設(shè)置來看,除了中文專業(yè)會(huì)系統(tǒng)開設(shè)寫作的系列課程外,其他專業(yè)的學(xué)生都只開設(shè)了普及性的《大學(xué)語文》課。學(xué)生寫作能力的提高是一項(xiàng)艱巨復(fù)雜的任務(wù),而我們的課程設(shè)置僅把這一任務(wù)交給了大學(xué)語文教師,可大學(xué)語文教師既要在有限課時(shí)時(shí)間內(nèi)普及相關(guān)經(jīng)典名著知識,又要適度提高學(xué)生的鑒賞能力,且要教會(huì)學(xué)生寫作規(guī)律并提高寫作能力,任務(wù)之重實(shí)難完成。(二)對實(shí)用寫作的普遍性不重視。“大學(xué)語文”教育已經(jīng)被嚴(yán)重地“邊緣化”。目前對中國語文的態(tài)度淡漠,而是呈現(xiàn)出全民學(xué)英語的大好勢頭。中小學(xué)如此,大學(xué)更是如此。對我們的母語中國語文,在大學(xué)反而被漠視,沒有相關(guān)的課程的設(shè)置,沒有系統(tǒng)的學(xué)習(xí)實(shí)踐訓(xùn)練。這其實(shí)是國人的一種偏見。應(yīng)用寫作有它自身的規(guī)律和方法。一個(gè)人學(xué)問很大,會(huì)寫小說、詩歌、戲劇等,但如果不曉得應(yīng)用文寫作的特點(diǎn)和方法,他就寫不好應(yīng)用文。(三)部分大學(xué)生學(xué)習(xí)態(tài)度不端正。很多非中文專業(yè)的大學(xué)生對寫作的學(xué)習(xí)和訓(xùn)練都只是集中在《大學(xué)語文》這一門課上,大部分學(xué)生只愿意被動(dòng)地接受大學(xué)語文老師所講授的文學(xué)經(jīng)典故事,而對于需要學(xué)生動(dòng)手動(dòng)腦去寫的作文,卻是盡可能應(yīng)付差事,這樣勢必不能讓大學(xué)生的寫作水平有所提高。(四)教師的實(shí)踐性教學(xué)不強(qiáng)。學(xué)生寫作能力的提高是一項(xiàng)艱巨復(fù)雜的任務(wù),但在教學(xué)中有不少教師過多注重理論知識,實(shí)踐性教學(xué)環(huán)節(jié)卻往往被忽視。理論講了一大堆,但是實(shí)踐卻幾乎沒有,訓(xùn)練也少得可憐。閱讀與寫作都需要很強(qiáng)的實(shí)踐操作,學(xué)習(xí)理論固然必不可少,但是閱讀方法和寫作技巧的掌握才是最重要的。由于以上的原因,我們的大學(xué)生的寫作水平著實(shí)令人堪憂,那么如何走出這一困境,筆者提出一些建議,希望能對大學(xué)生寫作水平的提高有所幫助。三、提高大學(xué)生應(yīng)用寫作能力的對策(一)把《應(yīng)用寫作》課設(shè)置為大學(xué)生的必修課。在中國的每一所大學(xué),《應(yīng)用寫作》應(yīng)該成為大學(xué)生的必修課。因?yàn)樵谶@個(gè)被某些人形容為實(shí)用主義、功利主義甚囂塵上的時(shí)代,也是個(gè)人生存競爭最激烈的時(shí)代,人們比任何時(shí)代都更需要學(xué)會(huì)寫作實(shí)用性的文章,比如職場競爭中的求職信,生活中的財(cái)經(jīng)文書、法律文書等,以提高個(gè)人的生存競爭能力。(二)端正大學(xué)生的學(xué)習(xí)態(tài)度。首先,要讓大學(xué)生充分認(rèn)識到實(shí)用寫作課的重要性,這門課關(guān)乎到他人生的每一個(gè)方面,諸如就職,求愛,理財(cái),人際交往等,是他終生都需要使用的一些基礎(chǔ)性的知識,也是他必備的一項(xiàng)生存技能。其次,實(shí)用寫作有它自身的規(guī)律和方法。它不是你想怎樣寫都行的,它有嚴(yán)格的格式性的要求,所以需要系統(tǒng)的研究學(xué)習(xí)。最后,實(shí)用寫作課的實(shí)踐性非常強(qiáng),所以學(xué)生們不能只學(xué)不練,并且要克服手懶的壞習(xí)慣,勤學(xué)勤練,為今后的工作生活打好基礎(chǔ)。(三)注重實(shí)踐課的訓(xùn)練。要提高大學(xué)生的實(shí)用寫作能力,那么實(shí)踐寫作環(huán)節(jié)是必不可少的。要想使學(xué)員真正具備實(shí)用寫作能力,必須重視實(shí)用寫作訓(xùn)練,力求使理論講授與寫作訓(xùn)練互相緊扣進(jìn)行。教師在

溫馨提示

  • 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)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論