个人工作流程计应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);
}
}

运行结果:

 

posted @ 2021-04-11 13:13  智凯义  阅读(46)  评论(0编辑  收藏  举报