首页 > 编程语言 >结对编程-c++四则运算

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

时间:2024-04-16 22:46:23浏览次数:25  
标签:case 结对 num2 num3 int 四则运算 c++ break result

题目:
小学老师要每周给同学出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。
并且当有一个人在监督你的时候你会发现这会大大减少混乱和分心,提高工作效率,快速解决问题。

标签:case,结对,num2,num3,int,四则运算,c++,break,result
From: https://www.cnblogs.com/2252703xx/p/18139445

相关文章

  • 结对编程-C++四则运算
    小学老师要每周给同学出300道四则运算练习题。–这个程序有很多种实现方式:C/C++C#/VB.net/JavaExcelUnixShellEmacs/Powershell/VbscriptPerlPython–两个运算符,100以内的数字,不需要写答案。–需要检查答案是否正确,并且保证答案在0..100之间–尽可能地多设置一......
  • 结对
    publicListgetStationsBetween(StringstartStation,StringendStation,List<List>allSubwayStations){ListstationsBetween=newArrayList<>();Map<String,List>graph=buildGraph(allSubwayStations);//检查起始站和终点站是否存在于地铁网络中if(......
  • C++ 递归与面向对象编程基础
    C++递归递归是一种使函数调用自身的技术。这种技术提供了一种将复杂问题分解为简单问题的方法,从而更容易解决问题。递归可能有点难以理解。理解其工作原理的最佳方法是通过实验来尝试。递归示例将两个数字相加很容易做到,但将一系列数字相加就更复杂了。在下面的示例中,通过将......
  • 【编译原理】正则式转NFA转DFA 代码实现(C/C++)
    直接上代码:#include<bits/stdc++.h>usingnamespacestd;//nfa结构定义structnst{vector<int>a[26],e;//接收a-z会到达的状态,接收eps会到达的状态boolf=0;//=0为可接受态};vector<nst>nfa;set<char>alp;stringstr;set<int>accepted;struc......
  • C++定义,继承和虚函数
    类定义方式一般有两种Baseb和Baseb(3);一种不带参数,一种带参数,这两种实例定义会在范围结束自动释放。Base*c=newBase;和Base*c=newBase(5);没有参数可不加括号。通过new申请的类,需要手动delete释放,否则需要关闭程序才会释放(说的内存泄漏是指程序一直运行期间不断产生......
  • C++ list erase
    原文:https://www.cnblogs.com/yelongsan/p/4050404.htmlSTL中的容器按存储方式分为两类,一类是按以数组形式存储的容器(如:vector、deque);另一类是以不连续的节点形式存储的容器(如:list、set、map)。在使用erase方法来删除元素时,需要注意一些问题。      在使用list、set或m......
  • 结对编程
    前言小学老师要每周给同学出300道四则运算练习题。–这个程序有很多种实现方式:C/C++C#/VB.net/JavaExcelUnixShellEmacs/Powershell/VbscriptPerlPython–两个运算符,100以内的数字,不需要写答案。–需要检查答案是否正确,并且保证答案在0..100之间–尽可能地多设......
  • 深度解读《深度探索C++对象模型》之默认构造函数
    接下来我将持续更新“深度解读《深度探索C++对象模型》”系列,敬请期待,欢迎关注!也可以关注公众号:iShare爱分享,主动获得推文。提到默认构造函数,很多文章和书籍里提到:“在需要的时候编译器会自动生成一个默认构造函数”。那么关键的问题来了,到底是什么时候需要?是谁需要?比如下面的......
  • 结对编程
    小学老师要每周给同学出300道四则运算练习题。–这个程序有很多种实现方式:C/C++C#/VB.net/JavaExcelUnixShellEmacs/Powershell/VbscriptPerlPython–两个运算符,100以内的数字,不需要写答案。–需要检查答案是否正确,并且保证答案在0..100之间合作伙伴:2252522代......
  • 结对编程-C#-四则运算
    结对编程-四则运算要求:小学老师要每周给同学出300道四则运算练习题。–这个程序有很多种实现方式:C/C++C#/VB.net/JavaExcelUnixShellEmacs/Powershell/VbscriptPerlPython–两个运算符,100以内的数字,不需要写答案。–需要检查答案是否正确,并且保证答案在0..100之......