• 结对编程1


    一、需求分析

    1、题目要求:

    我们在个人作业1中,用各种语言实现了一个命令行的四则运算小程序。进一步,本次要求把这个程序做成GUI(可以是Windows PC 上的,也可以是Mac、Linux,web,手机上的),成为一个有基本功能、一定价值的程序。在下面的功能需求中实现两个:

    记录用户的对错总数,程序退出再启动的时候,能把以前的对错数量保存并在此基础上增量计算。
    有计时功能,能显示用户开始答题后的消耗时间。
    界面支持中文简体/中文繁体/英语,用户可以选择一种;

    2、题目分析:

    (1)支持真分数和整数的运算;
    (2)能够判断对错,且输出正确答案;能够计算正确率并输出;
    (3)将程序弄成GUI;
    (4)可切换语言,界面支持中文简体/中文繁体/英语,用户可以选择一种;
    (5)计时器功能,点击开始计时时,能显示用户开始答题后的消耗时间;

    3、分工

    此次程序设计由l林晨昕(201421123033)和我(201421123035)一起完成
    我的码市地址:https://coding.net/u/Belong033/p/java-second-two/git

    二、 程序设计

    我们选择设计了两个功能:
    1、计时器功能,点击开始计时时,能显示用户开始答题后的消耗时间;
    2、可切换语言,界面支持中文简体/中文繁体/英语,用户可以选择一种;

    流程图:


    三、代码展示

    //计时器
             private boolean isRun = false;
         private MyRunable myTimeRunable = new MyRunable();
         private class MyRunable implements Runnable{
                private int hour = 0;
                private int min = 0;
                private int sec = 0;
                private NumberFormat format = NumberFormat.getInstance();
                private String nextSecond(){
                    ++sec;
                    if(sec == 60) {
                        ++min;
                        sec = 0;
                    }
                     
                    if(min == 60) {
                        ++hour;
                        min = 0;
                    }
                    return currentTime();
                }
                 
                private String currentTime(){
                    return format.format(hour)+":"+format.format(min)+":"+format.format(sec);
                }
                 
                @Override
                public void run() {
                    format.setMinimumIntegerDigits(2);
                    format.setGroupingUsed(false);
                    while(true) {
                        if(rootPaneCheckingEnabled) {
                            if(isRun) {
                                nextSecond();
                                jLabel4.setText(currentTime());
                            }
                        }
                        try {
                            Thread.sleep(1000);
                        }catch (InterruptedException e) {
                        }
                    }
                }
                 
            }
    

      语言转换(以英文为例)

        //创建内容面板
        JPanel contentPane;
        //创建菜单栏组件的对象
        JMenuBar jMenuBar1=new JMenuBar();//菜单条
        JMenu jMenu0=new JMenu("system");//菜单
        JMenuItem jMenuItem0=new JMenuItem("exit");//子菜单
        JMenu jMenu1=new JMenu("The text conversion");
        JMenuItem jMenuItem1=new JMenuItem("Simplified Chinese");
        JMenuItem jMenuItem2=new JMenuItem("Traditional Chinese");
        JMenuItem jMenuItem3=new JMenuItem("English");
        JMenu jMenu2=new JMenu("Help");
        JMenuItem jMenuItem4=new JMenuItem("Directions");
        JLabel jLabel1=new JLabel("Please enter the number:");
        JTextField jTextField1=new JTextField();
        JButton jButton1=new JButton("Start the topic");
        //创建构造方法
    

     

    //点击文字转换下的英文
            if(e.getSource()==jMenuItem3)
            {
                //创建英文的面板对象
                MainFrameE MFE=new MainFrameE();
                this.remove(this.getRootPane());
                this.dispose();
                MFE.setVisible(true);
    
            }
    

      

    四、程序运行

    进入四则运算系统

    输入题目数量

    开始做题并计时

    点击确定输出正确答案和正确率计时停止

    点击文字转换的繁体中文和英文

    繁体:

    英文:

    五 psp

     六 小结

    这次的实验是对上次实验的功能的一种完善,升级,本次要求把这个程序做成GUI,我们的程序实现了两种功能即:(1)有计时功能,能显示用户开始答题后的消耗时间。
    (2)界面支持中文简体/中文繁体/英语,用户可以选择一种;其实两个人一起完成还是可以起到互补的作用,就是有时候想法会有差异。一开始,晨昕想把计时器弄成那种一跳到做题页面时无需点击就能自动开始计时的。但是我觉得这样并不好,假如用户在答题期间有事情想要暂停,自动计时先暂停等到用户继续答题时再继续。经过我们两的商讨,最后实现能够控制开始计时的功能。以前的项目都是自己独立完成的,从来没有团队合作的经验,通过这次的实验,学会了怎样与人合作。包括有冲突时应该怎样与队友协商解决问题。代码的部分完成的还并不好,编程的过程中碰见了许多问题。我们通过查找资料请教同学一一去解决。但是当功能可以实现时,还是很兴奋的。附上丑照一张,哈哈!

     

  • 相关阅读:
    GmSSL 与 OpenSSL 共存的安装方法
    爬虫之ssh证书警告错误
    逆向so文件调试工具IDA基础知识点
    frida- registernatives获取so层动态注册函数
    绑定方法与非绑定方法, 反射
    Elk stack安装部署
    类的继承和组合
    安装部署kafka和zookeeper集群(三节点)
    ELK stack 生产问题
    Elasticsearch删除数据操作,你必须知道的一些坑
  • 原文地址:https://www.cnblogs.com/ly-35/p/6551227.html
Copyright © 2020-2023  润新知