第四次作业---四则运算升级版(带可视化界面)

本次作业要求来自:https://edu.cnblogs.com/campus/gzcc/GZCC-16SE1/homework/2213

我的github远程仓库的地址:https://github.com/879539613/IT-apk

第一部分:要求

从个人项目出发,将程序改造成一个单机带用户界面(不是控制台)的程序,这个程序最基本要达到:

  • 自动生成题目,单个题目最多不能超过4个运算符,操作数小于100。
  • 用户可以输入答案
  • 若用户输入答案正确,则提示正确;若答案错误,则提示错误,并要提示正确答案是多少。

第二部分:设计

     扩展方向
  1. 可以出表达式里含有负整数(负整数最小不小于-100)的题目,且负数需要带括号,用户输入的结果不用带括号。如: 2*(-4) = -8
  2. 用户答题结束以后,程序可以显示用户答题所用的时间
  3. 用户可以选择出题的个数(最多不能超过5个题目),答题结束可以显示用户答错的题目个数和答对的题目个数
  4. 程序可以出单个整数阶乘的题目:如:4!=24
  5. 程序可以设置皮肤功能,可以改变界面的颜色即可。
    开发环境

 

第三部分:实现

我所扩展的方向与工作量:
 
示例:
 
一.可视化界面的布局与弹框等
复制代码
 
//按钮定义
Timer timertask = new Timer(1000, this);//间隔1秒
this.timer = timertask;//添加时间
Btn_submit =new JButton("提交答案");
Btn_submit.addActionListener(this);
Btn_next =new JButton("下一题");
Btn_next.addActionListener(this);
titlenumber.addActionListener(this);
Btn_start.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(L0);
p2.add(L1);p2.add(titlenumber);
p2.add(L2);p2.add(title);
p2.add(L3);p2.add(useranswer);
p2.add(L4);p2.add(yesOfno);
p2.add(L5);p2.add(result);
p3.add(Btn_start);p3.add(Btn_submit);p3.add(Btn_next);p3.add(Btn_color);
复制代码

 

二.颜色变换,弹出一个颜色面板,可自定义颜色

复制代码
if(e.getSource()==Btn_color)//点击背景按钮
{
Color ch = JColorChooser.showDialog(this, "颜色选择器", this.getBackground());
if (ch != null) {
this.getContentPane().setBackground(ch);
p1.setBackground(ch);
p1.repaint();
p2.setBackground(ch);
p2.repaint();
this.getContentPane().repaint();
}
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setVisible(true);
}
复制代码

 三.阶乘处理,在switch,case中写入了这种方法

private void jisuan2()
    {
        int a=(int)(Math.random()*10+1);
        title.setText(a+"!");
        answer =1;
        for(int i=1;i<=a;i++)
        {
            answer = answer *i;
        }
    }

接第三个实验提出的想法

在逻辑思考中,我认为如果四则运算中有(),可利用switch()方法,用case罗列。

 

第四部分:运行结果

效果1:初始运行页面

 

效果2:自定义颜色面板

 

效果3:根据用户答案对错,颜色随之改变

 

效果4:概率出现阶乘

 

效果5:最终运行结束

 

 

第五部分:解决

问题1:用java写的时候需要导出可执行文件jar包

解决:具体过程参考以下网址:https://jingyan.baidu.com/article/c275f6ba0bbb65e33d7567cb.html

问题2:画板布局时容易错乱

解决:自行学习相关知识,参考别人的面板

问题3:容错率低

解决:需要后期更新

 

第五部分:合作伙伴

姓名:刘嘉南   学号:201606120011   

负责方向:四则运算代码的实现,负数的实现,时间的获取

他的博客地址为:http://www.cnblogs.com/LJNAN/

结对照片:

 

附图:统计表

PSP2.1

Personal Software Process Stages

Time Senior Student(h)

Time(h)

Planning

计划

0.2

0.1

· Estimate

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

6

9

Development

开发

1

1.5

· Analysis

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

0

1

· Design Spec

生成设计文档

0

0

· Design Review

设计复审

0

0

· Coding Standard

代码规范

0.1

0.1

· Design

具体设计

0.2

0.2

· Coding

具体编码

3

5

· Code Review

代码复审

0.2

0.2

· Test

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

0.5

1

Reporting

报告

0

0

Test Report

测试报告

0

0

·workload

计算工作量

0

0

·correction

并提出过程改进计划

0

0

posted @ 2018-10-24 18:05  代码搬运小生  阅读(352)  评论(1编辑  收藏  举报