结对编程

一、概述

  本次代码通过c语言实现随机生成300道四则运算题,在输入完答案后能够检查答案是否正确。

  小组成员:2157128 2157135

 

二、编程思路

  代码主要设置两个函数twojia()和threejia()分别实现两位数相加和三位数相加的运算,并在函数内实现对答案的检验,在每一道题给出后对答案进行检验并给出下一道题,主函数和函数中通过scrand()来为rand()播撒种子,实现随机性。

 

三、结果展示

 

 

四、代码

#include <stdio.h>
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
void twojia()
{
    srand(time(NULL));
       
        float num1 = rand() % 101;
        float num2 = rand() % 101;
        char op;
        switch (rand() % 4) {
            case 0:
                op = '+';
                break;
            case 1:
                op = '-';
                break;
            case 2:
                op = '*';
                break;
            case 3:
                op = '/';
                break;
        }

        
        printf("%.2f %c %.2f = ", num1, op, num2);
        float answer;
        scanf("%f", &answer);
        
       
        float correct_answer;
        switch (op) {
            case '+':
                correct_answer = num1 + num2;
                break;
            case '-':
                correct_answer = num1 - num2;
                break;
            case '*':
                correct_answer = num1 * num2;
                break;
            case '/':
                correct_answer = num1 / num2;
                break;
        }
        if (answer == correct_answer) {
            printf("回答正确!\n");
        } else {
            printf("回答错误,正确答案是 %.2f.\n", correct_answer);
        }

}
void threejia()
{
    srand(time(NULL));
       
        float num1 = rand() % 101;
        float num2 = rand() % 101;
        float num3 = rand() % 101;
        char op;
        switch (rand() % 4) {
            case 0:
                op = '+';
                break;
            case 1:
                op = '-';
                break;
            case 2:
                op = '*';
                break;
            case 3:
                op = '/';
                break;
        }

        
        printf("%.2f %c %.2f %c %.2f= ", num1, op, num2, op, num3);
        float answer;
        scanf("%f", &answer);

       
        float correct_answer;
        switch (op) {
            case '+':
                correct_answer = num1 + num2 + num3;
                break;
            case '-':
                correct_answer = num1 - num2 - num3;
                break;
            case '*':
                correct_answer = num1 * num2 * num3;
                break;
            case '/':
                correct_answer = num1 / num2 / num3;
                break;
        }
        if (answer == correct_answer) {
            printf("回答正确!\n");
        } else {
            printf("回答错误,正确答案是 %.2f.\n", correct_answer);
        }
}
int main()
{
    srand(time(NULL));
    int i=0;
    while(i<300){
        int a=rand()%2;
    switch(a){
        case 0:twojia();
        break;
        case 1:threejia();
        break;
        default:break;
        
    }
    i++;
    } 
    
    return 0;
}

 

五、实验体会

1.结对编程具有快捷便利的优点,在本次作业的过程中,我与编程伙伴花费一下午时间完成了此次作业,在编程的过程中我们可以交换思路,互相检查,减少错误的发生率。

2.结对编程是一个功能由两个人共同完成的,而且在这个功能完成期间甚至进行了好几次结对伙伴交换,与以往小组作业每人负责一个板块导致每个人对项目整体把握不了解不同,结对编程可以让每个人理解项目的结构并继续编程下去。

3.在编程过程中出现的BUG可以由两个人进行不同的思考从而快速解决问题,如本次作业中对于浮点数的取值问题即为二人探讨后得以快速解决。

posted @ 2023-04-11 18:30  小羊是我  阅读(48)  评论(0)    收藏  举报