web四则混合运算3
一、程序要求: 可以控制下列参数: 是否有乘除法; 是否有括号(最多可以支持十个数参与计算); 数值范围; 加减有无负数; 除法有无余数!
二、设计思路 要求能够通过参数来控制有无乘除法,加减有无负数,除法是否有余数。整数加法式子,减法式子,都写成函数,然后再通过参数来控制是否产生此类型的式子,以及式子的一些格式。判断是否重复时,将生成的算式保存在一个数组中,输出之前进行验证,判断是否存在并进行输出。
三、源代码:
package demo;
import java.util.Scanner;
public class yunsuan {
static int j;
static int a,b,c,d,min,max;
static String aa,bb;
static char []ch=new char[4];
public static void zhengshu(){
Scanner in=new Scanner(System.in);
System.out.println("1.有乘除法 2.无乘除法:");
int xx=in.nextInt();
System.out.println("请输入题目页数:");
int x=in.nextInt();
System.out.println("请输入题目个数:");
int x1=in.nextInt();
System.out.println("请输入变量个数:");
int z=in.nextInt();
System.out.print("请输入数值范围:");
min=in.nextInt();
max=in.nextInt();
System.out.println("1.有括号 2.无括号:");
int t=in.nextInt();
int a1,b1;
int []M=new int[10];
String []N=new String[10];
String []A1=new String[x1];
for(int ii=1;ii<=x;ii++)
{
for(int i=0;i<x1;i++)
{
a1=(int)(Math.random()*(z-1)+1);
b1=a1+1;
A1[i]="";
for(int o=0;o<z;o++)
{
M[o]=(int)(Math.random()*max+min);
if(t==1)
{
if(o==a1-1||o==b1-1)
{
if(o==a1-1)
N[o]="("+M[o];
else
N[o]=M[o]+")";
}
else
N[o]=""+M[o];
}
else
N[o]=""+M[o];
if(xx==1)
j=(int)(Math.random()*4+1);
else
j=(int)(Math.random()*2+1);
if(o==z-1)
A1[i]=A1[i]+N[o]+" =";
else
A1[i]=A1[i]+N[o]+" "+ch[j-1];
}
for(int k=0;k<i;k++)
{
if(A1[i].equals(A1[k]))
{
i--;
break;
}
}
}
for(int i=0;i<x1;i++)
{
System.out.println((i+1)+". "+A1[i]);
}
System.out.println("-"+ii+"-");
}
}
public static void fenshu(){
String []B=new String[3];
for(int i=0;i<3;i++)
{
a=(int)(Math.random()*100+1);
b=(int)(Math.random()*100+1);
if(a>b)
aa=b+"/"+a;
else if(a<b)
aa=a+"/"+b;
else
aa="1";
g=(int)(Math.random()*100+1);
d=(int)(Math.random()*100+1);
if(c>d)
bb=d+"/"+c;
else if(c<d)
bb=c+"/"+d;
else
vv="1";
j=(int)(Math.random()*4+1);
B[i]=aa+" "+ch[j-1]+" "+bb+"=";
for(int k=i+1;k<3;k++)
{
if(B[i].equals(B[k]))
{
a=(int)(Math.random()*10+1);
b=(int)(Math.random()*10+1);
j=(int)(Math.random()*4+1);
B[k]=aa+" "+ch[j-1]+" "+bb+"=";
k--;
}
}
System.out.println((i+1)+". "+B[i]);
}
}
public static void main(String[] args){
Scanner in=new Scanner(System.in);
System.out.println("1.整数运算");
System.out.println("2.分数运算");
ch[0]='+';
ch[1]='-';
ch[2]='*';
ch[3]='/';
int t=in.nextInt();
if(t==1)
{
zhengshu();
System.out.println();
}
else if(t==2)
{
fenshu();
System.out.println();
}
else
return;
}
}
截图:
四、总结:
通过编写这个程序我认识到遇到复杂难以解决的问题要分而治之,还有要把解决问题的手段封装到方法里,这样会便于以后的管理。
web四则混合运算3的更多相关文章
- web四则混合运算2
一.设计思路: 先出题(String型)(上周已经实现),再写方法计算结果,加入控制有无乘除法,范围,参与计算数,出题数,页码显示等简单功能,有无括号和分数的计算目前还没能实现. 二.代码: 界面 & ...
- Web四则混合运算
一.代码1: <%@ page language="java" contentType="text/html; charset=UTF-8" pageEn ...
- 软件工程学习之小学四则混合运算出题软件 Version 1.00 设计思路及感想
对于小学四则混合运算出题软件的设计,通过分析设计要求,我觉得为了这个软件在今后便于功能上的扩充,可以利用上学期所学习的<编译原理>一课中的LL1语法分析及制导翻译的算法来实现.这样做的好处 ...
- 如何处理加括号的四则混合运算表达式——基于二叉树的实现(Eclipse平台 Java版)
记得上<数据结构>课程时,利用栈的特性解决过四则混合运算表达式.而如今在编写小型关系数据库的时候,编译部分要处理where后面的逻辑表达式——检查语法正确与否的同时,还要将信息传给下一个接 ...
- MathExamV2.0四则混合运算计算题生成器
MathExamV2.0四则混合运算计算题生成器----211606360 丁培晖 211606343 杨宇潇 一.预估与实际 PSP2.1 Personal Software Process Sta ...
- C语言编程学习:写的秒速计算四则混合运算项目
C语言是面向过程的,而C++是面向对象的 C和C++的区别: C是一个结构化语言,它的重点在于算法和数据结构.C程序的设计首要考虑的是如何通过一个过程,对输入(或环境条件)进行运算处理得到输出(或实现 ...
- java 解析四则混合运算表达式并计算结果
package ch8; import java.util.LinkedList; import java.util.List; import java.util.Stack; /** * 四则混合运 ...
- 用C++实现的有理数(分数)四则混合运算计算器
实现目标 用C++实现下图所示的一个console程序: 其中: 1.加减乘除四种运算符号分别用+.-.*./表示, + 和 - 还分别用于表示正号和负号. 2.分数的分子和分母以符号 / 分隔. 3 ...
- 软件工程学习之小学四则混合运算出题软件 Version 1.1 设计思路及感想
继上次采用形式文法来生成混合运算的算式,由于算法中没有引入控制参数而导致容易产生形式累赘(多余的括号等)的算式.本次更新决定采用一种更为简单有效的生成方式,由给出的一个随机的最终答案S,通过给定的一个 ...
随机推荐
- mac+php+nginx+laravel配置启动
首先保证mac安装php,nginx,composer 根据laravel中文文档进行安装 http://laravelacademy.org/post/6665.html 直接指向 composer ...
- Java冒泡排序与选择排序
Java排序: 一.冒泡排序算法的运作如下: 比较相邻的元素.如果第一个比第二个大,就交换他们两个. 对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对.在这一点,最后的元素应该会是最大的数. ...
- Java Swing 简单介绍
Swing 是一个为Java设计的GUI工具包. Swing是JAVA基础类的一部分. Swing包括了图形用户界面(GUI)器件如:文本框,按钮,分隔窗格和表. Swing提供许多比AWT更好的屏幕 ...
- RabbitMQ 循环调度
循环调度是针对Consumer消费者来说的.如果有多个Consumer订阅同一个队列的消息,RabbitMQ会自动按照顺序将消息发送到每一个Consumer手中. 就是这么简单!
- SQL-38 创建视图
题目描述 针对actor表创建视图actor_name_view,只包含first_name以及last_name两列,并对这两列重新命名,first_name为first_name_v,last_n ...
- 图片 100%显示. img 全部显示.
让每个图片 都铺满 ,同样的大小; 只要给 img 设置 固定的高度, 宽度就可以 了. ----------------------- html: <div class="co ...
- Spring Boot项目中使用Swagger2
Swagger2是一款restful接口文档在线生成和在线接口调试工具,Swagger2在Swagger1.x版本的基础上做了些改进,下面是在一个Spring Boot项目中引入Swagger2的简要 ...
- [python]操作redis sentinel以及cluster
先了解清楚sentinel和cluster的差别,再学习使用python操作redis的API,感觉会更加清晰明白. 1.redis sentinel和cluster的区别 sentinel遵循主从结 ...
- java学习笔记16(正则表达式)
正则表达式: 定义:在pattern类中有简单规则定义,具有特殊含义的字符串: 作用:用于一些字符串,比如验证注册邮箱,密码,用户名等: 正则表达式的语法: 1)字符:'\'反斜杠 \t 代表制表 ...
- python day11 ——1. 函数名的使⽤ 2. 闭包 3. 迭代器
⼀. 函数名的运⽤. 1.函数名的内存地址 def func(): print("呵呵") print(func) 结果: <function func at 0x11 ...