zoukankan      html  css  js  c++  java
  • 软件工程网络15结对作业1

    一、需求分析

    1.题目需求
    1)除了整数以外,还要支持真分数的四则运算,真分数的运算,例如:1/6 + 1/8 = 7/24
    2)运算符为 +, −, ×, ÷
    3)并且要求能处理用户的输入,并判断对错,打分统计正确率。
    4)要求能处理用户输入的真分数, 如 1/2, 5/12 等
    5)使用 -n 参数控制生成题目的个数,例如执行下面命令将生成10个题目Myapp.exe -n 10

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

    2.分工
    我(201521123050)和叶文柠(201521123059)一同组队,因为时间不够,代码其实挺乱的并没有进行修改和整理,只上传了一次
    码云地址:https://gitee.com/xss6/java201521123050/tree/master/java050/src
    博客地址:http://www.cnblogs.com/wen1234/

    二、程序设计

    1.思维导图

    三、代码展示

    计时器

    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);
    
            }
    

    四、程序运行展示

    进入界面

    输入题目数量

    做题并进行


    输出答案和正确率

    转换语言

    五、代码测试

    对代码中“加、减、乘、除”进行单元测试

    覆盖率测试

    五、实验小结

    通过两周的代码改编,终于把这次作业完成了,这次作业后深感自己编程功底不行,改得很吃力,也很头疼。不过有苦也有收获,这次结对作业也学到了一点东西重新体验了有收获的充实感。我觉得不过如何,只要肯去花时间一定会有 收获的,或多或少而已,然后加上合理的方法,一定还会有我意想不到的收获。
    
  • 相关阅读:
    Magisk+Xposed+Root switch+Pokémon GO
    [数据库连接池] Java数据库连接池--DBCP浅析.
    [C#反射]C#中的反射解析及使用.
    [Java工具]Java常用在线工具集合.
    [Java拾遗五]使用Session防止表单重复提交
    [Java拾遗四]JavaWeb基础之Servlet_Request&&Response
    [Java拾遗三]JavaWeb基础之Servlet
    [Java拾遗二]Tomact及Http 部分总结.
    [Java拾遗一] XML的书写规范与解析.
    [数据库操作]Java中的JDBC的使用方法.
  • 原文地址:https://www.cnblogs.com/wen1234/p/8647434.html
Copyright © 2011-2022 走看看