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

本次作业要求来自: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. 程序可以设置皮肤功能,可以改变界面的颜色即可。
    开发环境

 

第三部分:实现

我所扩展的方向与工作量:
 
示例:
 
  1. 可以出表达式里含有负整数(负整数最小不小于-100)的题目,且负数需要带括号,用户输入的结果不用带括号。如: 2*(-4) = -8
  2. 用户答题结束以后,程序可以显示用户答题所用的时间
  3. 用户可以选择出题的个数(最多不能超过5个题目),答题结束可以显示用户答错的题目个数和答对的题目个数
一.整数(负整数最小不小于-100)的题目,且负数需要带括号,用户输入的结果不用带括号。
 private void jisuan3()
    {
        int a=(int)(Math.random()*99+1)*-1;
        int b=(int)(Math.random()*10+1);
       int j=(int)(Math.random()*1);
       int i=(int)(Math.random()*3);//0、1加减//2、3乘除
        if(j==0){
            title.setText(a+String.valueOf(ch[i])+" "+b);
            jisuan(i,a,b);
        }
        else {
            title.setText(b+String.valueOf(ch[i])+" "+"("+a+") ");
            jisuan(i,b,a);
        }

    }

  

二.时间

            startTime= System.currentTimeMillis(); //获取开始时间

  

     timer.stop();
    double endTime= System.currentTimeMillis() ;//获取结束时间
     seconds=endTime-startTime;//计算时间

  

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

  try
            {

                int n2=5;
                if(n2<(Integer.parseInt(titlenumber.getText())))
                {//当选择题目个数超过5个,弹出对话框
                    JOptionPane.showMessageDialog(null, "选择题数不能超过5个!");
                    titlenumber.setText("");//清空输入框内容
                    closeWindows();

                }
                timer.start();//开始计时

            }
            catch(NullPointerException o)
            {
                System.out.print("输入有误");
            }

  

    result.setText( "答对"+right+"道题目,答错"+wrong+"道题目!"+"答题时间为:"+seconds+"秒");
                    JOptionPane.showMessageDialog(null, "结束!欢迎使用");

  

第四部分:运行结果

效果1:初始运行页面

 

效果2:自定义颜色面板

 

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

 

效果4:概率出现阶乘

 

效果5:最终运行结束

 

 

第五部分:解决

问题1:加减乘除的运算选择错乱

解决:仔细检查逻辑代码,固定运算符运算,杜绝其他可能出现的运算符,一个一个检查

问题2:时间

解决:百度查找

问题3:容错率低

解决:需要后期更新

 

第五部分:合作伙伴

姓名:袁振鹏  学号:201606120005   

负责方向:可视化界面的布局与弹框等、颜色变换,弹出一个颜色面板,可自定义颜色、阶乘处理,在switch,case中写入了这种方法

他的博客地址为: https://www.cnblogs.com/yuanzhenpeng/p/9845043.html

结对照片:

 

附图:统计表

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 on 2018-10-24 18:26  难留  阅读(183)  评论(0编辑  收藏  举报

导航