第二次作业+105032014037
1、测试帖链接:http://www.cnblogs.com/ypzeng/p/6600986.html
2、测试人员提出的问题、发现的缺陷
测试人员提出的问题为:对不符合数据的要求的数据应进行处理,不能任由程序出错而放任不过,应以更为优化的界面给予视觉上的舒适感,还有对与一下代码
Scanner scana=new Scanner(System.in);
int a = scana.nextInt();
Scanner scanb=new Scanner(System.in);
int b = scanb.nextInt();
Scanner scanc=new Scanner(System.in);
int c = scanc.nextInt();
应对 scana scanb scanc 进行关闭,对所占用的资源进行关闭。
解答:
(1)已对不符合数据进行处理,将输入定义为String类型,再进行转换为int型是否判断正确,正确方进行下一步。应该把这个小程序当成一个完整的应用来看待,运行程序时不在非人为的情况下发生崩溃。
(2)界面舒适感在改过代码后应该会有所提高,谢谢提醒。
(3)在新代码中scana、scanb、scanc不做关闭处理,因为这三个输入放在do···while()里,如果关闭了,因为没有键盘输入,程序将不断的进行case:“1”。当程序进行人为的退出后,show()将停止执行,系统会退出,所以不进行处理。出于eclipse提醒,添加 @SuppressWarnings("resource")在show()前,让它阻止这个提醒。鉴于学艺不精,可能这个回答不是很令人满意,请见谅。
3、修正后的代码清单
1 package TSort; 2 public class Client { 3 public static void main(String args[]) throws Exception{ 4 new Menu(); 5 } 6 }
1 package TSort; 2 import java.util.Scanner; 3 public class Menu { 4 private static Scanner in = new Scanner(System.in); 5 public Menu() throws Exception 6 { 7 while(true){ 8 this.show(); 9 } 10 } 11 @SuppressWarnings("resource") 12 public void show() throws Exception{ 13 14 System.out.println("======三角形种类====="); 15 System.out.println("[1] 进行三角形类型判断"); 16 System.out.println("[e] 退出。"); 17 while (in.hasNext()) { 18 String i = in.nextLine(); 19 switch(i){ 20 case "1":{ 21 int i_a,i_b,i_c; 22 System.out.println("请输入三角形的三条边:"); 23 do { 24 Scanner scana=new Scanner(System.in); 25 String a=scana.next(); 26 Scanner scanb=new Scanner(System.in); 27 String b=scanb.next(); 28 Scanner scanc=new Scanner(System.in); 29 String c=scanc.next(); 30 if(IsInteger.IsNum(a)&&IsInteger.IsNum(b)&&IsInteger.IsNum(c)) 31 { 32 i_a = Integer.parseInt(a); 33 i_b = Integer.parseInt(b); 34 i_c = Integer.parseInt(c); 35 System.out.println(Sort.triangle(i_a, i_b, i_c)); 36 break; 37 } 38 else{ 39 System.out.println("输入不是整数!请重请输入三角形的三条边:"); 40 } 41 } while (true); 42 System.out.println("==========请继续选择==========="); 43 System.out.println("[1] 进行三角形类型判断"); 44 System.out.println("[e] 退出。"); 45 break ; 46 } 47 case "e":{ 48 System.exit(1) ; // 系统退出 49 break ; 50 } 51 default:{ 52 System.out.println("请选择正确的操作!") ; 53 } 54 } 55 } 56 } 57 }
1 package TSort; 2 public class IsInteger { 3 public static boolean IsNum(String str) 4 { 5 if(str==null) 6 { 7 return false; 8 } 9 else{ 10 try{ 11 @SuppressWarnings("unused") 12 int num=Integer.valueOf(str);//把字符串强制转换为数字 13 return true;//是数字,返回true 14 }catch (Exception e) { 15 return false; 16 } 17 } 18 } 19 }
1 package TSort; 2 public class Sort{ 3 static String t1="边的值不在范围内"; 4 static String t2="不构成三角形"; 5 static String t3="等边三角形"; 6 static String t4="等腰三角形"; 7 static String t5="直角三角形"; 8 static String t6="一般三角形"; 9 public static String triangle(int a,int b,int c){ 10 if(a<1 || a>100 ||b<1 || b>100|| c<1|| c>100) 11 { 12 return t1; 13 } 14 else if(a>=b+c ||b>=a+c||c>=a+b) 15 { 16 return t2; 17 } 18 else if(a==b &&b==c &&c==a){ 19 return t3; 20 } 21 else if(a==b ||b==c ||c==a){ 22 return t4; 23 } 24 else if(a*a+b*b==c*c ||b*b+c*c==a*a ||c*c+a*a==b*b){ 25 return t5; 26 } 27 else { 28 return t6; 29 } 30 } 31 }
4、修正后心得体会
(1)做一个功能简单的程序,也要当成一个完整的应用,要考虑到程序在非人为情况下不出现闪退崩溃等情况;
(2)对于参数的声明定义要明确这个类型的范围(比如int最大最小是多少,如果超过又怎么处理);
(3)从Scanner中获取数据,要习惯进行处理,得到期望输入的类型再进行下一步功能实现;
(4)if()条件处理可以进行封装成一个方法,这样子复杂的条件判断能够单独进行,方便检查处理。
(5)对于编程开发人员可能只是为了完成这个功能,但是对于测试人员来说,功能只是程序正确的一个体现,所以如果不想让测试人员检查出更过错误,就要养成严谨的代码习惯,正确的处理数据,代码整洁,功能完善。
转载于:https://www.cnblogs.com/WuYeqian/p/6618858.html
第二次作业+105032014037相关推荐
- 丁贵才130702010042第二次作业
第二次作业 2.9 设有如下语句,请用相应的谓词公式分别把它们表示出来: (1)有的人喜欢梅花,有的人喜欢菊花,有的人既喜欢梅花有喜欢梅花. 解:定义谓词 P(x):x是人 L(x,y):x喜欢y y ...
- 20189317 《网络攻防技术》 第二周作业
一.黑客信息 (1)国外黑客 1971年,卡普尔从耶鲁大学毕业.在校期间,他专修心理学.语言学以及计算机学科.也就是在这时他开始对计算机萌生兴趣.他继续到研究生院深造.20世纪60年代,退学是许多人的 ...
- mysql 三阶多项式拟合_2014年9月份考试机械CAD_CAM第二次作业
2014年9月份考试机械CAD/CAM第二次作业 一.单项选择题(本大题共40分,共 20 小题,每小题 2 分) 1. 在CAD作业中,采用数据文件形式来处理工程数表.线图数据,其目的是() A. ...
- 2021年春季学期-信号与系统-第二次作业参考答案-第十小题
本文是 2021年春季学期-信号与系统-第二次作业参考答案 的参考答案. ▌第十题 10 从网络学堂下载代表两个信号的音频文件: 音频文件: f1(t)f_1 \left( t \right)f1( ...
- 2021年春季学期-信号与系统-第二次作业参考答案-第九小题
本文是 2021年春季学期-信号与系统-第二次作业参考答案 的参考答案. ▌第九题 9. 已知三个系统的输入输出关系分别为: 把上述三个子系统进行如下的级联,求系统的输入输出关系,它是线性.时不变系统 ...
- 2021年春季学期-信号与系统-第二次作业参考答案-第八小题
本文是 2021年春季学期-信号与系统-第二次作业参考答案 的参考答案. ▌第八题 8. 判断下列系统是否为线性.时不变.因果? (1)第一小题 r(t)=ddte(t)r\left( t \righ ...
- 2021年春季学期-信号与系统-第二次作业参考答案-第七小题
本文是 2021年春季学期-信号与系统-第二次作业参考答案 的参考答案. ▌第七题 7. 判断下列系统是否可逆.若可逆,给出它的逆系统:若不可逆,指出使该系统产生相同输出的两个输入信号. 判断系统是否 ...
- 2021年春季学期-信号与系统-第二次作业参考答案-第六小题
本文是 2021年春季学期-信号与系统-第二次作业参考答案 的参考答案. ▌第六题 6. 有一线性时不变系统, 当激励e1(t)=u(t)e_1 \left( t \right) = u\left( ...
- 2021年春季学期-信号与系统-第二次作业参考答案-第五小题
本文是 2021年春季学期-信号与系统-第二次作业参考答案 的参考答案. ▌第五题 5. Consider a LTI systems whose response to the singal x1( ...
最新文章
- 为什么你应该(从现在开始就)写博客
- Java 异常处理中对于 finally 的一些思考
- 《思科数据中心I/O整合》一2.11 活动-活动连接(Active-Active)
- html调用js页面显示不出来了,JS代码文件调用显示乱码,直接写在html页面的里可以调用,但是单独放在js文件里不能调用...
- maven学习(1)
- 【编译工具】之gcc中-march与-arch的使用
- js 获取html文字颜色,js获得网页背景色和字体色的方法
- mysql表索引类型修改_MySQL常用的建表、添加字段、修改字段、添加索引SQL语句写法总结...
- 使用Visio画各种可视化的流程图之序列图和价值流图
- 去除WinRar压缩 迷你页
- c语言 求矩阵各行元素之和
- 通过pyhton认识一等函数
- 采购管理系统--合同、采购单、发货单、返厂单管理
- su命令psimage生成eps格式图片参数
- jQuery整体框架
- 制作了一个微信公众号导航的网站 http://www.wxgzh.in
- 日文106键盘-英文101键盘的更改方法
- 超融合如何克服启动风暴?云桌面启动风暴的解决办法
- 赛门铁克:“分期付款”非官方行为 执法机关已经介入
- Halcon常用算子(库函数)整理
热门文章
- 《Algorithms》—— Dijkstra 的双栈算术表达式求值算法
- SELinux系列(一)——SELinux是什么
- pyspider抓取数字货币价格bitcoin
- win8计算机用户名在哪里设置,windows8系统用户名微软ID和管理员账户概念详解
- oracle update范例,oracle 12c单范例数据库打12.1.0.2.4补丁记录
- 华尔街英语学习软件_华尔街英语吧啦吧啦聊点啥:语言学习交流至上
- javascript代码_15个最好用的JavaScript代码压缩工具
- 内购订单进行二次处理_物流图表复杂业务场景下的订单管理系统搭建
- python导入数据库的数据怎么在qt界面里刷新_Python中使用pyqtgraph库实现数据可视化之逐点刷新波形图...
- python web框架哪个好_盘点:9款流行Web框架及其优缺点