java 字符串 四则运算_Java实现四则运算

本文介绍了一个使用Java编写的四则运算生成器,能够根据用户需求生成不同数量、范围和类型的算式,包括加减乘除,并支持负数、除法余数和分数显示。代码包括接口定义、实现类以及测试类,可以将生成的算式保存到文件中。
摘要由CSDN通过智能技术生成

本次使用java语言,实现了四则运算习题的生成。

一、主要功能:

(1)算式个数

(2)是否有乘除法

(3)结果集数值范围

(4)加减法有无负数

(5)除法有无余数

(6)除法出现小数是否支持分数显示

(7)选择生成算式导入的文件

(8)输出打印每行个数

二、代码实现:

(1)IFormulaGeneration

package cn.zhl.software;

import java.util.Map;

public interface IFormulaGeneration {

//加法生成接口,结果范围,加法有无负数,生成个数

public Map Add(int resultRange,boolean is,int num);

//减法生成接口,结果范围,减法有无负数,生成个数

public Map Sub(int resultRange,boolean is,int num);

//乘法生成接口,生成个数

public Map Mul(int resultRange,int num);

//除法生成接口,结果范围,除法有无余数,是否支持分数,生成个数

public Map Div(int resultRange,boolean is,boolean is2,int num);

//检测算式是否存在重复,如果存在返回true

public boolean Repeat(Map,?> map,String formula);

//生成特定范围的数值

public int nextInt(int min, int max);

//化简小数

public String fracReduction(int numerator, int denominator);

//算法生成器:算式个数,是否有乘除法,数值范围,加减法有无负数,除法又无余数,是否支持分数,打印每行个数

public Map FormulaCustom(int formulaNum,boolean if_MulDiv,int range,

boolean ifNeg_AddSub,boolean ifRem_Div,

boolean ifRed_Div,int lineNum);

}

(2)FormulaRealization

package cn.zhl.software;

import java.util.HashMap;

import java.util.Map;

import java.util.Random;

import java.util.Set;

public class FormulaRealization implements IFormulaGeneration {

Random random = new Random();

@Override

public Map Add(int resultRange, boolean is, int num) {

if (resultRange < 0) {

resultRange = -resultRange;

}

Map addMap = new HashMap<>();

int r1 = 0, r2 = 0, n = 0;

String formula = "";

for (; n < num; ) {

r1 = nextInt(-resultRange, resultRange);

if (is) {//加法允许出现负数

r2 = nextInt(-resultRange - r1, resultRange - r1);

} else {

r2 = nextInt(-r1, resultRange - r1);

}

formula = (r1 < 0 ? "(" + r1 + ")" : r1) + "+" + (r2 < 0 ? "(" + r2 + ")" : r2);

if (Repeat(addMap, formula)) {

addMap.put(formula, r1 + r2);

n++;

}

}

return addMap;

}

@Override

public Map Sub(int resultRange, boolean is, int num) {

if (resultRange < 0) {

resultRange = -resultRange;

}

Map subMap = new HashMap<>();

int r1 = 0, r2 = 0, n = 0;

String formula = "";

for (; n < num; ) {

r1 = nextInt(-resultRange, resultRange);

if (is) {//加法允许出现负数

r2 = nextInt(-resultRange + r1, resultRange + r1);

} else {

r2 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值