用C 实现简单计算器

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

一、需求描述

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

二、流程图

四则运算。

三角函数的流程图也是类似

在编码过程中,我们在编码过程中主要有一个counter类,counter里面一共有三个函数,分别是input()输入函数、suanfa()计算函数和show()显示函数,体现了类的封装性,另外还有一个不同函数进行程序说明。本程序实现加、减、乘、除的基本运算,并能按照四则运算的基本法则进行运算,,在除法运算中,当被除数为零的时候,系统会报错,提示被除数不能为零,则会退出程序。

三、编码

#include

#include

using namespace std;

class complex

{

private:

int n;

double a[100];

char fh[100];

public:

input();

suanfa();

show();

};

//四则运算

complex ::input()

{

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

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

{

cin>>a[i];

cin>>fh[i];

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

{

n=i;

break;

}

}

}

complex ::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];

}

}

}

complex ::show()

{

cout<<"该表达式的结果为:";

cout<

}

int main()

{

char sign;

int m,n,p;

complex b;

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

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

cout<<"\t\t* 1、简单的计算器*\n";

cout<<"\t\t* 2、三角函数*\n";

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

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

cout<

cout<<"\t\t*请选择计算类型*\n";

cin>>m;

switch(m)

{case 1:

b.input();

b.suanfa ();

相关文档
最新文档