📄 课程设计,计算器.cpp
字号:
#include <process.h>
#include <iostream.h>
#include <conio.h>
#include <stdlib.h>
#include <math.h>
float number,answer,val;
class oopcalc {
public:
void calcadd();
void calcsub();
void calcdiv();
void calcmult();
void calcfartocel();
void calcceltofar();
void calcsroot();
void exitprog();
void menu();
void badinput();
void calchunhe();
void calcceshi();
private:
float add(float n);
float sub(float n);
float div(float n);
float mult(float n);
float fartocel(float x);
float celtofar(float x);
float sqroot(float x);
};
void oopcalc::calcadd()
{
cout<<"加法\n";
cout<<"请输入所要加的数,输0结束\n";
cin>>number;
cout<<"答案是:"<<add(number)<<endl;
cout<<"继续\n";
getch();
menu();
}
void oopcalc::calcsub()
{
cout<<"减法\n";
cout<<"请输入所要减的数,输0结束\n";
cin>>number;
cout<<"答案是:"<<sub(number)<<endl;
cout<<"继续\n";
getch();
menu();
}
void oopcalc::calcdiv()
{
cout<<"除法\n";
cout<<"请输入所要除的数,输0结束\n";
cin>>number;
cout<<"答案是:"<<div(number)<<endl;
cout<<"继续\n";
getch();
menu();
}
void oopcalc::calcmult()
{
cout<<"乘法\n";
cout<<"请输入所要乘的数,输0结束\n";
cin>>number;
cout<<"答案是:"<<mult(number)<<endl;
cout<<"继续\n";
getch();
menu();
}
void oopcalc::calcfartocel()
{
cout<<"The Farenheit to Celsius Function\n";
cout<<"Enter a tempature in Farenheit:";
cin>>number;
answer=fartocel(number);
cout<<"The tempature in Celsius is"<<answer<<endl;
cout<<"继续\n";
getch();
menu();
}
void oopcalc::calcceltofar()
{
cout<<"The Celsius to Farenheit Function\n";
cout<<"Enter a tempature in Celsius:";
cin>>number;
answer=celtofar(number);
cout<<"The tempature in Farenheit is"<<answer<<endl;
cout<<"继续\n";
getch();
menu();
}
void oopcalc::calcsroot()
{
cout<<"开方\n";
cout<<"请输入一个数: ";
cin>>number;
answer=sqroot(number);
cout<<"平方根是"<<answer<<endl;
cout<<"继续\n";
getch();
menu();
}
void oopcalc::calchunhe()
{
float x,y,sum;
char op1,op;
sum=0;y=0;
op1=' ';
cout<<"输入四则运算的计算式:";
cin>>x>>op;
while (op!='='){
cin>>y;
switch(op)
{
case'+':
case'-':
switch(op1){
case' ':sum=x;
break;
case'+':sum+=x;
break;
case'-':sum-=x;
break;
}
op1=op;x=y;
break;
case'*':x*=y;
break;
case'/':if(y)
{
x/=y;
break;
}
else{
cout<<"除数为0\n";
goto end;
}
default:cout<<"非法的运算符\n";
goto end;
}
cin>>op;
}
switch(op1){
case' ':sum=x;
break;
case'+':sum+=x;
break;
case'-':sum-=x;
break;
}
cout<<"="<<sum<<'\n';
end:;
cout<<"继续\n";
getch();
menu();
}
void oopcalc::calcceshi()
{int a,b,sum=0;
int op,c,d;
a=rand();
b=rand();
op=rand()%4;
switch(op)
{
case 0:cout<<a<<'+'<<b<<'=';
c=a+b;
break;
case 1:cout<<a<<'-'<<b<<'=';
c=a-b;
break;
case 2:cout<<a<<'*'<<b<<'=';
c=a*b;
break;
case 3:cout<<a<<'/'<<b<<'=';
c=a/b;
break;
}
cin>>d;
if(d==c){
cout<<"正确!";}
else cout<<"不正确!";
getch();
menu();
cout<<"继续\n";
}
void oopcalc::exitprog()
{
exit(-1);
}
void oopcalc::menu()
{
char input;
oopcalc a;
system("cls");
cout<<"================计算器===============\n";
cout<<"1:加法\n";
cout<<"2:减法\n";
cout<<"3:除法\n";
cout<<"4:乘法\n";
cout<<"5:Convert Farenheit to Celsius\n";
cout<<"6:Convert Celsius to Farenheit\n";
cout<<"7:开方\n";
cout<<"8:混合计算\n";
cout<<"9:测试\n";
cout<<"0:结束\n";
cout<<"请选择: ";
cin>>input;
cout<<"===============0204210450姚宏昕===============\n";
switch (input)
{
case'1': a.calcadd();
break;
case'2': a.calcsub();
break;
case'3': a.calcdiv();
break;
case'4': a.calcmult();
break;
case'5': a.calcfartocel();
break;
case'6': a.calcceltofar();
break;
case'7': a.calcsroot();
break;
case'8': a.calchunhe();
break;
case'9': a.calcceshi();
break;
case'0': a.exitprog();
break;
default: a.badinput();
}
}
void oopcalc::badinput()
{
cout<<"错误输入!\n";
cout<<"继续\n";
getch();
menu();
}
float oopcalc::add(float n)
{
val=0;
while(n!=0)
{
val+=n;
cin>>n;
}
return val;
}
float oopcalc::sub(float n)
{
int flag=0;
while(n!=0){
if(flag==0)
{
val=n;
flag=1;
}
else
val-=n;
cin>>n;
}
return val;
}
float oopcalc::div(float n)
{
int flag=0;
while(n!=0){
if(flag==0)
{
val=n;
flag=1;
}
else val/=n;
cin>>n;
}
return val;
}
float oopcalc::mult(float n)
{
val=1;
while(n!=0)
{
val*=n;
cin>>n;
}
return val;
}
float oopcalc::fartocel(float x)
{
float cel=((x-32)*5)/9;
return cel;
}
float oopcalc::celtofar(float x)
{
float f;
f=x*9/5+32;
return f;
}
float oopcalc::sqroot(float x)
{
float g=sqrt(x);
return g;
}
void main()
{
oopcalc s;
s.menu();
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -