第二次作业+105032014099
1.测试人员的测试帖连接:http://www.cnblogs.com/WuYeqian/p/6610568.html
2.测试人员提出的问题、发现的缺陷:
(1)因为没有对输入内容进行是否是整数的判断,比如输入字符串就会程序崩溃,建议增加输入判断。
(2)代码不规范,出现if···else不匹配,total达到多大时如何处理。
else if(total>=1800) //销售额大于1800提起20%佣金
commission=total*0.2;
return commission;
(3)当执行用例1时,输出:“输入的数量不满足要求!”再输入三个值没有提示语句,最好能弄个循环判断输入。
(4)在double Commission(int headphone,int shell,int protector)方法中返回的是double型,但是int total=headphone*headphone_price+shell*shell_price+protector*protector_price中total是int型的,这之间的转换出问题,需要修改。
(5)对输入的值最好有个最大范围限制处理,不然输入超出int能接受的值就程序崩溃了。
3.修正后的代码清单
import java.text.DecimalFormat; import java.util.Scanner; public class TestPractice { public static void main(String[] args) { Scanner input = new Scanner(System.in); //输入 while(true) { System.out.println("请分别输入三种手机配件的销售情况:"); int headphone_num; int shell_num; int protector_num; try { //输入耳机、手机壳、手机贴膜的数量 System.out.print("请输入耳机的销售数量:"); headphone_num=Integer.parseInt(input.next()); System.out.print("请输入手机壳的销售数量:"); shell_num=Integer.parseInt(input.next()); System.out.print("请输入手机贴膜的销售数量:"); protector_num=Integer.parseInt(input.next()); if(headphone_num>0&&shell_num>0&&protector_num>0) { TestPractice testPractice = new TestPractice(); //调用Commission方法 double commissiom = testPractice.Commission(headphone_num, shell_num, protector_num); DecimalFormat df=new DecimalFormat("#.0"); //限制输出佣金的小数点后的位数 System.out.println("佣金:"+df.format(commissiom)); //输出佣金 } else{ System.out.println("输入的数量不满足要求!请重新输入!"); } continue; } catch (Exception e) { System.out.println("出现异常:"+e); } } } //计算佣金 double Commission(int headphone,int shell,int protector) { double commission=0; //初始化佣金为0 int headphone_price=80; //耳机单价80; int shell_price=10; //手机壳单价10; int protector_price=8; //手机贴膜单价8; int total=headphone*headphone_price+shell*shell_price+protector*protector_price; if(total<1000&&total>0){ //销售额不足1000提取10%佣金 commission=total*0.1; }else if(total<=1800){ //销售额在1000-1800,提取15%佣金 commission=total*0.15; }else { //销售额大于1800提起20%佣金 commission=total*0.2; } return commission; } }
4.修正后心得体会:
(1)代码变更:主要对程序的输入内容是否为整数进行修改,循环优化以及对一些小细节的处理。
(2)缺陷的原因:对程序的需求考虑不周,容易忽略隐藏的条件。
(3)学习心得:多动手。