第五次作业—结对项目-四则运算升级版

作业要求来自于https://edu.cnblogs.com/campus/gzcc/GZCC-16SE2/homework/2232

GitHub远程仓库的地址: 

结对同伴:李彬 学号:201606120084     博客地址:  https://www.cnblogs.com/lb2016/

 

 

 

一、从个人项目出发,将程序改装成一个单机带用户界面(不是控制台)的程序,这个程序最基本要达到:
1.生成题目,单个题目最多不能超过4个运算符,操作数小于100。

2.用户可以输入答案

3.若用户输入答案正确,则提示正确;若答案错误,则提示错误,并要提示正确答案是多少。

 

二、下面附有 8 个相互独立的可以扩展的方向。
1.程序可以出带括号的正整数四则运算,支持分数,除法保留两位小数,如:(1/3+1)*2 = 2.67,特别注意:这里是2.67而非2.66,或保持分数形式:8/3
2.可以出表达式里含有负整数(负整数最小不小于-100)的题目,且负数需要带括号,用户输入的结果不用带括号。如: 2*(-4) = -8
3.用户答题结束以后,程序可以显示用户答题所用的时间
4.用户可以选择出题的个数(最多不能超过5个题目),答题结束可以显示用户答错的题目个数和答对的题目个数
5.用户在第一次答题时,需要用户输入用户名,用户下次启动后,程序需要记住用户前一次输入的用户名
6.程序可以出单个整数阶乘的题目:如:4!=24
7.程序可以设置答题时间,时间设置为整数,单位为秒,最大不能超过120秒,若超过了答题时间未答题,则提示:时间已到,不能答题。
8.程序可以设置皮肤功能,可以改变界面的颜色即可。

 

 

三、同学 两两结对,每对学生选取 8 个可扩展方向上面的 4个加以实现。


1.程序可以出带括号的正整数四则运算,支持分数,除法保留两位小数,如:(1/3+1)*2 = 2.67,特别注意:这里是2.67而非2.66,或保持分数形式:8/3
2.可以出表达式里含有负整数(负整数最小不小于-100)的题目,且负数需要带括号,用户输入的结果不用带括号。如: 2*(-4) = -8
3.用户答题结束以后,程序可以显示用户答题所用的时间
4.用户可以选择出题的个数(最多不能超过5个题目),答题结束可以显示用户答错的题目个数和答对的题目个数
5.用户在第一次答题时,需要用户输入用户名,用户下次启动后,程序需要记住用户前一次输入的用户名
6.程序可以出单个整数阶乘的题目:如:4!=24
7.程序可以设置答题时间,时间设置为整数,单位为秒,最大不能超过120秒,若超过了答题时间未答题,则提示:时间已到,不能答题。
8.程序可以设置皮肤功能,可以改变界面的颜色即可。

 

 


四、估计实现所需时间,记录结对编程时间,并写在博客中。

 

PSP2.1

Personal Software Process Stages

预估耗时(分钟)

实际耗时(分钟)

Planning

计划

120

220

· Estimate

估计这个任务需要多少时间

40

200

Development

开发

60

120

· Analysis

需求分析 (包括学习新技术)

30

60

· Design Spec

生成设计文档

0

0

· Design Review

设计复审

5

20

· Coding Standard

代码规范

20

40

· Design

具体设计

30

35

· Coding

具体编码

42

40

· Code Review

代码复审

10

6

· Test

测试(自我测试,修改代码,提交修改)

10

12

Reporting

报告

50

25

Test Report

测试报告

0

0

·workload

计算工作量

40

40

·correction

并提出过程改进计划

0

0

 

 部分代码:

public void inputFrame() {      //  初始化窗口

        this.setTitle("小学四则运算自动出题软件初版");
        this.initWindowSize();
        mainPanel.setLayout(cardLayout);
        this.add(mainPanel);
        this.setVisible(true);//可视
    }
 

 

//mainPanel中一共有两个子panel


private JPanel outPanel;

private JPanel menuPanel;
 
private void initMenuPanel() {                                                                                      //  初始化菜单栏
menuPanel = new JPanel(null);
menuPanel.setBounds(0, 0, 650, 30);
menuPanel.setBorder(BorderFactory.createLineBorder(Color.blue));

this.initMenuControl();
this.add(menuPanel);

//menuPanel中加进三个imageLabal并设置鼠标监听
ImageLabel edit=new ImageLabel();
edit.setImageUrl("image/add.jpg");
edit.setBounds(starX+150,starY+2,26,26);
//edit.setBorder(BorderFactory.createLineBorder(Color.red));
edit.addMouseListener(new MouseListener() {
@Override
public void mouseClicked(MouseEvent e) {
if(num<8) {
num++;
qustionNum.setText("题数:" + num);
}
}
@Override
public void mousePressed(MouseEvent e) {
}
@Override
public void mouseReleased(MouseEvent e) {

}
@Override
public void mouseEntered(MouseEvent e) {
}
@Override
public void mouseExited(MouseEvent e) {
}
});

menuPanel.add(edit);

ImageLabel play=new ImageLabel();
play.setImageUrl("image/play.jpg");
play.setBounds(starX+200,starY+2,26,26);
//edit.setBorder(BorderFactory.createLineBorder(Color.red));
play.addMouseListener(new MouseListener() {
@Override
public void mouseClicked(MouseEvent e) {
initLib();
PrintQuestion();
}
@Override
public void mousePressed(MouseEvent e) {
}
@Override
public void mouseReleased(MouseEvent e) {

}
@Override
public void mouseEntered(MouseEvent e) {
}
@Override
public void mouseExited(MouseEvent e) {
}
});

menuPanel.add(play);


ImageLabel ok=new ImageLabel();
ok.setImageUrl("image/ok.jpg");
ok.setBounds(starX+250,starY+2,26,26);
//edit.setBorder(BorderFactory.createLineBorder(Color.red));
ok.addMouseListener(new MouseListener() {
@Override
public void mouseClicked(MouseEvent e) {
submit();
}
@Override
public void mousePressed(MouseEvent e) {
}
@Override
public void mouseReleased(MouseEvent e) {

}
@Override
public void mouseEntered(MouseEvent e) {
}
@Override
public void mouseExited(MouseEvent e) {
}
});

menuPanel.add(ok);
}

  

 

运行截图:

 

通过加号按钮来设置题目数量,最大为8

 

 

 播放按钮用来生成题目并显示

 

用户在输入框输入答案点击ok按钮提交,系统给出正确答案

 

 

结对照片:

 

 

 

 

总结:

软件设计过于简单,整体存在很大的改进空间。另外通过这次结对项目,我对于结对编程有了更深的理解。

 

posted on 2018-10-29 13:45  大大大大猫呀  阅读(127)  评论(0编辑  收藏  举报

导航