首页 > 编程语言 >结对编程——Java实现四则运算

结对编程——Java实现四则运算

时间:2024-04-15 21:57:06浏览次数:18  
标签:结对 编程 Java num1 num2 代码 四则运算 nextInt result

任务要求
请两位同学以结对编码(一个同学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。在编程时,双方的思维碰撞产生更多的创意和解决问题的方案,能够快速找到更高效的实现方法,编程过程中也能够实时得到伙伴的反馈和建议,能够及时调整和改进代码,提高开发效率。
总的来说,结对编程不仅帮助我们更快速高效地完成项目,提高代码质量,还促进了团队协作,是一种非常有益的协作模式。希望未来可以共同成长,共同进步。

标签:结对,编程,Java,num1,num2,代码,四则运算,nextInt,result
From: https://www.cnblogs.com/jeonghani/p/18136981

相关文章

  • java实现 给定一个地址经纬度,一组地址经纬度,找出在范围内的地址,和最接近的地址
    packagecom.example.demo10;importjava.util.ArrayList;importjava.util.List;/***java实现给定一个地址经纬度,一组地址经纬度,找出在范围内的地址,和最接近的地址**@authorlonglinji*@date2024/4/15*/publicclassGeoUtils{//地球半径,单位为公里......
  • JAVA语言学习-Day10、11、12
    参考教学视频:秦疆learnJava-JUC1.什么是JUCjava.util工具包、包、分类java.util.concurrentjava.util.concurrent.atomicjava.util.concurrent.locks2.线程和进程举例:开启一个Typora(进程),输入、自动保存(线程)进程:一个程序一个进程往往可以包含多个线程,至少包含一个线程:写......
  • Java进行excel的导入导出操作
    excel表格的导出导入在业务中经常会遇到,下面介绍hutool和easyExcel两种操作excel的工具测试的实体类通过mybatis-plus生成的,用于导出数据的实体类@Getter@Setter@TableName("device_info")@ApiModel(value="DeviceInfo对象",description="")publicclassDeviceInfo......
  • java连接ssmsSqlserver数据库 报错信息:com.microsoft.sqlserver.jdbc.SQLServerExce
    解决办法:将官网下载的驱动文件打开,找到如下路径,并复制,粘贴放到jdk的bin目录下......
  • java基础_05_流程控制
    1、用户交互Scanner(译:扫描器) 1\使用next方法接收,只接收空格以前的packageliuchengkongzhi;importjava.util.Scanner;publicclassScanner01{publicstaticvoidmain(String[]args){//创建一个扫描器对象,用于接收键盘数据ScannerSca......
  • Java使用javacv处理视频文件过程记录
    最近接到一个需求是将.mp4/.m4v文件体积进行压缩,我使用javacv中的FFmpegFrameGrabber、FFmpegFrameFilter、FFmpegFrameRecorder简单的实现视频帧的抓取、过滤、录制与输出。性能暂未验证。文章对这次的过程进行记录。1.jdk的选择mcr.microsoft.com/java/jdk:8u222-zulu-cento......
  • java中接口多个实现类,如何指定实现类,根据子类类型选择实现方法
    问题背景在Java代码中,经常会遇到一个接口有多个实现的情况。而这些实现类的参数又是不同的子类,这时候我们该如何选择正确的实现方法呢?解决方案我们可以通过判断参数的子类类型来选择正确的实现方法。具体实现可以使用Java中的instanceof关键字,它可以判断一个对象是否是某个类的......
  • Java并发编程实战读书笔记
    1.线程池模型    netty实战中讲到的线程池模型可以描述为:1.从线程池中选择一个空间的线程去执行任务,2.任务完成时,把线程归还给线程池。这个模型与连接池类似。    根据jdk源码的研究,具体的实现模型是,线程池ThreadPoolExecutor中有一个静态内部类Worker,使用装饰器模式扩......
  • 简单四则运算程序实现
    功能要求小学老师要每周给同学出300道四则运算练习题。–这个程序有很多种实现方式:C/C++C#/VB.net/JavaExcelUnixShellEmacs/Powershell/VbscriptPerlPython–两个运算符,100以内的数字,不需要写答案(实现)–需要检查答案是否正确,并且保证答案在0..100之间(实现)–尽可......
  • 2024.4.15 学习数理结构“栈”后的四则运算
    使用栈的四则运算1.题目描述用顺序栈和算符优先法求解表达式的值2.任务定义和问题分析四则运算基本运要通过算法优先级和后缀表达式的思想完成,应当由以下功能:(1)可以先求解后缀表达式。然后再求值,也可以一并完成。(2)表达式中的运算为加、减、乘、除四种,包括括号,参与运算的数字为......