任务03——简单程序测试及 GitHub Issues 的使用

我提交的Issue

对方提交给我的Issue

  对于对方提出的问题,我的理解是当程序接收到非法字符时才会重新输入,对于正常的输入(都由数字组成)如果是错误的,自然是直接生成新题目,毕竟最后还要给出正确率。

  在修改自己的程序时,主要的困难就是第4个问题(如果用户输入除数字及 / 之外的其他字符(含空格、小数点等),程序是否会拒绝输入?)和第7个问题(程序是否能避免生成已经生成过的算式(包含对于加法运算来说,A+B 与 B+A 的也属于重复算式)?)。

  对于第4个问题,我是这么解决的:对于正确答案来说,除了数字以外最多只有一个“/”和一个“-”,所以我就用replaceFirst把第一次出现的“/”或者“-”去掉,如果后面还有“/”和“-”肯定就是错啦。当然这样也能判断出其他非法字符。

public static boolean isNumeric(String str) {         //判断输入字符是否合法    Pattern pattern = Pattern.compile("^[0-9]*$");    if (str.contains("/") && str.contains("-")) {        str = str.replaceFirst("/", "");        str = str.replaceFirst("-", "");    } else if (str.contains("/")) {        str = str.replaceFirst("/", "");    } else if (str.contains("-")) {        str = str.replaceFirst("-", "");    }    return pattern.matcher(str).matches();}  对于第七个问题,因为A+B与B+A也属于重复算式,所以有了下面的now和now1,用来记录当前随机生成的数字a和b。now和now1与记录每一次生成结果的数组record[]作比较,如果record已经记录过,则需要重新生成。
String now = "" + a + b;     //避免生成相同算式String now1 = "" + b + a;for (int j = 0; j < i; j++) {    while (record[j].equals(now) || record[j].equals(now1)) {        a = r.nextInt(10);        b = r.nextInt(9) + 1;        while (a == b || a > b) {        //这里的a>b是为了生成真分数,不写也可以            a = r.nextInt(10);            b = r.nextInt(9) + 1;        }        now = "" + a + b;        now1 = "" + b + a;        j = 0;    }}record[i] = now;
时间: 2024-10-05 06:16:28

任务03——简单程序测试及 GitHub Issues 的使用的相关文章

synopsys.Vera.vI-2014.03.Linux32_64 2CD 测试向量自动生成

synopsys.Vera.vI-2014.03.Linux32_64 2CD 测试向量自动生成          Vera验证系统满足了验证的需要,允许高效.智能.高层次的功能验证.Vera验证系统已被Sun.NEC.Cisco等公司广泛使用以验证其实际的产品,从单片ASIC到多片ASIC组成的计算机和网络系统,从定制.半定制电路到高复杂度的微处理器. Sidefx Houdini Master v8.2.31 1CD(创建高级视觉效果的终极工具) Sidefx Houdini Master

.Net Core 跨平台:一个简单程序的多平台(windows、Linux、osx)发布

.Net Core 跨平台:一个简单程序的多平台(windows.Linux.osx)发布 .Net Core 3.0 已于2019年9月23日发布了,包含了一些新特性,具体参见Announcing .NET Core 3.0 .NET Core是一个跨平台,高性能,开放源代码框架,用于构建现代的,基于云的,Internet连接的应用程序框架,其具有一下优点和特点: 跨平台:.NET Framework应用程序仅在Windows平台上运行,而.NET Core应用程序可以在Windows平台上开

十大免费移动程序测试框架(Android/iOS)

十大免费移动程序测试框架(Android/iOS) 概述:本文将介绍10款免费移动程序测试框架,帮助开发人员简化测试流程,一起来看看吧. Bug是移动开发者最头痛的一大问题.不同于Web应用程序开发,你可以时刻发现并修复Bug,而移动应用程序中的Bug隐藏得很深,直到用户使用时才发现问题.这样一来,不仅有损产品在市场上的名声,而且还会影响销售.所以在产品发布以前,开发人员需要严格测试程序.本文将介绍10款免费移动程序测试框架,帮助开发人员简化测试流程,一起来看看吧. Appium for iOS

使用Monkey进行UI或应用程序测试

使用Monkey进行UI或应用程序测试 Monkey是运行于模拟器或手机上的一个程序,通过生成伪随机的大量的系统级的用户事件流来模拟操作,包括单击.触摸.手势等.从而为正在开发中的应用程序通过随机响应进行压力测试. 最简单使用monkey的方式是通过下面的命令行,它可以运行指定的应用程序并向其发送500个伪随机事件. $ adb shell monkey -v -p your.package.name 500 关于monkey更多的选项及详细信息

[svc]runinit启动小程序测试

runinit启动小程序测试 参考: https://github.com/faisyl/alpine-runit/blob/master/Dockerfile https://segmentfault.com/a/1190000006644578 安装 ``` apt-get install runit 如果是centos,则可以使用yum进行安装,但是默认情况下centos软件仓库里并没有runit,所以需要先配置相应的仓库: curl -s https://packagecloud.io/

第一次java程序测试感受

第一次JAVA程序设计测试,检验了一个暑假的成果.显而易见,我做的并不是很好,程序最起码的输入输出以及方法的定义还是没有问题的,但是考到了文件输入输出便看出来了.对于文件的输入输出,虽然我预习到那里,并看了一些案例,但在真正的测试的时候脑子一片空白,最终关于文件的操作都没有按规定完成.测试题目要求的两个TXT文件,我用的Scanner方法,文件的途径虽然正确,但是程序找不到文件.所以这是由于我预习不够认真,不够仔细造成的.文件的操作函数有很多,例如READER/WRITER/PRINTWRITE

Mahout学习之Mahout简介、安装、配置、入门程序测试

一.Mahout简介 查了Mahout的中文意思--驭象的人,再看看Mahout的logo,好吧,想和小黄象happy地玩耍,得顺便陪陪这位驭象人耍耍了... 附logo: (就是他,骑在象头上的那个Mahout) 步入正文啦: Mahout 是一个很强大的数据挖掘工具,是一个分布式机器学习算法的集合,包括:被称为Taste的分布式协同过滤的实现.分类.聚类等.Mahout最大的优点就是基于hadoop实现,把很多以前运行于单机上的算法,转化为了MapReduce模式,这样大大提升了算法可处理的

Selenium也是一个用于Web应用程序测试的工具

Selenium也是一个用于Web应用程序测试的工具.Selenium测试直接运行在浏览器中,就像真正的用户在操作一样.支持的浏览器包括IE.Mozilla Firefox.Mozilla Suite等.这个工具的主要功能包括:测试与浏览器的兼容性--测试你的应用程序看是否能够很好得工作在不同浏览器和操作系统之上.测试系统功能--创建衰退测试检验软件功能和用户需求.支持自动录制动作和自动生成.Net.Java.Perl等不同语言的测试脚本.Selenium 是ThoughtWorks专门为Web

团队合作开发APP——程序测试

 在团队合作中我的主要任务是辅助程序测试,而测试的目的是为了发现尽可能多的缺陷,不是为了说明软件中没有缺陷,同时成功的测试在于发现了迄今尚未发现的缺陷.所以测试人员的职责是设计这样的测试用例,它能有效地揭示潜伏在软件里的缺陷. 一般情况下,在分析.设计.实现阶段的复审和测试工作能够发现和避免80%的Bug,而系统测试又能找出其余Bug中的80%,最后的5%的Bug可能只有在用户的大范围.长时间使用后才会曝露出来.因为测试只能够保证尽可能多地发现错误,无法保证能够发现所有的错误.所以这需要测试人员