1. 约分分数

1.1 保留质数

 /**
* 将数值放入到fraction数组中
* @param fen 简要放的 int类型数值
*/
public void fenshu(int fen) {
fraction[i++] = fen;
}

1.2  定义int类型数组

 /**
* 获得int 类型的数组,fraction对象
*/
public void getFraction() {
fraction = new int[nums];
}

1.3 获取质数数量

 /**
* 获取num有多少个质数相乘的质数的数目,质数可相同
* @param num 任意的int类型的数值
*/
public void primeNumber(int num) {
if (num == 1) {
nums++;
System.out.println("num为 " + num);
} else {
// 注意:因为老师不会出0/2的数,所以没写if(numa>0)如果给num 为0这里会出现死循环
if (num % a == 0) {
nums++;
int d = num / a;
primeNumber(d);
} else {
if (num % b == 0) {
nums++;
int d = num / b;
primeNumber(d);
} else {
b = b + 2;
primeNumber(num);
}
}
}
}

1.4 将数值分解成质数(质数可以相同)

 /**
* 将值分解成最小质数和集
* @param num 将要分解的 int类型的数值
*/
public void prime(int num) {
if (num == 1) {
System.out.println("num为 " + num);
} else {
// 注意:因为老师不会出0/2的数,所以没写if(numa>0)如果给num 为0这里会出现死循环
if (num % a == 0) {
fenshu(a);
int d = num / a;
System.out.println("a为 " + a);
System.out.println("num为 " + d);
prime(d);
} else {
if (num % c == 0) {
fenshu(c);
int d = num / c;
System.out.println("c为 " + c);
System.out.println("num为 " + d);
prime(d);
} else {
c = c + 2;
System.out.println("c更改为 " + c);
System.out.println("num不变依旧为 " + num);
prime(num);
}
}
}
}

1.5 将分母和分子进行约分成最简质数

 /**
* 将两个数组进行比较,如数组内有相同的数据,将其转换为1
* @param a 传递的第一个数组a
* @param b 传递的第二个数组b
*/
public static void compareTwo(int[] a, int[] b) {
int alength = a.length;
int blength = b.length;
if (alength >= blength) {
for (int k = 0; k < blength; k++) {
for (int m = 0; m < alength; m++) {
if (a[m] == b[k]) {
a[m] = 1;
b[k] = 1;
break;
}
}
}
} else {
for (int k = 0; k < alength; k++) {
for (int m = 0; m < blength; m++) {
if (a[k] == b[m]) {
a[k] = 1;
b[m] = 1;
break;
}
}
}
}
}

1.6 将分子和分母的质数分别相乘得到最简分子和分母

 /**
*将数组内的所有元素进行相乘
* @param a 数组a
* @return
*/
public static int product(int[] a){
int product=1;
for(int s=0;s<a.length-1;s++){
product=product*a[s];
a[s]=product;
}
return product;
}

1.7 根据用户的条件生成分子分母

 /**
* 获取随机生成一个包含分子和分母,且分子分母都为质数的数组。
* @param num1 分子最小值
* @param num2 分子最大值
* @param num3 分母最小值
* @param num4 分母最大值
* @return 返回一个包含分子和分母的数组
*/
public static int[] fractions(int num1,int num2,int num3,int num4){
int[] fenshu=new int[2];
int first = generate(num1, num2);
int secound = generate(num3, num4);
count3Bean cBean=new count3Bean();
cBean.primeNumber(first);
cBean.getFraction();
cBean.prime(first);
int[] a=cBean.fraction;
count3Bean cBean2=new count3Bean();
cBean2.primeNumber(secound);
cBean2.getFraction();
cBean2.prime(secound);
int[] b=cBean2.fraction;
compareTwo(a, b);
int fenzi=product(a);
int fenmu=product(b);
fenshu[0]=fenzi;
fenshu[1]=fenmu;
return fenshu;
}

1.8 将分子分母进行约分

 /**
* 将分数处理为不能再约分的数
* @param num1 分子
* @param num2 分母
* @return int类型的数组包含分子和分母
*/ public static int[] fractions2(int num1,int num2){
int[] fenshu=new int[2];
count3Bean cBean=new count3Bean();
cBean.primeNumber(num1);
cBean.getFraction();
cBean.prime(num1);
int[] a=cBean.fraction;
count3Bean cBean2=new count3Bean();
cBean2.primeNumber(num2);
cBean2.getFraction();
cBean2.prime(num2);
int[] b=cBean2.fraction;
compareTwo(a, b);
int fenzi=product(a);
int fenmu=product(b);
fenshu[0]=fenzi;
fenshu[1]=fenmu;
return fenshu;
}

2. action 类

 public class fenshu {

     private String fenzixiao;
private String fenzida;
private String fenmuxiao;
private String fenmuda;
private String number;
.......
//此处省略get和set方法
public String execute(){
ActionContext actioncontext = ActionContext.getContext();
Map<String, Object> session = actioncontext.getSession();
List<Four> fours=count3.getFourList(Integer.parseInt(number), Integer.parseInt(fenzixiao), Integer.parseInt(fenzida), Integer.parseInt(fenmuxiao), Integer.parseInt(fenmuda));
session.put("fours", fours);
return "fenshusuccess";
} }

3. 运行结果图

3.1 初始界面

3.2 用户填数据

3.3 生成题目界面(如在a/b+c/d=e中a/b和c/d都为分数)

3.4 用户填写答案

3.5 判断答案正确页面(判断代码在之后)

自动生成数学题型三 (框架Struts2)题型如 a+b=c(a、b、c都为分数)的更多相关文章

  1. 自动生成数学题型一 (框架Struts2) 题型如(a+b=c)

    1. 加减乘除 1.1 随机生成制定范围的整数 /** * 随机产生一个被限定范围的整数 * * @param num1 * 定义起始范围 num1 * @param num2 * 定义终止范围 nu ...

  2. Makefile 7——自动生成依赖关系 三颗星

    后面会介绍gcc获得源文件依赖的方法,gcc这个功能就是为make而存在的.我们采用gcc的-MM选项结合sed命令.使用sed进行替换的目的是为了在目标名前加上“objs/”前缀.gcc的-E选项, ...

  3. 自动生成DTO(Sugar框架)

    step1:启动api项目 step2:使用postman工具,填上接口地址http://localhost:7788/api/automapper/AutoMapperSuper step3:表格数 ...

  4. 自动生成数学题型二(框架struts2)题型如((a+b)*c=d)

    1. 生成题目 1.1 生成单个题目 public static String[] twoOperatorAndOperator(int num1, int num2) { double first ...

  5. 自动生成DTO(EF框架)

    [0]安装相关工具包 PostgreSQL版本: Npgsql.EntityFrameworkCore.PostgreSQL Npgsql.EntityFrameworkCore.PostgreSQL ...

  6. [goa]golang微服务框架学习(二)-- 代码自动生成

    之前用过go语言的反射来做一些代码生成,参考这篇. 但是这种方式,入侵太强,需要执行对应的申明调用, 所以对GOA框架的自动生成非常感兴趣,于是仔细研究了一下,发现用的比较巧妙, 这里先卖个关子,先看 ...

  7. 文件参数化-utp框架之根据yaml文件自动生成python文件+utp运行用例

    根据yaml文件自动生成python文件 utp框架: bin目录:存放执行文件(run.py) cases目录:存放生成的用例的python文件(该目录下的文件为根据data目录下的测试用例生成的p ...

  8. Spring Boot(九)Swagger2自动生成接口文档和Mock模拟数据

    一.简介 在当下这个前后端分离的技术趋势下,前端工程师过度依赖后端工程师的接口和数据,给开发带来了两大问题: 问题一.后端接口查看难:要怎么调用?参数怎么传递?有几个参数?参数都代表什么含义? 问题二 ...

  9. Spring Boot Swagger2自动生成接口文档

    一.简介 在当下这个前后端分离的技术趋势下,前端工程师过度依赖后端工程师的接口和数据,给开发带来了两大问题: 1.问题一.后端接口查看难:要怎么调用?参数怎么传递?有几个参数?参数都代表什么含义? 2 ...

随机推荐

  1. TimerTask实现定期检查数据库操作

    最近在做一个P2P 的众筹网站,其他的内容还都可以,只是定期检查数库里面的项目是不是到期了,让我费了一些时间,现在写好了,我把它总结下来,以便以后使用.顺便和大家分享一下. Timer可以看成一个定时 ...

  2. KoaHub平台基于Node.js开发的Koa的rewrite and index support插件代码详情

    koa-static-server Static file serving middleware for koa with directory, rewrite and index support k ...

  3. koahub软件市场微信编辑器源码,可下载

    管理过公众平台的小伙伴都知道,公众平台最重要的是图文的编辑和发布,由于微信公众平台的图文编辑页面比较简陋,功能和样式的比较少,所以一般都是使用专业的微信图文编辑器,koahub软件市场里有一款专门编辑 ...

  4. KoaHub.js -- 基于 Koa.js 平台的 Node.js web 快速开发框架之koahub-skip

    koahub-skip koahub skip middleware koahub skip Conditionally skip a middleware when a condition is m ...

  5. 腾讯云数据库团队:MySQL数据库的高可用性分析

    作者介绍:易固武,腾讯高级工程师,参与腾讯账号安全建设,腾讯数据仓库(TDW)优化改造,腾讯云数据库等项目,对大规模分布式存储和计算系统有浓厚的兴趣和经历 MySQL数据库是目前开源应用最大的关系型数 ...

  6. Swiper3 的特色功能

  7. 分享一些自己写的前端库,并骗骗 star(库都是在实际项目中大量运用过的)

    最近一两年在一些项目上,通过实际需求出发,编写了一些库在项目中使用,现在将这些项目都稍微整理了一下开源了出来,也许也有刚好能够你也用得上的,顺便也骗一下star.均在项目的README中加了相关的说明 ...

  8. [SQL] SQL 基础知识梳理(六)- 函数、谓词、CASE 表达式

    SQL 基础知识梳理(六)-  函数.谓词.CASE 表达式 目录 函数 谓词 CASE 表达式 一.函数 1.函数:输入某一值得到相应输出结果的功能,输入值称为“参数”,输出值称为“返回值”. 2. ...

  9. 树链剖分-SPOJ375(QTREE)

    QTREE - Query on a tree You are given a tree (an acyclic undirected connected graph) with N nodes, a ...

  10. VMware Ubuntu16.04虚拟机安装MATLAB R2016b

    因为这学期上的模式识别课程需要在Linux环境下使用Matlab,所以就在Windows10主机上的Vmware Workstation上的Ubuntu虚拟机上安装了最新版本的MATLAB. 环境: ...