四则运算满足简单加减乘除,以及包含括号的复杂四则运算。

代码描述:

1.采用random随机数产生要参与计算的数字,以及运算符号

2.采用Scanner获取控制台输入的结果,与计算出来的结果进行比对,并告之用户。如果用户计算错误,将正确结果输出。

3.关于复杂计算,所出题是包含四种符号的混合运算。

代码展示:

random产生随机数abcd分别代表要参加运算的数字

s代表简单运算中的符号

public static void main(String[] args) {
int n = 10;
System.out.println("本次测试共10道题");// n为题目数量
Random random = new Random();
for (int o = 1; o <= n; o++) { // 产生小于等于100的随机数
int a = random.nextInt(100);
int b = random.nextInt(100);
int c = random.nextInt(100);
int d = random.nextInt(100); // 产生1 2 3 4随机数分别代表加减乘除
Random sig = new Random();
int s = sig.nextInt(4);

进行简单运算复杂运算的选择

System.out.println("~~~~~~~~~~~~~~~~~~");
System.out.println("请选择要进行的练习类型:");
System.out.println("1.简单运算;2.复杂运算");

如果选择1则为简单运算 分为加减乘数两位数的计算

                       Scanner s1 = new Scanner(System.in);
int cho = s1.nextInt();
if (cho == 1) {
// 代表符号的随机数s等于1时将进行加法运算
if (s == 1) {
int ansJia = a + b;
System.out.print(a + "+" + b + "=");
Scanner scan1 = new Scanner(System.in);
int ans = scan1.nextInt();
if (ans == ansJia) {
System.out.println("真棒!你做对了");
} else {
System.out.println("在仔细想想,你可以做对的!");
}
System.out.println("正确的结果是:" + ansJia);
}
// 代表符号的随机数s等于2时将进行减法运算
if (s == 2) {
if (a > b) {
// 为保证所得的结果为正,必须使用较大的随机数减去较小的随机数
int ansJian = a - b;
System.out.print(a + "-" + b + "=");
Scanner scan2 = new Scanner(System.in);
int ans = scan2.nextInt();
if (ans == ansJian) {
System.out.println("真棒!你做对了");
} else {
System.out.println("在仔细想想,你可以做对的!");
}
System.out.println("正确的结果是:" + ansJian);
} else {
int ansJian = b - a;
System.out.print(b + "-" + a + "=");
Scanner scan2 = new Scanner(System.in);
int ans = scan2.nextInt();
if (ans == ansJian) {
System.out.println("真棒!你做对了");
} else {
System.out.println("在仔细想想,你可以做对的!");
}
System.out.println("正确的结果是:" + ansJian);
}
}
// 乘
if (s == 3) {
int ansCheng = a * b;
System.out.print(a + "*" + b + "=");
Scanner scan3 = new Scanner(System.in);
int ans = scan3.nextInt();
if (ans == ansCheng) {
System.out.println("真棒!你做对了");
} else {
System.out.println("在仔细想想,你可以做对的!");
}
System.out.println("正确的结果是:" + ansCheng);
}
// 除
if (s == 4) {
double ansChu = (double) (Math.round(a / b));
System.out.print(a + "/" + b + "=");
Scanner scan4 = new Scanner(System.in);
int ans = scan4.nextInt();
if (ans == ansChu) {
System.out.println("真棒!你做对了");
} else {
System.out.println("在仔细想想,你可以做对的!");
}
System.out.println("正确的结果是:" + ansChu);
} }

如果选择为2 则计算四个数字的运算

else {
double ansCom = (double) (Math.round((a + b) * c / d));
System.out.println("(" + a + "+" + b + ")*" + c + "/" + d + "=");
Scanner scan5 = new Scanner(System.in);
double ans = scan5.nextDouble();
if (ans == ansCom) {
System.out.println("真棒!你做对了");
} else {
System.out.println("在仔细想想,你可以做对的!");
}
System.out.println("正确的结果是:" + ansCom);
}
}

当做题数目为10结束训练

if(o==n-1){
                System.out.println("恭喜你完成本次训练");
                break;
            }

运行结果如下:

关于结对训练的感悟:

1.两个人一起写代码能注意到代码规范的问题,这样方便两个人看代码。

2.两个人在一起交流能减少错误的发生,自己写代可能有拼写错误自己发现不了,及时提醒在代码编写过程很重要。

3.两个人的思想一定强于一个人,所以对于问题思路更开阔。

【week2】 四则运算改进的更多相关文章

  1. 作业1+2.四则运算(改进后完整版,用python写的)_064121陶源

    概述: 用一个星期加上五一的三天假期自学了python,在Mac系统上重新写出了四则运算的程序,编译器是PyCharm,相当于完成了作业2.d)"选一个你从来没有学过的编程语言,试一试实现基 ...

  2. 单元测试--四则运算2程序(c++)

    源代码: //2016 3.6 Cheng Qiqin //四则运算改进 #include <iostream> #include<ctime> #include<cst ...

  3. 软件工程课程作业(二)--四则运算2改进版(c++)

    题目要求: 1.避免题目重复 2.可定制(数量/打印方式) 3.可以控制下列参数 (1)是否有乘除法 (2)是否有括号 (3)数值范围 (4)加减有无负数 (5)除法有无余数 关键设计思想: oper ...

  4. 【第二周】PSP

    日期 C类别 C内容 S开始时间 E结束时间 I间隔(单位:分钟) T净时间(单位:分钟) 9月8日 编程 结对编程 12:15 13:15 10 50    编程 结对编程  16:35 17:30 ...

  5. “四则运算生成程序——GUI支持和部分功能改进”链接

    项目成员:张金生     张政 <正文随笔发布在张金生博客中> 四则运算生成程序——GUI支持和部分功能改进

  6. 【week2】结对编程-四则运算 及感想

    首先我要说一下,我得作业我尽力了,但是能力有限,还需练习. 四则运算,改进代码流程: 1.手动输入算式(属于中缀表达式) 2.将中缀表达式转化成后缀表达式 生成out数组 3.一个操作数栈,一个运算符 ...

  7. 海量数据挖掘MMDS week2: 频繁项集挖掘 Apriori算法的改进:非hash方法

    http://blog.csdn.net/pipisorry/article/details/48914067 海量数据挖掘Mining Massive Datasets(MMDs) -Jure Le ...

  8. 海量数据挖掘MMDS week2: 频繁项集挖掘 Apriori算法的改进:基于hash的方法

    http://blog.csdn.net/pipisorry/article/details/48901217 海量数据挖掘Mining Massive Datasets(MMDs) -Jure Le ...

  9. 结对编程——paperOne基于java的四则运算 功能改进

    项目成员:张金生     张政 由于新的需求,原本使用JSP的实现方式目前改为Java实现,即去除了B/S端. 需求分析: 1.四则运算要满足整数运算.分数运算两种: 2.运算题目随机,并且可以打印题 ...

随机推荐

  1. Rsync+inotify实现文件实时同步#附shell脚本

    强烈推荐先仔细看此文 https://segmentfault.com/a/1190000002427568 实验环境 centos 7.3 vm2:192.168.221.128 同步服务器 vm1 ...

  2. ruby中url解码并替换非法字符

    url中中文字符解码 str = URI.decode(url_str) 替换非法字符 if ! str.valid_encoding? p str = str.encode("UTF-16 ...

  3. React 源码中的依赖注入方法

    一.前言 依赖注入(Dependency Injection)这个概念的兴起已经有很长时间了,把这个概念融入到框架中达到出神入化境地的,非Spring莫属.然而在前端领域,似乎很少会提到这个概念,难道 ...

  4. Understanding Delegated JavaScript Events

    While I ended up using a CSS-only implementation for this pen, I started by writing it mostly using ...

  5. Linux getcwd()的实现

    通过getcwd()可以获取当前工作目录. #include <unistd.h> char *getcwd(char *cwdbuf, size_t size); 成功调用返回指向cwd ...

  6. 成都Uber优步司机奖励政策(3月24日)

    滴快车单单2.5倍,注册地址:http://www.udache.com/ 如何注册Uber司机(全国版最新最详细注册流程)/月入2万/不用抢单:http://www.cnblogs.com/mfry ...

  7. mysql源码

    从代码的角度来说,没有丝毫设计感,尤其是优化器部分.不过那些是常年累积的原因,一些新加较独立的部分,设计的就很舒服,真正的面向对象做法.

  8. android分析windowManager、window、viewGroup之间关系(一)

    本文将主要介绍addview方法,在windowManager.window.viewGroup中的实现原理.首先将介绍这些类结构关系,然后分析其内在联系,介绍实现原理,最后介绍重要的一个参数wind ...

  9. SQL 从入门到 DBA 删库跑路

    SQL 从入门到 DBA 删库跑路 一.基础 人员信息表: ID 姓名 性别 出生 婚否 学历 工资 工会 35009449 孙xx 男 1978-2-17 未婚 中专 3000 TRUE 35000 ...

  10. Spring 配置String转Date

    操作步骤: 1. 实现 org.springframework.core.convert.converter.Converter 接口 2. 配置 org.springframework.contex ...