zoukankan      html  css  js  c++  java
  • 结对项目-四则运算"软件"之升级版

    本次作业要求来自:https://edu.cnblogs.com/campus/gzcc/GZCC-16SE1/homework/2213

    github地址为:https://github.com/LinsenLiang/Aika/tree/master/fourFundamentalRules

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

    • 自动生成题目,单个题目最多不能超过4个运算符,操作数小于100。
    • 用户可以输入答案

    二、下面附有 8 个相互独立的可以扩展的方向。  

    1. 程序可以出带括号的正整数四则运算,支持分数,除法保留两位小数,如:(1/3+1)*2 = 2.67,特别注意:这里是2.67而非2.66,或保持分数形式:8/3
    2. 可以出表达式里含有负整数(负整数最小不小于-100)的题目,且负数需要带括号,用户输入的结果不用带括号。如: 2*(-4) = -8
    3. 用户答题结束以后,程序可以显示用户答题所用的时间
    4. 用户可以选择出题的个数(最多不能超过5个题目),答题结束可以显示用户答错的题目个数和答对的题目个数
    5. 用户在第一次答题时,需要用户输入用户名,用户下次启动后,程序需要记住用户前一次输入的用户名 
    6. 程序可以出单个整数阶乘的题目:如:4!=24
    7. 程序可以设置答题时间,时间设置为整数,单位为秒,最大不能超过120秒,若超过了答题时间未答题,则提示:时间已到,不能答题。
    8. 程序可以设置皮肤功能,可以改变界面的颜色即可。

    三、同学两两结对,每对学生选取 8 个可扩展方向的其中4个加以实现。

    1.拓展方向

      • 2.可以出表达式里含有负整数(负整数最小不小于-100)的题目,且负数需要带括号,用户输入的结果不用带括号,如: 2*(-4) = -8。
      • 4.用户可以选择出题的个数(最多不能超过5个题目),答题结束可以显示用户答错的题目个数和答对的题目个数。
      • 6.程序可以出单个整数阶乘的题目:如:4!=24。
      • 8.程序可以设置皮肤功能,可以改变界面的颜色即可。

    2.结对伙伴

    201606120016  陈泽诚  博客地址:https://www.cnblogs.com/StuCzc/p/9827520.html

    3.开发环境

    IntelliJ IDEA 2018.2.2 

    四、估计实现所需时间,记录结对编程时间,并写在博客中。 

    PSP2.1 Personal Software Process Stages Time Senior Student(h) Time(h)
    Planning 计划 24 36
    · Estimate 估计这个任务需要多少时间 10 12
    Development 开发 10 12
    · Analysis 需求分析 (包括学习新技术) 1 2
    · Design Spec 生成设计文档 1 1
    · Design Review 设计复审 1 1
    · Coding Standard 代码规范 1 1
    · Design 具体设计 1 2
    · Coding 具体编码 1 2
    · Code Review 代码复审 1 1
    · Test 测试(自我测试,修改代码,提交修改) 1 1
    Reporting 报告 1 1
    · 测试报告 1 1
    · 计算工作量 1

    1

    · 并提出过程改进计划 1

    1

    五、主要代码及运行截图

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

     1 public void test() {
     2         Random rand = new Random();
     3         num1 = rand.nextInt() % 99 + 1;
     4         num2 = rand.nextInt() % 99 + 1;
     5         num3 = rand.nextInt() % 99 + 1;
     6         op1 = (int) (Math.random() * 4 + 1);
     7         op2 = (int) (Math.random() * 4 + 1);
     8         String str_num1 = String.valueOf(num1);
     9         String str_num2 = String.valueOf(num2);
    10         String str_num3 = String.valueOf(num3);
    11         if (num1 < 0) {
    12             str_num1 = String.valueOf("(" + num1 + ")");
    13         }
    14         if (num2 < 0) {
    15             str_num2 = String.valueOf("(" + num2 + ")");
    16         }
    17         if (num3 < 0) {
    18             str_num3 = String.valueOf("(" + num3 + ")");
    19         }

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

     1     public void actionPerformed(ActionEvent e) {
     2         if (e.getSource() == T_inputText) {
     3             right = 0;
     4             wrong = 0;
     5             L_info_pr.setText("");
     6             T_answerText.setText("");
     7             String str_num = T_inputText.getText();
     8             boolean isNumeric = isNumeric(str_num);
     9             if (isNumeric) {
    10                 number = Integer.parseInt(str_num);
    11                 n = number;
    12                 if (number > 0 && number <= 5) {
    13                     L_test.setText("题目1:");
    14                     test();
    15 
    16                 } else {
    17                     L_info_pr.setText("请输入1~5的值!");
    18                 }
    19             } else {
    20                 L_info_pr.setText("输入含有非法字符,请重新输入!");
    21             }
    22         }

    主界面

    主要运行效果

    统计结果

    换肤功能

    阶乘运算功能

     

     六、总结体会

     和队友已不是第一次合作,分工明确,加上这次的分工相对独立,代码整合也比较容易。这个项目综合了以前的很多知识,并且是在上次项目基础上完成的,开始就有了较为清晰的思路。四个拓展方向算是基本实现,但整个项目还是有不少的瑕疵。尤其是对用户输入答案的检测方面,用JAVA自带的boolean isNumeric()函数进行检测,不能识别“-”号即不能输入负数。

  • 相关阅读:
    张五常:思考的方法
    David Foster Wallace on Life and Work
    SQL SERVER SQL Agent服务使用小结
    js大全
    中国载人航天工程七大系统
    vc 编译遇到问题
    学习Excel技巧
    使用Request.ServerVariables获取环境变量
    c# 字符常用函数
    SQL数据同步
  • 原文地址:https://www.cnblogs.com/LinsenLiang/p/9846225.html
Copyright © 2011-2022 走看看