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


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

     

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

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

    结对同伴的学号:201606120068

    结对同伴的姓名:谢斌揆201606120093

    结对同伴的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                 }


     五、项目核心代码:

    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);//设置窗口可见
    }

    static boolean colorchange=true;

    public void actionPerformed(ActionEvent e)//这是一个事件监听器,处理单击鼠标时触发的事件
    {

    if(e.getSource()==colorchangebtn)
    {
    if (colorchange==true) {
    p1.setBackground(Color.red);
    p2.setBackground(Color.red);
    colorchange=false;
    }
    else
    {
    p1.setBackground(Color.white);
    p2.setBackground(Color.white);
    colorchange=true;
    }
    }

     六、结对同伴

     姓名:谢斌揆201606120093

    他的博客地址: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

  • 相关阅读:
    Centeos7搭建selenium+Chrome浏览器
    数据结构学习篇之栈和队列
    数据结构学习篇之线性表
    Tornado基础学习篇
    Python控制函数运行时间
    python线程实现异步任务
    Python实现几种简单的排序算法
    python爬虫遇到会话存储sessionStorage
    Python 有哪些优雅的代码实现让自己的代码更pythonic?
    Ubuntu查看端口使用情况,使用netstat命令:
  • 原文地址:https://www.cnblogs.com/068zhengda/p/9870075.html
Copyright © 2020-2023  润新知