c++实现计算器毕业课程设计报告Word文档下载推荐.docx
- 文档编号:18273687
- 上传时间:2022-12-15
- 格式:DOCX
- 页数:16
- 大小:165.40KB
c++实现计算器毕业课程设计报告Word文档下载推荐.docx
《c++实现计算器毕业课程设计报告Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《c++实现计算器毕业课程设计报告Word文档下载推荐.docx(16页珍藏版)》请在冰豆网上搜索。
1.2课程设计目的
本课程是一门实践性很强的课程,既要熟练掌握相关概念,又要动手编程,还要上机调试运行。
同时,本课程也注重提高学生编写技术文档和技术文档阅读的能力。
学生通过本课程的学习实践,将学习和强化软件开发的能力、文档写作能力、英语阅读能力、软件使用能力等。
为今后计算机编程的学习和工作打下良好、扎实的理论实践基础。
2需求分析
2.1系统功能模块
1)输入的符号,数字从左向右显示;
点击“=”输出结果,在输出行显示
2)支持加减乘除运算;
3)支持“xˆy”的运算;
4)括号“(”“)”的使用;
5)支持混合运算;
6)功能键“ANS”,“CLEAR”,“BACKSPACE”的使用;
7)计算器的输入方式:
支持鼠标点击计算器键输入;
8)计算器计算结果的输出方式:
在计算器窗口的输出行显示
9)算数运算的数据类型:
整数和浮点数;
10)特殊情况的计算;
11)以上所有的运算都是在10进制下进行.
1)输入的符号,数字从右向左显示。
先输入“8”
8
再输入“×
”
8*
点击“=”输出结果,在输出行显示.
2)支持加减乘除运算.
a.乘法计算:
8*3
24
b.加法计算
1+0
1
c.减法计算
8-3
5
d.除法运算(特殊情况见10.B)
94
2.25
2)支持求次方(xˆy)运算。
求次方(xˆy)运算:
“ˆ”为次方(xˆy)在输入行中的显示符号
4ˆ2
16
4)“(”“)”的使用。
(括号的使用)
要使用“(”“)”的时候,先点击“(”,再输入数字或符号,内容输入完毕以后,点击“)”,完成“(”“)”的所有功能。
例如:
2×
(2+2)=?
2
2*(
2*(2+2
2*(2+2)
8
5)支持混合运算。
附:
运算符的优先级表
优先级
功能键
显示
结合律
从
高
到
低
(、)
(、)
自左向右
xˆy、1x
ˆ、~
×
、÷
*、
﹢﹣
例如:
(5+2)×
5=?
(5+2)*5
35
6)功能键“CLEAR”及“BACKSPACE”的使用。
a.“CLEAR”为清0键。
只要按下“CLEAR”键,输入行所有字符清0,输出行回到原始状态。
输入前:
输入后:
b.“BACKSPACE”为退格键。
当输入任何数字或运算符,只要按下“BACKSPACE”键,字符位自右向左消去一位。
(注:
初始的“0”不能被删除)
输入后:
(5+2)*
C.“ANS”为变量储存器。
当一次结果被清除后,只要按下“ANS”键就会显示这个结果。
如:
5+2
7
按“CLEAR”键后,再按“ANS”键就会这样
77
7
只支持鼠标点击计算器键输入;
在计算器窗口的输出行显示。
整数和浮点数。
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数值计算实现
4程序关键代码及运行结果
#include<
iostream>
string>
#include"
Stack.(doublea,doubleb,charc,double&
d)
{
switch(c)
{
case'
+'
:
d=a+b;
cout<
<
a<
"
+"
b<
endl;
returntrue;
-'
d=a-b;
-"
*'
d=a*b;
*"
'
if(b==0)
throwCString("
除零错误!
);
d=ab;
'
cout<
"
乘方操作
d=pow(a,b);
default:
returnfalse;
}
}
if(array[num-40][pre-40]>
0)将符号压栈
{
op.Add((char)num);
}
else
charmid;
while(array[num-40][pre-40]<
=0)
{
if(pre==40&
&
num==41)排除(数字)情况,保留数字()非法情况
{
if(i>
0)
{
intMyCheck=(int)name.at(i-1);
if(MyCheck<
=57&
MyCheck>
=48||MyCheck==41)
{
break;
}
else
throwCString("
括号中的表达式不合法"
}
else
throwCString("
出现未匹配的)"
}
try
op.Delete(mid);
catch(CStringe)
throwCString("
doubledata1,data2;
try
data.Delete(data2);
data.Delete(data1);
缺少操作数"
if(!
jisuan(data1,data2,mid,data1))
result=0;
throwCString("
表达式异常"
data.Add(data1);
pre=(int)op.Top();
}
CompuetrDlg.cpp:
实现文件
stdafx.=GetSystemMetrics(SM_CXICON);
intcyIcon=GetSystemMetrics(SM_CYICON);
CRectrect;
GetClientRect(&
rect);
intx=(rect.Width()-cxIcon+1)2;
inty=(rect.Height()-cyIcon+1)2;
绘制图标
dc.DrawIcon(x,y,m_);
else
CPaintDCdc(this);
GetClientRect(rect);
dc.FillSolidRect(rect,RGB());
设置背景颜色
CDialog:
OnPaint();
CDialog:
Compuetr.cpp:
定义应用程序的类行为。
stdafx.FALSE;
stack
#include<
new>
usingnamespacestd;
template<
classT>
classLinkedStack;
classNode
friendLinkedStack<
T>
;
private:
Tdata;
Node<
*link;
};
classLinkedStack
public:
LinkedStack(){top=0;
length=0;
~LinkedStack();
boolisEmpty()const
{
returntop==0;
}
boolisFull()const;
TTop()const;
LinkedStack<
Add(constT&
x);
Delete(T&
intgetLength(){returnlength;
private:
Node<
*top;
intlength;
LinkedStack<
~LinkedStack()
*next;
while(top)
next=top->
link;
deletetop;
top=next;
boolLinkedStack<
isFull()const
*p=newNode<
deletep;
returnfalse;
catch(bad_alloc&
e)
returntrue;
TLinkedStack<
Top()const
if(isEmpty())
throwCString("
堆栈空异常!
returntop->
data;
x)
p->
data=x;
link=top;
top=p;
length++;
return*this;
x=top->
*p=top;
top=top->
deletep;
length--;
5总结与体会
计算器虽然是我们生活中常见的一样工具,但不知道实现这样一个工具,说实话不是很简单,对于我这个学习一般的人来说,很难!
!
计算器虽小,但包含了一些简单却又重要的功能,包括加减乘除,次方,括号等一些基本功能,它方便了大众的日常生活中遇到的计算问题。
完成这个任务,说实话很艰难,但挺了过来,坚持了过来,所谓凡事贵在坚持,所以要学会坚持,坚持就是胜利。
一个人的力量是有限的,学会与人合作,积极请教他人谦虚学习是必要的,它只会让你更加的进步,会更好。
所以这个任务让我学到了很多,坚持,努力,合作,进取,积极向上,天下无难事,只要肯用心!
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- c+ 实现 计算器 毕业 课程设计 报告
![提示](https://static.bdocx.com/images/bang_tan.gif)