天天看点

结对作业1

组员

宋浩 201421122118 

许锰棕 201421122105

项目地址

Coding.net

本次作业完成的题目内容

1.界面UI

2.输入运算符范围、运算符个数、题目个数生成题目和答案文件

3.自己出题,保存到指定目录,程序生成答案

4.输入题目和自己的答案文件地址进行校验

需求分析

GUI

  a.分成三个界面,分别为程序出题,自己出题,还有答案校验

  b.可以在程序出题时输入运算数范围,运算符个数,题目个数

  c.界面一目了然,易于使用

记录计算

  a.在本地文本文档记录正确率

  b.在本地文本文档记录错误题目,并给出了正确答案

记录时间

  a.在本地文本文档给出了详细用时

程序设计

结对作业1

代码展示

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();

}

程序运行

结对作业1
结对作业1
结对作业1

小结感受

其实结对还是挺增进同学间的友情的,我觉得编程其实很考验耐心和交流能力,大家在结对过程不断交流自己的思想,这本身就是一个共同成长,彼此了解的过程。

评价合作伙伴

棕哥是一个很不错的人,虽然有时候很叽歪,但是对于事情是很专注的。

PSP

PSP2.1 Personal Software Process Stages Time Predicted Time
Planning 计划 5
· Estimate 估计这个任务需要多少时间
Development 开发 400 750
· Analysis 需求分析 (包括学习新技术) 15
· Design Spec 生成设计文档 -
· Design Review 设计复审
· Coding Standard 代码规范
· Design 具体设计
· Coding 具体编码 200 300
· Code Review 代码复审 30
· Test 测试(自我测试,修改代码,提交修改) 150
Reporting 报告 80
. 测试报告 20
计算工作量
并提出过程改进计划