java-四则运算二
1.实验目的:是否有乘除法,括号,多项式运算。
2.思路:利用简单的循环switch语句进行循环输出随机数
3.程序源代码:
package jiajianchengchu;
import java.util.*;
public class jisuan {
//定义一个用来约分的函数
public static String yuefen(int a,int b){
int y = 1;
for(int i=a;i>=1;i--){
if(a%i==0&&b%i==0){
y = i;
break;
}
}
int z = a/y;
int m = b/y;
if(z==0) {
return "0";
}
return ""+z+"/"+m;
}
public static void main(String[] args) {
// TODO Auto-generated method stub
int x,y,i,a1,C;//a代表计算类型,x代表题目数量,y代表数值的范围,i为循环变量,d代表是否有乘除法
int d1=0;
String d = null;//d用来储存答案
System.out.println("1、整数计算式,2、真分数计算式");
Scanner scan1=new Scanner(System.in);
a1=scan1.nextInt();
if(a1==1){
System.out.println("请输入题目的数量");
Scanner scan2=new Scanner(System.in);
x=scan2.nextInt();
int daan[]=new int [x];
System.out.println("请输入数值的范围");
y=scan2.nextInt();
System.out.println("是否有乘除法?(是输入1,否则输入0)");
C=scan2.nextInt();
if(C==1){
for(i=0;i<x;i++){
int a=(int)(Math.random()*y);//随机生成一个1-10的整数
int b=(int)(Math.random()*y);//随机生成一个1-10的整数
int c=(int)(Math.random()*3);//随机生成一个1-4的整数,0表示加法,1表示减法,2表示乘法,3表示除法
if(c==0)
{
d1=a+b;
System.out.print(a+"+"+b+"= ");
}
if(c==1)
{
d1=a-b;
System.out.print(a+"-"+b+"= ");
}
if(c==2)
{
d1=a*b;
System.out.print(a+"*"+b+"= ");
}
if(c==3)
{
d1=a/b;
System.out.print(a+"/"+b+"= ");
}
if((i+1)%3==0){
System.out.println();
}
daan[i]=d1;
}
System.out.println("是否显示答案(显示请输入1)");
if(scan2.nextInt()==1){
for(i=0;i<x;i++){
System.out.print(daan[i]+" ");
}
}
}
if(C==0){
for(i=0;i<x;i++){
int a=(int)(Math.random()*y);//随机生成一个1-的整数
int b=(int)(Math.random()*y);//随机生成一个1-10的整数
int c=(int)(Math.random()*2);//随机生成一个1-4的整数,0表示加法,1表示减法
if(c==0)
{
d1=a+b;
System.out.print(a+"+"+b+"= ");
}
if(c==1)
{
d1=a-b;
System.out.print(a+"-"+b+"= ");
}
if((i+1)%3==0){
System.out.println();
}
daan[i]=d1;
}
System.out.println(" ");
System.out.println("是否显示答案(显示请输入1)");
if(scan2.nextInt()==1){
for(i=0;i<x;i++){
System.out.print(daan[i]+" ");
}
}
}
}
if(a1==2){
int M,Z;
System.out.println("请输入题目的数量");
Scanner scan2=new Scanner(System.in);
x=scan2.nextInt();
String daan[]=new String [x];
int x1,x2,B,m1,m2;
System.out.println("请输入分母数值的范围");
B=scan2.nextInt();
System.out.println("是否有乘除法?(是输入1,否则输入0)");
C=scan2.nextInt();
if(C==1){
for(i=0;i<x;i++){
m1=1+(int)(Math.random()*B);//随机生成一个小于B的分母
x1=1+(int)(Math.random()*m1);//生成一个比分母小的分子,实现真分数
m2=1+(int)(Math.random()*B);//随机生成一个小于B的分母
x2=1+(int)(Math.random()*m2);//生成一个比分母小的分子,实现真分数
int c=(int)(Math.random()*3);//生成运算符
if(c==0){
Z=x1*m2+x2*m1;
M=m1*m2;
d=yuefen(Z,M);
System.out.print(x1+"/"+m1+"+"+x2+"/"+m2+"= ");
}
if(c==1){
Z=x1*m2-x2*m1;
M=m1*m2;
d=yuefen(Z,M);
System.out.print(x1+"/"+m1+"-"+x2+"/"+m2+"= ");
}
if(c==2){
Z=x1*x2;
M=m1*m2;
d=d=yuefen(Z,M);
System.out.print(x1+"/"+m1+"*"+x2+"/"+m2+"= ");
}
if(c==3){
Z=m1*x2;
M=m2*x1;
d=d=yuefen(Z,M);
System.out.print(x1+"/"+m1+"/"+x2+"/"+m2+"= ");
}
if((i+1)%3==0){
System.out.println();
}
daan[i]=d;
}
System.out.println("是否显示答案(显示请输入1)");
if(scan2.nextInt()==1){
for(i=0;i<x;i++){
System.out.print(daan[i]+" ");
}
}
}
if(C==0){
for(i=0;i<x;i++){
m1=1+(int)(Math.random()*B);//随机生成一个小于B的分母
x1=1+(int)(Math.random()*m1);//生成一个比分母小的分子,实现真分数
m2=1+(int)(Math.random()*B);//随机生成一个小于B的分母
x2=1+(int)(Math.random()*m2);//生成一个比分母小的分子,实现真分数
int c=(int)(Math.random()*2);//生成运算符
if(c==0){
Z=x1*m2+x2*m1;
M=m1*m2;
d=yuefen(Z,M);
System.out.print(x1+"/"+m1+"+"+x2+"/"+m2+"= ");
}
if(c==1){
Z=x1*m2-x2*m1;
M=m1*m2;
d=yuefen(Z,M);
System.out.print(x1+"/"+m1+"-"+x2+"/"+m2+"= ");
}
if((i+1)%3==0){
System.out.println();
}
daan[i]=d;
}
System.out.println(" ");
System.out.println("是否显示答案(显示请输入1)");
if(scan2.nextInt()==1){
for(i=0;i<x;i++){
System.out.print(daan[i]+" ");
}
}
}
}
}
}
4.实验结果截图:



5.实验总结:
对于真分数的计算方式不熟悉,需要请教其他同学;
对于存在多项式的运算不熟悉。
java-四则运算二的更多相关文章
- Java EE : 二、图解 Cookie(小甜饼)
目录 Java EE : 一.图解Http协议 Java EE : 二.图解 Cookie(小甜饼) Java EE : 三.图解Session(会话) 概述 一.概述 二.详细介绍Cookie 传输 ...
- 利用JAVA生成二维码
本文章整理于慕课网的学习视频<JAVA生成二维码>,如果想看视频内容请移步慕课网. 维基百科上对于二维码的解释. 二维条码是指在一维条码的基础上扩展出另一维具有可读性的条码,使用黑白矩形图 ...
- java实现二维码
说起二维码,微信好像最先启用,随后各类二维码就开始流行起来了.那什么是二维码呢. 1.什么是二维码?百度一下即可 http://baike.baidu.com/view/132241.htm?fr=a ...
- Java 设计模式(二)-六大原则
Java 设计模式(二)-六大原则 单一职责原则(Single Responsibility Principle) 定义: 不要存在多余一个原因导致类变更,既一个类只负责一项职责. 问题由来: 当类A ...
- Java进阶(二十五)Java连接mysql数据库(底层实现)
Java进阶(二十五)Java连接mysql数据库(底层实现) 前言 很长时间没有系统的使用java做项目了.现在需要使用java完成一个实验,其中涉及到java连接数据库.让自己来写,记忆中已无从搜 ...
- 20175212童皓桢 Java实验二-面向对象程序设计实验报告
20175212童皓桢 Java实验二-面向对象程序设计实验报告 实验内容 初步掌握单元测试和TDD 理解并掌握面向对象三要素:封装.继承.多态 初步掌握UML建模 熟悉S.O.L.I.D原则 了解设 ...
- java 多线程二
java 多线程一 java 多线程二 java 多线程三 java 多线程四 线程中断: /** * Created by root on 17-9-30. */ public class Test ...
- Linux -- 基于zookeeper的java api(二)
Linux -- 基于zookeeper的java api(二) 写一个关于基于集群的zookeeper的自定义实现HA 基于客户端和监控器:使用监控的方法查看每个注册过的节点的状态来做出操作. Wa ...
- 浅谈Java代理二:Cglib动态代理-MethodInterceptor
浅谈Java代理二:Cglib动态代理-MethodInterceptor CGLib动态代理特点: 使用CGLib实现动态代理,完全不受代理类必须实现接口的限制,而且CGLib底层采用ASM字节码生 ...
- java 生成二维码、可带LOGO、可去白边
1.准备工作 所需jar包: JDK 1.6: commons-codec-1.11.jar core-2.2.jar javase-2.2.jar JDK 1.7: commons-codec- ...
随机推荐
- 通过脚本同时运行几个spider
# 通过脚本同时运行几个spider目录结构: 1.在命令行能通过的情况下创建两个spider如TestSpiderTest2Spider 2.在items.py的同级目录创建run.py文件,有三种 ...
- 6.javaScript中的二维数组
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...
- MyBatis动态代理查询出错
org.apache.ibatis.exceptions.PersistenceException: ### Error querying database. Cause: org.apache. ...
- 007-Centos 7.x 安装 Mysql 5.7.13
1. 下载mysql的repo源 CentOS 7.2的yum源中默认没有mysql,要先下载mysql的repo源 wget http://repo.mysql.com/mysql57-commun ...
- 初识ganglia
本文地址:http://www.cnblogs.com/qiaoyihang/ 一.Ganglia是什么?Ganglia主要用来解决什么样的问题? ganglia是一个可扩展的分布式监控系统,用于监控 ...
- c++ 库 boost安装
http://blog.chinaunix.net/uid-12226757-id-3427282.html ubuntu apt-get install libboost-dev 全部: apt-g ...
- React:快速上手(4)——掌握Redux(1)
React:快速上手(4)——掌握Redux 引入Redux 混乱的state管理 随着 JavaScript 单页应用开发日趋复杂,JavaScript 需要管理比任何时候都要多的 state (状 ...
- GIT学习笔记(5):变基
GIT学习笔记(5):变基rebase 变基 引入变基 在Git中整合来自不同分支的修改主要有两种方法:merge以及rebase. 整合分支最容易的方法是merge,他会把两个分支的最新快照以及两者 ...
- LeetCode:前K个高频单词【692】
LeetCode:前K个高频单词[692] 题目描述 给一非空的单词列表,返回前 k 个出现次数最多的单词. 返回的答案应该按单词出现频率由高到低排序.如果不同的单词有相同出现频率,按字母顺序排序. ...
- cdoj1342郭大侠与甲铁城
地址:http://acm.uestc.edu.cn/#/problem/show/1342 题目: 郭大侠与甲铁城 Time Limit: 1500/800MS (Java/Others) ...