结对作业1
组员
宋浩 201421122118
许锰棕 201421122105
项目地址
本次作业完成的题目内容
1.界面UI
2.输入运算符范围、运算符个数、题目个数生成题目和答案文件
3.自己出题,保存到指定目录,程序生成答案
4.输入题目和自己的答案文件地址进行校验
需求分析
GUI
a.分成三个界面,分别为程序出题,自己出题,还有答案校验
b.可以在程序出题时输入运算数范围,运算符个数,题目个数
c.界面一目了然,易于使用
记录计算
a.在本地文本文档记录正确率
b.在本地文本文档记录错误题目,并给出了正确答案
记录时间
a.在本地文本文档给出了详细用时
程序设计
代码展示
UI界面
package com.xumz.ui;
import java.awt.BorderLayout;
import java.awt.Container;
import java.awt.TextField;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTabbedPane;
import com.xumz.ui.listen.AnswerButtonActionListener;
import com.xumz.ui.listen.CheckButtonActionListener;
import com.xumz.ui.listen.MathButtonActionListener;
public class MathFactoryJframe extends JFrame {
/**
* Version 1.0 2017098
*/
private static final long serialVersionUID = 2017098;
public TextField field1;
public TextField field2;
public TextField field3;
public TextField field5;
public TextField field7;
public TextField field8;
public MathFactoryJframe() {
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);// 关闭按钮的动作为
// setSize(400, 300);// 设置窗口大小
setBounds(300, 200, 300, 300);// 位置 大小
setResizable(false);// 设置不
setVisible(true);// 设置窗口为可见的,默认为不
initPanel();
}
private void initPanel() {
Container container = this.getContentPane();
JTabbedPane tabbedPane = new JTabbedPane(JTabbedPane.TOP);
container.add(tabbedPane);
JPanel panel1 = new JPanel(new BorderLayout());
tabbedPane.addTab("生成题目与答案", panel1);
JButton mathButton = new JButton("生成答案");
panel1.add(mathButton);
mathButton.setBounds(80, 140, 100, 20);
JLabel jLabel1 = new JLabel("运算数范围:");
field1 = new TextField();
JLabel jLabel2 = new JLabel("运算符个数:");
field2 = new TextField();
JLabel jLabel3 = new JLabel("题目个数:");
field3 = new TextField();
JLabel jLabel4 = new JLabel("生成题目与答案文件:");
jLabel1.setBounds(70, 20, 100, 20);
field1.setBounds(150, 20, 50, 20);
jLabel2.setBounds(70, 50, 100, 20);
field2.setBounds(150, 50, 50, 20);
jLabel3.setBounds(70, 80, 100, 20);
field3.setBounds(150, 80, 50, 20);
jLabel4.setBounds(70, 110, 100, 20);
panel1.add(jLabel1);
panel1.add(field1);
panel1.add(jLabel2);
panel1.add(field2);
panel1.add(jLabel3);
panel1.add(field3);
panel1.add(jLabel4);
JPanel panel2 = new JPanel(new BorderLayout());
tabbedPane.addTab("生成答案", panel2);
JButton answerButton = new JButton("生成答案");
answerButton.setBounds(80, 140, 100, 20);
panel2.add(answerButton);
JLabel jLabel5 = new JLabel("题目文件地址:");
field5 = new TextField();
JLabel jLabel6 = new JLabel("解析题目,生成答案:");
jLabel5.setBounds(0, 20, 100, 20);
field5.setBounds(70, 50, 150, 20);
jLabel6.setBounds(70, 110, 100, 20);
panel2.add(jLabel5);
panel2.add(field5);
panel2.add(jLabel6);
JPanel panel3 = new JPanel(new BorderLayout());
tabbedPane.addTab("校验", panel3);
JButton checkButton = new JButton("校验");
checkButton.setBounds(80, 140, 100, 20);
panel3.add(checkButton);
JLabel jLabel7 = new JLabel("题目文件地址:");
field7 = new TextField();
JLabel jLabel8 = new JLabel("答案文件地址:");
field8 = new TextField();
JLabel jLabel9 = new JLabel("解析校验:");
jLabel7.setBounds(0, 10, 100, 20);
field7.setBounds(70, 40, 150, 20);
jLabel8.setBounds(0, 70, 100, 20);
field8.setBounds(70, 90, 150, 20);
jLabel9.setBounds(0, 160, 100, 20);
panel3.add(jLabel7);
panel3.add(field7);
panel3.add(jLabel8);
panel3.add(field8);
panel3.add(jLabel9);
mathButton.addActionListener(new MathButtonActionListener(this));
answerButton.addActionListener(new AnswerButtonActionListener(this));
checkButton.addActionListener(new CheckButtonActionListener(this));
}
public static void main(String[] args) {
new MathFactoryJframe();
}
}
程序运行
小结感受
其实结对还是挺增进同学间的友情的,我觉得编程其实很考验耐心和交流能力,大家在结对过程不断交流自己的思想,这本身就是一个共同成长,彼此了解的过程。
评价合作伙伴
棕哥是一个很不错的人,虽然有时候很叽歪,但是对于事情是很专注的。
PSP
PSP2.1 |
Personal Software Process Stages |
Time Predicted |
Time |
Planning |
计划 |
5 |
5 |
· Estimate |
估计这个任务需要多少时间 |
5 |
5 |
Development |
开发 |
400 |
750 |
· Analysis |
需求分析 (包括学习新技术) |
15 |
15 |
· Design Spec |
生成设计文档 |
- |
- |
· Design Review |
设计复审 |
- |
- |
· Coding Standard |
代码规范 |
- |
- |
· Design |
具体设计 |
- |
- |
· Coding |
具体编码 |
200 |
300 |
· Code Review |
代码复审 |
30 |
30 |
· Test |
测试(自我测试,修改代码,提交修改) |
150 |
150 |
Reporting |
报告 |
80 |
150 |
. |
测试报告 |
20 |
20 |
. |
计算工作量 |
- |
- |
. |
并提出过程改进计划 |
- |
- |