首页 > 其他分享 >结对编码-四则运算 2252118 2252121

结对编码-四则运算 2252118 2252121

时间:2024-04-21 13:33:05浏览次数:24  
标签:std 2252121 num1 num2 int 结对 2252118 result cout

2252118 2252121
程序具有以下特点和功能:
随机生成题目:程序会随机生成包含两个运算符(加、减、乘、除)的四则运算题目。
整数结果:所有运算的结果都是整数,避免了小数的出现。
运算符优先级:程序正确处理了运算符的优先级,确保乘法和除法在加法和减法之前执行。
整除调整:在涉及除法的题目中,程序会调整数字以确保结果为整数。
用户交云:用户可以输入他们的答案,程序会检查答案是否正确,并提供反馈。
鼓励信息:根据用户完成的题目数量,程序会输出不同的鼓励信息。
错误反馈:当用户连续答错一定数量的题目时,程序会提供相应的反馈,鼓励用户更加认真。
退出机制:用户可以通过输入特定的命令(-1)来退出程序。

include

include

include

include

int calculate(int num1, int num2, char op);
bool isResultValid(int result);
void printEncouragement(int count);
void printErrorFeedback(int errorCount);
int main() {
srand(static_cast(time(0)));
int num1, num2, num3, result;
char op1, op2;
std::string input;
int count = 0;
int errorCount = 0;

while (true) {
    do {
        num1 = rand() % 100 + 1; 
        num2 = rand() % 100 + 1;
        num3 = rand() % 100 + 1;
        op1 = "+-*/"[rand() % 4];
        op2 = "+-*/"[rand() % 4];
        if (op1 == '/' && num1 % num2 != 0) {
            num1 = num2 * (rand() % 10 + 1);
        }
        if (op2 == '/' && num2 % num3 != 0) {
            num2 = num3 * (rand() % 10 + 1);
        }
        if (op1 == '+' || op1 == '-') {
            if (op2 == '*' || op2 == '/') {
                num2 = calculate(num2, num3, op2);
                op2 = op1;
                num3 = rand() % 100 + 1;
            }
        }
        result = calculate(num1, num2, op1);
        result = calculate(result, num3, op2);
    } while (!isResultValid(result));
    std::cout << num1 << ' ' << op1 << ' ' << num2 << ' ' << op2 << ' ' << num3 << " = ?\n";
    std::cin >> input;
    if (input == "-1") {
        break;
    }
    int userAnswer;
    std::stringstream ss(input);
    ss >> userAnswer;
    if (userAnswer == result) {
        std::cout << "正确\n";
        errorCount = 0; 
    }
    else {
        errorCount++;
        std::cout << "错误\n";
        printErrorFeedback(errorCount);
    }
    count++;
    printEncouragement(count);
}
return 0;

}
int calculate(int num1, int num2, char op) {
switch (op) {
case '+': return num1 + num2;
case '-': return num1 - num2;
case '*': return num1 * num2;
case '/': return num2 != 0 ? num1 / num2 : 1;
default: return 0;
}
}
bool isResultValid(int result) {
return result >= 0 && result <= 1000;
}
void printEncouragement(int count) {
switch (count) {
case 1:
std::cout << "还需努力\n";
break;
case 2:
std::cout << "再努力一把\n";
break;
case 3:
std::cout << "今天的量完成啦,请继续提高\n";
break;
case 4:
std::cout << "加油,还能努力一把\n";
break;
case 5:
std::cout << "今天的任务超额完成了,该休息了,明天继续\n";
break;
default:
// No encouragement for other counts
break;
}
}

// Print error feedback based on the error count
void printErrorFeedback(int errorCount) {
if (errorCount >= 5 && errorCount < 10) {

    std::cout << "你错的有点多了哦\n";
}
else if (errorCount >= 10) {
    std::cout << "做题要认真哦\n";
}

}
这里便于展示,达到提示的次数调整为1-5次与错误5次以上和10次以上




实验总结:
结对编程优点:
沟通与协作:结对编程强调了沟通的重要性。通过密切合作,我们能够更好地理解问题,找到更有效的解决方案,并且在编码过程中即时解决疑问。
知识共享:这次实验是一个学习和教学的过程。双方可以互相学习对方的编程技巧和解决问题的方法,从而提高个人技能。
代码质量:有两套眼睛检查代码意味着错误更容易被发现和修正。这通常会导致更高质量、更可维护的代码。
互相学习:每个人都有自己的强项和弱点。结对编程使得团队成员能够互补技能,共同成长。
动态交互:与传统的编程相比,结对编程更加动态和互动。它鼓励实时反馈和讨论,这有助于快速学习和适应。
问题解决:在遇到难题时,两个头脑比一个头脑好用。结对编程提供了即时的支持和创意,有助于找到解决问题的新方法。
效率:虽然结对编程可能看起来效率较低,但它实际上可以通过减少错误和提高代码质量来节省时间。
这次结对编程的实验是一个宝贵的学习经历,它不仅提高了编程技能,还加深了对团队合作和沟通重要性的理解。

标签:std,2252121,num1,num2,int,结对,2252118,result,cout
From: https://www.cnblogs.com/114514gjh/p/18148842

相关文章

  • 结对编程 四则运算
    题目:小学老师要每周给同学出300道四则运算练习题。这个程序有很多种实现方式:C/C++C#/VB.net/JavaExcelUnixShellEmacs/Powershell/VbscriptPerlPython两个运算符,100以内的数字,不需要写答案。需要检查答案是否正确,并且保证答案在0——1000之间我们采用的是c++来实......
  • 软件开发与创新第二次实验——结对编程:计算题出题系统
    一.结对情况本人:2252209结对搭档:2211323二.程序设想思路根据题目我和搭档总结出如下几个关键点:1.四则运算随机出题2.两个运算符,三个数字3.提供算式答案并对用户输入答案进行检查我们在基础要求上新增点如下:1.为提高用户使用观感,开头结尾增加一些文字说明2.在用户输入完......
  • 软件创新与开发——结对编程
    程序要求:两个运算符,100以内的数字,不需要写答案。需要检查答案是否正确,并且保证答案在0-100之间。本次作业由2252312和2252413共同完成由2252312发布博客园运行环境:Windows10教育版开发环境:devc++语言:C++处理器:11thGenIntel(R)Core(TM)[email protected]以下是源......
  • 结对编程
    结对同学:2252832程序要求:两个运算符,100以内的数字,不需要写答案。需要检查答案是否正确,并且保证答案在0-100之间根据题目要求,我们决定使用c++语言完成编程,使用两个运算符,100以内的数字。需要检查答案是否正确,并且保证答案在0到100之间结对编程过程1.首先确认问题需求,......
  • 结对编程——100以内加减乘除
    前言按照结对编程的原则,我(2252627)和我的合作伙伴(2252616)两人进行了结对编程,我们共同完成的项目的是小学的四则运算,通过随机生成四则运算题目,供学生答题,并在学生提交答案后进行自动评定,返回正误。经过讨论,我们采用了C++语言作为开发语言,并选取DevC++5.11作为开发环境。功能要求......
  • 结对编程(c语言)
    作业要求:小学老师要每周给同学出300道四则运算练习题。选择c语言进行实现–两个运算符,100以内的数字,不需要写答案。–需要检查答案是否正确,并且保证答案在0..100之间–尽可能地多设置一些条件也可以让同学们自选一个小应用程序进行结对编程的开发请两位同学以结对编码(......
  • 结对编程-c++四则运算
    题目:小学老师要每周给同学出300道四则运算练习题。–这个程序有很多种实现方式:C/C++C#/VB.net/JavaExcelUnixShellEmacs/Powershell/VbscriptPerlPython–两个运算符,100以内的数字,不需要写答案。–需要检查答案是否正确,并且保证答案在0..100之间–尽可能地多设置......
  • 结对编程-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(......
  • 结对编程
    前言小学老师要每周给同学出300道四则运算练习题。–这个程序有很多种实现方式:C/C++C#/VB.net/JavaExcelUnixShellEmacs/Powershell/VbscriptPerlPython–两个运算符,100以内的数字,不需要写答案。–需要检查答案是否正确,并且保证答案在0..100之间–尽可能地多设......