C语言毕业课程设计报告计算器.docx

上传人:b****6 文档编号:6782116 上传时间:2023-01-10 格式:DOCX 页数:31 大小:21.38KB
下载 相关 举报
C语言毕业课程设计报告计算器.docx_第1页
第1页 / 共31页
C语言毕业课程设计报告计算器.docx_第2页
第2页 / 共31页
C语言毕业课程设计报告计算器.docx_第3页
第3页 / 共31页
C语言毕业课程设计报告计算器.docx_第4页
第4页 / 共31页
C语言毕业课程设计报告计算器.docx_第5页
第5页 / 共31页
点击查看更多>>
下载资源
资源描述

C语言毕业课程设计报告计算器.docx

《C语言毕业课程设计报告计算器.docx》由会员分享,可在线阅读,更多相关《C语言毕业课程设计报告计算器.docx(31页珍藏版)》请在冰豆网上搜索。

C语言毕业课程设计报告计算器.docx

C语言毕业课程设计报告计算器

(此文档为word格式,下载后您可任意编辑修改!

 

C语言课程设计报告

——计算器

题目:

设计一个计算器的程序,功能上尽量模仿windows内的计算器

目录

()cal.c

{

各种宏定义;

欢迎界面;

图像的初始化;

do{

接受键盘和鼠标输入的命令;

处理命令;

}while(“命令”=“结束”)

鼠标调用的界面模块mouse..c

voidinitialmouse(void);*初始化鼠标函数*

doublechar_to_float(char*p);*字符转换成浮点数*

voidwelcome();*欢迎界面*

(2)、鼠标头文件mouse.c

voidmouse();接受鼠标的按键信息

intrmouse(void)初始化鼠标图像图标,并且返回是否成功的信息

showmouse()利用不断复制和粘贴图像的方法来动态显示鼠标光标

.c主控文件

*******************************************************

#include

charch='0';

charemp[80],sum[80],*e,*s;

doubleyuan=0.;

select()

{

if(where_chu)key=47;

elseif(where_cheng)key=42;

elseif(where_jian)key=45;

elseif(where_jia)key=43;

elseif(where_num1)key=49;

elseif(where_num2)key=50;

elseif(where_num3)key=51;

elseif(where_enter)key=ENTER;

elseif(where_num4)key=52;

elseif(where_num5)key=53;

elseif(where_num6)key=54;

elseif(where_dot)key=46;

elseif(where_num7)key=55;

elseif(where_num8)key=56;

elseif(where_num9)key=57;

elseif(where_num0)key=48;

elseif(where_kai)key=32;

elseif(where_guan)key=EXCAPE;

elseif(where_fuhao)key=MINUS;

elseif(where_zhishu)key=EXP;

elsekey=0;

}

voidwelcome()*欢迎界面*

{

char*Info="\n\n\n\

\n\Welcometousethiscalculator!

\

\n\

\n\

\n\

Inthiscalculator,bothkeyboardandmousecanbeused.\n\n\

KEYS:

\n\

ThankstoMyBOBO,\

I\

Butitwasreallyanefforformetomakethosethingsclear.\n\

I\n\

\n\

\n\n\

GOODLUCK!

\0";

while(*Info++!

='\0'&&bioskey

(1)==0)

{

sound(300);

nosound();

printf("%c",*(Info-1));

delay(10000);

}

}

voidmain()

{

voidinitialmouse(void);*初始化鼠标*

doublechar_to_float(char*p);*浮点数转换成浮点数*

inti,flag=0;*输入结果标记*

doublet;

intinput();

intgd=DETECT,gm;

initgraph(&gd,&gm,"");*初始化屏幕为图形模式*

rmouse();*初始化鼠标*

Area();

e=emp;

s=sum;

welcome();

initialmouse();

x=120;*结果输出位置*

y=1;

while

(1)*始终记录用户的命令和操作*

{

reg_b=0;

do{

showmouse();*显示鼠标的光标*

if(reg_b)select();*检测鼠标的左键按钮*

}while(reg_b==0&&bioskey

(1)==0);

if(bioskey

(1)!

=0)key=input();

switch(key)*各种操作功能选择*

{

caseEXCAPE:

bar(guan);

delay(8000);

initialmouse();

exit(0);

case47:

*³ý·¨*

bar(chu);

delay(8000);

initialmouse();

if(ch!

='0')

{

switch(ch)

{

case'':

{

if(char_to_float(emp)==0.0)

{

ch='0';

flag=0;

dian=0;

emp[0]='\0';

sum[0]='\0';

e=emp;

s=sum;

outtextxy(x+30,y+40,"error!

!

!

!

!

");

break;

}

yuan=char_to_float(sum)char_to_float(emp);

sprintf(sum,"%0.10f",yuan);

outtextxy(x+38,y+40,sum);

break;

}

case'*':

*³Ë·¨*

{

yuan=char_to_float(sum)*char_to_float(emp);

sprintf(sum,"%0.10f",yuan);

outtextxy(x+30,y+40,sum);

break;

}

case'+':

*¼Ó·¨*

{

yuan=char_to_float(sum)+char_to_float(emp);

sprintf(sum,"%0.10f",yuan);

outtextxy(x+30,y+40,sum);

break;

}

case'-':

*¼õ·¨*

{

if(char_to_float(sum)>=char_to_float(emp))

{

yuan=char_to_float(sum)-char_to_float(emp);

sprintf(sum,"%0.10f",yuan);

}

else{

yuan=char_to_float(emp)-char_to_float(sum);

sprintf(sum,"-%0.10f",yuan);

}

outtextxy(x+30,y+40,sum);

emp[0]='\0';

}

}

}

else{

if(flag==0)

{

outtextxy(x+30,y+40,emp);

stpcpy(sum,emp);

}

elseouttextxy(x+30,y+40,sum);

}

ch='';

flag=0;

emp[0]='\0';

e=emp;

dian=0;

break;

case42:

*°´ÏÂ*ºÅ*

{

bar(cheng);

delay(8000);

initialmouse();

if(ch!

='0')

{

switch(ch)

{

case'':

yuan=char_to_float(sum)char_to_float(emp);

sprintf(sum,"%0.10f",yuan);

outtextxy(x+30,y+40,sum);

emp[0]='\0';

e=emp;

break;

case'*':

yuan=char_to_float(sum)*char_to_float(emp);

sprintf(sum,"%0.10f",yuan);

outtextxy(x+30,y+40,sum);

emp[0]='\0';

e=emp;

break;

case'+':

yuan=char_to_float(sum)+char_to_float(emp);

sprintf(sum,"%0.10f",yuan);

outtextxy(x+30,y+40,sum);

emp[0]='\0';

e=emp;

break;

case'-':

if(char_to_float(sum)>=char_to_float(emp))

{

yuan=char_to_float(sum)-char_to_float(emp);

sprintf(sum,"%0.10f",yuan);

}

else{

yuan=char_to_float(emp)-char_to_float(sum);

sprintf(sum,"-%0.10f",yuan);

}

outtextxy(x+30,y+40,sum);

emp[0]='\0';

e=emp;

break;

}

}

else

{

if(flag==0)

{

outtextxy(x+30,y+40,emp);

stpcpy(sum,emp);

e=emp;

}

else

}

outtextxy(x+30,y+40,sum);

ch='*';

flag=0;

dian=0;

break;

}

case45:

*°´ÏÂ-ºÅ*

bar(jian);

delay(8000);

initialmouse();

if(ch!

='0')

{

switch(ch){

case'':

yuan=char_to_float(sum)char_to_float(emp);

sprintf(sum,"%0.10f",yuan);

outtextxy(x+30,y+40,sum);

emp[0]='\0';

e=emp;

break;

case'*':

yuan=char_to_float(sum)*char_to_float(emp);

sprintf(sum,"%0.10f",yuan);

outtextxy(x+30,y+40,sum);

emp[0]='\0';

e=emp;

break;

case'+':

yuan=char_to_float(sum)+char_to_float(emp);

sprintf(sum,"%0.10f",yuan);

outtextxy(x+30,y+40,sum);

emp[0]='\0';

e=emp;

break;

case'-':

if(char_to_float(sum)>=char_to_float(emp)){

yuan=char_to_float(sum)-char_to_float(emp);

sprintf(sum,"%0.10f",yuan);

}

else{

yuan=char_to_float(emp)-char_to_float(sum);

sprintf(sum,"-%0.10f",yuan);

}

outtextxy(x+30,y+40,sum);

emp[0]='\0';

e=emp;

break;

}

}

else{

if(flag==0)

{

outtextxy(x+30,y+40,emp);

stpcpy(sum,emp);

e=emp;

}

else

outtextxy(x+30,y+40,sum);

}

ch='-';

flag=0;

dian=0;

break;

case43:

bar(jia);

delay(8000);

initialmouse();

if(ch!

='0'){

switch(ch){

case'':

yuan=char_to_float(sum)char_to_float(emp);

sprintf(sum,"%0.10f",yuan);

outtextxy(x+30,y+40,sum);

emp[0]='\0';

e=emp;

break;

case'*':

yuan=char_to_float(sum)*char_to_float(emp);

sprintf(sum,"%0.10f",yuan);

outtextxy(x+30,y+40,sum);

emp[0]='\0';

e=emp;

break;

case'+':

yuan=char_to_float(sum)+char_to_float(emp);

sprintf(sum,"%0.10f",yuan);

outtextxy(x+30,y+40,sum);

emp[0]='\0';

e=emp;

break;

case'-':

if(char_to_float(sum)>=char_to_float(emp)){

yuan=char_to_float(sum)-char_to_float(emp);

sprintf(sum,"%0.10f",yuan);

}

else{

yuan=char_to_float(emp)-char_to_float(sum);

sprintf(sum,"-%0.10f",yuan);

}

outtextxy(x+30,y+40,sum);

emp[0]='\0';

e=emp;

break;

}

}

else{

if(flag==0)

{

outtextxy(x+30,y+40,emp);

stpcpy(sum,emp);

e=emp;

}

else

outtextxy(x+30,y+40,sum);

}

ch='+';

flag=0;

dian=0;

break;

case'm':

bar(fuhao);

delay(8000);

initialmouse();

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

{

if(emp[i]=='\0')

break;

}

if(flag==0){

*e='-';e++;*e='\0';

outtextxy(x+30,y+40,emp);

}

elseouttextxy(x+30,y+40,sum);

break;

case49:

*°´ÏÂ1*

bar(num1);

delay(8000);

initialmouse();

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

{

if(emp[i]=='\0')

break;

}

if(flag==0){

*e='1';e++;*e='\0';

outtextxy(x+30,y+40,emp);

}

elseouttextxy(x+30,y+40,sum);

break;

case50:

bar(num2);

delay(8000);

initialmouse();

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

{

if(emp[i]=='\0')

break;

}

if(flag==0){

*e='2';e++;*e='\0';

outtextxy(x+30,y+40,emp);

}

elseouttextxy(x+30,y+40,sum);

break;

case51:

bar(num3);

delay(8000);

initialmouse();

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

{

if(emp[i]=='\0')

break;

}

if(flag==0){

*e='3';e++;*e='\0';

outtextxy(x+30,y+40,emp);

}

elseouttextxy(x+30,y+40,sum);

break;

caseEXP:

*×ÔÈ»¶ÔÊý*

bar(zhishu);

delay(8000);

initialmouse();

if(flag==1&&ch=='0')yuan=exp(char_to_float(sum));

elseyuan=exp(char_to_float(emp));

sprintf(emp,"%0.10f",yuan);

outtextxy(x+30,y+40,emp);

flag=0;

dian=0;

break;

caseENTER:

bar(enter);

delay(8000);

initialmouse();

if(ch!

='0')

{

switch(ch)

{

case'':

yuan=char_to_float(sum)char_to_float(emp);

sprintf(sum,"%0.10f",yuan);

outtextxy(x+30,y+40,sum);

emp[0]='\0';

e=emp;

break;

case'*':

yuan=char_to_float(sum)*char_to_float(emp);

sprintf(sum,"%0.10f",yuan);

outtextxy(x+30,y+40,sum);

emp[0]='\0';

e=emp;

break;

case'+':

yuan=c

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

当前位置:首页 > 幼儿教育 > 幼儿读物

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

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