结对编程——Java实现四则运算
任务要求
请两位同学以结对编码(一个同学coding,另一个同学在旁边审核代码,之后再交换角色)的方式完成本次实验,并把程序、运算结果、博客体会等截屏发到其中一位同学的博客上,并在博客中体现另一位同学的学号(仅学号不体现姓名)。
小学老师要每周给同学出300道四则运算练习题。
–这个程序有很多种实现方式:
C/C++
C#/VB.net/Java
Excel
Unix Shell
Emacs/Powershell/Vbscript
Perl
Python
–两个运算符,100 以内的数字,不需要写答案。
–需要检查答案是否正确,并且保证答案在 0..100 之间
–尽可能地多设置一些条件
合作对象
2252505同学
代码文件
点击查看代码
package yunsuan;
import java.util.Scanner;
import java.util.Random;
public class test {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
Random rand = new Random();
int correctCount = 0;
for (int i = 0; i < 300; i++) {
int num1 = rand.nextInt(101); // 生成0到100的随机数
int num2 = rand.nextInt(101); // 生成0到100的随机数
// 随机选择加减乘除运算符
char operator;
int operatorCode = rand.nextInt(4);
int result;
switch (operatorCode) {
case 0:
operator = '+';
result = num1 + num2;
break;
case 1:
operator = '-';
result = num1 - num2;
if (result < 0) {
int temp = num1;
num1 = num2;
num2 = temp;
result = num1 - num2;
}
break;
case 2:
operator = '*';
result = num1 * num2;
if (result > 100) {
num1 = rand.nextInt(11);
num2 = rand.nextInt(11);
result = num1 * num2;
}
break;
case 3:
operator = '/';
if (num2 == 0 || num1 % num2 != 0) {
num2 = rand.nextInt(10) + 1;
}
num1 = num1 * num2;
result = num1 / num2;
break;
default:
operator = '+';
result = num1 + num2;
}
// 用户输入答案
System.out.print((i + 1) + ". " + num1 + " " + operator + " " + num2 + " = ");
int userAnswer = input.nextInt();
// 检查答案
if (userAnswer == result && result >= 0 && result <= 100) {
System.out.println("回答正确!");
correctCount++;
} else {
System.out.println("回答错误,请检查答案!正确答案是: " + result);
}
}
System.out.println("本次练习结束,共回答正确 " + correctCount + " 题。");
}
}
代码编写思路
我们编写的这段Java代码主要功能是随机生成300道包含加减乘除四则运算的题目,并要求用户输入答案,然后进行校对判断答案是否正确。
下面分析此代码的编写思路:
-
导入必要的包:通过
import
语句导入Scanner
和Random
类,用于从控制台读取用户的输入和生成随机数。 -
创建
test
类和main
方法:定义一个名为test
的类,其中包含一个main
方法为程序的入口点。 -
创建
Scanner
对象和Random
对象:分别创建Scanner
对象input
用于接收用户输入,以及Random
对象rand
用于生成随机数。 -
设置变量及循环:初始化变量
correctCount
用于记录回答正确的题目数量,通过for
循环,循环300次生成题目。 -
生成随机数和运算符:每次循环内,利用
rand.nextInt(101)
生成0到100之间的随机数,并随机选择加减乘除运算符进行应的运算6. 用户输入答案:输出题目并要求用户输入答案,通过input.nextInt()
获取用户输入的整数作为答案。 -
检查答案:根据用户输入的答案计算得到的正确结果,判断用户回答的对错,同时确保答案在0到100的范围内。
-
输出结果:根据用户回答正确的数量输出提示信息,统计用户回正确的题目数量,并在循环结束后输出总结信息。
通过这种方式,用户可以进行300道四则运算练习,并实时获得每道题目的回情况,以及最终的正确率。
运行展示
结对编程步骤
结对编程是一种编程实践方法,要求两位开发者共同协作完成任务,一位负责编写代码,另一位负责审查代码。下面总结结对编程的步骤:
1.确定任务:首先,我与2252505同学共同讨论并确定要解决的问题或任务,明确开发的目标。
2.角色分工:确定2252505同学担任编码角色负责具体编写代码;我担任审核角色,负责审查代码质量、发现潜在问题。
3.编码:2252505同学开始根据问题需求编写代码,编写过程中遵循良好的编码规范风格,做到清晰易懂。
4.审查:在2252505同学进行编程的同时,我在一旁仔细审查代码,检查内容为代码的逻辑是否正确、是否符合规范、是否存在潜问题等。
5.换角色:经过一定时间的编码和审核后,我们也交换了角色,编码者变为审核者,审核变为编码者,以保持代码的全面性。
6.测试运行:完成一定代码编写,进行测试运行,确保代码功能常并达到期效果。
7.总结体会:最后,我们结合编码和审查的经验,总结体会,包括碰到的问题、解决方法、学习到的经验等,并撰写博客。
实验体会
通过结对编程完成这段四则运算练习题的代码,给我们带来了很多收获和体会。以下是本次实验的心得体会:
经过本次实验,结对编程无疑强化了团队成员之间的沟通和协作能力。在编程过程中,我们需要不断交流、讨论并共同决策,这有助于发现和解决问题,促进团队的协作与凝聚力。在与伙伴一起编程的过程中,我们可以互相学习、借鉴对方的编程技巧、思维方式和解决问题的方法,以此提升自己的编程能力。一人编写代码,另一人审查代码的模式,也可以及时发现程序错误,提高代码质量,减少潜在的bug。在编程时,双方的思维碰撞产生更多的创意和解决问题的方案,能够快速找到更高效的实现方法,编程过程中也能够实时得到伙伴的反馈和建议,能够及时调整和改进代码,提高开发效率。
总的来说,结对编程不仅帮助我们更快速高效地完成项目,提高代码质量,还促进了团队协作,是一种非常有益的协作模式。希望未来可以共同成长,共同进步。