结对作业1

 

组员


宋浩 201421122118 

许锰棕 201421122105

项目地址


Coding.net

本次作业完成的题目内容


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

.

计算工作量

-

-

.

并提出过程改进计划

-

-

posted @ 2017-10-21 21:27  穿靴子的狗  阅读(251)  评论(0编辑  收藏  举报