四则运算生成器做法思路

  1. 定义一个四则运算符的字符数组,使用随机数方法每次产生1到3的随机数作为运算符个数,运算符的个数确定后操作数随之确定
  2. 用随机数方法Math.rabdom()产生确定范围内的随机数存入数组
  3. 同样使用随机数去取运算符,存放到一个数组里面
  4. 将操作数和运算符转成字符串存放到字符串数组,再将字符串数组转化成字符串,使用io流写入到文件中
  5. public static float opt(String s) throws Exception {
            if (s == null || "".equals(s.trim())) {
                return 0f;
            }
            int a1 = s.indexOf("+");
            int a2 = s.indexOf("-");
            int a3 = s.indexOf("*");
            int a4 = s.indexOf("/");
            int a5 = s.indexOf("(");
            if (a1 == -1 && a2 == -1 && a3 == -1 && a4 == -1) {
                if (s.trim() == null || "".equals(s.trim())) {
                    throw new Exception("operate error");
                }
                return Float.parseFloat(s.trim());
            }
    
            if (a5 != -1) {
                int a6 = s.indexOf(")");
                if (a6 == -1) {
                    throw new Exception("括号不匹配");
                } else {
                    float f = opt(s.substring(a5 + 1, a6).trim());
                    s = s.replace(s.substring(a5, a6 + 1), String.valueOf(f));
                    return opt(s);
                }
            }
    
            if (a1 != -1) {
                return opt(s.substring(0, a1))
                        + opt(s.substring(a1 + 1, s.length()));
            }
            if (a2 != -1) {
                return opt(s.substring(0, a2))
                        - opt(s.substring(a2 + 1, s.length()));
            }
            if (a3 != -1) {
                return opt(s.substring(0, a3))
                        * opt(s.substring(a3 + 1, s.length()));
            }
            if (a4 != -1) {
                return opt(s.substring(0, a4))
                        / opt(s.substring(a4 + 1, s.length()));
            }
            return Integer.parseInt(s.trim());
        }

    使用以上的opt方法计算结果,该方法存在一些问题,比如计算结果没办法保留分数形式

  6. 目前只实现以上的功能
时间: 2024-10-29 19:07:15

四则运算生成器做法思路的相关文章

结对项目--四则运算生成器(Java) 刘彦享+龙俊健

结对项目--四则运算生成器(Java) GitHub地址 合作者 刘彦享(3118005010) 龙俊健(3118005011) https://github.com/LYX708194/calculate 一.项目简介 说明 自然数:0, 1, 2, -. 真分数:1/2, 1/3, 2/3, 1/4, 1'1/2, -. 运算符:+, ?, ×, ÷. 括号:(, ). 等号:=. 分隔符:空格(用于四则运算符和等号前后). 算术表达式: e = n | e1 + e2 | e1 ? e2

结对-四则运算生成器-设计文档

项目名称: 四则运算生成器 成员: 李明,姜广昱 开发环境: Android stdio 功能: 生成四则运算题目模块:可随机生成包括小数.整数的四则运算. 四则运算难度调整模块:可调整四则运算难度包括题目数量.是否有小数.小数位数.整数位数. 答题模块:用户可对生成的题目进行作答. 答题结果及分析模块:生成题目答案,对照答题答案给出错误题目回顾,和答题成绩. 说明: 为实现上述功能,本软件分为答题和出题两大模块,出题时可调整难度,答题部分要显示分数和答错部分的正确答案

四则运算生成器升级版1.0代码规范与测试程序

一.程序设计题目要求和设计思想 1.题目 (1).题目避免重复:    (2).可定制(数量/打印方式):    (3).可以控制下列参数: 是否有乘除法.是否有括号. 数值范围.加减有无负数.除法有无余数.否支持分数 (真分数, 假分数, …).是否支持小数 (精确到多少位).打印中每行的间隔可调整: 2.设计思想 要求1:题目避免重复    设计思想:(1)通过srand(time(NULL));来控制.    要求2:可以定制(数量/打印方式)    设计思想:(1)定义一个参数,利用用户

四则运算生成器升级版2.0

一.题目要求 每个同学对已有的四则运算生成器进行优化,我选择的题目是:让程序能接受用户输入答案,并判断对错,最后给出总共对/错的数量. 二.设计思想 首先考虑用c#编写程序,找到一个能输出运算题目.能接收用户输入的还能反馈给用户做的对与错的控件,最后考虑选择的是datagridview控件,而且用了之后效果还是不错的,但是不进行数据库的链接,就是简单的实现这个控件的单元格的内容输入输出. 三.程序源代码 1 using System; 2 using System.Collections.Gen

四则运算生成器-个人项目1

第一个个人项目四则运算生成器参考源代码:https://zhidao.baidu.com/question/532330836.html?qbl=relate_question_0&word=%D3%C3C%D3%EF%D1%D4%CA%B5%CF%D6%CB%C4%D4%F2%D4%CB%CB%E3%C9%FA%B3%C9%C6%F7 改了一点点功能,运行有错误,也改过来了. #define _CRT_SECURE_NO_WARNINGS #include <stdio.h> #in

四则运算2-设计思路

四则运算2 设计思路 1 题目避免重复:建立两个数组,rand()函数确定随机数,将这两个数加入两个数组,重复确定随机数,判断这两个数是否与两个数组的数值相同以避免重复,无重复则输出题目. 2 可定制(数量/打印方式):数量和打印方式用宏定义确定输出几行与几列. 3 是否有乘除法:定义一个四则运算符的数组,前两个表示加减,后两个表示乘除,用随机数范围来确定有无乘除. 4 数值范围:rand()函数可确定数值范围. 5 if else语句来判断加减有无负数与除法有无余数.

四则运算生成器说明

四则运算生成器使用说明书 一.主界面 首先打开本软件时,可以看到软件的主界面即软件主要功能选择界面,分为输出随机生成整数四则运算.输出随机生成真分数的四则运算.在线答题-整数四则运算.在线答题-真分数的四则运算和错题本以及退出系统功能.在下方输入框内输入对应的功能数字代号即可进入对应的功能界面. 二.主要功能介绍 本运算生成器主要分为2个大模块:输出随机四则运算模块.在线答题模块.其中,输出随机四则运算主要用来同时随机出若干题目,可以用来给孩子做练习题.又分整数和分数四则运算,可以满足不同年级学

四则运算生成器——感想

1.预估时间及实际花费时间表格 理想太丰满,显示太骨干 PSP2.1 Personal Software Process Stages Time Planning 计划 · Estimate · 估计这个任务需要多少时间 15h Development 开发 · Analysis · 需求分析 (包括学习新技术) 2h · Design Spec · 生成设计文档 2h · Design Review · 设计复审 (和同事审核设计文档) 3h · Coding Standard · 代码规范 

四则运算生成器

a.需求分析: 1.除了支持整数的四则运算之外,还要支持真分数的四则运算 2.运算符为 +,-,×,÷ 3.要求能处理用户的输入,并判断对错,打分统计正确率 4.要求能处理用户输入的真分数 5.用参数控制题目的生成数量 b.功能分析 1.实现整数的题目生成并处理用户的输入 2.处理真分数的四则运算并处理用户输入 3.判断对错并给出正确率 4.由用户输入决定出题数量 5.具备约分功能,在出现1/1,3/3这种能智能换成整数 c.设计实现 1.本程序采用java语言编写,但是编写的思路接近C语言,在