结对编程

  1. 小学老师要每周给同学出300道四则运算练习题。
    –这个程序有很多种实现方式:

C/C++
C#/VB.net/Java
Excel
Unix Shell
Emacs/Powershell/Vbscript
Perl
Python
–两个运算符,100 以内的数字,不需要写答案。

–需要检查答案是否正确,并且保证答案在 0..100 之间
合作伙伴:2252522严宇亮
代码如下

点击查看代码
#include <stdlib.h>
#include <time.h>

// 生成随机数
int generateRandomNumber() {
    return rand() % 101; // 生成0到100之间的随机数
}

// 生成随机运算符
char generateRandomOperator() {
    char operators[] = { '+', '-', '*', '/' };
    int index = rand() % 4; // 生成0到3之间的随机数
    return operators[index];
}

// 计算表达式结果
int calculate(int num1, char op1, int num2, char op2, int num3) {
    int result1, result2;
    switch (op2) {
        case '*':
        case '/':
            if (op1 == '+' || op1 == '-') {
                if (op1 == '+') {
                    result2 = (op2 == '*') ? num2 * num3 : num2 / num3;
                    result1 = op1 == '+' ? num1 + result2 : num1 - result2;
                } else {
                    result2 = (op2 == '*') ? num2 * num3 : num2 / num3;
                    result1 = num1 + result2;
                }
            } else {
                if (op2 == '*') {
                    result1 = num1 * num2;
                    result2 = result1 * num3;
                } else {
                    result1 = num1 * num2;
                    result2 = result1 / num3;
                }
            }
            break;
        default:
            if (op1 == '+' && op2 == '+') {
                result1 = num1 + num2;
                result2 = result1 + num3;
            } else if (op1 == '+' && op2 == '-') {
                result1 = num1 + num2;
                result2 = result1 - num3;
            } else if (op1 == '-' && op2 == '+') {
                result1 = num1 - num2;
                result2 = result1 + num3;
            } else if (op1 == '-' && op2 == '-') {
                result1 = num1 - num2;
                result2 = result1 - num3;
            }
    }
    return result2;
}

int main() {
    srand(time(0)); // 初始化随机数种子

    for (int index = 1; index <= 300; ++index) {
        int num1 = generateRandomNumber();
        int num2 = generateRandomNumber();
        int num3 = generateRandomNumber();
        char op1 = generateRandomOperator();
        char op2 = generateRandomOperator();

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

        // 输出题目
        printf("%d. %d %c %d %c %d = ?\n", index, num1, op1, num2, op2, num3);

        // 输入学生答案进行检查
        int studentAnswer;
        scanf("%d", &studentAnswer);
        
        // 检查答案是否正确
        if (studentAnswer == correctAnswer && studentAnswer >= 0 && studentAnswer <= 100) {
            printf("回答正确\n");
        } else {
            printf("回答错误\n");
        }
    }

    return 0;
}

总结
结对编程的体验让我深刻感受到合作的力量。与搭档一同面对编程挑战,我们互补技能,共同寻找最佳解决方案。在交流中,我不断提升自己的沟通技巧,也学会了倾听与理解。同时,结对编程也让我看到自己的不足,从而激发我更加努力地提升自己的技术能力。虽然过程中偶尔会有分歧,但正是这些分歧促使我们更深入地思考和讨论,最终达成更完善的方案。总的来说,结对编程不仅提高了编程效率,也锻炼了我的团队协作和沟通能力,是一次宝贵的经历。

posted @ 2024-04-16 17:45  我想歇一会  阅读(12)  评论(0编辑  收藏  举报