c++ primer plus 第七章《编程题7.13.10》

本文介绍了一个使用C++实现的基本计算器程序,该程序可以接收两个浮点数并进行加法和乘法运算。通过函数指针的方式实现了操作的灵活选择,并且具备了基本的错误处理功能,确保输入的有效性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

/*
 Enter x and y: q e
 Not number, please retry again.
 Enter x and y: 2.5 10.4
 2.5 + 10.4 = 12.9
 2.5 * 10.4 = 26
 Enter x and y: 11.33 45.12
 11.33 + 45.12 = 56.45
 11.33 * 45.12 = 511.21
 Enter x and y: 10.2232 6.43
 10.2232 + 6.43 = 16.6532
 10.2232 * 6.43 = 65.7352
 Enter x and y: 123.123 321.321
 123.123 + 321.321 = 444.444
 123.123 * 321.321 = 39562
 */
#include <iostream>

using namespace std;

double add(double, double);
double mult(double, double);
double calculate(double, double, double (*pf)(double, double));

int main() {
    double x, y;
    const int Size = 4;
    int i = 0;
    while (i < Size) {
        cout << "Enter x and y: ";
        if(! (cin >> x)) {
            cin.clear();
            while (cin.get() != '\n')
                ;
            cout << "Not number, please retry again.\n";
            continue;
        }
        if (! (cin >> y)) {
            cin.clear();
            while (cin.get() != '\n')
                ;
            cout << "Not number, please retry again.\n";
            continue;
        }
        i++;
        double q = calculate(x, y, add);
        cout << x << " + " << y << " = " << q << "\n";
        q = calculate(x, y, mult);
        cout << x << " * " << y << " = " << q << "\n";
    }
}

double add(double x, double y) {
    return x + y;
}

double mult(double x, double y) {
    return x * y;
}

double calculate(double a, double b, double (*pf)(double a, double b)) {
    return (*pf)(a, b);
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值