zoukankan      html  css  js  c++  java
  • 第四次作业四则运算升级版(带可视化界面)

    本次作业要求来自: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

  • 相关阅读:
    maven超级pom内容
    elasticsearch日志删除命令
    maven 设置跳过测试
    centos7.4 开启ftp服务
    部分Linux时区改为东八区的方法
    docker overlay存储驱动介绍(传送门)
    HotSpot学习(一)——如何下载openjdk源码
    nginx 代理静态资源报 403
    【转载】C#通过遍历DataTable的列获取所有列名
    【转载】C#通过Remove方法移除DataTable中的某一列数据
  • 原文地址:https://www.cnblogs.com/yuanzhenpeng/p/9845043.html
Copyright © 2011-2022 走看看