简易计算器(可以查询上次计算的结果)

简易计算器又出新的版本啦,可以查询上一次的计算结果,并且可以通过选项,去调用上一次的计算结果并进行计算。

代码如下:

#include<iostream>
using namespace std;
void main();
void shuoming()
{
    cout << "当符号为n时退出,为q时清空\n输入格式:例如1+1\n本计算器+-*/的功能不变\n^为这个数的平方\n~为x的y次方" << endl;
    system("pause");
    system("cls");
    main();
}
float result_arr[2] = { 0 }; // 存放两次结果的数组
int arr_index = 0; // 当前存放结果的数组索引
void show_results()
{
         cout << "上一次计算结果是: " << result_arr[1] << endl;
        system("pause");
}
void main()
{
    float num1 = 0, num2 = 0, final;
    char fh = 0;
    char select=0;
    cout << "欢迎使用简易计算器" << endl;
    cout << "-----------------" << endl;
    cout << "|    1、进入    |" << endl;
    cout << "------------------" << endl;
    cout << "|    2、说明    |" << endl;
    cout << "-----------------" << endl;
    cin >> select;
    if (select == '1')
    {
        system("cls");
        cout << "请输入" << endl;
        goto Z;
    }
    else
        shuoming();
Z:    cin >> num1;
    cin >> fh;
    int a = 0;
    double result;
    while (fh != 'n')
    {
        switch (fh)
        {
            case'+':cin >> num2; final = num1 + num2; break;
            case'-':cin >> num2; final = num1 - num2; break;
            case'*':cin >> num2; final = num1 * num2; break;
            case'/':cin >> num2; final = num1 / num2; a = num1 - (num2 * static_cast<int>(num1 / num2)); break;
            case'^':final = num1 * num1; break;
            case'~':cin >> num2; final = num1; for (int i = num2; i > 1; i--) { final = num1 * final; } break;
            case'c': show_results(); cout<<"请输入是否要调用上一次结果(y/n):"<<endl;cin>>select;if(select=='y')final=result_arr[1];break; // 查看之前的结果
            default:cout << "请重新输入" << endl; break;
        }
        system("cls");
        if (a != 0)
        {
            int final1 = final;
            printf("--------------------\n");
            printf("|结果是%d····%d|\n", final1, a);
            printf("--------------------\n");
            final = final1;
            a = 0;
            result_arr[arr_index % 2] = final; // 存放结果到数组中
            arr_index++;
        }
        else
        {
            printf("-------------------------\n");
            printf("|结果是%.2f\t|\n", final);
            printf("-------------------------\n");
            result_arr[arr_index % 2] = final; // 存放结果到数组中
            arr_index++;
        }
    a:        cin >> fh;
        if (fh == 'q')
        {
            printf("已清空\n");
            goto Z;
        }
        else
        {
            num1 = final;
            continue;
        }
    }
}

  • 5
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值