任务03——简单程序测试及 GitHub Issues 的使用
生活随笔
收集整理的這篇文章主要介紹了
任务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;
轉載于:https://www.cnblogs.com/szm6/p/6623513.html
創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎總結
以上是生活随笔為你收集整理的任务03——简单程序测试及 GitHub Issues 的使用的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: sed用法及举例
- 下一篇: iOS----------The app