20175325 第二周结对编程项目 四则运算

20175325 第二周结对编程项目 四则运算

一、需求分析:

  • 实现一个命令行程序,要求:
  • 自动生成小学四则运算题目(加、减、乘、除)
  • 支持整数
  • 支持多运算符(比如生成包含100个运算符的题目)
  • 支持真分数
  • 统计正确率
  • 题目去重
  • 能多次生成四则运算题目
  • 能根据用户输入的数字生成四则运算的题目数量
  • 多语言支持:
  • 简体中文, 繁體中文, English
  • 文件:
  • 处理生成题目并输出到文件
  • 完成题目后从文件读入并判题
  • 用户能够选择是否开始答题

二、 设计思路:

  • 产生随机数并且考虑符号的优先级。
  • 能实现整数的四则运算
  • 再实现分数的四则运算,分子和分母都取0-100范围以内的整数;
  • 根据输入的两个参数决定表达式的数量及四则运算的范围,随机生成其范围内的自然数及运算符。
  • 能随机插入左括号并在相应的位置插入右括号。
  • 根据四则运算规律进行四则运算,能判断结果是否正确,并输出正确率。

三、UML类图:

四、结果测试:

  • 运行结果:


  • 文件截图:

五、码云链接:
https://gitee.com/sgm5/text1/commit/41bc7337f3f7066853056a8499178379889c11e9

六、实现过程中的关键代码解释:

  • 下列是如处理分数计算过程
public void Fraction(String FenShu) {
        String[] File = null;
        if (FenShu.contains("+")) {
            File = FenShu.split("\\+");
            Calculate(File, 0);
        } else if (FenShu.contains("-")) {
            File = FenShu.split("-");
            Calculate(File, 1);
        } else if (FenShu.contains("x")) {
            File = FenShu.split("\\x");
            Calculate(File, 2);
        } else if (FenShu.contains("÷")) {
            File = FenShu.split("÷");
            Calculate(File, 3);
        }
    }
  • 插入括号的方法
  • 法则
    1.如果遇到数字,我们就直接将其输出。
    2.如果遇到非数字时,若栈为空或者该符号为左括号或者栈顶元素为括号,直接入栈。
    3.如果遇到一个右括号,持续出栈并输出符号,直到栈顶元素为左括号,然后将左括号出栈(注意,左括号只出栈,不输出),右括号不入栈。
    4.如果遇到运算符号且栈非空,查看栈顶元素, 如果栈顶元素的运算优先级大于或者等于该运算符号,则持续出栈,直到栈顶元素优先级小于该运算符。最后将该元素入栈。
    5.如果我们读到了输入的末尾,则将栈中所有元素依次弹出。
if (first == '(') {
            return true;
        }
        switch (symbol) {
            case '(':
                return true;
            case 'x': {
                if (first == '+' || first == '-')
                    return true;
                else
                    return false;
            }
            case '÷': {
                if (first == '+' || first == '-')
                    return true;
                else
                    return false;
            }
            case '+':
                return false;
            case '-':
                return false;
            case ')':
                return false;
            case '=':
                return false;
            default:
                break;
        }

七、总结与对队友的评价:
本周我们主要对上周代码进行了修改和完善,在程序里加入了分数的算法。我们两个人是室友,结对比较方便,讨论的时间也更加地充足,对于队友的想法也能及时地了解并沟通,当我们两个有分歧的时候、在两人都不明白的代码或者知识时,都能够各自去查找并且将所得到的解答相互沟通,从而达到了事半功倍的效果,对于“领航员”和“驾驶员”的角色,我们总是轮流着来,相互学习,相互吸收优点。通过这次结对作业,加深了我对JAVA的知识印象,也弥补了之前学习中的一些不足

八、PSP:

PSP2.1 Personal Software Process Stages 预估耗时(分钟) 实际耗时(分钟)
Planning 计划 60 100
·Estimate · 估计这个任务需要多少时间 400 550
Development 开发 150 250
·Analysis ·需求分析 (包括学习新技术) 30 45
·Design Spec · 生成设计文档 30 50
·Design Review ·设计复审 (和同事审核设计文档) 30 50
·Coding Standard ·代码规范 (为目前的开发制定合适的规范) 20 30
· Design · 具体设计 60 100
· Coding · 具体编码 150 200
·Code Review ·代码复审 20 45
·Test ·测试(自我测试,修改代码,提交修改) 120 200
Reporting 报告 60 80
·Test Report · 测试报告 15 25
·Size Measurement ·计算工作量 10 20
·Postmortem &Process Improvement Plan · 事后总结, 并提出过程改进计划 25 40
合计 1180 1785

原文地址:https://www.cnblogs.com/sgm5/p/10703283.html

时间: 2025-02-01 14:45:45

20175325 第二周结对编程项目 四则运算的相关文章

20175325 第一周结对编程项目 四则运算

20175325 第一周结对编程项目 四则运算 一.需求分析: 能根据用户输入的数字生成四则运算的题目数量 能自动生成规定范围内的四则运算题目(加.减.乘.除) 能够判断四则运算的结果是否正确并进行数量统计 能多次生成四则运算题目 支持多运算符 用户能够选择是否开始答题 统计题目正确率 题目去重 多语言支持:简体中文, 繁體中文, English 文件: 处理生成题目并输出到文件 完成题目后从文件读入并判题 二.设计思路: 和之前所学的C语言中的四则运算方法作类比,在JAVA中运用了C语言里的一

20172327 结对编程项目-四则运算 第二周 阶段总结

20172327 结对编程项目-四则运算 第二周 阶段总结 结对编程项目-四则运算 第二周 输出阶段总结博客 结对对象: 学号:20172317 姓名:蒋子行 伙伴第二周博客地址: 学号:20172320 姓名:李闻洲 伙伴第二周博客地址: 担任角色: 驾驶员:蒋子行 副驾驶:李闻洲 马瑞蕃 小组结对编程的photo: 项目中自己负责的部分: 我在项目中真的没啥贡献,项目主要由祥哥主刀,我和李闻洲就是打杂的. 个人贡献度划分: 我在项目中真的没啥贡献,项目主要由祥哥主刀,我就是打杂的,提点建议和

20175311胡济栋 2018-2019-2《Java程序设计》结对编程项目-四则运算 第二周 阶段性总结

20175311胡济栋 2018-2019-2<Java程序设计>结对编程项目-四则运算 第二周 阶段性总结 需求分析 这是利用栈来设计一个计算器的第二阶段总结. 自动生成四则运算的题目(加.减.乘.除) 需要实现计算结果的输出 将正确的计算结果与用户输入的计算结果进行比较得出最终的正确率 之前编写的程序还有很多问题,这周主要对这些问题进行改进和升级,我们成功实现了这些功能. 设计思路 1. 首先我们需要编写随机生成数字和随机生成符号的代码,把他们编写好后保存 2. 我们需要利用之前编写好的随

20165202 结对编程项目-四则运算 第二周

一.码云链接 二.需求分析 实现一个命令行程序,要求: 自动生成小学四则运算题目(加.减.乘.除) 支持整数 支持多运算符(比如生成包含100个运算符的题目) 支持真分数 统计正确率 三.设计思路(同时输出UML类图) 这周的总体设计要在上周的基础上深化,上周我们的代码没有用到中缀表达式转后缀表达式,没有用到栈,所以这周不仅要对上一周的代码进行修改,而且还要在此基础上完成更深层的对真分数的要求. 实现四则运算中后缀转换类 实现四则运算后缀表达式计算类 实现四则运算真分数计算类 实现四则运算生成题

20165330 结对编程项目-四则运算 第二周

需求分析 实现一个命令行程序,要求:自动生成小学四则运算题目(加.减.乘.除) 可实现多个运算符一起运算 可以真分数形式输出结果 测试结果的正确性 统计题目完成数并计算正确率 设计思路 实验首先是完成一个计算器的功能,可以实现简单的+.-.*./运算,在这里设计一个主类生成随机数,生成题目,并判断正确率 实现多运算符,编入四个类分别实现整数运算.真分数运算.判断结果正确并计算正确率 利用JUnit检测非法输入 设计测试类,利用JUnit测试整数类与分数类的四则运算 UML类图 功能截图 Juni

20165227 结对编程项目-四则运算 第一周

20165227 结对编程项目-四则运算 第一周 需求分析 自动生成小学四则运算题目(加.减.乘.除) 支持整数 支持多运算符(比如生成包含100个运算符的题目) 支持真分数 统计题目完成数并计算正确率 设计思路 设计一个计算器能够实现简单的+.-.*./运算 通过编程实现多运算符计算.整数运算.真分数运算.判断结果等 进行junit检测 设计一个程序主类,达到生成随机数.题目.并判断正误 测试 UML类图 功能截图 结对感受 因为同为室友,所以结对起来更轻松方便,讨论的时间也更加地充足,对于队

20175212童皓桢 结对编程项目-四则运算 第一周

20175212童皓桢 结对编程项目-四则运算 第一周 需求分析 实现一个命令行程序,要求自动生成小学四则运算题目(加减乘除) 支持多运算符 测试结果的正确性,用户输入错误时给出正解 统计题目正确率 设计思路 首先要能够按照按人的一般习惯,生成自左向右计算的加减乘除算式. 随机生成多运算符,并随机生成相对应个数的整数 利用eval方法直接计算随机生成的算式的值,并和用户的输入作比较 判断正确率 设计测试类,利用JUnit测试整数的四则运算 UML类图 关键代码 如何生成符合要求格式的运算式 fo

20175209王梓鸿 结对编程项目—四则运算 第一周 阶段总结

20175209王梓鸿 结对编程项目-四则运算 第一周 阶段总结 一.需求分析 1.题目要求: 实现一个命令行程序,要求: 自动生成小学四则运算题目(加.减.乘.除) 支持整数 支持多运算符(比如生成包含100个运算符的题目) 支持真分数 统计正确率 扩展需求 文件 处理生成题目并输出到文件 完成题目后从文件读入并判题 多语言支持简体中文,繁體中文,English 生成题目去重 二.设计思路 1.编写背景及完成情况 在开始写设计思路之前,我觉得应该说一下我们编写的情况(可能有些跑题).这次结对的

20165230 结对编程项目-四则运算 整体总结

20165230 结对编程项目-四则运算 整体总结 一.需求分析 随机生成题目 生成的题目个数从命令行输入 用户可选择生成不同难度的题目,比如通过参数指定: (1) 运算符个数范围 (2) 运算符限定(小学一年级题目只生成 + - 题目) 能多次生成题目 题目运算(判题) 支持多运算符 支持整数 支持真分数 题目合法性判断 可独立使用 可用于测试生成题目的正确性 扩展需求 题目去重 支持多语言 处理生成题目并输出到文件 完成题目后从文件读入并判题 二.设计思路 设计一个IntNumber类,用来