zoukankan      html  css  js  c++  java
  • 四则运算生成器做法思路

    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. 目前只实现以上的功能
  • 相关阅读:
    IFRAME自适应高度
    项目支出数据产生过程
    hbase体系结构以及说明
    PLSQL 设置
    hadoop编程模型
    捕捉桌面上的窗口信息
    在不修改代码的情况下无限扩展应用项目
    跟我一起玩Win32开发(25):监视剪贴板
    跟我一起玩Win32开发(24):计时器
    跟我一起玩Win32开发(23):渐变颜色填充
  • 原文地址:https://www.cnblogs.com/p-12/p/7535866.html
Copyright © 2011-2022 走看看