首页 > 编程语言 >结对编程 c++语言实现四则运算练习题

结对编程 c++语言实现四则运算练习题

时间:2024-04-16 12:44:40浏览次数:21  
标签:练习题 结对 min int max 编程 c++ 100

结对同学:2252813
程序要求:
两个运算符,100 以内的数字,不需要写答案。
需要检查答案是否正确,并且保证答案在 0-100 之间

通过阅读题目要求,我们决定使用c++语言完成编程,需要满足两个功能,首先生成一个包含两个运算符的算式,参与运算的数字在100之内。下一步检查答案是否正确,并且保证答案在0-100之间
结对编程过程
1.首先我们明确问题需求,确定目标
2.然后明确分工,一个人负责实际的编码,而另一个人则审查代码并提供反馈。
3.在编写过程中交替角色避免疲劳,并确保每个人都有机会参与编码和审查。
4.在结对编程过程中,保持频繁的沟通和讨论,以确保互相都明白彼此的想法和决策。
5.最后测试运行,完成代码的编写

程序代码

点击查看代码
#include <iostream>
using namespace std;
#include <cstdlib>
#include <ctime>
#include <string>

class Calculate {
private:
	int correctNum;
	int wrongNum;
public:
	Calculate() {
		correctNum = 0;
		wrongNum = 0;
	}

	void CreateOneCalculation() {//生成一道数学题
		srand(time(NULL));
		int max = 99;
		int min = 1;
		//生成两个数字
		int x = min + rand() % (max - min + 1);
		int y = min + rand() % (max - min + 1);
		//生成运算符、正确答案
		min = 1;
		max = 4;
		double correctAnswer = 0;
		int mathOperator = min + rand() % (max - min + 1);
		switch (mathOperator) {
		case 1:
			//防止答案超过100
			if(x+y>100){
				x = x / 2;
				y = y / 2;
			}
			cout << x << "+" << y << "=?" << endl;
			correctAnswer = x + y;
			break;
		case 2:
			//防止答案出现负数
			if (x < y) {
				int temp = 0;
				temp = x;
				x = y;
				y = temp;
			}
			cout << x << "-" << y << "=?" << endl;
			correctAnswer = x - y;
			break;
		case 3:
			//第二行防止答案超过100,第一行防止频繁出现x*1
			x = x / 2;
			y = 100 / x;
			cout << x << "*" << y << "=?" << endl;
			correctAnswer = x * y;
			break;
		case 4:
			//除法答案只保留两位,无视四舍五入
			if (x < y) {
				int temp = 0;
				temp = x;
				x = y;
				y = temp;
			}
			cout << x << "/" << y << "=?" << endl;
			double a = (double)(x) / (double)(y);
			int b = (int)(a * 100);
			correctAnswer = (double)b / 100;
			break;
		}
		//检查答案是否正确
		double answer = 0;
		cin >> answer;
		if (mathOperator != 4) {
			if (answer == correctAnswer) {
				cout << "答案正确!" << endl;
				correctNum++;
			}
			else {
				cout << "答案错误!" << endl;
				wrongNum++;
			}
		}
		else {//除法结果判断
			string answerString = to_string(answer);
			string correctString = to_string(correctAnswer);
			if (answerString == correctString) {
				cout << "答案正确!" << endl;
				correctNum++;
			}
			else {
				cout << "答案错误!" << endl;
				wrongNum++;
			}
		}
	}

	void CreateThreeHundredCalculation() {//生成300道数学题
		for (int i = 0; i < 300; i++) {
			system("cls");
			cout << "当前正确数:" << correctNum << endl;
			cout << "当前错误数:" << wrongNum << endl;
			cout << "剩余题目数:" << 300 - i << endl;
			cout << endl;
			CreateOneCalculation();
			system("pause");
		}
		system("cls");
		cout << "正确数:" << correctNum << endl;
		cout << "错误数:" << wrongNum << endl;
		cout << "所有题目已完成" << endl;
	}
};

int main() {
	Calculate c;
	c.CreateThreeHundredCalculation();
	return 0;
} 
**程序结果** 程序自动生成300道四则运算,每写一道后程序自动判断对错,并记录正确/错误的个数 ![](/i/l/?n=24&i=blog/3397833/202404/3397833-20240416123717708-754419817.png) ![](/i/l/?n=24&i=blog/3397833/202404/3397833-20240416123725254-565418883.png)

博客体会
1.结对编程能提供更好的设计质量和代码质量,两人合作能有更强的解决问题的能力。
2.结对工作能带来更多的信心,高质量的产出能带来更高的满足感
3.能够互相发现问题解决问题,降低学习成本,一边编程,一边共享知识和经验,有效地在实践中进行学习。

标签:练习题,结对,min,int,max,编程,c++,100
From: https://www.cnblogs.com/xiwennoslan/p/18137847

相关文章

  • C/C++项目中.h和.inc文件区别
    原问题:Differencebetween.hfilesand.incfilesincC/C++的标准惯例是将class、function的声明信息写在.h文件中。.c文件写class实现、function实现、变量定义等等。然而对于template来说,它既不是class也不是function,而是可以生成一组class或function的东西。编译器(compiler......
  • C++动态内存分配/malloc/new
    0前言这部分确实是面试老八股了,不过我还是记录一下1内存分区在C语言中,将内存分为程序代码区+数据区,其中数据区又分为静态存储区和动态存储区在C++中,分为五种:动态存储区:栈区:存放局部变量,由编译器自动分配释放,程序员不能操作堆:由程序员使用malloc/new申请,用free/delete......
  • 结对编程-四则运算
    这是一个由c++实现的简单的四则运算程序,使用者总共需要完成300题整数四则运算。结对伙伴:2252721程序要求两个运算符,100以内的数字,不需要写答案。需要检查答案是否正确,并且保证答案在0-100之间。需要符合运算规则通过仔细阅读分析题目要求,我和我的同伴决定使用c++来完成这......
  • 结对编程-C++四则运算
    合作伙伴:22528071.项目要求要求实现四则运算练习题。这个程序有很多种实现方式:·C/C++·C#/VB.net/Java.Excel·UnixShell.Emacs/Powershell/Vbscript.Perl·Python·两个运算符,100以内的数字,不需要写答案。·需要检查答案是否正确,并且保证答案在0……100......
  • 四则运算结对编程
     这次结对编程由我和王振宇同学共同完成,使用C++语言代码及注释如下#include<iostream>usingnamespacestd;//实现加法运算doubleadd(doublex,doubley){returnx+y;}//实现减法运算doublesubtract(doublex,doubley){returnx-y;}//实现乘法运算do......
  • 结对编程——Java实现四则运算
    任务要求请两位同学以结对编码(一个同学coding,另一个同学在旁边审核代码,之后再交换角色)的方式完成本次实验,并把程序、运算结果、博客体会等截屏发到其中一位同学的博客上,并在博客中体现另一位同学的学号(仅学号不体现姓名)。小学老师要每周给同学出300道四则运算练习题。–这个程......
  • C++ 默认参数与引用传递:语法、用法及示例
    C++默认参数默认参数概述在C++中,函数参数可以拥有默认值。这意味着,在调用函数时,如果省略了某个参数,那么将使用为该参数指定的默认值。设置默认参数默认参数值使用等号=符号进行设置,位于参数声明的类型之后。例如:voidmyFunction(stringcountry="Norway");在这个例......
  • C++_内存模型和函数以及类
    C++内存模型函数函数与编译器类成员变量class内部通过 static修饰变量时,表示该变量为静态成员变量,必须在类外定义 staticconst修饰变量时,表示该变量为静态成员常量,可以在类内初始化,或者在类外初始化 staticconstexpr修饰变量时,表示该......
  • 华为实习4.10机考第一题C++代码
    华为2024.4.10机考第一题C++代码第一题是一个关于字符串的模拟,但是对于C++来说,处理起来还是比较麻烦的。难点就是在输入时各字符串是用逗号分割的。#include<iostream>#include<unordered_map>#include<sstream>#include<vector>#include<algorithm>usingnamespacestd;......
  • 记录解决VS 2022调试C++ DLL项目时卡顿的问题
    项目结构运行时为DotNet6的C#通过Cli/C++去调用C++的DLL。问题表现在VisualStudio2022中调试C++DLL代码时,按下F5、F10、F11跳转到下一行时VS卡顿会2秒左右,体验非常不好。问题原因然后发现原因是项目的配置属性中,调试那一行,调试器类型选择的是“自动”。解决此问题的方法......