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


     作业来源:https://edu.cnblogs.com/campus/gzcc/GZCC-16SE1/homework/2213

    Github地址:  https://github.com/yanyuluu/yanyuluu/tree/master/software

    一、基本要求

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

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

    用户可以输入答案

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

    二、我们做的扩展方向

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

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

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

    程序可以设置皮肤功能,可以改变界面的颜色即可(按钮点击实现八种颜色随机切换)

    三、开发环境下调试:Intelij IDEA

     

    四、估计实现所需时间,记录结对编程时间。

    PSP2.1 Personal Software Process Stages Time Senior Student Time
    Development 开发 50 60
    · Analysis 需求分析 (包括学习新技术) 20 30
    · Design Spec 生成设计文档 0 0
    · Design Review 设计复审 0 0
    · Coding Standard 代码规范 5 8
    · Design 具体设计 30 35
    · Coding 具体编码 45 60
    · Code Review 代码复审 3 5
    · Test 测试(自我测试,修改代码,提交修改) 10 8
    Reporting 报告 0 0

    五、代码实现

    1.定义一个面板及其组件

           

    class myframe extends JFrame
    {
        JLabel L1=new JLabel("题目:");//创建无图像并且其标题为空字符串的 JLabel
        JLabel L2=new JLabel("输入题目个数:");
        JLabel L3=new JLabel("提示:");
        JLabel L4=new JLabel("       ");   //题目
        JLabel L5=new JLabel("题目个数不能大于5");   //提示
        JTextField T1=new JTextField(6);//创建一个6长度的文本框
        JButton B1=new JButton("开始"); //按钮
        JButton B2=new JButton("确认");
        JButton B3=new JButton("下一题");
        JButton B4=new JButton("换皮肤");
        JPanel p1=new JPanel();//JPanel:面板组件,非顶层容器

    2.设置面板大小,设置面板内控件的位置和大小 

    this.setSize(360,300);//设置面板大小
            this.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);//关闭子窗口
            this.add(p1);
            p1.setLayout(null);
            L1.setBounds(50, 20, 90, 30);
            p1.add(L1);
            L4.setBounds(140, 20, 150, 30);
            p1.add(L4);
            L2.setBounds(50, 70, 90, 30);
            p1.add(L2);
            T1.setBounds(150, 70, 90, 30);
            p1.add(T1);
            B4.setBounds(200, 120, 90, 30);//换皮肤
            p1.add(B4);
            B1.setBounds(50, 120, 90, 30);//开始
            p1.add(B1);
            B2.setBounds(80, 170, 90, 30);//确认
            p1.add(B2);
            B2.setEnabled(false);
            B3.setBounds(170, 170,90,30);//下一题
            p1.add(B3);
            L3.setBounds(50, 200, 50, 30);
            B3.setEnabled(false);
            p1.add(L3);
            L5.setBounds(100, 200, 180, 30);
            p1.add(L5);

    3.将程序运行界面设置为可见,并显示在屏幕中间,设置为用户不可改变面板大小

     this.setVisible(true);//设置可见窗口
            this.setResizable(false);//设置面板不可改变大小
            this.setLocationRelativeTo(null);//此窗口将置于屏幕的中央

    4.产生随机产生-99到99的三个随机数a,b,c,随机生成两个运算符j,k

    a=(int) (Math.random()*200-100);//random出来的数为0-1之间,然后取-99到99的整数
            b=(int) (Math.random()*200-100);
            c=(int) (Math.random()*200-100);
            j=(int) (Math.random()*4);
            k=(int) (Math.random()*4);

     5.判断随机产生的数是否为负数,如果是就用括号括起来

    else if(b<0&&c>=0)
                {
                    //检测到b小于0,为负数,给b的左右两边加上括号运算
                    s1=String.valueOf(a)+String.valueOf(h[j])+String.valueOf(h1[0])+String.valueOf(b)+String.valueOf(h1[1])+String.valueOf(h[k])+String.valueOf(c);
                    L4.setText(s1);
                    System.out.println(s1);
                }
                else if(b>=0&&c<0)
                {
                    //检测到c小于0,为负数,给c的左右两边加上括号运算
                    s1=String.valueOf(a)+String.valueOf(h[j])+String.valueOf(b)+String.valueOf(h[k])+String.valueOf(h1[0])+String.valueOf(c)+String.valueOf(h1[1]);
                    L4.setText(s1);
                    System.out.println(s1);
                }

     6.实现阶乘的部分代码

     a=(int) (Math.random()*9+1);//随机产生一个整数 范围是0-9(包括0和9)
                s1=String.valueOf(a)+String.valueOf(h1[2]);//获取这个数进行阶乘
                L4.setText(s1);
                result=1;
                for(int i=1;i<=a;i++)//从1开始一直乘到这个数字本身
                {
                    result=result*i;
                }

    六、运行结果截图

           1.没进行任何操作的主页面

     2.输入题目个数,点击开始随机出题

    3.输入大于5的题目数会弹出小窗提示

     4.输入答案,回答正确则提示回答正确,回答错误则显示“回答错误,答案为:”

        

     5.全部答题完毕,会显示答对题数

    6.点击换皮肤,会给面板换一个颜色

      

    七、分工与合作

     1、结对成员

    本人——卢欣余:负责代码整合以及上传代码到Github

    队友——黄雨纯:负责代码注释以及撰写博客

      2、扩展方向

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

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

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

     程序可以设置皮肤功能,可以改变界面的颜色即可(按钮点击实现八种颜色随机切换)(卢欣余)

    八、总结心得

    这个程序相对来说我们做的比较简陋,里面涉及的内容和以前所学过的知识是有一定的关联的

    但是由于我们技术实力还不够硬朗,所以界面还不够美观

    扩展方向相对还是有难度的,所以只能做到这程度了。

    附录:结对同伴学号及博客地址,结对工作照片

     结对同伴:201606120050黄雨纯    

    同伴博客地址:https://www.cnblogs.com/hycolins/p/9837258.html

    结对同伴照片:

  • 相关阅读:
    windwos 安全基线
    Linux 安全基线
    OWASP top 10 (2017) 学习笔记--跨站脚本(XSS)
    OWASP top 10 (2017) 学习笔记--安全错误配置
    OWASP top 10 (2017) 学习笔记--失效的访问控制
    OWASP top 10 (2017) 学习笔记--XML外部实体(XXE)
    How to Install MongoDB 4.2 on CentOS/RHEL 8/7/6
    C# 正则表达式 双引号
    转载-js判断数组是否有重复值
    如何在Nginx.conf中使用环境变量
  • 原文地址:https://www.cnblogs.com/lxyu/p/9842929.html
Copyright © 2020-2023  润新知