结对编程——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道包含加减乘除四则运算的题目,并要求用户输入答案,然后进行校对判断答案是否正确。
下面分析此代码的编写思路:

  1. 导入必要的包:通过import语句导入ScannerRandom类,用于从控制台读取用户的输入和生成随机数。

  2. 创建test类和main方法:定义一个名为test的类,其中包含一个main方法为程序的入口点。

  3. 创建Scanner对象和Random对象:分别创建Scanner对象input用于接收用户输入,以及Random对象rand用于生成随机数。

  4. 设置变量及循环:初始化变量correctCount用于记录回答正确的题目数量,通过for循环,循环300次生成题目。

  5. 生成随机数和运算符:每次循环内,利用rand.nextInt(101)生成0到100之间的随机数,并随机选择加减乘除运算符进行应的运算6. 用户输入答案:输出题目并要求用户输入答案,通过input.nextInt()获取用户输入的整数作为答案。

  6. 检查答案:根据用户输入的答案计算得到的正确结果,判断用户回答的对错,同时确保答案在0到100的范围内。

  7. 输出结果:根据用户回答正确的数量输出提示信息,统计用户回正确的题目数量,并在循环结束后输出总结信息。

通过这种方式,用户可以进行300道四则运算练习,并实时获得每道题目的回情况,以及最终的正确率。

运行展示

结对编程步骤
结对编程是一种编程实践方法,要求两位开发者共同协作完成任务,一位负责编写代码,另一位负责审查代码。下面总结结对编程的步骤:
1.确定任务:首先,我与2252505同学共同讨论并确定要解决的问题或任务,明确开发的目标。

2.角色分工:确定2252505同学担任编码角色负责具体编写代码;我担任审核角色,负责审查代码质量、发现潜在问题。

3.编码:2252505同学开始根据问题需求编写代码,编写过程中遵循良好的编码规范风格,做到清晰易懂。

4.审查:在2252505同学进行编程的同时,我在一旁仔细审查代码,检查内容为代码的逻辑是否正确、是否符合规范、是否存在潜问题等。

5.换角色:经过一定时间的编码和审核后,我们也交换了角色,编码者变为审核者,审核变为编码者,以保持代码的全面性。

6.测试运行:完成一定代码编写,进行测试运行,确保代码功能常并达到期效果。

7.总结体会:最后,我们结合编码和审查的经验,总结体会,包括碰到的问题、解决方法、学习到的经验等,并撰写博客。

实验体会
通过结对编程完成这段四则运算练习题的代码,给我们带来了很多收获和体会。以下是本次实验的心得体会:
经过本次实验,结对编程无疑强化了团队成员之间的沟通和协作能力。在编程过程中,我们需要不断交流、讨论并共同决策,这有助于发现和解决问题,促进团队的协作与凝聚力。在与伙伴一起编程的过程中,我们可以互相学习、借鉴对方的编程技巧、思维方式和解决问题的方法,以此提升自己的编程能力。一人编写代码,另一人审查代码的模式,也可以及时发现程序错误,提高代码质量,减少潜在的bug。在编程时,双方的思维碰撞产生更多的创意和解决问题的方案,能够快速找到更高效的实现方法,编程过程中也能够实时得到伙伴的反馈和建议,能够及时调整和改进代码,提高开发效率。
总的来说,结对编程不仅帮助我们更快速高效地完成项目,提高代码质量,还促进了团队协作,是一种非常有益的协作模式。希望未来可以共同成长,共同进步。

posted @ 2024-04-15 21:46  净汉净汉净汉  Views(22)  Comments(0Edit  收藏  举报