第五次作业:结对项目-四则运算 “软件”之升级版
这个作业的要求来自于:https://edu.cnblogs.com/campus/gzcc/GZCC-16SE2/homework/2232
我的姓名:郑泽锐 学号201606120071
我结对同伴的姓名:李先灿 学号:201606120073
本次作业的代码在我的github地址:https://github.com/lengdongd/lengdong/tree/master/caculateTest
开发环境:IntelliJ Idea。
我们选取了5个方向,分别为
- 程序可以出带括号的正整数四则运算,支持分数,除法保留两位小数,如:(1/3+1)*2 = 2.67,特别注意:这里是2.67而非2.66,或保持分数形式:8/3
- 可以出表达式里含有负整数(负整数最小不小于-100)的题目,且负数需要带括号,用户输入的结果不用带括号。如: 2*(-4) = -8
- 用户可以选择出题的个数(最多不能超过5个题目),答题结束可以显示用户答错的题目个数和答对的题目个数
- 程序可以出单个整数阶乘的题目:如:4!=24;
- 程序可以设置皮肤功能,可以改变界面的颜色即可;
分工:我负责subject类的编写,功能为生成运算的题目,并且返回各个题目的结果
第一部分:需求分析
从个人项目出发,将程序改装成一个单机带用户界面(不是控制台)的程序,这个程序最基本要达到:
- 生成题目,单个题目最多不能超过4个运算符,操作数小于100;
- 用户可以输入答案;
- 若用户输入答案正确,则提示正确;若答案错误,则提示错误,并要提示正确答案是多少
第二部分:概要设计
(1)sizeyunsuan类算法设计说明:生成窗体,负责显示获取数据等功能;
(2)Subject类算法设计说明:生成题库,计算答案等;
第三部分:详细设计
(1)Subject类算法设计说明:
Subject类构造方法的功能:参数为number:传入用户的题目的数量,在类里面调用其他方法。
(2)star()方法
定义了三个-99 — 99 的随机数,作为运算数,定义了judge作为判断是阶层还是普通算术的变量,定义j k作为符号变量
如果是阶层,就把阶层的算式放在字符串数组subjrct[]里面,然后进行结果运算保存到result里面
生成题目的一部分代码,如果遇到符号的地方,就往左右都添加括号
算法部分截图
第四部分:调试报告
(1)问题:一开始写显示的时候有一些显示不正常,后来发现是赋值没有弄好,在写算法的时候有时候会出 错误,后来发现是一些转换double转int出现的错误,一些低级错误以后要吸取教训
界面:
颜色变换
五、过程耗时估计与时间统计表
PSP2.1 | Personal Software Process Stages | Time Senior Student | Time |
Planning | 计划 | 8 | 6 |
· Estimate | 估计这个任务需要多少时间 | 12 | 10 |
Development | 开发 | 60 | 40 |
· Analysis | 需求分析 (包括学习新技术) | 8 | 10 |
· Design Spec | 生成设计文档 | 0 | 0 |
· Design Review | 设计复审 | 3 | 5 |
· Coding Standard | 代码规范 | 4 | 3 |
· Design | 具体设计 | 10 | 13 |
· Coding | 具体编码 | 35 | 25 |
· Code Review | 代码复审 | 10 | 9 |
· Test | 测试(自我测试,修改代码,提交修改) | 10 | 20 |
Reporting | 报告 | 9 | 6 |
· | 测试报告 | 0 | 0 |
· | 计算工作量 | 5 | 2 |
· | 并提出过程改进计划 | 0 | 0 |
六、结对过程照片