week1 四则运算
四则运算满足简单加减乘除,以及包含括号的复杂四则运算。
代码描述:
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结束训练
System.out.println("恭喜你完成本次训练");
break;
}
运行结果如下:


关于结对训练的感悟:
1.两个人一起写代码能注意到代码规范的问题,这样方便两个人看代码。
2.两个人在一起交流能减少错误的发生,自己写代可能有拼写错误自己发现不了,及时提醒在代码编写过程很重要。
3.两个人的思想一定强于一个人,所以对于问题思路更开阔。
week1 四则运算的更多相关文章
- 【SE】Week1 : 四则运算题目生成器批改器程序总结
用户需求详见:http://www.cnblogs.com/jiel/p/4810756.html 1)PSP表格分析(预计耗时): PSP2.1 Personal Software Process ...
- 集大软件工程15级结对编程week1
集大软件工程15级结对编程week1 0. 团队成员 姓名 学号 博客园首页 码云主页 孙志威 20152112307 Agt Eurekaaa 孙慧君 201521123098 野原泽君 野原泽君 ...
- 20165223 结对编程之四则运算week1-阶段性总结
目录 一.结对对象 二.需求分析 三.设计思路 四.功能截图 五.结对感受 一.结对对象 担任角色 驾驶员(Driver):20165223 蔡霓(是控制键盘输入的人) 领航员(Navigator): ...
- oh my god 四则运算
Week1地址:https://git.coding.net/leiqh549/four.git 需求分析: 1.一个生成n道四则运算的程序,要求数字在0-100间,运算符在3-5个之间且运算符至少包 ...
- 介绍一款原创的四则运算算式生成器:CalculateIt2
家里小朋友读一年级了,最近每天都有一些10以内的加减法口算练习,作为程序员爸爸,自然也是想办法能够偷懒,让电脑出题,给小朋友做些练习.于是,自己在业余时间开发了一个四则运算算式生成器,名为:Calcu ...
- 作业二:个人编程项目——编写一个能自动生成小学四则运算题目的程序
1. 编写一个能自动生成小学四则运算题目的程序.(10分) 基本要求: 除了整数以外,还能支持真分数的四则运算. 对实现的功能进行描述,并且对实现结果要求截图. 本题发一篇随笔,内容包括: 题 ...
- 四则运算appNABCD模型
团队: 郭志豪:http://www.cnblogs.com/gzh13692021053/ 杨子健:http://www.cnblogs.com/yzj666/ 刘森松:http://www.cnb ...
- 第一章-第一题(小学生四则运算)--By郭青云
1.项目需求 a) 除了整数以外,还要支持真分数的四则运算. (例如: 1/6 + 1/8 = 7/24) b) 让程序能接受用户输入答案,并判定对错. 最后给出总共 对/错 的数量. c) 逐步扩 ...
- 一个简易的四则运算单元...(15.12.15 BUG更新)
网上找的, 没有作者信息, 只能在这里感谢一下了, 支持标准写法的四则运算 --2015-12-15 修改了一个内存泄漏的BUG - Pop方法没有释放申请的内存 unit Base.Calculat ...
随机推荐
- python七类之集合
集合 一.关键字 : set 定义是 s = {} #当里面没有元素的时候表现为字典数据类型 s = {} #空的{}代表空的字典,而不是集合 print(type(s)) 集合是不可哈希的 ...
- Python学习 :常用模块(四)----- 配置文档
常用模块(四) 八.configparser 模块 官方介绍:A configuration file consists of sections, lead by a "[section]& ...
- Leecode刷题之旅-C语言/python-263丑数
/* * @lc app=leetcode.cn id=263 lang=c * * [263] 丑数 * * https://leetcode-cn.com/problems/ugly-number ...
- Anaconda快速加载opencv
刚刚发现了两种Anaconda快速加载opencv的方法,亲测有效: 第一种: 直接在Navigator Environment 中搜opencv 如果搜不到,登陆Anaconda Cloud官网 h ...
- Noip 2016 Day 1 & Day 2
Day 1 >>> T1 >> 水题直接模拟AC: 考察三个知识点:1.你能不能编程 2.你会不会取模 3.你脑子抽不抽 然而第一次评测还是90,因为当模运算时 “ en ...
- 201552-53 《Java程序设计》第五周问题汇总
201552-53 <Java程序设计>第五周问题汇总 1.编译时,终端显示: 注:XXX.java使用了未经检查或不安全的操作,如何解决? 解答:并不是错误,可以忽视. 2.构造函数与类 ...
- 20155321 2016-2017-2 《Java程序设计》第三周学习总结
20155321 2016-2017-2 <Java程序设计>第三周学习总结 教材学习内容总结 4.1 类与对象 定义类用class关键字,建立实例用new关键字 一个原始码中可有多个类定 ...
- OpenCV中Mat操作clone() 与copyto()的区别
OpenCV中Mat操作clone() 与copyto()的区别 // Mat is basically a class with two data parts: the matrix header ...
- string[]转换为int[]
今天碰到一个问题,要把string[]转换为int[],但是又不想使用循环转换,找了好久最后找到了这种方法,特此记录下. string[] input = { "1", " ...
- File Transfer(并查集)
题目大意:将多个电脑通过网线连接起来,不断查询2台电脑之间是否连通. 问题来源:中国大学mooc 05-树8 File Transfer (25 分) We have a network of com ...