0
b.“BACKSPACE”为退格键。当输入任何数字或运算符,只要按下“BACKSPACE”键,字符位自右向左消去一位。(注:初始的“0”不能被删除)
输入前:
(5+2)*5 输入后:
(5+2)* C.“ANS”为变量储存器。当一次结果被清除后,只要按下“ANS”键就会显示这个结果。
如: 5+2 7 按“CLEAR”键后,再按“ANS”键就会这样
77 7
7)计算器的输入方式:只支持鼠标点击计算器键输入; 8)计算器计算结果的输出方式:在计算器窗口的输出行显示。 9)算数运算的数据类型:整数和浮点数。
a.输入行最大显示的字符数32位,每个运算符算一位; b.“(”,“)”各占一个字符位; c.输出行最大显示的字符数为32位;
d.纯小数显示的最大字符数为小数点后30位,整数及小数点各占一位; 若纯小数为负数,则显示最大字符数为小数点后29位,“-”占一位; e.输入行在未输入任何数字的时候,显示“0”,只占一个字符位;当输入任何数字时。“0”消失,输入的的数字取代“0”;当输入任何运算符时。默认之前输入数字“0”;
f.点击“=”键后方可显示数字或字母或汉字。 10)特殊情况的运算
A.运算结果整数部分超出32位,显示Infinity(无穷大);出现运算异常!
9999* Infinity
B.除数为0的情况,提示用户被除数不能为零! 10 除零错误
C.在运算时,若结果为纯小数,小数位超过30位,则超出的字符舍弃。 23 0 . 6
若舍弃超出部位后,结果全为0,则结果为0
199^99 0 D.在运算时,若结果的整数位不为0
a.总位数在最大字符位内,则直接显示;
b.总位数在最大字符位以外,整数部分在最大字符位以内,则只优先显示整数部位,弃掉32位以后的字符
53 1.6666 E.当用户输入“^0”时,若“^0”之前的算式或数字的值为0,点击“=”后,输出界面显示“底数不能为0”
11)以上所有的运算都是在10进制下进行 2.2设计要求
(1) 了解Windows编程的基础知识,掌握MFC应用程序的基本知识。 (2) 理解需求分析过程,掌握需求分析文档编写。 (3) 理解面向对象程序设计的基本思路和方法。
(4) 掌握用VC++开发MFC应用程序的一般步骤和方法。
(5) 掌握基于对话框的应用程序的编写,主要包括文本框和按钮等。 (6) 掌握后缀表达式算法。
(7) 掌握VC++开发工具的使用。包括资源管理,项目创建,运行调试等。 (8) 完成表达式的计算器应用程序,实现基本的加、减、乘、除等四则运算,且支持包括括号的表达式运算功能。
3系统实现
3.1对话框界面设计
3.2数值计算实现
例如:2×(2+2)=?
2
2*(
2*(2+2
2*(2+2)
2*(2+2) 8
4程序关键代码及运行结果
#include
#include \{
switch (c)
{ case '+': d=a+b;
cout< case '-': d=a-b; cout< case '*': d=a*b; cout< case '': if(b==0) throw CString(\除零错误!\
c++实现计算器毕业课程设计报告



