#include<iostream>
#include<cstdlib>//带入 清屏函数
#include<math.h>
using namespace std;
//----------------------------------------------------------建立实数类
class Re
{
public:
Re(float a,char op,float b); //赋值构造
void calc(float a,char op,float b);
private:
float a1,b1;
char op;
};
Re::Re(float a,char op,float b) //类中声明,类外定义
{
a1=a;
b1=b;
}
void Re::calc(float a,char op,float b)
{
switch(op)
{
case '+':cout<<a<<op<<b<<"="<<a+b<<endl;break;
case '#':cout<<a<<op<<b<<"="<<++a<<endl;break;//--------------------------------自加,b输入0
case '-':cout<<a<<op<<b<<"="<<a-b<<endl;break;
case '~':cout<<a<<op<<b<<"="<<--a<<endl;break;//--------------------------------自减,b输入0
case '*':cout<<a<<op<<b<<"="<<a*b<<endl;break;
case '/':cout<<a<<op<<b<<"="<<a/b<<endl;break;
case '^':cout<<a<<op<<b<<"="<<pow(a,b)<<endl;break;
default:cout<<"error!"<<endl;
}
}
//----------------------------------------------------------建立复数类
class Im//复数的加、减、乘、除、取模、求平方等运算;
{
public:
Im(float a,float b,char op,float c,float d);
void calc(float a,float b,char op,float c,float d);
private:
float a1,b1,a2,b2;
char op;
};
Im::Im(float a,float b,char op,float c,float d)
{
a1=a;
b1=b;
a2=c;
b2=d;
}
void Im::calc(float a,float b,char op,float c,float d)
{
switch(op)
{
case '+':cout<<a1<<"+"<<b1<<"j"<<op<<a2<<"+"<<b2<<"j="<<a1+a2<<"+"<<b1+b2<<"j"<<endl;break;
case '-':cout<<a1<<"+"<<b1<<"j"<<op<<a2<<"+"<<b2<<"j="<<a1-a2<<"+"<<b1-b2<<"j"<<endl;break;
case '*':cout<<a1<<"+"<<b1<<"j"<<op<<a2<<"+"<<b2<<"j="<<a1*a2-b1*b2<<"+"<<a1*b2+a2*b1<<")j"<<endl;break;
case '/':cout<<a1<<"+"<<b1<<"j"<<op<<a2<<"+"<<b2<<"j="<<(a1*a2+b1*b2)/(a2*a2+b2*b2)<<")+("<<(a2*b1-a1*b2)/(a2*a2+b2*b2)<<")j"<<endl;break;
case '.':cout<<"|"<<a1<<"+"<<b1<<"j|="<<sqrt(a1*a1+b1*b1)<<endl;break;//--------------------------------求模
case '^':cout<<"("<<a1<<"+"<<b1<<"j)"<<op<<"2="<<(a1*a1-b1*b1)<<"+"<<(2*a1*b1)<<"j"<<endl;break;//--------------------------------求平方,a2,b2输入0
default:cout<<"error!"<<endl;
}
}
int ShowMenu()
{
cout<<"\n+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n";
cout<<"------------------------------复数计算器---------------------------\n\n";
cout<<"\t\t功能分类\n";
cout<<"\t1.虚数计算类 2.实数计算类 3.退出功能\n";
cout<<"\n-------------------------------------------------------------------\n"; //flush(stdin);清除输入缓冲区
cout<<"+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n\n";
cout<<"现在请选择你要实现的功能:1.虚数计算类 \n";
cout<<" 2.实数计算类 \n";
cout<<"输入数字3可退出功能\n";
return 1;
}
void cls()
{
cout<<"清屏请输入3,返回上一级菜单输入其他:";
char cc;
cin>>cc;
if (cc=='3')
system("cls"); //清屏函数
}
//----------------------------------------------------------main函数调用
int main()
{
int mode,choice,temp=0;
while(ShowMenu()&&cin>>choice&&choice!=3)
{
if (choice<1||choice>3)
{
cout<<"error!"<<endl;
continue;
}
cout<<"已选择菜单"<<choice<<endl;
if(choice==2)
{
float m,n;
char op;
cout<<"请输入a op b(例:1+2):";
cin>>m>>op>>n;
cout<<"是否执行" <<m<<op<<n<<"\n\t是请输入1,否则0:";
int c1;
cin>>c1;
if (!c1)
{
cls();
continue;
}
Re num(m,op,n);
num.calc(m,op,n);
cls();
}
if(choice==1)
{
char op;
float m,n,p,q; //(1+2j)+(1+2j)
// cout<<"请输入(a1+b1j) op (a2+b2j):";// fflush(stdin);
cout<<"请依次输入(_)+(_)j (_) (_)+(_)j:\n\t " ;
cin>>m>>n>>op>>p>>q;
cout<<"是否执行(" <<m<<")+("<<n<<"j)"<<op<<"("<<p<<")+("<<q<<"j)\n\t是请输入1,否则0:";
int c1;
cin>>c1;
if (!c1)
{
cls();
continue;
}
Im num(m,n,op,p,q);
num.calc(m,n,op,p,q);
cls();
}
}
return 0;
}
#include<cstdlib>//带入 清屏函数
#include<math.h>
using namespace std;
//----------------------------------------------------------建立实数类
class Re
{
public:
Re(float a,char op,float b); //赋值构造
void calc(float a,char op,float b);
private:
float a1,b1;
char op;
};
Re::Re(float a,char op,float b) //类中声明,类外定义
{
a1=a;
b1=b;
}
void Re::calc(float a,char op,float b)
{
switch(op)
{
case '+':cout<<a<<op<<b<<"="<<a+b<<endl;break;
case '#':cout<<a<<op<<b<<"="<<++a<<endl;break;//--------------------------------自加,b输入0
case '-':cout<<a<<op<<b<<"="<<a-b<<endl;break;
case '~':cout<<a<<op<<b<<"="<<--a<<endl;break;//--------------------------------自减,b输入0
case '*':cout<<a<<op<<b<<"="<<a*b<<endl;break;
case '/':cout<<a<<op<<b<<"="<<a/b<<endl;break;
case '^':cout<<a<<op<<b<<"="<<pow(a,b)<<endl;break;
default:cout<<"error!"<<endl;
}
}
//----------------------------------------------------------建立复数类
class Im//复数的加、减、乘、除、取模、求平方等运算;
{
public:
Im(float a,float b,char op,float c,float d);
void calc(float a,float b,char op,float c,float d);
private:
float a1,b1,a2,b2;
char op;
};
Im::Im(float a,float b,char op,float c,float d)
{
a1=a;
b1=b;
a2=c;
b2=d;
}
void Im::calc(float a,float b,char op,float c,float d)
{
switch(op)
{
case '+':cout<<a1<<"+"<<b1<<"j"<<op<<a2<<"+"<<b2<<"j="<<a1+a2<<"+"<<b1+b2<<"j"<<endl;break;
case '-':cout<<a1<<"+"<<b1<<"j"<<op<<a2<<"+"<<b2<<"j="<<a1-a2<<"+"<<b1-b2<<"j"<<endl;break;
case '*':cout<<a1<<"+"<<b1<<"j"<<op<<a2<<"+"<<b2<<"j="<<a1*a2-b1*b2<<"+"<<a1*b2+a2*b1<<")j"<<endl;break;
case '/':cout<<a1<<"+"<<b1<<"j"<<op<<a2<<"+"<<b2<<"j="<<(a1*a2+b1*b2)/(a2*a2+b2*b2)<<")+("<<(a2*b1-a1*b2)/(a2*a2+b2*b2)<<")j"<<endl;break;
case '.':cout<<"|"<<a1<<"+"<<b1<<"j|="<<sqrt(a1*a1+b1*b1)<<endl;break;//--------------------------------求模
case '^':cout<<"("<<a1<<"+"<<b1<<"j)"<<op<<"2="<<(a1*a1-b1*b1)<<"+"<<(2*a1*b1)<<"j"<<endl;break;//--------------------------------求平方,a2,b2输入0
default:cout<<"error!"<<endl;
}
}
int ShowMenu()
{
cout<<"\n+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n";
cout<<"------------------------------复数计算器---------------------------\n\n";
cout<<"\t\t功能分类\n";
cout<<"\t1.虚数计算类 2.实数计算类 3.退出功能\n";
cout<<"\n-------------------------------------------------------------------\n"; //flush(stdin);清除输入缓冲区
cout<<"+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n\n";
cout<<"现在请选择你要实现的功能:1.虚数计算类 \n";
cout<<" 2.实数计算类 \n";
cout<<"输入数字3可退出功能\n";
return 1;
}
void cls()
{
cout<<"清屏请输入3,返回上一级菜单输入其他:";
char cc;
cin>>cc;
if (cc=='3')
system("cls"); //清屏函数
}
//----------------------------------------------------------main函数调用
int main()
{
int mode,choice,temp=0;
while(ShowMenu()&&cin>>choice&&choice!=3)
{
if (choice<1||choice>3)
{
cout<<"error!"<<endl;
continue;
}
cout<<"已选择菜单"<<choice<<endl;
if(choice==2)
{
float m,n;
char op;
cout<<"请输入a op b(例:1+2):";
cin>>m>>op>>n;
cout<<"是否执行" <<m<<op<<n<<"\n\t是请输入1,否则0:";
int c1;
cin>>c1;
if (!c1)
{
cls();
continue;
}
Re num(m,op,n);
num.calc(m,op,n);
cls();
}
if(choice==1)
{
char op;
float m,n,p,q; //(1+2j)+(1+2j)
// cout<<"请输入(a1+b1j) op (a2+b2j):";// fflush(stdin);
cout<<"请依次输入(_)+(_)j (_) (_)+(_)j:\n\t " ;
cin>>m>>n>>op>>p>>q;
cout<<"是否执行(" <<m<<")+("<<n<<"j)"<<op<<"("<<p<<")+("<<q<<"j)\n\t是请输入1,否则0:";
int c1;
cin>>c1;
if (!c1)
{
cls();
continue;
}
Im num(m,n,op,p,q);
num.calc(m,n,op,p,q);
cls();
}
}
return 0;
}