个人工作流程计应192六组辛红运
PSP计划表格:
PSP阶段 |
预计花费时间(小时) | 实际花费时间 |
计划 | 3 | 3 |
明确需求和其他相关因素,估计每个阶段的时间成本 | 2 | 2 |
开发 | 25 | 31 |
需求分析 | 1 | 2 |
代码规范 | 1 | 1 |
具体设计 | 3 | 4 |
具体编码 | 3 | 4 |
代码复审 | 1 | 2 |
测试(自测、修改代码、提交修改) |
3 | 4 |
需求分析:
(1)支持真分数和整数的运算;
(2)能够判断对错,且输出正确答案;能够计算正确率并输出;
(3)将程序弄成GUI;
(4)计时器功能,点击开始计时时,能显示用户开始答题后的消耗时间;
代码实现:
1、将生成题目存储到.txt文件中
static void create(HashSet hashSet) throws IOException {
PrintWriter pw = new PrintWriter(new FileWriter("D:\\result.txt"));
int sum = 1;
for (Iterator it = hashSet.iterator(); it.hasNext();) {
pw.println(it.next());
sum++;
}
pw.close();
PrintWriter pw2 = new PrintWriter(new FileWriter("D:\\无答案题.txt"));
int sum1 = 1;
for (Iterator it = hashSet.iterator(); it.hasNext();) {
String next = (String) it.next();
String[] split = next.split("= ");
pw2.println(split[0] + "=");
sum1++;
}
pw2.close();
}
2、生成随机数和随机符号
static int number() { // 返回一个随机数
return (int) (1 + Math.random() * (range - 1 + 1));
}
static char sign() {// 返回一个符号
char symbol[] = { '+', '-', '*', '/' };
int a = (int) (Math.random() * (4));
int b = (int) (Math.random() * (2));
if (embody == 1) {
return symbol[a];
} else {
return symbol[b];
}
}
3、计算结果
static String summation(int a, char b, int c) { // 获取 a b c 计算出結果
if (b == '+') {
return (a + c) + "";
}
if (b == '-') {
return (a - c) + "";
}
if (b == '*') {
return (a * c) + "";
}
if (b == '/') {
DecimalFormat df = new DecimalFormat("0.00");
double sum = (double) a / c;
String e = df.format(sum);
return e;
}
return c + "";
}
4,对应的JUI图形界面
import java.awt.EventQueue;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextArea;
import javax.swing.JTextField;
import javax.swing.border.EmptyBorder;
public class si extends JFrame {
private JPanel contentPane;
private JTextField textField;
/**
* Launch the application.
*/
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
si frame = new si();
frame.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
/**
* Create the frame.
*/
public si() {
setTitle("\u56DB\u5219\u8FD0\u7B97");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setBounds(100, 100, 450, 300);
contentPane = new JPanel();
contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
setContentPane(contentPane);
contentPane.setLayout(null);
JLabel label = new JLabel("\u8F93\u5165\u4F60\u8981\u751F\u6210\u9898\u76EE\u7684\u6570\u91CF");
label.setBounds(10, 28, 142, 28);
contentPane.add(label);
textField = new JTextField();
textField.setBounds(151, 33, 110, 23);
contentPane.add(textField);
textField.setColumns(10);
JButton button = new JButton("\u52A0\u6CD5");
button.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
}
});
button.setBounds(10, 86, 93, 23);
contentPane.add(button);
JButton button_1 = new JButton("\u51CF\u6CD5");
button_1.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
}
});
button_1.setBounds(108, 86, 93, 23);
contentPane.add(button_1);
JButton button_2 = new JButton("\u4E58\u6CD5");
button_2.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
}
});
button_2.setBounds(211, 86, 93, 23);
contentPane.add(button_2);
JButton button_3 = new JButton("\u9664\u6CD5");
button_3.setBounds(313, 86, 93, 23);
contentPane.add(button_3);
JLabel label_1 = new JLabel("\u9009\u62E9\u9898\u76EE\u7C7B\u578B");
label_1.setBounds(10, 66, 110, 15);
contentPane.add(label_1);
JTextArea textArea = new JTextArea(20,20);
textArea.setRows(3);
textArea.setBounds(10, 135, 396, 116);
contentPane.add(textArea);
}
}
运行结果: