admin 管理员组文章数量: 1087139
2024年3月21日发(作者:gamma函数考研考吗)
C语言序设计论文程
精品资料
C语言程序设计论文
学校:天津电子信息职业技术学院
系别:电子技术系
专业:通信技术
班级:通信S13-26
学号:89757
姓名:王磊
C语言课程设计报告
仅供学习与交流,如有侵权请联系网站删除 谢谢
2
精品资料
一、 设计题目:计算器
二、 设计目标:进一步加深、巩固学生所学专业课程(《C语言》)的基本
理论知识,理论联系实际,进一步培养学生综合分析问题和解决问题的能
力。掌握运用C语言独立地编写、调试应用程序和进行其它相关设计的
技能,充分发挥广大同学的潜力,使他们通过本次课程设计而得到全面的
锻炼。
三、 设计内容:
1.设计系统的功能框图、流程图;2.编写计算器的源程序代码;3.上机调
试;4.答辩;
5.书写实习报告。
四、 课程设计所用设备:每人一台计算机。
五、 课程设计系统组成及模块功能:
(1) 主函数模块
(2) 设置系统进入图形模块
(3) 初始化图形系统模块
(4) 计算器计算函数模块
(5) 窗口函数模块
(6) 设计鼠标图形函数模块
(7) 获取特殊键函数模块
六、软件环境:Visual c++6.0
七、 课程设计要求:在计算机上操作,通过Visual c++6.0,设计出“计算器”
程序。
仅供学习与交流,如有侵权请联系网站删除 谢谢
3
精品资料
八、 应提交的材料:实习报告一份,内容包含“计算器”程序代码。
设计报告:
程序代码:#include
#include
#include
#include
#include
#include
#include
#include
#include
#define UP 0x48
#define 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, int direction, int charsize);
void mwindow(char *header);
仅供学习与交流,如有侵权请联系网站删除 谢谢
4
精品资料
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 != grOk )
{
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)
仅供学习与交流,如有侵权请联系网站删除 谢谢
5
精品资料
{
struct viewporttype vp;
int color, height, width;
int x, y,x0,y0, i, j,v,m,n,act,flag=1;
float num1=0,num2=0,result;
char cnum[5],str2[20]={""},c,temp[20]={""};
char str1[]="1230.456+-789*/Qc=^%";
mwindow( "Calculator" );
color = 7;
getviewsettings( &vp );
width=(+1)/10;
height=(-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);
仅供学习与交流,如有侵权请联系网站删除 谢谢
6
精品资料
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;
仅供学习与交流,如有侵权请联系网站删除 谢谢
7
精品资料
}
m=0;
else
{
}
if(v==LEFT)
if(x<=x0)
{
}
else
{
}
x=x-width-width/2;
m--;
x=x0+6*width;
m=4;
x=x+width+width/2;
m++;
if(v==UP)
if(y<=y0)
{
}
else
{
y=y0+4*height+height/2;
n=3;
y=y-height-height/2;
n--;
}
if(v==DOWN)
仅供学习与交流,如有侵权请联系网站删除 谢谢
8
精品资料
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,"");
仅供学习与交流,如有侵权请联系网站删除 谢谢
9
精品资料
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
{
}
}
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=='/')
{
仅供学习与交流,如有侵权请联系网站删除 谢谢
10
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.");
精品资料
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)
{
仅供学习与交流,如有侵权请联系网站删除 谢谢
11
精品资料
}
case 1:result=num1+num2;break;
case 2:result=num1-num2;break;
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=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;
仅供学习与交流,如有侵权请联系网站删除 谢谢
12
精品资料
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();
}
void drawboder(void)
{
struct viewporttype vp;
setcolor( MaxColors - 1 );
setlinestyle( SOLID_LINE, 0, NORM_WIDTH );
getviewsettings( &vp );
rectangle( 0, 0, , );
}
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,rar);
putimage(4,4,rar,XOR_PUT);
return 0;
}
仅供学习与交流,如有侵权请联系网站删除 谢谢
13
精品资料
/
int specialkey(void)
{
int key;
while(bioskey(1)==0);
key=bioskey(0);
key=key&0xff? key&0xff:key>>8;
return(key);
}
总结:
1)实际操作过程中遇到的问题及解决方法:
1.忘记加分号。分号是C语句中不可缺少的一部分,语句末尾必须有分号。a=1
b=2编译时,编译程序在“a=1”后面没发现分号,就把下一行“b=2”也作为上一行
语句的一部分,这就会出现语法错误。改错时,有时在被指出有错的一行中未
发现错误,就需要看一下上一行是否漏掉了分号。{ 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)设计总结及心得体会。
仅供学习与交流,如有侵权请联系网站删除 谢谢
14
精品资料
通过C语言编程的学习,培养了我独立思考和综合运用平时知识的能力,巩
固了课程学习的内容,掌握了工程软件设计的基本方法,强化了上机动手编程
能力。更加了解了C语言的便利性和可用性。同时了解到了程序设计需要团队
合作,通过这次实习活动增进了同学之间的默契,体会到了毕业后工作中团队
合作的重要性和必要性。
当一个程序从自己的手中诞生的时候,心中充满了自豪感和成就感,让我对动
手操作实践更有兴趣了。
八、时间:
实验心得
通过本次C语言上机实验,我对这个介于人类与非人类之间的计算机编程语言有了一定的体验。
其间开心过、郁闷过、无奈过、彷徨过……随着实验的胜利成功与实验报告的胜利完成,有点微微
的自豪感使人难忘。感谢高克宁老师的高标准、严要求,感谢实验课上小老师们的耐心指点,也感
谢我在实验中经历过的点点滴滴……伴随着学习的深入,我发现高深的东西还有很多很多,等待着
我自己去挖掘。对C语言,我会更加努力
一周 课时:12学时
仅供学习与交流,如有侵权请联系网站删除 谢谢
15
版权声明:本文标题:c语言程序设计电子版本 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://roclinux.cn/p/1711010052a583917.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论