小学生四则运算出题程序 无操作界面java版 简单的运用java中一些基本操作
这是本学期java课中实验大纲里的第一个实验,这里简单做了一个无用户界面版本。
import java.util.Random;
import java.util.Scanner; public class MathTest { public static void main(String[] args) {
// TODO Auto-generated method stub double right = 0;
double wrong = 0;
/*Scanner sc2 = new Scanner(System.in);
int num2 = sc2.nextInt();*/
for (int i = 0; i < 10; i++) {
System.out.println("第"+(i+1)+"道题,请在下方输入答案:"); //生成两个随机数
Random r1 = new Random();
int x = r1.nextInt(10)+1;
Random r2 = new Random();
int y = r2.nextInt(10)+1;
//生成随机运算符 + - * /
Random r3 = new Random();
int z = r3.nextInt(4);
char[] chs = {'+','-','*','/'};
String Operator = String.valueOf(chs[z]); //生成题目
if(Operator.equals("+")){
System.out.println(x+"+"+y+"=");
boolean b = add(x,y);
if(b == true){
right++;System.out.println("bingo! ");
}else{
wrong++;System.out.println("oh~no ");
}
System.out.println("the right answer: "+(x+y)); }else if(Operator.equals("-")){
System.out.println(x+"-"+y+"=");
boolean b =minus(x,y);
if(b == true){
right++;System.out.println("bingo! ");
}else{
wrong++;System.out.println("oh~no ");
}
System.out.println("the right answer: "+(x-y)); }else if(Operator.equals("*")){
System.out.println(x+"×"+y+"=");
boolean b =times(x,y);
if(b == true){
right++;System.out.println("bingo! ");
}else{
wrong++;System.out.println("oh~no ");
}
System.out.println("the right answer: "+(x*y));
}else{
System.out.println(x+"÷"+y+"=");
boolean b =divide(x,y);
if(b == true){
right++;System.out.println("bingo! ");
}else{
wrong++;System.out.println("oh~no ");
}
System.out.println("the right answer: "+((float)x /(float) y));
}
System.out.println("-------------------------------");
}
System.out.println("您一共做对了"+right+"道题.");
System.out.println("您一共做错了"+wrong+"道题.");
if(wrong > 0){
System.out.println("正确率为"+(right/(wrong+right))*100+"%");
}else{
System.out.println("没法除了啊 。。。。");
}
} private static boolean add(int x,int y) {
// TODO Auto-generated method stub
Scanner sc = new Scanner(System.in);
int num1 = sc.nextInt();
int result = x + y;
if(num1 == result){
return true;
}else{
return false;
} }
private static boolean minus(int x,int y) {
// TODO Auto-generated method stub
Scanner sc = new Scanner(System.in);
int num1 = sc.nextInt();
int result = x - y;
if(num1 == result){
return true;
}else{
return false;
} }
private static boolean times (int x,int y) {
// TODO Auto-generated method stub
Scanner sc = new Scanner(System.in);
int num1 = sc.nextInt();
int result = x * y;
if(num1 == result){
return true;
}else{
return false;
} }
private static boolean divide(int x,int y) {
// TODO Auto-generated method stub
Scanner sc = new Scanner(System.in);
float num1 = sc.nextFloat();
float result =(float)x /(float) y;
if(num1 == result){
return true;
}else{
return false;
} } }
能看到判断对错的方法运用了直接运算符计算结果与函数定义后的运算结果相比较,相等得分,不相等则不得分。
编程中出现的问题:在计算结果为小数的除法时,一开始会出现结果怎么算都不对的情况,他的正确答案也是一个向偶舍入的数值,那肯定是不可取的
解决方法:原因是x和y默认int型,在float除法中要将两者都强制类型转换。【这样他的精度为小数点后7位】
附上最后的一部分结果展示。

小学生四则运算出题程序 无操作界面java版 简单的运用java中一些基本操作的更多相关文章
- 结对项目-四则运算出题程序(GUI版)
目录: 一.致搭档(含项目地址) 二.PSP(planning) 三.结对编程中对接口的设计 四.计算模块接口的设计与实现过程 五.计算模块接口部分的性能改进 六.计算模块部分单元测试展示 七.计算模 ...
- 小学生四则运算出题软件-基于java控制台的实现
.题目描述: 1. 使用 -n 参数控制生成题目的个数,例如 Myapp.exe -n 10 -o Exercise.txt 将生成10个题目. 2. 使用 -r 参数控制题目中数值(自然数.真分数和 ...
- 《剑指Offer》-004 -Java版二叉树先序和中序遍历返回原二叉树
如题 (总结要点) 注意空值 假定数据是没有问题的 前序(根左右) ,中序(左根右), 故每次的第一个节点就是根节点 没用数组的库函数,自己手写了两个方法 用Java代码写二叉树很舒服, 没有啥指针, ...
- 二维数组中的查找 - Java版 -简单二分查找 -<<剑指Offer>> -水题
如题 (总结) -认真读题, 还WA了一次, https://www.nowcoder.com/practice/abc3fe2ce8e146608e868a70efebf62e?tpId=13&am ...
- 3.结对编程成果报告(小学生四则运算的出题程序,Java实现)
程序名称:小学生四则运算的出题程序 先附上代码: package com.makequestion; import java.text.DecimalFormat;import java.util.R ...
- 结对随即四则运算(带界面Java版)
//随机四则运算类 public class 随机四则运算 { public static void main(String[] args) { new 界面();//进入随机四则运算的首界面 } } ...
- java程序猿如何练习java版的易筋经?
故事背景 电视剧<天龙八部>中,阿朱易容后进入少林寺偷走了<易筋经>,她一直想把这本书送给乔峰.耿直的乔峰觉得此书来历不正,不肯接受.几番波折,这本书最后落到聚贤庄庄主游坦之手 ...
- Oracle Berkeley DB Java 版
Oracle Berkeley DB Java 版是一个开源的.可嵌入的事务存储引擎,是完全用 Java 编写的.它充分利用 Java 环境来简化开发和部署.Oracle Berkeley DB Ja ...
- 20155227 2016-2017-2 《Java程序设计》实验一 Java开发环境的熟悉(Windws + IDEA)实验报告
20155227 2016-2017-2 <Java程序设计>实验一 Java开发环境的熟悉(Windws + IDEA)实验报告 实验内容 1.使用JDK编译.运行简单的Java程序: ...
随机推荐
- MVC5+EF6 入门完整教程十
本篇是第一阶段的完结篇. 学完这篇后,你应该可以利用MVC进行完整项目的开发了. 本篇主要讲述多表关联数据的更新,以及如何使用原生SQL. 文章提纲 多表关联数据更新 如何使用原生SQL 总结 多表关 ...
- C# Out,Ref 学习总结
C# Out,Ref 学习总结. ref是传递参数的地址,out是返回值,两者有一定的相同之处,不过也有不同点. 使用ref前必须对变量赋值,out不用. out的函数会清空变量,即使变量已经赋值也不 ...
- Linux 杂记
Linux命令行与图形界面进行切换 1.实时切换 1.1 命令行->图形 startx 1.2 图形->命令行 Ctrl+Alt+F1--F6 2.启动默认 2.1 启 ...
- How to Develop blade and soul Skills
How to Develop Skills Each skill can be improved for variation effects. Some will boost more strengt ...
- css3过渡
语法格式: transition:属性名 完成时间 速度曲线 何时开始 transition:width 2s ease-in 3s: width 2s 整个过渡效果持续的时间 ease-in 指定了 ...
- JAVA中的字符串操作
一.替换 1.把对应字符换成新的字符 比如"D:\java_learn"中的'\'换成‘\\’ String str = "D:\\java_learn\\JAVA学习\ ...
- tomcat安全加固
-R 640 conf/*3. 首次安装完成后立即删除webapps下面的所有代码rm -rf /srv/apache-tomcat/webapps/*4. 注释或删除 tomcat-users.xm ...
- Android中什么时候使用get和post 以及他们的优缺点!!
1. get是从服务器上获取数据,post是向服务器传送数据.2. get是把参数数据队列加到提交表单的ACTION属性所指的URL中,值和表单内各个字段一一对应,在URL中可以看到.post是通过H ...
- Mallet 使用说明
Mallet:自然语言处理工具包 发表于128 天前 ⁄ 技术, 科研 ⁄ 评论数 6 ⁄ 被围观 1006 Views+ MALLET是基于java的自然语言处理工具箱,包括分档得分类.句类.主题模 ...
- asp.net mvc 防止开放重定向
/// <summary> /// 防止开发重定向,篡改returnurl /// </summary> /// <param name="request&qu ...