繪制函數(shù)曲線c語言課程設(shè)計(jì)報(bào)告_第1頁
繪制函數(shù)曲線c語言課程設(shè)計(jì)報(bào)告_第2頁
繪制函數(shù)曲線c語言課程設(shè)計(jì)報(bào)告_第3頁
繪制函數(shù)曲線c語言課程設(shè)計(jì)報(bào)告_第4頁
繪制函數(shù)曲線c語言課程設(shè)計(jì)報(bào)告_第5頁
已閱讀5頁,還剩7頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、沈 陽 航 空 工 業(yè) 學(xué) 院課程設(shè)計(jì)學(xué) 號(hào): 200604021109班 級(jí): 6402104姓 名:王窮杰指導(dǎo)教師: 劉成2007年 9 月 17 日沈陽航空工業(yè)學(xué)院課程設(shè)計(jì)任務(wù)書院系:電子工程系 專業(yè):電子信息工程 班級(jí):6402104班學(xué)號(hào):2006 04021109 課程設(shè)計(jì)題目:繪制函數(shù)曲線一、課程設(shè)計(jì)工作自2007年9月10日起至2007年9月14日止二、課程設(shè)計(jì)內(nèi)容:用C語言編寫軟件完成以下任務(wù):在圖形模式下,繪制一元二次函數(shù)ax2+bx+c.其中系數(shù)a,b,c,以及X的取值范圍,均由用戶從鍵盤輸入。三、課程設(shè)計(jì)要求1. 程序質(zhì)量: 貫徹結(jié)構(gòu)化的程序設(shè)計(jì)思想。 用戶界面友好,功

2、能明確,操作方便。 用戶界面中的菜單至少應(yīng)包括“選擇菜單”、“輸入X區(qū)間”、“開始繪制”、“退出”4項(xiàng)。 代碼應(yīng)適當(dāng)縮進(jìn),并給出必要的注釋,以增強(qiáng)程序的可讀性。2. 課程設(shè)計(jì)說明書:課程結(jié)束后,上交課程設(shè)計(jì)說明書和源程序。課程設(shè)計(jì)說明書的格式和內(nèi)容參見提供的模板。四、指導(dǎo)教師和學(xué)生簽字指導(dǎo)教師:_ 學(xué)生簽名:_五、成績:六、教師評語: 目錄程序設(shè)計(jì)題目1題目分析1總體設(shè)計(jì)1模塊設(shè)計(jì)2關(guān)鍵技術(shù)分析2完整的源程序3總結(jié):7程序設(shè)計(jì)題目:繪制函數(shù)曲線。具體要求如下:在圖形模式下,繪制一元二次函數(shù)ax+bx+c。其中系數(shù)a,b,c,以及x 的取值范圍,均由用戶從鍵盤輸入。用戶界面中的菜單至少應(yīng)包括“輸

3、入系數(shù)”“輸入x的曲間”“開始繪制”“退出”題目分析:經(jīng)過對程序設(shè)計(jì)題目的分析可知,整個(gè)程序的設(shè)計(jì)實(shí)現(xiàn)大致分為:繪制坐標(biāo),繪制圖形。在繪制坐標(biāo)中,關(guān)鍵步驟是將笛卡兒坐標(biāo)轉(zhuǎn)化成屏幕坐標(biāo)??傮w設(shè)計(jì):圖1整體框架圖:開始輸出目錄選項(xiàng)結(jié)束輸入系數(shù)a,b,c輸入xmin,xmax輸出繪圖模塊設(shè)計(jì)圖2坐標(biāo)轉(zhuǎn)換:fun3 initgraph(&graphdriver,&graphmode,)max_x=getmaxx();max_y=getmaxy()繪制坐標(biāo)x1=max_x/2+xmin*coe_x,y1=max_y/2-(a*xmin*coe_x*xmin*coe_x+b*xmin*coe_x+c)*c

4、oe_ymoveto(int)x1,(int)y1)for(x=xmin*coe_x;x=xmax*coe_x;x+)x2=max_x/2+x,y2=max_y/2-(a*x*x+b*x+c)*coe_y; lineto(int)x2,(int)y2);關(guān)鍵技術(shù)分析顯示器設(shè)定:int graphdriver=DETECT,graphmode圖形初始化:initgraph(&graphdriver,&graphmode,)求出屏幕的最大橫,縱坐標(biāo)大?。簃ax_x=getmaxx(); max_y=getmaxy()繪制坐標(biāo)軸:line(0,240,640,240); 畫直線 line(320,0

5、,320,480); line(640,240,635,235); line(640,240,635,245); line(320,0,315,5); line(320,0,325,5); outtextxy(320,240,(0,0); 在固定點(diǎn)輸出字符串 outtextxy(620,240,x); outtextxy(320,10,y);坐標(biāo)之間的轉(zhuǎn)換:x1=max_x/2+xmin*coe_x,y1=max_y/2-(a*xmin*coe_x*xmin*coe_x+b*xmin*coe_x+c)*coe_y; moveto(int)x1,(int)y1); for(x=xmin*coe_

6、x;x=xmax*coe_x;x+) x2=max_x/2+x,y2=max_y/2-(a*x*x+b*x+c)*coe_y; lineto(int)x2,(int)y2)目錄選擇功能的實(shí)現(xiàn):switch(n) case 1:fun1();break; case 2:fun2();break; case 3:fun3();break; case 4:exit(0); default:printf(n error n)圖3數(shù)據(jù)的輸入完整的源程序#include#includefloat a,b,c,xmin,xmax,max; /*定義全局變量*/void menu()printf(n*WELC

7、OME*n); printf(n 1.input coefficient); printf(n 2.input extent);printf(n 3.draw function curve); printf(n 4.quit); printf(n*n);fun1() printf(input a,b,cn); scanf(%f,%f,%f,&a,&b,&c); /*輸入系數(shù)a,b,c*/fun2() /*輸入x范圍*/ printf(input xmin,xmaxn); scanf(%f,%f,&xmin,&xmax);funmax() /*求出x軸最大范圍*/ float m,n; if(x

8、min0) m=-xmin; else m=xmin; if(xmax=n) max=m; else max=n;float funx(float max_x) /*求出x軸對應(yīng)系數(shù)*/ return(max_x/2/max);float funy(float max_y) /*求出y軸對應(yīng)系數(shù)*/ float d; d=max_y/2/(a*max*max+b*max+c); if(d0.6) d=0.6; if(d0.0026) d=0.0026; return(d);fun3() int max_x,max_y; int graphdriver=DETECT,graphmode; flo

9、at x1,y1,x2,y2,x,coe_x,coe_y; initgraph(&graphdriver,&graphmode,); /*圖形初始化*/ cleardevice(); /*清屏*/ max_x=getmaxx(); /*求出屏幕最大橫坐標(biāo)*/ max_y=getmaxy(); /*求出屏幕最大橫坐標(biāo)*/ funmax(); coe_x=funx(max_x); coe_y=funy(max_y); line(0,240,640,240); /*畫直線*/ line(320,0,320,480); line(640,240,635,235); line(640,240,635,2

10、45); line(320,0,315,5); line(320,0,325,5); outtextxy(320,240,(0,0); /*在固定點(diǎn)輸出字符串*/ outtextxy(620,240,x); outtextxy(320,10,y);x1=max_x/2+xmin*coe_x,y1=max_y/2-(a*xmin*coe_x*xmin*coe_x+b*xmn*coe_x+c)*coe_y; moveto(int)x1,(int)y1); for(x=xmin*coe_x;x=xmax*coe_x;x+) x2=max_x/2+x,y2=max_y/2-(a*x*x+b*x+c)*

11、coe_y; lineto(int)x2,(int)y2); getch(); closegraph(); /*關(guān)閉圖形函數(shù)*/main() int n; menu(); while(1) scanf(%d,&n); switch(n) case 1:fun1();break; case 2:fun2();break; case 3:fun3();break; case 4:exit(0); default:printf(n error n); 總結(jié): 這次課程設(shè)計(jì),加強(qiáng)了我對c語言的了解。課程設(shè)計(jì)所面臨的問題都是一些實(shí)際問題,在完成的過程中,解決實(shí)際問題的能力就很重要,還有一些是以前在課堂上沒有學(xué)過的知識(shí),這就要求我們?nèi)ゲ橐恍┵Y料,并學(xué)習(xí)。雖然個(gè)人

溫馨提示

  • 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)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(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

提交評論