第二次博客作业——熟悉使用工具

目录

  • 一、克隆项目
  • 二、代码设计
    • a)题目要求
    • b)生成随机数
    • c)生成随机式子
    • d)计算随机式子的值
  • 三、单元测试
    • a)测试solve方法
    • b)测试createFormula方法
  • 四、断点测试
  • 五、性能测试
  • 六、代码提交
    • a) 提交到自己的仓库
    • b) 向源仓库提交
    • 六、总结
GIT地址 https://github.com/chenval/AchaoCalculator.git
GIT用户名 chenval
学号后五位 62224
博客地址 https://www.cnblogs.com/chenVal/
作业链接 https://www.cnblogs.com/harry240/p/11515697.html

因为自己电脑C盘内存有限,并且自己学的java,在经过老师的同意后,此次作业采用IDEA开发工具+java语言实现。
IDEA天下第一!!!

一、克隆项目

将项目克隆到自己的仓库

第二次博客作业——熟悉使用工具_第1张图片

然后使用git将项目克隆到本地

第二次博客作业——熟悉使用工具_第2张图片

(如果采用IDEA进行开发可以直接在Check out from Version Control 中添加仓库的url选好地址自动添加)

第二次博客作业——熟悉使用工具_第3张图片

添加完成后,进入IDEA。在该项目下新建Modules并命名为Calculator

第二次博客作业——熟悉使用工具_第4张图片

引入单元测试插件后,即可开始写代码。

二、代码设计

a)题目要求

  • 程序接收一个命令行参数 n,然后随机产生 n 道加减乘除(分别使用符号+-*/来表示)练习题,每个数字在 0100 之间,运算符在 2 个 到 3 个之间。
  • 由于阿超的孩子才上一年级,并不知道分数。所以软件所出的练习题在运算过程中不得出现非整数,比如不能出现 3÷5+2=2.6 这样的算式。
  • 练习题生成好后,将生成的 n 道练习题及其对应的正确答案输出到一个文件 subject.txt 中。
  • 当程序接收的参数为4时,以下为一个输出文件示例。
13+17-1=29
11*15-5=160
3+10+4-16=1
15÷5+3-2=4

可以看出要求中出现的运算符随机,出现的数字随机,运算符的数量随机。所以我们可以写一个随机数类生成这三种随机数。

b)生成随机数

在Calculator目录下的src文件建立com包 然后新建randomNum类

具体代码如下图

package com;

import java.util.Random;

public class randomNum {
    int num;
    public int createNum(){  //生成数字
        this.num=(int)(Math.random()*100)+1;
        return num;
    }
    public String createRuler(){ //生成运算符
        this.num=(int) (Math.random()*4)+1;
        if(num==1){
            return "+";
        }else if(num==2){
            return "-";
        }else if(num==3){
            return "*";
        }else {
            return "/";
        }
    }
    public int createLen(){ //生成运算符的数量
        Random random=new Random();
        this.num=random.nextInt(2)+2;
        return num;
    }
}

这样满足了随机生成式子需要的类,接下来将生成出的数字和字符组合在一起。

c)生成随机式子

这里我没用采用JAVA有的类直接进行四则运算,而是自己写,简称自己造轮子。所以在Calculator类中新建方法createFormula
同时考虑到数字是int型,运算符是string型。所以用list进行储存

public  List createFormula(){   
    randomNum a=new randomNum();  
    List formula=new ArrayList<>(); 
    for(int i=0;i 
 

d)计算随机式子的值

在计算四则运算时,要考虑运算顺序,先乘除,后加减。因此我这里使用栈进行处理,当运算符为加减时,就入栈。当运算符为乘除时,计算后再入栈,最后得到的栈中只有加减。然后依次出栈计算,即可得到目标结果。

因为要得到传入随机生成的式子且式子

使用list储存的所以栈的类型也应该是Object.

并且这里在取值的时候所有数字取的全是int型,所以进行计算的时候不会出现小数

 public  int solve(List formula){
        Stack stack=new Stack<>();//生成栈
        int l=formula.size();//得到式子长度
        for(int i=0;i 
 

程序运行输入10得到

第二次博客作业——熟悉使用工具_第5张图片

这里可以看到list.toString()方法有大括号和点,所以在main方法中用StringBuffer类重新储存式子并写入文件

StringBuffer str=new StringBuffer();
            for(Object x:a ){
                str.append(x);
            }

在当前目录下的subject.txt中得到输出

第二次博客作业——熟悉使用工具_第6张图片

三、单元测试

在当前类中的空白位置右键点击Generate选择JUnit Test ->选择JUnit 4自动生成测试类。

第二次博客作业——熟悉使用工具_第7张图片

第二次博客作业——熟悉使用工具_第8张图片

a)测试solve方法

第二次博客作业——熟悉使用工具_第9张图片

这里我们输入三个式子,用list储存 调用Assert方法进行测试

运行结果表示通过了测试。

b)测试createFormula方法

同时测试createFormula方法是否生成了式子

第二次博客作业——熟悉使用工具_第10张图片

结果不为空说明,生成了式子。

四、断点测试

点击debug,并在需要断点测试的代码行左边做下记录点,然后点下图中圈出来的箭头一步步 进行。

第二次博客作业——熟悉使用工具_第11张图片

下图右下框里可以看到响应的变量对应的值。

第二次博客作业——熟悉使用工具_第12张图片

五、性能测试

(吐槽一下IDEA下载插件,一开始我无法找到任何插件,win的防火墙把插件下载地址拦住了,IDEA自己也认为不安全访问。。。还要说手动关防火墙)
第二次博客作业——熟悉使用工具_第13张图片
安装插件后,我们打开对自己的程序进行性能分析。
结果如图
第二次博客作业——熟悉使用工具_第14张图片
第二次博客作业——熟悉使用工具_第15张图片

六、代码提交

a) 提交到自己的仓库

在需要提交的文件目录下右键点击选择 git bash

随后会弹出

第二次博客作业——熟悉使用工具_第16张图片

输入自己github相对应的账号密码,点击Login。

第二次博客作业——熟悉使用工具_第17张图片

出现以上图示说明项目提交到git仓库成功。这个时候应该回收到邮件消息,如果没有收到说明上传失败。

这里我第一次提交的时候出现了如图所示的错误无法上传。经过google搜索后发现Github 禁用了TLS v1.0 and v1.1,必须更新Windows的git凭证管理器,下载地址是这里

第二次博客作业——熟悉使用工具_第18张图片

b) 向源仓库提交

在项目向自己的仓库提交成功后,我们还要向源仓发起 Pull Request,使得自己的开发能被其他开发这所看见。

在进入自己仓库中,点击圈出来的,一步步跟着步骤走。等待源仓库同意后,即可加入。

第二次博客作业——熟悉使用工具_第19张图片

六、总结

本次操作通过git实现了代码的提交,以前用github仅仅在于copy优秀的开源项目。这次作业更加深入理解了使用。github访问很慢,不得不使用一些科学方法 这样使得访问速度变快。我们使用的开发工具无论是VS还是IDEA 功能都很强大,我们平时使用知识简单用来写代码,很多功能都没有使用过。如果合理使用这些功能会让开发效率大大提升。
顺便吐槽一个BUG,在我的博客园中背景设置的半透明,如果markdown中出现背景就全部透明。,必须用标注

你可能感兴趣的:(第二次博客作业——熟悉使用工具)