用C实现简单计算器.docx
- 文档编号:27953470
- 上传时间:2023-07-06
- 格式:DOCX
- 页数:18
- 大小:198.46KB
用C实现简单计算器.docx
《用C实现简单计算器.docx》由会员分享,可在线阅读,更多相关《用C实现简单计算器.docx(18页珍藏版)》请在冰豆网上搜索。
用C实现简单计算器
HUBEINORMALUNIVERSITY
项目名称:
学生信息管理系统需求分析
姓名:
学号:
班级:
一、需求描述
度这次c++课程设计作业,我们小组选择的是设计一个简单的计算器。
我们平常所用的计算器都是可视化界面计算器,对于计算一些混合的四则算术运算不是很方便,所以我们此次设计的计算器则是可以进行四则混合运算,用户可以从键盘输入算式,可以进行加、减、乘、除混合运算,运算的优先级也已经考虑在内,并且用户可以按任何的运算符出现顺序进行输入,输入的计算式的长也是不限定。
这样就方便了我们对于一些混合算式的计算。
但是我们的程序也还存在一定问题,关于括号“()”优先级运算就没有实现。
二、系统总体分析设计
根据任务要求,程序的总体功能可以设计成如下图所示。
三、程序详细功能描述
在这次c++课程设计中,我们小组成员分工明确。
在编码过程中,我们在编码过程中主要有一个counter类,counter里面一共有三个函数,分别是input()输入函数、suanfa()计算函数和show()显示函数,体现了类的封装性,另外还有一个不同函数进行程序说明。
本程序实现加、减、乘、除的基本运算,并能按照四则运算的基本法则进行运算,,在除法运算中,当被除数为零的时候,系统会报错,提示被除数不能为零,则会退出程序。
四、编码
#include
#include
usingnamespacestd;
classcounter
{
private:
intn;//计算输入数组的长度
doublea[100];//存放数据的数组
charfh[100];//存放字符的数组
public:
input();//输入函数
suanfa();//四则运算“+、-、*、/、”
show();//显示函数
};
counter:
:
input()
{
cout<<"请输入表达式,并且以“=”结尾"< for(inti=0;i<100;i++) { cin>>a[i]; cin>>fh[i]; if(fh[i]=='=')//"="为结束符标志 { n=i; break; } } } counter: : suanfa() { charsign; for(intj=0;j { if(fh[j]=='*')//乘法运算 { if(fh[j-1]=='+')//乘法的优先级 { a[j+1]=a[j]*a[j+1]; a[j]=0; fh[j]='+'; } elseif(fh[j-1]=='-') { a[j+1]=-a[j]*a[j+1]; a[j]=0; fh[j]='+'; } elsea[j+1]=a[j]*a[j+1]; } elseif(fh[j]=='/')//除法运算 { if(fh[j-1]=='+')//除法的优先级 { if(a[j+1]! =0) { a[j+1]=a[j]/a[j+1]; a[j]=0; fh[j]='+'; } else { cout<<"除数为0,退出程序! "< exit(0); } } elseif(fh[j-1]=='-') { if(a[j+1]! =0) { a[j+1]=-a[j]/a[j+1]; a[j]=0; } else { cout<<"除数为0,退出程序! "< exit(0); } } else { if(a[j+1]! =0) { a[j+1]=a[j]/a[j+1]; } else { cout<<"除数为0,退出程序! "< exit(0); } } } } for(inti=0;i { if(fh[i]=='+')//加法运算 a[i+1]=a[i]+a[i+1]; elseif(fh[i]=='-')//减法运算 { if(a[i] { a[i+1]=-(a[i+1]-a[i]); } else a[i+1]=a[i]-a[i+1]; } } } counter: : show()//输出函数 { cout<<"该表达式的结果为: ";
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 用C 实现简单计算器 实现 简单 计算器