结对项目——四则运算 “软件”之升级版

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

我的github远程仓库的地址为:https://github.com/201606120068/068-Git

结对同伴的学号:201606120068

结对同伴的姓名:郑达

结对同伴的github远程仓库的地址为:https://github.com/201606120068/068-Git


 一、开发环境

IntelliJ IDEA 2018.2.2

系统:Window 10 x64. 


 二、需求分析

1.原始需求:

生成题目,单个题目最多不能超过4个运算符,操作数小于100。

用户可以输入答案

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

 


 三、扩展要求

程序可以出带括号的正整数四则运算,支持分数,除法保留两位小数,如:(1/3+1)*2 = 2.67,特别注意:这里是2.67而非2.66,或保持分数形式:8/3

可以出表达式里含有负整数(负整数最小不小于-100)的题目,且负数需要带括号,用户输入的结果不用带括号。如: 2*(-4) = -8

用户答题结束以后,程序可以显示用户答题所用的时间

用户可以选择出题的个数(最多不能超过5个题目),答题结束可以显示用户答错的题目个数和答对的题目个数

用户在第一次答题时,需要用户输入用户名,用户下次启动后,程序需要记住用户前一次输入的用户名 

程序可以出单个整数阶乘的题目:如:4!=24

程序可以设置答题时间,时间设置为整数,单位为秒,最大不能超过120秒,若超过了答题时间未答题,则提示:时间已到,不能答题。

程序可以设置皮肤功能,可以改变界面的颜色即可。

 


 四、方向选择

程序可以设置答题时间,时间设置为整数,单位为秒,最大不能超过120秒,若超过了答题时间未答题,则提示:时间已到,不能答题。

用户在第一次答题时,需要用户输入用户名,用户下次启动后,程序需要记住用户前一次输入的用户名 

用户可以选择出题的个数(最多不能超过5个题目且不少于1个),

用户答题结束以后,程序可以显示用户答题所用的时间

答题结束可以显示用户答错的题目个数和答对的题目个数

1  if(n>5||n<1)

2                 {

3                     //如果题目个数大于5或小于1,会弹出提示框

4                     JOptionPane.showMessageDialog(null,"输入的题目个数不能大于5或者小于1","注意",JOptionPane.INFORMATION_MESSAGE);

5                 }

 


 五、项目核心代码:

class fouroperation extends JFrame implements ActionListener{
JMenuBar menubar = new JMenuBar();
JMenu LoginMenu = new JMenu("系统登录");
JMenu UserMangeMenu = new JMenu("用户管理");
JMenu backColorMenu = new JMenu("背景功能");
JMenu HelpMenu = new JMenu("关于");

JTextField titlenumber;//提示输入的个数
JTextField t;//随机题目
JTextField useranswer;//用于输入答案
JTextField rightOflase;//判断对错
JTextField ShowTime;//显示时间
JTextField settingtime;//设置时间
private Timer tmr;
JLabel L1;//标签1-6
JLabel L2;
JLabel L3;
JLabel L4;
JLabel L5;
JLabel L6;
JButton Btn1, btn2,btn3,colorchangebtn;
public static JPanel p1;
public JPanel p2;
public JPanel p3;//面板容器
String parten="0.00";//设置格式为“0.00”
DecimalFormat decimal=new DecimalFormat(parten);//数字进行快速格式化,取2位小数
String str;
double seconds;//时间“秒”
long startTime,endTime;
char[]ch={'+','-','*','÷'};//存放加减乘除的符号数组
float answer =0;//程序判断的答案
int usertitlenumber;//用户输入的题目
int count=0;//已经 出的题目
int right=0;//计算答对的题目数
int wrong=0;//计算答错的题目数
fouroperation()
{
super("郑达、谢斌揆简单四则运算");

//添加菜单项至菜单上

JMenuItem userLoginMenu= new JMenuItem("用户登录");
userLoginMenu.addActionListener(new LoginActionListener());
JMenuItem exitLoginMenu= new JMenuItem("退出");
// JMenuItem myBackgroudColor=new JMenuItem("背景颜色改变");

exitLoginMenu.addActionListener(new exitmyitem());
LoginMenu.add(userLoginMenu);
LoginMenu.add(exitLoginMenu);
// backColorMenu.add(myBackgroudColor);
menubar.add(LoginMenu);
menubar.add(UserMangeMenu);
menubar.add(backColorMenu);
menubar.add(HelpMenu);
//将菜单加入至菜单栏

this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//建立窗口,不能放大
this.setSize(400,350);//窗口大小
L1=new JLabel("输入选择题(不能超过5个):");
L2=new JLabel("时间:");
L3=new JLabel("设置时间(时间不超过120秒):");//设置时间提示
L4=new JLabel("随机题目:");//显示题目
L5=new JLabel("输入答案:");
L6=new JLabel("判断对错:");
titlenumber =new JTextField(15);
Btn1 =new JButton("开始");
colorchangebtn=new JButton("背景颜色改变");
colorchangebtn.addActionListener(this);
t=new JTextField(20);
useranswer =new JTextField(25);
useranswer.addActionListener(this);
rightOflase =new JTextField(25);
ShowTime =new JTextField(15);
ShowTime.addActionListener(this);
settingtime =new JTextField(5);
settingtime.addActionListener(this);
Timer timertask = new Timer(1000, this);//间隔1秒
this.tmr = timertask;//添加时间
btn3 =new JButton("提交答案");
btn3.addActionListener(this);
btn2 =new JButton("下一题");
btn2.addActionListener(this);
titlenumber.addActionListener(this);
Btn1.addActionListener(this);
p1=new JPanel();
p2=new JPanel();
p3=new JPanel();
getContentPane().add(p1,"North");
getContentPane().add(p2,"Center");
getContentPane().add(p3,"South");
p1.add(colorchangebtn);
p1.add(menubar);

p2.add(L3);
p2.add(settingtime);p2.add(L1);p2.add(titlenumber);p2.add(Btn1);
p2.add(L4);p2.add(t);p2.add(L5);p2.add(useranswer);p2.add(L6);p2.add(rightOflase);
p3.add(L2);p3.add(ShowTime);p3.add(btn3);p3.add(btn2);
this.setResizable(false);//设置不可以改变大小

this.setVisible(true);//设置窗口可见
}


 六、结对同伴

 姓名:郑达

他的博客地址:https://github.com/201606120068/068-Git

 结对学习照片:

 


 

七、程序运行结果演示

 


 

八、总结

        这次的结对项目比上次的个人项目要难很多。但是在和队友的合作中,不断解决项目中的问题,也让我们的能力得到不断的提升。结对子不但让我们能相互学习,看到自己的不足和长处,这样我们就能各施其职,共同完成这个项目!!!

 


 

九、结对软件过程耗时估计与统计表

PSP2.1

Personal Software Process Stages

Time Senior Student(h)

Time(h)

Planning

计划

3

6

· Estimate

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

10

15

Development

开发

8

10

· Analysis

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

2

6

· Design Spec

生成设计文档

2

4

· Design Review

设计复审

1

3

· Coding Standard

代码规范

0.5

1.5

· Design

具体设计

6

8

· Coding

具体编码

10

13

· Code Review

代码复审

2

3

· Test

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

2

3

Reporting

报告

1

5

·

测试报告

0

0

·

计算工作量

3

6

·

并提出过程改进计划

0

0

posted @ 2018-10-29 12:45  xbk6  阅读(152)  评论(0编辑  收藏  举报