語(yǔ)言程序設(shè)計(jì)論文_第1頁(yè)
語(yǔ)言程序設(shè)計(jì)論文_第2頁(yè)
語(yǔ)言程序設(shè)計(jì)論文_第3頁(yè)
語(yǔ)言程序設(shè)計(jì)論文_第4頁(yè)
語(yǔ)言程序設(shè)計(jì)論文_第5頁(yè)
已閱讀5頁(yè),還剩8頁(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、C語(yǔ)言程序設(shè)計(jì)論文學(xué)校:天津電子信息職業(yè)技術(shù)學(xué)院系別:電子技術(shù)系專業(yè):通信技術(shù)班級(jí):通信S13-26學(xué)號(hào):89757姓名:王磊C語(yǔ)言課程設(shè)計(jì)報(bào)告一、 設(shè)計(jì)題目:計(jì)算器二、 設(shè)計(jì)目標(biāo):進(jìn)一步加深、鞏固學(xué)生所學(xué)專業(yè)課程(C語(yǔ)言)的基本理論知識(shí),理論聯(lián)系實(shí)際,進(jìn)一步培養(yǎng)學(xué)生綜合分析問(wèn)題和解決問(wèn)題的能力。掌握運(yùn)用C語(yǔ)言獨(dú)立地編寫、調(diào)試應(yīng)用程序和進(jìn)行其它相關(guān)設(shè)計(jì)的技能,充分發(fā)揮廣大同學(xué)的潛力,使他們通過(guò)本次課程設(shè)計(jì)而得到全面的鍛煉。三、 設(shè)計(jì)內(nèi)容:1.設(shè)計(jì)系統(tǒng)的功能框圖、流程圖;2.編寫計(jì)算器的源程序代碼;3.上機(jī)調(diào)試;4.答辯;5.書(shū)寫實(shí)習(xí)報(bào)告。四、 課程設(shè)計(jì)所用設(shè)備:每人一臺(tái)計(jì)算機(jī)。五、 課程設(shè)計(jì)系

2、統(tǒng)組成及模塊功能: (1) 主函數(shù)模塊(2) 設(shè)置系統(tǒng)進(jìn)入圖形模塊(3) 初始化圖形系統(tǒng)模塊(4) 計(jì)算器計(jì)算函數(shù)模塊(5) 窗口函數(shù)模塊(6) 設(shè)計(jì)鼠標(biāo)圖形函數(shù)模塊(7) 獲取特殊鍵函數(shù)模塊 六、軟件環(huán)境:Visual c+6.0七、 課程設(shè)計(jì)要求:在計(jì)算機(jī)上操作,通過(guò)Visual c+6.0,設(shè)計(jì)出“計(jì)算器”程序。八、 應(yīng)提交的材料:實(shí)習(xí)報(bào)告一份,內(nèi)容包含“計(jì)算器”程序代碼。設(shè)計(jì)報(bào)告:程序代碼:#include #include #include #include #include #include #include #include #include #define UP 0x48 #d

3、efine DOWN 0x50 #define LEFT 0x4b #define RIGHT 0x4d #define ENTER 0x0d void *rar; struct palettetype palette; int GraphDriver;int GraphMode;int ErrorCode;int MaxColors;int MaxX, MaxY;double AspectRatio;void drawboder(void); void initialize(void); void computer(void); void changetextstyle(int font,

4、int direction, int charsize); void mwindow(char *header); int specialkey(void) ; int arrow(); int main() initialize(); computer(); closegraph(); return(0); void initialize(void) int xasp, yasp; GraphDriver = DETECT; initgraph( &GraphDriver, &GraphMode, );ErrorCode = graphresult(); if( ErrorCode != g

5、rOk ) printf(Graphics System Error: %sn, grapherrormsg( ErrorCode ) ); exit( 1 ); getpalette( &palette ); MaxColors = getmaxcolor() + 1; MaxX = getmaxx(); MaxY = getmaxy(); getaspectratio( &xasp, &yasp ); AspectRatio = (double)xasp/(double)yasp;void computer(void) struct viewporttype vp; int color,

6、height, width; int x, y,x0,y0, i, j,v,m,n,act,flag=1; float num1=0,num2=0,result; char cnum5,str220=,c,temp20=; char str1=1230.456+-789*/Qc=%; mwindow( Calculator ); color = 7; getviewsettings( &vp ); width=(vp.right+1)/10; height=(vp.bottom-10)/10 ; x = width /2; y = height/2; setfillstyle(SOLID_FI

7、LL, color+3); bar( x+width*2, y, x+7*width, y+height ); setcolor( color+3 ); rectangle( x+width*2, y, x+7*width, y+height ); setcolor(RED); outtextxy(x+3*width,y+height/2,0.); x =2*width-width/2; y =2*height+height/2; for( j=0 ; j4 ; +j ) for( i=0 ; i=x0+6*width) x=x0; m=0; else x=x+width+width/2; m

8、+; if(v=LEFT) if(x=x0) x=x0+6*width; m=4; else x=x-width-width/2;m-; if(v=UP) if(y=7*height) y=y0; n=0; else y=y+height+height/2;n+; putimage(x,y,rar,XOR_PUT); c=str1n*5+m; if(isdigit(c)|c=.) if(flag=-1) strcpy(str2,-); flag=1; sprintf(temp,%c,c); strcat(str2,temp); setfillstyle(SOLID_FILL,color+3);

9、 bar(2*width+width/2,height/2,15*width/2,3*height/2); outtextxy(5*width,height,str2); if(c=+) num1=atof(str2); strcpy(str2,); act=1; setfillstyle(SOLID_FILL,color+3); bar(2*width+width/2,height/2,15*width/2,3*height/2); outtextxy(5*width,height,0.); if(c=-) if(strcmp(str2,)=0) flag=-1; else num1=ato

10、f(str2); strcpy(str2,); act=2; setfillstyle(SOLID_FILL,color+3); bar(2*width+width/2,height/2,15*width/2,3*height/2); outtextxy(5*width,height,0.); if(c=*) num1=atof(str2); strcpy(str2,); act=3; setfillstyle(SOLID_FILL,color+3); bar(2*width+width/2,height/2,15*width/2,3*height/2); outtextxy(5*width,

11、height,0.); if(c=/) num1=atof(str2); strcpy(str2,); act=4; setfillstyle(SOLID_FILL,color+3); bar(2*width+width/2,height/2,15*width/2,3*height/2); outtextxy(5*width,height,0.); if(c=) num1=atof(str2); strcpy(str2,); act=5; setfillstyle(SOLID_FILL,color+3); bar(2*width+width/2,height/2,15*width/2,3*he

12、ight/2); outtextxy(5*width,height,0.); if(c=%) num1=atof(str2); strcpy(str2,); act=6; setfillstyle(SOLID_FILL,color+3); bar(2*width+width/2,height/2,15*width/2,3*height/2); outtextxy(5*width,height,0.); if(c=) num2=atof(str2); switch(act) case 1:result=num1+num2;break; case 2:result=num1-num2;break;

13、 case 3:result=num1*num2;break; case 4:result=num1/num2;break; case 5:result=pow(num1,num2);break; case 6:result=fmod(num1,num2);break; setfillstyle(SOLID_FILL,color+3); bar(2*width+width/2,height/2,15*width/2,3*height/2); sprintf(temp,%f,result); outtextxy(5*width,height,temp); if(c=c) num1=0; num2

14、=0; flag=1; strcpy(str2,); setfillstyle(SOLID_FILL,color+3); bar(2*width+width/2,height/2,15*width/2,3*height/2); outtextxy(5*width,height,0.); if(c=Q)exit(0); putimage(x,y,rar,XOR_PUT); return; void mwindow( char *header ) int height; cleardevice(); setcolor( MaxColors - 1 ); setviewport( 20, 20, M

15、axX/2, MaxY/2, 1 ); height = textheight( H ); settextstyle( DEFAULT_FONT, HORIZ_DIR, 1 ); settextjustify( CENTER_TEXT, TOP_TEXT ); outtextxy( MaxX/4, 2, header ); setviewport( 20,20+height+4, MaxX/2+4, MaxY/2+20, 1 ); drawboder(); void drawboder(void) struct viewporttype vp; setcolor( MaxColors - 1

16、); setlinestyle( SOLID_LINE, 0, NORM_WIDTH ); getviewsettings( &vp ); rectangle( 0, 0, vp.right-vp.left, vp.bottom-vp.top ); int arrow() int size; int raw=4,4,4,8,6,8,14,16,16,16,8,6,8,4,4,4; setfillstyle(SOLID_FILL,2); fillpoly(8,raw); size=imagesize(4,4,16,16); rar=malloc(size); getimage(4,4,16,16

17、,rar); putimage(4,4,rar,XOR_PUT); return 0;/int specialkey(void) int key; while(bioskey(1)=0); key=bioskey(0); key=key&0xff? key&0xff:key8; return(key); 總結(jié):1) 實(shí)際操作過(guò)程中遇到的問(wèn)題及解決方法:1.忘記加分號(hào)。分號(hào)是C語(yǔ)句中不可缺少的一部分,語(yǔ)句末尾必須有分號(hào)。a=1 b=2編譯時(shí),編譯程序在“a=1”后面沒(méi)發(fā)現(xiàn)分號(hào),就把下一行“b=2”也作為上一行語(yǔ)句的一部分,這就會(huì)出現(xiàn)語(yǔ)法錯(cuò)誤。改錯(cuò)時(shí),有時(shí)在被指出有錯(cuò)的一行中未發(fā)現(xiàn)錯(cuò)誤,就需要看一

18、下上一行是否漏掉了分號(hào)。 z=x+y;t=z/100;printf(%f,t);對(duì)于復(fù)合語(yǔ)句來(lái)說(shuō),最后一個(gè)語(yǔ)句中最后的分號(hào)不能忽略不寫(這是和PASCAL不同的)。2.輸入輸出的數(shù)據(jù)的類型與所用格式說(shuō)明符不一致int a=3;float b=4.5;printf(“%f%dn”,a,b);它們并不是按照賦值的規(guī)則進(jìn)行轉(zhuǎn)換(如把4.5轉(zhuǎn)換為4),而是將數(shù)據(jù)在存儲(chǔ)單元中的形式按格式符的要求組織輸出(如b占4個(gè)字節(jié),只把最后兩個(gè)字節(jié)的數(shù)據(jù)按%d,作為整數(shù)輸出)2) 設(shè)計(jì)總結(jié)及心得體會(huì)。通過(guò)C語(yǔ)言編程的學(xué)習(xí),培養(yǎng)了我獨(dú)立思考和綜合運(yùn)用平時(shí)知識(shí)的能力,鞏固了課程學(xué)習(xí)的內(nèi)容,掌握了工程軟件設(shè)計(jì)的基本方法,強(qiáng)化了上機(jī)動(dòng)手編程能力。更加了解了C語(yǔ)言的便利性和可用性。同時(shí)了解到了程序設(shè)計(jì)需要團(tuán)隊(duì)合作,通過(guò)這次實(shí)習(xí)活

溫馨提示

  • 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)論