结对项目-四则运算 “软件”之升级版
这个作业要求来自于:https://edu.cnblogs.com/campus/gzcc/GZCC-16SE2/homework/2232
结对对象博客是:https://www.cnblogs.com/CM33/p/9866639.html
结对同学:陈华杰 201606120081
开发环境:lntellij IDEA
语言:java
一、需求分析
1、从个人项目出发,将程序改装成一个单机带用户界面(不是控制台)的程序,这个程序最基本要达到:
- 生成题目,单个题目最多不能超过4个运算符,操作数小于100。
- 用户可以输入答案
- 若用户输入答案正确,则提示正确;若答案错误,则提示错误,并要提示正确答案是多少。
2、拓展方向
- 程序可以出带括号的正整数四则运算,支持分数,除法保留两位小数,如:(1/3+1)*2 = 2.67,特别注意:这里是2.67而非2.66,或保持分数形式:8/3
- 可以出表达式里含有负整数(负整数最小不小于-100)的题目,且负数需要带括号,用户输入的结果不用带括号。如: 2*(-4) = -8
- 用户答题结束以后,程序可以显示用户答题所用的时间
- 用户可以选择出题的个数(最多不能超过5个题目),答题结束可以显示用户答错的题目个数和答对的题目个数
- 用户在第一次答题时,需要用户输入用户名,用户下次启动后,程序需要记住用户前一次输入的用户名
- 程序可以出单个整数阶乘的题目:如:4!=24
- 程序可以设置答题时间,时间设置为整数,单位为秒,最大不能超过120秒,若超过了答题时间未答题,则提示:时间已到,不能答题。
- 程序可以设置皮肤功能,可以改变界面的颜色即可。
二、详细设计
原本是想用js+html+css来完成的后来想了想我们也不会还是想多了还是用java写吧 T T.
题目数:
if (n > 5 || n < 1) {
JOptionPane.showMessageDialog(null, "题目个数≥1, ≤5", "注意", JOptionPane.INFORMATION_MESSAGE);
} else {
B1.setEnabled(false);
B2.setEnabled(true);
B3.setEnabled(true);
L2.setText("你的答案 :");
L5.setText("答案不为空!");//设置文本
L5.setFont(new Font("幼圆", Font.BOLD, 12));
L5.setForeground(Color.magenta);
T1.setText(null);
star();
}
换肤功能代码:
if (e.getSource() == B4)//换皮肤 { B4.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent cc) { Color ch = JColorChooser.showDialog(p1, "背景颜色", p1.getBackground()); if (ch != null) { p1.setBackground(ch); p1.repaint();
三、分工合作
我主要负责换肤功能还有大于等于一个小于五个题目的功能
四 、运行截图
五、项目的时间规划
PSP2.1 | Personal Software Process Stages | Time Senior Student |
Timeminute |
Planning | 计划 | 3 | 2.5 |
Estimate | 估计这个任务需要多少时间 | 15 | 16 |
Development | 开发 | 8 | 7.5 |
Analysis | 需求分析 | 2 | 1.5 |
Design Spec | 生成设计文档 | 2 | 1 |
Design Review | 设计复审 | 1 | 0.5 |
Coding Standard | 代码规范 | 1 | 1 |
Design | 具体设计 | 5 | 6 |
Coding | 具体编码 | 13 | 12 |
Code Review | 代码复审 | 2 | 2 |
Test | 测试 | 2 | 2 |
Reporting | 报告 | 1 | 1.5 |
测试报告 | 0 | 0 | |
计算工作量 | 2 | 1.5 | |
并提出过程改进计划 | 0.5 | 0.5 |
六、项目的感想
刚开始接触结对编程对于很多方式都不习惯,双方生活习惯不一样,有很多要磨合的地方。代码规范和实现由于代码基础不好,也花费了很多时间,还需要多费功夫。