回 帖 发 新 帖 刷新版面

主题:一个简单的计算器!

#include<math.h>
#include<stdlib.h>
#include<iostream.h>
class Calculator
{
    double a,b;
public:
    Calculator(){a=0;b=0;}; //could be omitted
    void newa()
    {
        double num;
        cout<<"Input the number:";
        cin>>num;
        a=num;
    }
    void newab()
    {
        double num1,num2;
        cout<<"Input the numbers.the first number:";
        cin>>num1;
        cout<<"Input the senond number:";        
        cin>>num2;
        a=num1;
        b=num2;
    }
    double Geta(){return a;}
    double Getb(){return b;}
    double Add(Calculator &A);
    double Sub(Calculator *A);
    double Mul(Calculator &A);
    double Div(Calculator &A);
    double Sin(Calculator &A);
    double Cos(Calculator &A);
    double Tan(Calculator &A);
    double Exp(Calculator &A);
    double Fabs(Calculator &A);
    double LogE(Calculator &A);
    double Log10(Calculator &A);
    double Pow(double x,double y);
    double Sqrt(double x);
};
double Calculator::Add(Calculator &A)
{
    return A.a+A.b;
}
double Calculator::Sub(Calculator *A)
{
    return A->a-A->b;
}
double Calculator::Mul(Calculator &A)
{
    return A.a*A.b;
}
double Calculator::Div(Calculator &A)
{
    if(A.b==0)
    {cout<<"Error! The program will be terminated!"<<endl;exit(0);}
    return A.a/A.b;
}
double Calculator::Sin(Calculator &A)
{
    return sin(A.a);
}
double Calculator::Cos(Calculator &A)
{
    return cos(A.a);
}
double Calculator::Tan(Calculator &A)
{
    return tan(A.a);
}
double Calculator::Exp(Calculator &A)
{
    return exp(A.a);
}
double Calculator::Fabs(Calculator &A)
{
    return fabs(A.a);
}
double Calculator::LogE(Calculator &A)
{
    return log(A.a);
}
double Calculator::Log10(Calculator &A)
{
    return log10(A.a);
}
double Calculator::Pow(double x,double y)
{
    return pow(x,y);
}
double Calculator::Sqrt(double x)
{
    if(x<0)
    {cout<<"Error! The program will be terminated!"<<endl;exit(0);}
    return sqrt(x);
}

void main()
{
    int sel;
    Calculator cal;
    cout<<"Welcome to use the calculator!please select."<<endl;
    cout<<"1:\'+\'    2:\'-\'     3:\'*\'      4:\'/\'     5:\'sin\'   6:\'cos\'  7:\'tan\'"<<endl;
    cout<<"8:\'exp\'  9:\'fabs\'  10:\'logE\'  11:\'log10\' 12:\'pow\'  13:\'sqrt\'"<<endl;
    do
    {
    cout<<"Please select:(0--exit)";
    cin>>sel;
    switch (sel)
    {
    case 0: break;
    case 1: cal.newab();
            cout<<"The result is:"<<cal.Add(cal)<<endl;
            break;
    case 2: cal.newab();
            cout<<"The result is:"<<cal.Sub(&cal)<<endl;
            break;
    case 3: cal.newab();
            cout<<"The result is:"<<cal.Mul(cal)<<endl;
            break;
    case 4: cal.newab();
            cout<<"The result is:"<<cal.Div(cal)<<endl;
            break;
    case 5: cal.newa();
            cout<<"The result is:"<<cal.Sin(cal)<<endl;
            break;
    case 6: cal.newa();
            cout<<"The result is:"<<cal.Cos(cal)<<endl;
            break;
    case 7: cal.newa();
            cout<<"The result is:"<<cal.Tan(cal)<<endl;
            break;
    case 8: cal.newa();
            cout<<"The result is:"<<cal.Exp(cal)<<endl;
            break;
    case 9: cal.newa();
            cout<<"The result is:"<<cal.Fabs(cal)<<endl;
            break;
    case 10: cal.newa();
            cout<<"The result is:"<<cal.LogE(cal)<<endl;
            break;
    case 11: cal.newa();
            cout<<"The result is:"<<cal.Log10(cal)<<endl;
            break;
    case 12: cal.newab();
            cout<<"The result is:"<<cal.Pow(cal.Geta(),cal.Getb())<<endl;
            break;
    case 13: cal.newa();
            cout<<"The result is:"<<cal.Sqrt(cal.Geta())<<endl;
            break;
    default: cout<<"Your selection is ERROR! Select again!"<<endl;
    }
    }while(sel!=0);
}
本人水平有限!有错误请指正!谢谢

回复列表 (共17个回复)

11 楼


帮我做一个简单的计算器,好吗?
要求:要用数组,要有(),+,-,*,/就可以了。用C 语言做。
谢谢了!

12 楼

学习 ;了。。。

13 楼


#include<stdio.h>
#include<conio.h>
main()
{  float a,b,x;
   char c,ch;
   do
   {printf("\n请输入2个数的运算:\n"); 
    scanf("%f%c%f",&a,&c,&b);
    if(c=='+')   x=(a+b);
    else if(c=='-')   x=(a-b);
    else if(c=='*')   x=(a*b);
    else if(c=='/')   x=(a/b);
    else printf("errors!\n");
    printf("%g%c%g=%g\n",a,c,b,x);    
    printf("按任意键继续,按Esc结束。"); 
    ch=getch();}while(ch!=27);  

14 楼


楼主很强大,者个程序看上去复杂,其实不然啦!!!看来楼主学习C++有段时间了啊!!![em2]

15 楼

貌似很复杂~!

16 楼


来个简单点的:
#include<stdio.h>
float a,b,c;
char d;
void jia()
{
    c=a+b;
    printf("%f\n",c);
}
void jian()
{
    c=a-b;
    printf("%f\n",c);
}
void cheng()
{
    c=a*b;
    printf("%f\n",c);
}
void chu()
{
    c=a/b;
    printf("%f\n",c);
}
void chengfang()
{
    c=a*a;
    printf("%f\n",c);
}
void kaifang()
{
    c=sqrt(a);
    printf("%f\n",c);
}
int main()
{
    char e;
    printf("您要进行的是普通运算还是科学运算:p.普通运算\tk.科学运算\tt.退出\n");
  while(1)
  {
       scanf("%c",&e);
      if(e=='p')
      {
          printf("请输入:\n");
          scanf("%f%c%f",&a,&d,&b);
        if(d=='+')
        {jia(); } 
        if(d=='-')
        {jian(); }
        if(d=='*')
        {cheng();}
        if(d=='/')
        {chu();}
        
      }
      if(e=='k')
      {
        printf("'^'表示2次乘方\n'<'表示2次开方\n");
        printf("请录入:\n");
        scanf("%f%c",&a,&d);
        if(d=='^')
        {chengfang();}
        if(d=='<')
        {kaifang();}
        
      }
      if(e=='t')
      {exit(0);}
    
    printf("\n");
    printf("\n");
    
  }
}

17 楼

我学的是计算机和数学,我也不是很会啊。

我来回复

您尚未登录,请登录后再回复。点此登录或注册