東南大學(xué)土木工程專業(yè)c語(yǔ)言課程設(shè)計(jì)報(bào)告董旭._第1頁(yè)
東南大學(xué)土木工程專業(yè)c語(yǔ)言課程設(shè)計(jì)報(bào)告董旭._第2頁(yè)
東南大學(xué)土木工程專業(yè)c語(yǔ)言課程設(shè)計(jì)報(bào)告董旭._第3頁(yè)
東南大學(xué)土木工程專業(yè)c語(yǔ)言課程設(shè)計(jì)報(bào)告董旭._第4頁(yè)
東南大學(xué)土木工程專業(yè)c語(yǔ)言課程設(shè)計(jì)報(bào)告董旭._第5頁(yè)
已閱讀5頁(yè),還剩16頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、東南大學(xué)C語(yǔ)言課程設(shè)計(jì)報(bào)告課程名稱: 計(jì)算機(jī)綜合課程設(shè)計(jì) 學(xué) 院: 土木工程學(xué)院 設(shè)計(jì)題目: 管網(wǎng)造價(jià)設(shè)計(jì)分析 級(jí) 別: B級(jí) 學(xué)生姓名: 董 旭 學(xué) 號(hào): 05112517 同組學(xué)生: 學(xué) 號(hào): 指導(dǎo)教師: 盧 瑞 華 2013年 9 月 19 日目 錄 TOC o 1-3 h z u 4模塊設(shè)計(jì)(主要模塊功能、源代碼、注釋(如函數(shù)功能、入口及出口參數(shù)說(shuō)明,函數(shù)調(diào)用關(guān)系描述等)91316心得體會(huì)及致謝17參考文獻(xiàn)18學(xué)生選題說(shuō)明:以所發(fā)課程設(shè)計(jì)要求為準(zhǔn),請(qǐng)同學(xué)們仔細(xì)閱讀;本任務(wù)書(shū)提供的設(shè)計(jì)案例僅供選題參考;也可自選,但難易程度需難度相當(dāng);鼓勵(lì)結(jié)合本專業(yè)(土木工程、力學(xué))知識(shí)進(jìn)行選題,編制程序

2、解決專業(yè)實(shí)際問(wèn)題。限2人選的題目可由1-2人完成(A級(jí));限1人選的題目只能由1人單獨(dú)完成(B級(jí)); 設(shè)計(jì)總體要求:采用模塊化程序設(shè)計(jì);鼓勵(lì)可視化編程;源程序中應(yīng)有足夠的注釋;學(xué)生可自行增加新功能模塊(視情況可另外加分);必須上機(jī)調(diào)試通過(guò);注重算法運(yùn)用,優(yōu)化存儲(chǔ)效率與運(yùn)算效率;需提交源程序(含有注釋)及相關(guān)文件(數(shù)據(jù)或數(shù)據(jù)庫(kù)文件):提交設(shè)計(jì)報(bào)告書(shū),具體要求見(jiàn)以下說(shuō)明。設(shè)計(jì)報(bào)告格式:目錄課程設(shè)計(jì)任務(wù)書(shū)(功能簡(jiǎn)介、課程設(shè)計(jì)要求);系統(tǒng)設(shè)計(jì)(包括總體結(jié)構(gòu)、模塊、功能等,輔以程序設(shè)計(jì)組成框圖、流程圖解釋);模塊設(shè)計(jì)(主要模塊功能、源代碼、注釋(如函數(shù)功能、入口及出口參數(shù)說(shuō)明,函數(shù)調(diào)用關(guān)系描述等);調(diào)試

3、及測(cè)試:(調(diào)試方法,測(cè)試結(jié)果的分析與討論,截屏、正確性分析);設(shè)計(jì)總結(jié):(編程中遇到的問(wèn)題及解決方法);心得體會(huì)及致謝;參考文獻(xiàn)2.1 功能要求 對(duì)某地給水管網(wǎng)D=200mm以上的管道進(jìn)行了單位造價(jià)的綜合分析計(jì)算。造價(jià)構(gòu)成包括:(1)管材價(jià)格;(2)運(yùn)輸管理費(fèi)用;(3)施工費(fèi)用;(4)挖填溝槽費(fèi)用;(5)路面修復(fù)費(fèi)用;(6)消火栓費(fèi)用;(7)閘門(mén)費(fèi)用;(8)閘門(mén)井、支墩等構(gòu)造物;(9)管配件費(fèi)用;(10)特殊措施費(fèi)用。得到管徑與單價(jià)如表所示。 表1 管徑造價(jià)表管徑D(mm)200250300350400450500單價(jià)C(元/m)管徑D(mm)600700800900100011001200單

4、價(jià)C(元/m)試采用常規(guī)回歸分析,通過(guò)C語(yǔ)言編程確定管道造價(jià)的數(shù)學(xué)模型參數(shù)。管道造價(jià)的數(shù)學(xué)模型:C=a+b*Dz 式中:D管徑(m); C單位造價(jià)(元/m); a,b,z系數(shù)。查找得黃金分割最小二乘法:給排水管道系統(tǒng)的造價(jià)對(duì)于整個(gè)給排水系統(tǒng)工程來(lái)說(shuō)尤為重要,管道的造價(jià)按管道單位長(zhǎng)度造價(jià)乘以管段長(zhǎng)度計(jì)算。通過(guò)建立水管單位長(zhǎng)度造價(jià)與管道直徑的關(guān)系,通過(guò)優(yōu)化算法以最小化水管建設(shè)投資。傳統(tǒng)的方法應(yīng)用作圖法和黃金分割最小二乘法。作圖法本身就很粗糙,并且還要畫(huà)圖,受每個(gè)人的眼力影響較大,因此應(yīng)用性不大。黃金分割最小二乘法作為一種迭代方法,容易獲得局部最優(yōu)解,因此其結(jié)果明顯優(yōu)于其他方法。在我們研究?jī)蓚€(gè)(x,

5、y)之間的相互關(guān)系時(shí),通??梢缘玫揭幌盗谐蓪?duì)的數(shù)據(jù)(x1,y1.x2,y2. xm,ym);將這些數(shù)據(jù)描繪在x -y直角坐標(biāo)系中,若發(fā)現(xiàn)這些點(diǎn)在一條直線附近,可以令這條如(式1-1)。Yj= a0 + a1 Xi (式1-1)其中:a0、a1 是任意實(shí)數(shù)為建立這直線方程就要確定a0和a1,應(yīng)用最小二乘法原理,將實(shí)測(cè)值Yi與利用(式1-1)計(jì)算值(Yj=a0+a1X)的離差(Yi-Yj)的平方和(Yi - Yj)2最小為“優(yōu)化判據(jù)”。令: = (Yi - Yj)2 (式1-2)把(式1-1)代入(式1-2)中得: = (Yi - a0 - a1Xi)2 (式1-3)當(dāng)(Yi-Yj)平方最小時(shí),可

6、用函數(shù) 對(duì)a0、a1求偏導(dǎo)數(shù),令這兩個(gè)等于零。2(a0 + a1*Xi - Yi)(式1-4)2*Xi(a0 + a1*Xi - Yi)(式1-5)亦即:na0 + (Xi ) a1 = Yi (式1-6)(Xi ) a0 + (Xi2 ) a1 = (Xi*Yi) (式1-7)得到的兩個(gè)關(guān)于a0、 a1為未知數(shù)的兩個(gè)方程組,解這兩個(gè)方程組得出:a0 = (Yi) / n - a1(Xi) / n (式1-8)a1 = nXi Yi - (Xi Yi) / nXi2 - (Xi)2 ) (式1-9)這時(shí)把a(bǔ)0、a1代入(式1-1)中, 此時(shí)的(式1-1)就是我們回歸的元線性方程即:數(shù)學(xué)模型。在

7、回歸過(guò)程中,回歸的關(guān)聯(lián)式是不可能全部通過(guò)每個(gè)回歸數(shù)據(jù)點(diǎn)(x1,y1. x2,y2.xm,ym),為了判斷關(guān)聯(lián)式的好壞,可借助 “R”, “F”,剩余標(biāo)準(zhǔn)偏差“S”進(jìn)行判斷;“R”越趨近于 1 越好;“F”的絕對(duì)值越大越好;“S”越趨近于 0 越好。R = XiYi - m (Xi / m)(Yi / m)/ SQRXi2 - m (Xi / m)2Yi2 - m (Yi / m)2 (式1-10) *在(式1-1)中,n為,即實(shí)驗(yàn)次數(shù);Xi、Yi分別任意一組實(shí)驗(yàn)X、Y的數(shù)值。1a) 輸入信息:將數(shù)據(jù)的組數(shù)N和每一個(gè)管徑D以及其對(duì)應(yīng)的單位造價(jià)C輸入。b) 數(shù)據(jù)計(jì)算: A) 計(jì)算各管徑的和;B)計(jì)

8、算各單價(jià)的和;C)計(jì)算各單價(jià)的z次方的和;D)計(jì)算各單價(jià)的兩倍z次方的和;E)計(jì)算各單價(jià)的和的z次方。c) 存儲(chǔ)數(shù)據(jù):定義一個(gè)新的數(shù)組將得到的數(shù)據(jù)記錄進(jìn)去。d) 比較數(shù)據(jù): 采用冒泡法進(jìn)行比較,得出最小線性擬合方差時(shí)的系數(shù)值。e) 輸出結(jié)果 主菜單輸入功能求和功能計(jì)算功能排序功能輸出功能退出程序工作程序分析 輸入信息:將數(shù)據(jù)的組數(shù)14和每一個(gè)管徑D以及其對(duì)應(yīng)的單位造價(jià)C按表格所提供數(shù)據(jù)輸入。管徑D(mm)200250300350400450500單價(jià)C(元/m)管徑D(mm)600700800900100011001200單價(jià)C(元/m)數(shù)據(jù)求和: A) 計(jì)算各管徑的和;B)計(jì)算各單價(jià)的和;C

9、)計(jì)算各單價(jià)的z次方的和;D)計(jì)算各單價(jià)的兩倍z次方的和;E)計(jì)算各單價(jià)的和的z次方。 計(jì)算功能:將中所得結(jié)果代入黃金分割最小二乘法的公式 存儲(chǔ)記錄:定義一個(gè)數(shù)組將每一組所得a,b ,存入。 排序記錄:采用冒泡法,逐個(gè)比較新定義的數(shù)組中的值,出最小,并求出此時(shí)對(duì)應(yīng)的啊a,b,z。 退出程序。3. 模塊設(shè)計(jì)#include /這是編譯預(yù)處理指令#include /程序中要調(diào)用求平方根函數(shù)sqrt和求次方函數(shù)powint main() /定義主函數(shù) /主函數(shù)開(kāi)始 float qhadd(float s21000,int e,int d); /對(duì)被調(diào)用函數(shù)qhadd的聲明 float qhad(fl

10、oat k21000,int f,int g,float z); /對(duì)被調(diào)用函數(shù)qhad的聲明 float qha(float p21000,int q,int t,float z); /對(duì)被調(diào)用函數(shù)qha的聲明 float qh(float o21000,int r,int v,float z); /對(duì)被調(diào)用函數(shù)qh的聲明 float q(float o21000,float r,float v,int n,float z); /對(duì)被調(diào)用函數(shù)q的聲明 float z,min; /定義a1,b1,c,z,min為單精度浮點(diǎn)型變量 int i,j,N; /定義i,j,N為整型變量 float a

11、1000,b1000,K1000; /定義a為包含1000個(gè)元素的一維數(shù)組 /定義b為包含1000個(gè)元素的一維數(shù)組 /定義k為包含1000個(gè)元素的一維數(shù)組 printf(Please enter N=); /輸出所指定的一行信息 scanf(%d,&N); /輸入變量N的值 float g21000,C,D,C1,D1,D2,D3,D4; /定義g為2*1000的二維數(shù)組 /定義C,D,C1,D1,D2,D3,D4為單精度浮點(diǎn)型變量 for(j=0;j2;j+) /控制循環(huán)次數(shù),j由0變到1,共循環(huán)2次 for(i=0;iN;i+) /控制循環(huán)次數(shù),i由0變到N-1,共循環(huán)N次 scanf(%

12、f,&gji); /執(zhí)行循環(huán)體,輸入二維數(shù)組g C=qhadd(g,1,N); /調(diào)用qhadd函數(shù),得到第二行所有元素的加和,放在C中 D=qhadd(g,0,N); /調(diào)用qhadd函數(shù),得到第一行所有元素的加和,放在D中 for(i=0,z=1;z=2;i+) C1=qhad(g,1,N,z); D1=qhad(g,0,N,z); D2=qha(g,0,N,z); D3=qh(g,0,N,z); ai=(C*D3-D2*D1)/(N*D3-pow(D1,2); bi=(C-ai*N)/D1; D4=q(g,ai,bi,101,z); Ki=sqrt(D4/N); z=z+0.01; fo

13、r(i=0,j=0,min=K0;i100;i+) if(Ki=min) min=Ki; j=i; printf(C=%fnD=%fnC1=%fnD1=%fnD2=%fnD3=%fn,C,D,C1,D1,D2,D3); printf(a1=%fnb1=%fnz=%fn,aj,bj,1+0.01*j); return 0;float qhadd(float s21000,int e,int d) /定義qhadd函數(shù) float sum=0; int x; for(x=0;xd;x+) sum=sum+sex; /累加求和 return(sum);float qhad(float k21000,

14、int f,int h,float z) /定義qhad函數(shù) float su=0; int y; for(y=0;yh;y+) su=su+pow(kfy,z); /累加求和 return(su);float qha(float p21000,int q,int t,float z) /定義qha函數(shù)float s=0; int u; for(u=0;ut;u+) s=s+(p(q+1)u)*(pow(pqu,z); /累加求和 return(s);float qh(float o21000,int r,int v,float z) /定義qh函數(shù)float l=0; int w; for(

15、w=0;wv;w+) l=l+pow(orw,(2*z); /累加求和 return(l);float q(float o21000,float r,float v,int n,float z) /定義q函數(shù) int i;float sum=0;for(i=0;in;i+)sum=sum+(r+v*(pow(o0i,z)-o1i); /累加求和return(sum);4. 調(diào)試及測(cè)試 開(kāi)始界面: 輸入信息:輸入數(shù)據(jù)的組數(shù):輸入管徑:輸入單位造價(jià): 輸出結(jié)果:調(diào)試中的問(wèn)題:?jiǎn)栴}分析程序顯示在定義數(shù)據(jù)類型時(shí),double和float型之間的轉(zhuǎn)換存在數(shù)據(jù)可能丟失的警告,但對(duì)于本題而言,數(shù)據(jù)不會(huì)溢出,

16、因此暫認(rèn)為可以。而且在全部定義為double型數(shù)據(jù)時(shí)易出現(xiàn)一些問(wèn)題。所以個(gè)人在設(shè)計(jì)程序時(shí)將部分不會(huì)存在數(shù)據(jù)溢出的變量定義為float型。設(shè)計(jì)總結(jié)當(dāng)初一看到這個(gè)題是首先想到的是日常生活中較為常用的畫(huà)圖法,但經(jīng)過(guò)仔細(xì)研究題目和所給表格中的數(shù)據(jù)小數(shù)點(diǎn)要求較為精確,而畫(huà)圖法較為粗糙,因此畫(huà)圖法在此題中不太適合。之后我去校圖書(shū)館查看了一些和造價(jià)工程以及數(shù)學(xué)建模等方面有關(guān)的書(shū)籍,找出了黃金分割最小二乘法,發(fā)現(xiàn)此方法容易獲得最優(yōu)解,其結(jié)果明顯優(yōu)于其他方法,于是決定采用黃金分割最小二乘法的公式及原理來(lái)編寫(xiě)程序求解此題的系數(shù)。在編寫(xiě)成程序時(shí),為了黃金分割最小二乘法的公式的計(jì)算方便定義了5個(gè)函數(shù),求取一些在黃金分

17、割最小二乘法的公式中需要用到的值。此外,本題中取百分之一為精確單位,若在某些工程中需要更為精確的計(jì)算結(jié)果,只需改變此程序中的幾個(gè)數(shù)值即可精確到萬(wàn)分之一甚至百萬(wàn)、億分之一。6. 心得體會(huì)及致謝 課程設(shè)計(jì)是培養(yǎng)學(xué)生綜合運(yùn)用所學(xué)知識(shí),發(fā)現(xiàn),提出,分析和解決實(shí)際問(wèn)題,鍛煉實(shí)踐能力的重要環(huán)節(jié),是對(duì)學(xué)生實(shí)際工作能力的具體訓(xùn)練和考察過(guò)程.隨著科學(xué)技術(shù)發(fā)展的日新日異,當(dāng)今計(jì)算機(jī)應(yīng)用在生活中可以說(shuō)得是無(wú)處不在。因此 作為二十一世紀(jì)的大學(xué)來(lái)說(shuō)掌握計(jì)算機(jī)開(kāi)發(fā)技術(shù)是十分重要的。 回顧起此次課程設(shè)計(jì),至今讓我我們?nèi)愿锌H多,的確,從從拿到題目到完成整個(gè)編程,從理論到實(shí)踐,在這一個(gè)星期的日子里,可以學(xué)到很多很多的的東西,

18、同時(shí)不僅可以鞏固了以前所學(xué)過(guò)的知識(shí),而且學(xué)到了很多在書(shū)本上所沒(méi)有學(xué)到過(guò)的知識(shí)。通過(guò)這次課程設(shè)計(jì)使我懂得了理論與實(shí)際相結(jié)合是很重要的,只有理論知識(shí)是遠(yuǎn)遠(yuǎn)不夠的,只有把所學(xué)的理論知識(shí)與實(shí)踐相結(jié)合起來(lái),從理論中得出結(jié)論,才能真正為社會(huì)服務(wù),從而提高自己的實(shí)際動(dòng)手能力和獨(dú)立思考的能力。在設(shè)計(jì)的過(guò)程中遇到問(wèn)題,可以說(shuō)得是困難重重,這畢竟第一次做的,難免會(huì)遇到過(guò)各種各樣的問(wèn)題,同時(shí)在設(shè)計(jì)的過(guò)程中發(fā)現(xiàn)了自己的不足之處,對(duì)以前所學(xué)過(guò)的知識(shí)理解得不夠深刻,掌握得不夠牢固,比如說(shuō)結(jié)構(gòu)體通過(guò)這次課程設(shè)計(jì)之后,一定把以前所學(xué)過(guò)的知識(shí)重新溫故。 這次課程設(shè)計(jì)終于順利完成了,在設(shè)計(jì)中遇到了很多編程問(wèn)題,最后在盧老師的辛勤指導(dǎo)下,終于游逆而解。同時(shí),在盧老師的身上我學(xué)得到很多實(shí)用的知識(shí),在次我表示感謝!同時(shí),對(duì)給過(guò)我?guī)椭乃型瑢W(xué)和各位指導(dǎo)老師再次

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論