语言程序设计论文_第1页
语言程序设计论文_第2页
语言程序设计论文_第3页
语言程序设计论文_第4页
语言程序设计论文_第5页
已阅读5页,还剩8页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、C语言程序设计论文学校:天津电子信息职业技术学院系别:电子技术系专业:通信技术班级:通信S13-26学号:89757姓名:王磊C语言课程设计报告一、 设计题目:计算器二、 设计目标:进一步加深、巩固学生所学专业课程(C语言)的基本理论知识,理论联系实际,进一步培养学生综合分析问题和解决问题的能力。掌握运用C语言独立地编写、调试应用程序和进行其它相关设计的技能,充分发挥广大同学的潜力,使他们通过本次课程设计而得到全面的锻炼。三、 设计内容:1.设计系统的功能框图、流程图;2.编写计算器的源程序代码;3.上机调试;4.答辩;5.书写实习报告。四、 课程设计所用设备:每人一台计算机。五、 课程设计系

2、统组成及模块功能: (1) 主函数模块(2) 设置系统进入图形模块(3) 初始化图形系统模块(4) 计算器计算函数模块(5) 窗口函数模块(6) 设计鼠标图形函数模块(7) 获取特殊键函数模块 六、软件环境:Visual c+6.0七、 课程设计要求:在计算机上操作,通过Visual c+6.0,设计出“计算器”程序。八、 应提交的材料:实习报告一份,内容包含“计算器”程序代码。设计报告:程序代码:#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); 总结:1) 实际操作过程中遇到的问题及解决方法:1.忘记加分号。分号是C语句中不可缺少的一部分,语句末尾必须有分号。a=1 b=2编译时,编译程序在“a=1”后面没发现分号,就把下一行“b=2”也作为上一行语句的一部分,这就会出现语法错误。改错时,有时在被指出有错的一行中未发现错误,就需要看一

18、下上一行是否漏掉了分号。 z=x+y;t=z/100;printf(%f,t);对于复合语句来说,最后一个语句中最后的分号不能忽略不写(这是和PASCAL不同的)。2.输入输出的数据的类型与所用格式说明符不一致int a=3;float b=4.5;printf(“%f%dn”,a,b);它们并不是按照赋值的规则进行转换(如把4.5转换为4),而是将数据在存储单元中的形式按格式符的要求组织输出(如b占4个字节,只把最后两个字节的数据按%d,作为整数输出)2) 设计总结及心得体会。通过C语言编程的学习,培养了我独立思考和综合运用平时知识的能力,巩固了课程学习的内容,掌握了工程软件设计的基本方法,强化了上机动手编程能力。更加了解了C语言的便利性和可用性。同时了解到了程序设计需要团队合作,通过这次实习活

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论