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,通过给定的一个 ...
随机推荐
- idea中deBug方法
1 2设置controller层断点鼠标左键点击,断点在哪里,就会deBug到哪里 3刷新页面 4查看 5service层设置断点 6 7查看返回信息是否错误
- linux下查看物理CPU个数、核数、逻辑CPU个数
cat /proc/cpuinfo中的信息 processor 逻辑处理器的id.physical id 物理封装的处理器的id.core id 每个核心的id.cpu cores 位于相同物理封装的 ...
- 逆袭之旅DAY15.东软实训.Oracle.约束、序列、视图、索引、用户管理、角色
2018-07-11 08:26:00 有某个学生运动会比赛信息的数据库,保存了如下的表: 运动员sporter表:(运动员编号sporterid,运动员姓名name,运动员性别sex,所属系dep ...
- 架构之路:nginx与IIS服务器搭建集群实现负载均衡(一)
最近亮亮在研究IIS的负载均衡!本人由于初出茅庐,防骗意识薄弱,一不小心被亮亮坑上了IIS负载均衡之路(亮亮是真黑哈!).前车之鉴啊!小伙伴们要小心.不过既上了贼船,便决定一条道走到黑.于是乎从大前天 ...
- python 学习 map /reduce
python 内建了map()和reduce()函数 map()函数接收两个参数,一个是函数,一个是Iterable,map将传入的函数依次作用到序列的每个元素,并把结果作为新的Iterator返回. ...
- 如何写java求和源代码
1.设计思想:利用eclipse编写. 2.程序流程图:先建立一个包->建立一个类->写代码->运行->修正错误,完善代码. 3.源程序代码: package dijia; p ...
- selenium(六)Headless Chrome/Firefox--PhantomJS停止支持后,使用无界面模式。
简介: 以前都用PhantomJS来进行无界面模式的自动化测试,或者爬取某些动态页面. 但是最近selenium更新以后,'Selenium support for PhantomJS has bee ...
- java.lang.ArithmeticException: Non-terminating decimal expansion; no exact representable decimal result异常的解决方法
今天在写一个JAVA程序的时候出现了异常:java.lang.ArithmeticException: Non-terminating decimal expansion; no exact repr ...
- Sass 混合宏、继承、占位符 详解
混合宏-声明混合宏如果你的整个网站中有几处小样式类似,比如颜色,字体等,在 Sass 可以使用变量来统一处理,那么这种选择还是不错的.但当你的样式变得越来越复杂,需要重复使用大段的样式时,使用变量就无 ...
- python列表的11种方法
python列表的11种方法2017年11月24日 03:26:43 Milton-Long 阅读数:254版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.n ...