资源描述:
《VC计算器实现实验报告.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、VC课程设计实验报告课题名称:计算器实现姓名:陈锋学号:10010提交报告时间:2010年11月22日课程设计目标实验设计一个计算器,要求可通过按钮输入数字、运算符,能通过按钮实现退格、清除功能,实现整数的加、减、乘、除、取余、开方、平方等运算功能,必要的错误处理,如除零;可以通过键盘输入数字、退格、运算符(+、-、*、/、%、=),实现括号运算;实现不同进制(二进制、十进制、八进制、十六进制)下的加、减、乘、除、取余、开方、平方等运算功能。1.分析与设计(1)实现方法:编程语言为C++语言。编程方法:通过一个
2、文本框接收所输入的运算表达式,然后将其转换成后缀表达式并将各个数字先转换成十进制数值进行计算,最后再转换成相应进制的字符串。(2)代码设计说明:文件和类的设计说明:创建一个头文件:Calculate.h内容如下:#include"stdio.h"constintMaxSize=30;constintMaxPri=8;BOOLdecimal_2;//为真代表选择相应的进制BOOLdecimal_8;BOOLdecimal_10;BOOLdecimal_16;struct{charch;intpri;}lpri[]
3、={{'=',0},{'(',1},{'*',5},{'/',5},{'%',5},{'+',3},{'-',3},{')',8},{'^',7}},rpri[]={{'=',0},{'(',8},{'*',4},{'/',4},{'%',4},{'+',2},{'-',2},{')',1},{'^',6}};intleftpri(charop)//求左运算符的优先级{for(inti=0;i4、(charop)//求右运算符op的优先级{for(inti=0;i5、
6、ch==')'
7、
8、ch=='+'
9、
10、ch=='-'
11、
12、ch=='*'
13、
14、ch=='/'
15、
16、ch=='%'
17、
18、ch=='^'
19、
20、ch=='('
21、
22、ch==')')return1;elsereturn0;}intPrecede(charop1,charop2){if(lef
23、tpri(op1)==rightpri(op2))return0;elseif(leftpri(op1)