![中北大學(xué)C語言課程設(shè)計《計算四邊形面積》_第1頁](http://file3.renrendoc.com/fileroot_temp3/2022-3/6/56949508-2280-40cc-b69d-6b4329a244cf/56949508-2280-40cc-b69d-6b4329a244cf1.gif)
![中北大學(xué)C語言課程設(shè)計《計算四邊形面積》_第2頁](http://file3.renrendoc.com/fileroot_temp3/2022-3/6/56949508-2280-40cc-b69d-6b4329a244cf/56949508-2280-40cc-b69d-6b4329a244cf2.gif)
![中北大學(xué)C語言課程設(shè)計《計算四邊形面積》_第3頁](http://file3.renrendoc.com/fileroot_temp3/2022-3/6/56949508-2280-40cc-b69d-6b4329a244cf/56949508-2280-40cc-b69d-6b4329a244cf3.gif)
![中北大學(xué)C語言課程設(shè)計《計算四邊形面積》_第4頁](http://file3.renrendoc.com/fileroot_temp3/2022-3/6/56949508-2280-40cc-b69d-6b4329a244cf/56949508-2280-40cc-b69d-6b4329a244cf4.gif)
![中北大學(xué)C語言課程設(shè)計《計算四邊形面積》_第5頁](http://file3.renrendoc.com/fileroot_temp3/2022-3/6/56949508-2280-40cc-b69d-6b4329a244cf/56949508-2280-40cc-b69d-6b4329a244cf5.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、 中 北 大 學(xué)課程設(shè)計說明書學(xué) 院、系:軟件學(xué)院專 業(yè):軟件工程學(xué) 生 姓 名:學(xué) 號:1221011319設(shè) 計 題 目:四邊形計算 起 迄 日 期: 2013年10月11日2013年11月16日指 導(dǎo) 教 師:李華玲日期: 2013年11月16日1 設(shè)計目的 .2 任務(wù)概述 .3 模塊劃分 .4 主要函數(shù)說明及其N-S圖 .5 程序運行數(shù)據(jù)及其結(jié)果 .6 程序設(shè)計心得 .7 附錄(代碼) .1 設(shè)計目的 (1)進一步鞏固和復(fù)習(xí)C程序設(shè)計的基礎(chǔ)知識; (2)培養(yǎng)學(xué)生結(jié)構(gòu)化程序、模塊化程序設(shè)計的方法和能力; (3)了解軟件的編制過程及各環(huán)節(jié)的具體內(nèi)容; (4) 提高程序調(diào)試技巧、軟件設(shè)計能力
2、和代碼規(guī)范化等素質(zhì);提高分析問題、解決問題以及實際運用能力。2 任務(wù)概述用C程序語言編寫源程序來驗證計算四邊形,要求:1) 在屏幕上能夠手動輸入待計算的四邊形各邊邊長,頂點、對角線上各點及延長線的交點的名稱;2) 輸入完成后通過選擇后,可以通過編寫的程序驗證三角形RMN的面積是四邊形ABCD面積的四分之一;3) 將驗證結(jié)果顯示在屏幕上。4) 驗收時程序能夠演示,自己單獨做。3 模塊劃分主函數(shù)計算三角形面積的函數(shù)計算兩直線交點的函數(shù)初步檢測四邊形的函數(shù)計算兩點間距離大函數(shù)4 主要函數(shù)說明及其N-S圖( 1)首先根據(jù)提示從鍵盤手動輸入四個定點的坐標,調(diào)用“初步檢測四邊形函數(shù)”檢查輸入的點是否可用,
3、如果有重合在一起的點或AB與CD近乎平行,則異常結(jié)束。(2)其次,推算M、N兩個“中點”的坐標,并且調(diào)用求交點函數(shù)計算BA與CD延長后的交點r的坐標。(3)接著,調(diào)用“計算三角形面積的函數(shù)”分別算出四邊形abcd和三角形的mnr的面積。計算四邊形abcd面積的時候,需要檢測該四邊形是否為凹四邊形,如是,則異常結(jié)束,必要地,計算三角形面積的時候需要調(diào)用“計算兩點間線段距離的函數(shù)”。(4)最后,計算四邊形abcd和三角形的mnr的面積之比,并輸出結(jié)果。開始定義 pname=ABCD,*p=pname, Point m,n,r,P4,*PP=P, double abcd,rmn,abcd1!ok(P
4、)Y N*p printf(input (x,y) of point %c:,*p)scanf(%lf%*c%lf,&PP-x,&PP-yp+pp+fprintf(stderr,invalid input.nn)exit(1)m.x = (a.x+c.x)/2m.y = (a.y+c.y)/2n.x = (b.x+d.x)/2n.y = (b.y+d.y)/2r= pointOfIntersection()abcd = area_of_triangle(a,b,c) + area_of_triangle(a,d,c)abcd1= area_of_triangle(a,b,d) + area_o
5、f_triangle(b,d,c)fabs(abcd1-abcd)EPSY Nfprintf(stderr,凹四邊形!不行!nn) exit(2)rmn = area_of_triangle(r,m,n)printf(as a resultnABCD:RMN=%4.2f:%4.2f=%4.2fn ,abcd,rmn,abcd/rmn); 圖1-1主函數(shù)main()定義side4,i,j定義tj=(i+1)%4t=length(&pi,&pj)fabs(t)EPS)YNsidei=treturn 0定義k1,k2for(i=0;i4;i+)k1=(p1.y-p0.y)/(p1.x-p0.x)k2
6、=(p3.y-p2.y)/(p3.x-p2.x)if(fabs(k2-k1)x-B-x,2)+pow(A-y-B-y,2)圖1-4計算兩點間直線距離函數(shù)length()開始定義cdx,cdy,abx,aby,dax,day, del,du,dv;cdx = c.x-d.xcdy = c.y-d.yabx = a.x-b.xaby = a.y-b.y;dax = d.x-a.xday = d.y-a.ydel = cdx*aby-cdy*abx;du = dax*aby-day*abx;dv = cdx*day-cdy*dax;du /= dedv /= delr.x = d.x-du*cdxr
7、.y = d.y-du*cdyreture r圖1-5計算交點坐標的函數(shù)pointOfIntersection ()5 程序運行數(shù)據(jù)及其結(jié)果 四邊形與三角形面積之比4:1點重合AB與CD平行四邊形是凹四邊形6 程序設(shè)計心得 這次的課程設(shè)計實驗是對我們進入大學(xué)以來學(xué)習(xí)C語言結(jié)果的一次考驗,作為軟件專業(yè)的學(xué)生來說,掌握軟件開發(fā)技術(shù)是十分重要的,而C語言又是最常見,功能最強大的一種高級語言,因此做好C語言課程設(shè)計是十分必要的。 通過這次課程設(shè)計,不僅重溫了C語言的知識,而且還強化了對C程序的運行和測試。比如,當用到定義點的變量時,用到了結(jié)構(gòu)體的定義和新類型的定義,知道了怎樣用typedef來定義新的
8、類型名,在編程過程中,用到了基本類型有int、char,用到常用運算符及其表達式,賦值,算術(shù),邏輯,還有順序結(jié)構(gòu)。C語言程序有很多難點,例如數(shù)組、指針、結(jié)構(gòu)體,但重點也是它們,只有經(jīng)過多次應(yīng)用,才能夠牢牢掌握它們。 編好程序之后,要在電腦上運行,運行時,電腦會給你指出代碼中的錯誤,有時候是一些標示符的錯誤應(yīng)用,有時候是代碼編寫格式錯誤,反反復(fù)復(fù),等到把程序調(diào)到能夠運行了,你會發(fā)現(xiàn),在這個過程中,有很多自己忽略的小知識點,自己把它改正,這就是經(jīng)驗,不僅復(fù)習(xí)了知識,還得到了提高,我覺得這就是課程設(shè)計的目的。7 附錄(代碼) #include#include#include#define EPS 1
9、e-10typedef struct double x; double y; Point;/*兩點之間的直線距離*/double length(Point *A,Point *B) return sqrt(pow(A-x-B-x,2)+pow(A-y-B-y,2);double area_of_triangle(Point A,Point B,Point C) double area,a,b,c,p; a=length(&B,&C); b=length(&C,&A); c=length(&A,&B); p=(a+b+c)/2; area=sqrt(p*(p-a)*(p-b)*(p-c); re
10、turn area;/*初步檢測四邊形*/int ok(Point *p) double side4;/*4邊長*/ int i,j; for(i=0; i4; i+) double t; j=(i+1)%4; t=length(&pi,&pj); if(fabs(t)EPS)return 0; /*不允許有重合在一起的點*/ sidei=t; double k1,k2;/*斜率*/ k1=(p1.y-p0.y)/(p1.x-p0.x); k2=(p3.y-p2.y)/(p3.x-p2.x); if(fabs(k2-k1)x,&PP-y); p+; PP+; /*至此得到四邊形的4個頂點的坐標
11、*/ if(!ok(P)/*如果AB/CD則無法相交只好退出*/ fprintf(stderr,invalid input.nn); exit(1); /*異常結(jié)束1*/ /*推算M、N兩個“中點”的坐標*/ m.x = (a.x+c.x)/2; m.y = (a.y+c.y)/2; n.x = (b.x+d.x)/2; n.y = (b.y+d.y)/2; r = pointOfIntersection(a,b,c,d);/調(diào)用求交點函數(shù),并將求出的點賦值給r /*這里計算四邊形ABCD的面積*/ abcd = area_of_triangle(a,b,c) + area_of_triangle(a,d,c); /*補充檢測四邊形,看它的凹凸性*/ abcd1= area_of_triangle(a,b,d) + area_of_triangle(b,d,c); if(fabs(abcd1-abcd)EPS) fprintf
溫馨提示
- 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二手房買賣標準合同
- 個人房屋租賃合同模板「全新版」
- 2025高速公路擴建爆破作業(yè)合同
- 員工勞動合同范
- 帶多應(yīng)用塊石購銷合同范本
- 三方貸款擔(dān)保合同書模板
- 專業(yè)滅鼠服務(wù)合同
- 上海市農(nóng)產(chǎn)品購銷合同示范文本
- 五金產(chǎn)品長期供貨合同2025
- 二手房預(yù)定合同定金協(xié)議書范本
- 電梯結(jié)構(gòu)與原理-第2版-全套課件
- IEC-62368-1-差異分享解讀
- SWITCH塞爾達傳說曠野之息-1.6金手指127項修改使用說明教程
- 2022-2023學(xué)年廣東省佛山市順德區(qū)高三(下)模擬英語試卷
- 節(jié)后復(fù)工培訓(xùn)內(nèi)容五篇
- GB/T 33322-2016橡膠增塑劑芳香基礦物油
- GA 1051-2013槍支彈藥專用保險柜
- 某水毀公路維修工程施工方案
- 家庭病房工作制度和人員職責(zé)
- 建設(shè)工程監(jiān)理合同示范文本GF-2018-0202
- 2022質(zhì)檢年終工作總結(jié)5篇
評論
0/150
提交評論