zoukankan      html  css  js  c++  java
  • 作业1--四则运算

     

    需求分析

     1、控制运算表达式题目数量,控制题目的格式
    
     2、题目中存在分数形式要进行约分,达到最简真分数
    
     3、运算符个数不能超过3个
    
     4、程序支持生成10000道题目
    
     5、程序同时支持计算生成的每道题目,并对结果进行约分,达到最简真分数
    
     6、对用户所做答案进行判断,并且输出正确答案或错误答案
    
     7、对生成的题目进行重复数量统计

    功能设计

      1、随机生成运算表达式
    
      2、重复题目查询
    
      3、四则运算计算功能
    
      4、对运算表达式中数值和对计算结果进行约分
    
      5、将题目和答案分别写入文件

    设计实现

     1、先随机生成二元运算,两个随机数和一个运算符,在二元运算的基础上生成三元运算(将其中一个数拆分成二元运算,在需要的地方加上括号,因此不会出现无意义的括号运算符)
    
     2、表达式中存在除法除数不能为0,分数分母生成时也不能为0,出现这种情况应该重新生成
    
     3、四则运算表达式计算,分为二元运算和三元运算,三元运算在二元的基础上进行,分别计算不同的情况(后悔没有使用逆波兰式计算,写的手都酸了)
    
     4、将所有的数值都转为分数形式,计算时放入数组容器,第一个元素放分数前的整数,第二个元素放分子,第三个元素放分母
    5、重复题目判断,根据不同运算符的顺序,将算式化归为统一形式,放入容器,先比较运算符是否相同,相同之后比较运算数是否相同,相同则重复

    代码说明

    测试运行

     psp记录表

    心得

    这个项目刚刚开始就有一点思路,以为挺简单的,于是马上就开始动手写了,写着写着发现自己深陷泥潭。本来以为最多三个数的运算,这么少,灵机
    一动,把二元的拆掉一个不就变成三元的了嘛,就没打算使用逆波兰进行计算,后来发现不论是在计算方面还是查重方面都出现了许多难题,令头疼不
    已,因为实在是要分太多种情况了,我化归了几种之后或许还有几种没有考虑到,就这样带代码越来越多,从几百行到一千多行,调试越来越困难,到
    现在还是有一些bug没有解决,但是写的好累啊,时间也到了,还是交了吧,教训啊教训啊。以后要做项目一点要先做好分析,把可能遇到的情况都列
    举出来,然后选择最佳的方案解决问题。磨刀不误砍柴工啊。做这次项目收获很大,比如对数据的处理有很多种情况,可以把数据转换成统一的一种格
    式,简化处理。

    代码附上

     https://coding.net/u/int__Sherlock/p/simple_calculate/git/tree/master/

  • 相关阅读:
    [NOIP2018]:旅行(数据加强版)(基环树+搜索+乱搞) HEOI
    关于微服务网关
    管理 API 时要问的关键问题
    如何构建成功的微服务架构
    后端老是不写接口文档?说自己很忙?
    Nginx配置文件详解
    Keepalived 高可用
    Jenkins 调用 Shell 脚本
    Supervisor
    Harbor高可用实现基于haproxy
  • 原文地址:https://www.cnblogs.com/jscq/p/7535708.html
Copyright © 2011-2022 走看看