结对编程-c++四则运算

题目:
小学老师要每周给同学出300道四则运算练习题。
–这个程序有很多种实现方式:
C/C++
C#/VB.net/Java
Excel
Unix Shell
Emacs/Powershell/Vbscript
Perl
Python
–两个运算符,100 以内的数字,不需要写答案。
–需要检查答案是否正确,并且保证答案在 0..100 之间
–尽可能地多设置一些条件
我们二人选择了c++语言实现该项目
伙伴:2252708
过程:
在本次编译过程中,由我和我的伙伴合作,一个同学coding,另一个同学在旁边审核代码,之后再交换角色
代码:

#include <iostream>
#include <cstdlib>
#include <ctime>
#include <cmath>
using namespace std;
// 生成随机数
int generateRandomNumber(int min, int max) {
    return rand() % (max - min + 1) + min;
}
// 生成随机运算符
char generateRandomOperator() {
    char operators[] = { '+', '-', '*', '/' };
    return operators[rand() % 4];
}
// 计算表达式结果
double calculateExpression(int num1, char op1, int num2, char op2, int num3) {
    double result = num1;
    switch (op1) {
    case '+':
        result += num2;
        break;
    case '-':
        result -= num2;
        break;
    case '*':
        result *= num2;
        break;
    case '/':
        if (num2 != 0) {
            result /= num2;
        }
        break;
    }
    switch (op2) {
    case '+':
        result += num3;
        break;
    case '-':
        result -= num3;
        break;
    case '*':
        result *= num3;
        break;
    case '/':
        if (num3 != 0) {
            result /= num3;
        }
        break;
    }
    return result;
}
int main() {
    srand(time(0)); // 设置随机种子
    const int numQuestions = 300;
    for (int i = 0; i < numQuestions; ++i) {
        int num1 = generateRandomNumber(0, 100);
        int num2 = generateRandomNumber(0, 100);
        int num3 = generateRandomNumber(1, 100); // 保证除数不为0
        char op1 = generateRandomOperator();
        char op2 = generateRandomOperator();

        // 输出练习题
        cout << num1 << ' ' << op1 << ' ' << num2 << ' ' << op2 << ' ' << num3 << " = ?" << endl;

        // 用户输入答案
        double userAnswer;
        cout << "请输入答案: ";
        cin >> userAnswer;

        // 计算正确答案
        double correctAnswer = calculateExpression(num1, op1, num2, op2, num3);

        // 检查答案是否正确以及是否在0到100之间
        if (correctAnswer >= 0 && correctAnswer <= 100 && fabs(userAnswer - correctAnswer) < 1e-6) {
            cout << "回答正确!" << endl;
        }
        else {
            cout << "回答错误!" << endl;
        }
    }

    return 0;
}

运行结果:

合作心得:
在此编译过程中,我们相互协作、共同工作来完成任务。我们互相从对方身上学到了可取之处,例如:代码编译的规范化、编程的技巧和思维方式,这使得我们互相启发进步。
当遇到问题、bug的时候,对方会更容易发现自身没能迅速找到的问题。共同解决问题也使得我们的效率得到了很大的提高,两个人共同编写代码,可以更好地进行代码审查和质量控制,确保代码的可读性、可维护性和稳定性。每个人都有自己的专长和弱点,结对编程可以让擅长不同领域的两个人相互补充,共同解决问题,提高效率。结对编程过程中,可以及时地给对方反馈和建议,帮助对方发现问题、改进代码,避免出现潜在的bug。
并且当有一个人在监督你的时候你会发现这会大大减少混乱和分心,提高工作效率,快速解决问题。

posted @ 2024-04-16 22:36  祝一夏  阅读(14)  评论(0编辑  收藏  举报