第二次作业+105032014063
测试人员的测试帖链接:http://www.cnblogs.com/ChenXh123/p/6593024.html
第一次测试结果:
被测试代码在语句覆盖、逻辑覆盖测试通过。
测试人员代码优化建议:
1)if、else、else if等语句自占一行,无论执行语句有多少(即使只有一行执行语句),都要加{};
2)代码中要注意数据类型的转换,以免丢失数据。
如:ans=(sum-1800.0)*0.2+220.0; //从“double”转换到“float”,可能丢失数据
3)依据C\C++编程规范,多元运算符和他们的操作符之间至少需要一个空格,这个也需要注意。
代码:
import java.util.Scanner;
public class Commission{
//String To Int
public static int changeToInt(String number){
int ans=0;
try{
ans = Integer.parseInt(number);
}
catch (Exception e){
ans=-1;
// TODO: handle exception
}
return ans;
}
//计算佣金
public static String commission(int headphone, int shell, int protector){
if(headphone < 0 || shell < 0 || protector < 0){
return "输入格式错误,请重试\n";
}
double ans = 0.0;
long sum = 80 * headphone + 10 * shell + 8 * protector;
if(sum < 1000){
ans = sum * 0.1;
}
else if(sum >= 1000 && sum <= 1800){
ans = 100.0 + (sum - 1000) * 0.15;
}
else{
ans = (sum - 1800.0) * 0.2 + 220.0;
}
return String.format("佣金金额:%.2f元\n", ans);
}
public static void main(String[] args){
while(true){
String headphone; //耳机
String shell; //手机壳
String protector; //手机贴膜
@SuppressWarnings("resource")
Scanner scanner = new Scanner(System.in);
System.out.println("请输入耳机的销售情况:");
headphone = scanner.next();
System.out.println("请输入手机壳的销售情况:");
shell = scanner.next();
System.out.println("请输入手机贴膜的销售情况:");
protector = scanner.next();
System.out.println(commission(changeToInt(headphone), changeToInt(shell), changeToInt(protector)));
}
}
}
心得体会:
还是C好。

浙公网安备 33010602011771号