C语言程序设计论文.docx

上传人:b****6 文档编号:7880359 上传时间:2023-01-26 格式:DOCX 页数:12 大小:18.38KB
下载 相关 举报
C语言程序设计论文.docx_第1页
第1页 / 共12页
C语言程序设计论文.docx_第2页
第2页 / 共12页
C语言程序设计论文.docx_第3页
第3页 / 共12页
C语言程序设计论文.docx_第4页
第4页 / 共12页
C语言程序设计论文.docx_第5页
第5页 / 共12页
点击查看更多>>
下载资源
资源描述

C语言程序设计论文.docx

《C语言程序设计论文.docx》由会员分享,可在线阅读,更多相关《C语言程序设计论文.docx(12页珍藏版)》请在冰豆网上搜索。

C语言程序设计论文.docx

C语言程序设计论文

C语言程序设计论文

 

学校:

天津电子信息职业技术学院

 

系别:

电子技术系

 

专业:

通信技术

 

班级:

通信S13-26

 

学号:

89757

 

王磊

C语言课程设计报告

一、设计题目:

计算器

二、设计目标:

进一步加深、巩固学生所学专业课程(《C语言》)的基本理论知识,理论联系实际,进一步培养学生综合分析问题和解决问题的能力。

掌握运用C语言独立地编写、调试应用程序和进行其它相关设计的技能,充分发挥广学的潜力,使他们通过本次课程设计而得到全面的锻炼。

三、设计容:

1.设计系统的功能框图、流程图;2.编写计算器的源程序代码;3.上机调试;4.答辩;

5.书写实习报告。

四、课程设计所用设备:

每人一台计算机。

五、课程设计系统组成及模块功能:

(1)主函数模块

(2)设置系统进入图形模块

(3)初始化图形系统模块

(4)计算器计算函数模块

(5)窗口函数模块

(6)设计鼠标图形函数模块

(7)获取特殊键函数模块

六、软件环境:

Visualc++6.0

七、课程设计要求:

在计算机上操作,通过Visualc++6.0,设计出“计算器”程序。

八、应提交的材料:

实习报告一份,容包含“计算器”程序代码。

设计报告:

程序代码:

#include

#include

#include

#include

#include

#include

#include

#include

#include

#defineUP0x48

#defineDOWN0x50

#defineLEFT0x4b

#defineRIGHT0x4d

#defineENTER0x0d

void*rar;

structpalettetypepalette;

intGraphDriver;

intGraphMode;

intErrorCode;

intMaxColors;

intMaxX,MaxY;

doubleAspectRatio;

voiddrawboder(void);

voidinitialize(void);

voidcomputer(void);

voidchangetextstyle(intfont,intdirection,intcharsize);

voidmwindow(char*header);

intspecialkey(void);

intarrow();

intmain()

{

initialize();

computer();

closegraph();

return(0);

}

voidinitialize(void)

{

intxasp,yasp;

GraphDriver=DETECT;

initgraph(&GraphDriver,&GraphMode,"");

ErrorCode=graphresult();

if(ErrorCode!

=grOk)

{

printf("GraphicsSystemError:

%s\n",

grapherrormsg(ErrorCode));

exit

(1);

}

getpalette(&palette);

MaxColors=getmaxcolor()+1;

MaxX=getmaxx();

MaxY=getmaxy();

getaspectratio(&xasp,&yasp);

AspectRatio=(double)xasp/(double)yasp;

}

voidcomputer(void)

{

structviewporttypevp;

intcolor,height,width;

intx,y,x0,y0,i,j,v,m,n,act,flag=1;

floatnum1=0,num2=0,result;

charum[5],str2[20]={""},c,temp[20]={""};

charstr1[]="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_FILL,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;j<4;++j)

{

for(i=0;i<5;++i)

{

setfillstyle(SOLID_FILL,color);

setcolor(RED);

bar(x,y,x+width,y+height);

rectangle(x,y,x+width,y+height);

sprintf(str2,"%c",str1[j*5+i]);

outtextxy(x+(width/2),y+height/2,str2);

x=x+width+(width/2);

}

y+=(height/2)*3;

x=2*width-width/2;

}

x0=2*width;

y0=3*height;

x=x0;

y=y0;

gotoxy(x,y);

arrow();

putimage(x,y,rar,XOR_PUT);

m=0;

n=0;

strcpy(str2,"");

while((v=specialkey())!

=45)

{

while((v=specialkey())!

=ENTER)

{

putimage(x,y,rar,XOR_PUT);

if(v==RIGHT)

if(x>=x0+6*width)

{

x=x0;

m=0;

}

else

{

x=x+width+width/2;

m++;

}

if(v==LEFT)

if(x<=x0)

{

x=x0+6*width;

m=4;

}

else

{

x=x-width-width/2;

m--;

}

if(v==UP)

if(y<=y0)

{

y=y0+4*height+height/2;

n=3;

}

else

{

y=y-height-height/2;

n--;

}

if(v==DOWN)

if(y>=7*height)

{

y=y0;

n=0;

}

else

{

y=y+height+height/2;

n++;

}

putimage(x,y,rar,XOR_PUT);

}

c=str1[n*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);

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=atof(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,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*height/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)

{

case1:

result=num1+num2;break;

case2:

result=num1-num2;break;

case3:

result=num1*num2;break;

case4:

result=num1/num2;break;

case5:

result=pow(num1,num2);break;

case6:

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=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;

}

voidmwindow(char*header)

{

intheight;

cleardevice();

setcolor(MaxColors-1);

setviewport(20,20,MaxX/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();

}

voiddrawboder(void)

{

structviewporttypevp;

setcolor(MaxColors-1);

setlinestyle(SOLID_LINE,0,NORM_WIDTH);

getviewsettings(&vp);

rectangle(0,0,vp.right-vp.left,vp.bottom-vp.top);

}

intarrow()

{

intsize;

intraw[]={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,rar);

putimage(4,4,rar,XOR_PUT);

return0;

}

/

intspecialkey(void)

{

intkey;

while(bioskey

(1)==0);

key=bioskey(0);

key=key&0xff?

key&0xff:

key>>8;

return(key);

}

总结:

1)实际操作过程中遇到的问题及解决方法:

1.忘记加分号。

分号是C语句中不可缺少的一部分,语句末尾必须有分号。

a=1b=2编译时,编译程序在“a=1”后面没发现分号,就把下一行“b=2”也作为上一行语句的一部分,这就会出现语法错误。

改错时,有时在被指出有错的一行中未发现错误,就需要看一下上一行是否漏掉了分号。

{z=x+y;t=z/100;printf("%f",t);}对于复合语句来说,最后一个语句中最后的分号不能忽略不写(这是和PASCAL不同的)。

2.输入输出的数据的类型与所用格式说明符不一致inta=3;floatb=4.5;printf(“%f%d\n”,a,b);它们并不是按照赋值的规则进行转换(如把4.5转换为4),而是将数据在存储单元中的形式按格式符的要求组织输出(如b占4个字节,只把最后两个字节的数据按%d,作为整数输出)

2)设计总结及心得体会。

通过C语言编程的学习,培养了我独立思考和综合运用平时知识的能力,巩固了课程学习的容,掌握了工程软件设计的基本方法,强化了上机动手编程能力。

更加了解了C语言的便利性和可用性。

同时了解到了程序设计需要团队合作,通过这次实习活动增进了同学之间的默契,体会到了毕业后工作中团队合作的重要性和必要性。

当一个程序从自己的手中诞生的时候,心中充满了自豪感和成就感,让我对动手操作实践更有兴趣了。

八、时间:

实验心得 

   通过本次C语言上机实验,我对这个介于人类与非人类之间的计算机编程语言有了一定的体验。

其间开心过、郁闷过、无奈过、彷徨过……随着实验的胜利成功与实验报告的胜利完成,有点微微的自豪感使人难忘。

感高克宁老师的高标准、严要求,感实验课上小老师们的耐心指点,也感我在实验中经历过的点点滴滴……伴随着学习的深入,我发现高深的东西还有很多很多,等待着我自己去挖掘。

对C语言,我会更加努力一周课时:

12学时

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 职业教育 > 中职中专

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1