用C++实现简单计算器

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

HUBEI NORMAL UNIVERSITY

项目名称:学生信息管理系统需求分析姓名:

学号:

班级:

一、需求描述

度这次c++课程设计作业,我们小组选择的是设计一个简单的计算器。我们平常所用的计算器都是可视化界面计算器,对于计算一些混合的四则算术运算不是很方便,所以我们此次设计的计算器则是可以进行四则混合运算,用户可以从键盘输入算式,可以进行加、减、乘、除混合运算,运算的优先级也已经考虑在内,并且用户可以按任何的运算符出现顺序进行输入,输入的计算式的长也是不限定。这样就方便了我们对于一些混合算式的计算。但是我们的程序也还存在一定问题,关于括号“()”优先级运算就没有实现。

二、系统总体分析设计

根据任务要求,程序的总体功能可以设计成如下图所示。

三、程序详细功能描述

在这次c++课程设计中,我们小组成员分工明确。在编码过程中,我们在编码过程中主要有一个counter类,counter里面一共有三个函数,分别是input()输入函数、suanfa()计算函数和show()显示函数,体现了类的封装性,另外还有一个不同函数进行程序说明。

本程序实现加、减、乘、除的基本运算,并能按照四则运算的基本法则进行运算,,在除法运算中,当被除数为零的时候,系统会报错,提示被除数不能为零,则会退出程序。

四、编码

#include

#include

using namespace std;

class counter

{

private:

int n; //计算输入数组的长度

double a[100];// 存放数据的数组

char fh[100]; //存放字符的数组

public:

input(); //输入函数

suanfa(); //四则运算“+、-、*、/、”

show(); //显示函数

};

counter ::input()

{

cout<<"请输入表达式,并且以“=”结尾"<

for(int i=0;i<100;i++)

{

cin>>a[i];

cin>>fh[i];

if(fh[i]=='=') //"="为结束符标志

{

n=i;

break;

}

}

}

counter ::suanfa()

{

char sign;

for(int j=0;j

{

if(fh[j]=='*') //乘法运算

{

if(fh[j-1]=='+')//乘法的优先级

{

a[j+1]=a[j]*a[j+1];

a[j]=0;

fh[j]='+';

}

else if(fh[j-1]=='-')

{

a[j+1]=-a[j]*a[j+1];

a[j]=0;

fh[j]='+';

}

else a[j+1]=a[j]*a[j+1];

}

else if(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);

}

}

else if(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(int i=0;i

{

if(fh[i]=='+') //加法运算

a[i+1]=a[i]+a[i+1];

else if(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<<"该表达式的结果为:";

cout<

}

void read() //程序说明

{

cout<<"\t\t****************************************************\n";

cout<<"\t\t* C++课程设计*\n";

cout<<"\t\t* 实验题目:简单的计算器*\n";

cout<<"\t\t****************************************************\n";

cout<<"\n说明:可以进行四则混合运算,但是不能进行括号优先级运算\n";

cout<

}

int main()

{

相关文档
最新文档