小学生四则运算出题程序 无操作界面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程序: ...
随机推荐
- table表单中的td内容两端对齐
- img标签 加载FTP的图片 C#
好吧,我是菜鸟,这是我今天遇到的问题,什么也不会,得高人指点 1.使用FtpWebRequest下载图片,以流存贮 2.在ashx文件里面直接已流方式(HttpContext.Current.Resp ...
- 工作需求——JQ小效果分享下
一.文字索引效果展示: html布局代码 <ul class="n_areaList"> <li> <h5>当前选择区域</h5> ...
- 在Heroku上,安装Wordpress
其實在 Heroku 上安裝 Wordpress 不會很難,不過閱讀之前,你可能先要知道 Heroku 與 git 的基本操作,建議可以先參考以下網站用 Heroku 架設 Wordpress 網站 ...
- 处理GitHub不允许上传大于100M文件问题
第一步输入命令 cd /Users/Dora/Desktop/XXX(cd后面的这个路径要换成你自己项目的路径) 第二步输入命令 git rm --cached/Users/Dora/Desktop/ ...
- HDU 4951 Multiplication table(2014 Multi-University Training Contest 8)
思路 如果进制为p 那么当x<p时 (p-1)*(p-x)=(p-(x+1)) *p +x 因为x<p 所以没有进位 所以高位上的数字为 p-(x+1). 根 ...
- curl方法post一个数组
$r = $this->curl_post($url, $data);$list = json_decode($r,true); function curl_post($url = '', ...
- ASP.NET简单实现APP中用户个人头像上传和裁剪
最近有个微信项目的用户个人中心模块中,客户要求用户头像不仅仅只是上传图片,还需要能对图片进行裁剪.考虑到flash在IOS和Android上的兼容性问题,于是想着能从js这块入手,在网上发现了devo ...
- android工程中menu的使用总结
android的Menu使用 转自:thinkYeah的博客 1.普通的Menu 先来看看最简单的Menu怎样实现. 在主Activity中覆盖onCreateOptionsMenu(Menu men ...
- C++ 基础算法之二分查找
前提: 有序数组! int binary_search(int* a, int len, int goal) { ; ; while(low <= high) { ; if(a[middle] ...