2022年2022年计算器C代码 .pdf
《2022年2022年计算器C代码 .pdf》由会员分享,可在线阅读,更多相关《2022年2022年计算器C代码 .pdf(16页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、#include stdio.h /* 标准输入输出库*/ #include string.h /* 字符串操作函数库*/ #include math.h /* 数学函数库*/ #include stdlib.h /* 标准函数库*/ #include graphics.h /* 图形函数库*/ #include bios.h /* 基本输入输出系统函数库*/ #include dos.h /* dos 函数库*/ #define NUM0 0 x5230 /* 小键盘区上数字键0 */ #define NUM1 0 x4f31 /* 小键盘区上数字键1 */ #define NUM2 0 x
2、5032 /* 小键盘区上数字键2 */ #define NUM3 0 x5133 /* 小键盘区上数字键3 */ #define NUM4 0 x4b34 /* 小键盘区上数字键4 */ #define NUM5 0 x4c35 /* 小键盘区上数字键5 */ #define NUM6 0 x4d36 /* 小键盘区上数字键6 */ #define NUM7 0 x4737 /* 小键盘区上数字键7 */ #define NUM8 0 x4838 /* 小键盘区上数字键8 */ #define NUM9 0 x4939 /* 小键盘区上数字键9 */ #define NUMPNT 0 x53
3、2e /* 小键盘区上. 键*/ #define NUMADD 0 x4e2b /* 小键盘区上+ 键*/ #define NUMSUB 0 x4a2d /* 小键盘区上- 键*/ #define NUMMUL 0 x372a /* 小键盘区上* 键*/ #define NUMDIV 0 x352f /* 小键盘区上/ 键*/ #define NUMEQU 0 x1c0d /* 小键盘区上= 键*/ #define KEY0 0 xb30 /* 主键盘区上数字键0 */ #define KEY1 0 x231 /* 主键盘区上数字键1 */ #define KEY2 0 x332 /* 主键盘
4、区上数字键2 */ #define KEY3 0 x433 /* 主键盘区上数字键3 */ #define KEY4 0 x534 /* 主键盘区上数字键4 */ #define KEY5 0 x635 /* 主键盘区上数字键5 */ #define KEY6 0 x736 /* 主键盘区上数字键6 */ #define KEY7 0 x837 /* 主键盘区上数字键7 */ #define KEY8 0 x938 /* 主键盘区上数字键8 */ #define KEY9 0 xa39 /* 主键盘区上数字键9 */ #define KEYPNT 0 x342e /* 主键盘区上. 键*/ #
5、define KEYSUB 0 xc2d /* 主键盘区上- 键*/ #define KEYMUL 0 x92a /* 主键盘区上* 键*/ #define KEYEQU 0 xd3d /* 主键盘区上= 键*/ #define SQR 0 x340 /* 键 ,求平方根*/ #define KEYR 0 x1372 /* r 键,取倒数*/ #define PERCENT 0 x625 /* % 键,求百分数*/ #define DEL 0 x5300 /* DEL 键*/ 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师
6、精心整理 - - - - - - - 第 1 页,共 16 页 - - - - - - - - - #define ESC 0 x11b /* ESC 键*/ #define BACKSPACE 0 xe08 /* 退格键*/ #define F9 0 x4300 /* F9 键,正负数变换*/ #define CTRL_L 0 x260c /* Ctrl 键+L 键,清除记忆器中的数值*/ #define CTRL_R 0 x1312 /* Ctrl 键 +R 键,读取记忆器中的数值*/ #define CTRL_M 0 x320d /* Ctrl 键+M 键,将当前数值写入记忆器中*/ #
7、define CTRL_P 0 x1910 /* Ctrl 键+P 键,将当前数值和记忆器中保存的数值相加*/ #define ALT_X 0 x2d00 /* Alt 键+X 键*/ #define TRUE 1 /* 为十进制1 表示为真true */ #define FALSE 0 /* 为十进制0 表示为假false */ /*计算器界面结构体*/ struct Block int left,top,width,height; /* 左上坐标 ,宽 ,高*/ char caption50; /* 标题*/ int fontcolor,fontsize,status; /* 字体颜色 ,
8、字体大小 ,状态*/ ; void Form(struct Block form); /* 构造和显示主窗口*/ void TextBox(struct Block txtbox); /* 构造和显示文本输入框*/ void Label(struct Block label); /* 构造和显示标签,若记忆功能开启,标签标记为:M*/ void CommandButton(struct Block cmdbutton); /*显示 cmdbuttoni 命令按钮 */ void CommandButton_KeyboardDown(int i); /*定义按下编号为i 的键所进行的操作,如按钮
9、的状态的改变 */ void CommandButton_KeyboardUp(int i); /*定义松开编号为i 的按键所进行的操作,如按钮的状态 */ void InitApp(); /*初始化程序 */ void Showme(); /*显示计算器界面*/ void Load(); /*初始化默认值*/ void CommandButton_Click(int key); /* 按键盘时所做的操作*/ void DoubleRun(); /* 四则运算 :加减乘除 */ void SingleRun(int operatoror); /*单运算 */ void Resetbuf();
10、/* 重置缓冲区 */ void StoreSet(int key); /* 定义记忆存储操作*/ void Unload(); /* 退出系统时的一些恢复操作*/ struct Block frmmain,txtscreen,lblstore,cmdbutton28; /* 定义主窗口,文本输入框,记忆标签,280-27 个按钮 */ 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 16 页 - - - - - - - - - int clickflag; /*clic
11、kflag: 按键标志, */ int top,pointflag,digitkeyhit; /*top:保存缓冲区中的当前位数,pointflag: 小数点标记, digitkeyhit:数字键按键标记*/ int operatoror,runflag,ctnflag; /*operatoror:操作符, runflag:运算标记, ctnflag: 运算符标记 */ int errorflag; /* 错误标记 */ double num1,num2,store; /*num1: 操作数 1,num2:操作数2,store:记忆变量 */ char strbuf33; /*字符缓冲区 ,用
12、于保存一个操作数*/ void main() int key; /* 保存此计算器上定义的按键编号*/ InitApp();/* 初始化程序,进入图形模式*/ Showme(); /* 显示计算器窗口*/ Load(); /*初始化默认值*/ while(1) if(bioskey(1)=0) continue; /* 直到有键按下时,才返回非0 值,否则返回 0 值*/ key=bioskey(0); /* 返回上条语句的按键值*/ switch(key) /* 捕获相应的键盘按键并匹配到计算器按键上*/ case NUM0:case KEY0: key=10;break; case NUM
13、1:case KEY1: key=1;break; case NUM2:case KEY2: key=2;break; case NUM3:case KEY3: key=3;break; case NUM4:case KEY4: key=4;break; case NUM5:case KEY5: key=5;break; case NUM6:case KEY6: key=6;break; case NUM7:case KEY7: key=7;break; case NUM8:case KEY8: key=8;break; case NUM9:case KEY9: key=9;break; ca
14、se F9: key=11;break; case NUMPNT:case KEYPNT: key=12;break; case NUMADD: key=13;break; case NUMSUB:case KEYSUB: key=14;break; case NUMMUL:case KEYMUL: key=15;break; case NUMDIV: key=16;break; case SQR: key=17;break; case PERCENT: key=18;break; case KEYR: key=19;break; case NUMEQU:case KEYEQU: key=20
15、;break; case CTRL_L: key=21;break; case CTRL_R: key=22;break; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 16 页 - - - - - - - - - case CTRL_M: key=23;break; case CTRL_P: key=24;break; case BACKSPACE: key=25;break; case DEL: key=26;break; case ESC: key=27;brea
16、k; case ALT_X: key=0; break; default: key=-1;break; if(key0) continue; /* 若对应的按键返回负数,则返回到while(1) 处执行 */ CommandButton_KeyboardDown(key);/*为了在计算器上显示按键效果,在此函数中改变一些按钮的状态值*/ CommandButton_Click(key); /*根据 key 的值,进行相关操作*/ delay(300000); /* 为了突出按键效果,此处延时300000 毫秒 */ CommandButton_KeyboardUp(key); /*在处理完此
17、按键后,要恢复按钮的状态值*/ void InitApp() /*初始化程序 */ int driver=DETECT,mode; /* 显示设备驱动为自动检测显示器模式*/ initgraph(&driver,&mode,); /* 初始化图形显示系统*/ if(driver!=VGA&driver!=EGA) /* 如果不能初始化*/ printf(nnERROR!Cant initialize the graphics system!); /* 显示错误信息不能初始化图形系统 */ closegraph(); /* 关闭图形接口*/ exit(0); /* 直接退出系统*/ setbkc
18、olor(9); /* 设置背景颜色为青色*/ /*主窗口的属性设置*/ frmmain.left=200; frmmain.top=100; frmmain.width=230; frmmain.height=235; frmmain.fontcolor=BLACK; frmmain.fontsize=1; strcpy(frmmain.caption, );frmmain.status=1; /*文本框的属性设置*/ txtscreen.left=10;txtscreen.top=25;txtscreen.width=210;txtscreen.height=30;txtscreen.fo
19、ntcolor=BLACK;txtscreen.fontsize=1;strcpy(txtscreen.caption,0.); txtscreen.status=1; /*标签的属性设置*/ lblstore.left=190; lblstore.top=62; lblstore.width=30; lblstore.height=25; lblstore.fontcolor=YELLOW; lblstore.fontsize=1;strcpy(lblstore.caption,); lblstore.status=1; /*命令按钮的属性设置*/ 名师资料总结 - - -精品资料欢迎下载
20、- - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 16 页 - - - - - - - - - cmdbutton1.left=50-35;cmdbutton1.top=165;cmdbutton1.width=30;cmdbutton1.height=25;cmdbutton1.fontcolor=BLUE;cmdbutton1.fontsize=1;strcpy(cmdbutton1.caption,1);cmdbutton1.status=1; cmdbutton2.left=85-35;cmdbutton2
21、.top=165;cmdbutton2.width=30;cmdbutton2.height=25;cmdbutton2.fontcolor=BLUE;cmdbutton2.fontsize=1;strcpy(cmdbutton2.caption,2);cmdbutton2.status=1; cmdbutton3.left=120-35;cmdbutton3.top=165;cmdbutton3.width=30;cmdbutton3.height=25;cmdbutton3.fontcolor=BLUE;cmdbutton3.fontsize=1;strcpy(cmdbutton3.cap
22、tion,3);cmdbutton3.status=1; cmdbutton4.left=50-35;cmdbutton4.top=130;cmdbutton4.width=30;cmdbutton4.height=25;cmdbutton4.fontcolor=BLUE;cmdbutton4.fontsize=1;strcpy(cmdbutton4.caption,4);cmdbutton4.status=1; cmdbutton5.left=85-35;cmdbutton5.top=130;cmdbutton5.width=30;cmdbutton5.height=25;cmdbutton
23、5.fontcolor=BLUE;cmdbutton5.fontsize=1;strcpy(cmdbutton5.caption,5);cmdbutton5.status=1; cmdbutton6.left=120-35;cmdbutton6.top=130;cmdbutton6.width=30;cmdbutton6.height=25;cmdbutton6.fontcolor=BLUE;cmdbutton6.fontsize=1;strcpy(cmdbutton6.caption,6);cmdbutton6.status=1; cmdbutton7.left=50-35;cmdbutto
24、n7.top=95;cmdbutton7.width=30;cmdbutton7.height=25;cmdbutton7.fontcolor=BLUE;cmdbutton7.fontsize=1;strcpy(cmdbutton7.caption,7);cmdbutton7.status=1; cmdbutton8.left=85-35;cmdbutton8.top=95;cmdbutton8.width=30;cmdbutton8.height=25;cmdbutton8.fontcolor=BLUE;cmdbutton8.fontsize=1;strcpy(cmdbutton8.capt
25、ion,8);cmdbutton8.status=1; cmdbutton9.left=120-35;cmdbutton9.top=95;cmdbutton9.width=30;cmdbutton9.height=25;cmdbutton9.fontcolor=BLUE;cmdbutton9.fontsize=1;strcpy(cmdbutton9.caption,9);cmdbutton9.status=1; cmdbutton10.left=50-35;cmdbutton10.top=200;cmdbutton10.width=30;cmdbutton10.height=25;cmdbut
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2022年2022年计算器C代码 2022 计算器 代码
限制150内