第二次作业+105032014108

1.测试帖链接

  http://www.cnblogs.com/1033YCY/p/6596443.html

2.问题与缺陷

  程序在输入非整形数值后程序崩溃

3.代码清单

package exp_1;

import java.util.Scanner;

public class Test {

	public static final int HP_PRICE=80;	//手机耳机价格
	public static final int SHELL_PRICE=10;	//手机保护壳价格
	public static final int PROTECTOR_PRICE=8;	//手机保护膜价格
	public static final String MSG_INPUT_ERROR="-1"; //错误信息
	
	public static void main(String[] args){
		Scanner scanner=new Scanner(System.in);
		while(true)
		{
			System.out.print("请输入耳机销售量:");
			String hp=scanner.nextLine();
			System.out.print("请输入手机壳销售量:");
			String shell=scanner.nextLine();
			System.out.print("请输入手机贴膜销售量:");
			String protector= scanner.nextLine();
			String result=commission(hp, shell, protector);
			System.out.println(result);
		}
		
	}
	
	//求销售额
	public static String commission(String hp,String shell,String protector){
		int hp_int;
		int shell_int;
		int protector_int;
		//判断输入是否为整形数值
		try
		{
			hp_int=Integer.parseInt(hp);
			shell_int=Integer.parseInt(shell);
			protector_int=Integer.parseInt(protector);
		} catch (Exception e) 
		{
			return MSG_INPUT_ERROR;
		}
		//判断输入是否合理
		if(hp_int<0||shell_int<0||protector_int<0)
		{
			return MSG_INPUT_ERROR;
		}else
		{
			double result=hp_int*HP_PRICE+shell_int*SHELL_PRICE+protector_int*PROTECTOR_PRICE;
			if(result<1000)
			{
				return String.valueOf(result*0.1);	//小于1000
			}
			else if(result>=1000&&result<=1800)
			{
				return String.valueOf(1000*0.1+(result-1000)*0.15);	//大于1000且小于1800
			}
			else
			{
				return String.valueOf(1000*0.1+800*0.15+(result-1800)*0.2);	//大于1800
			}
		}
	}
}

 

4.心得体会

  通过try catch结构可以通过自定义异常发生后的处理行为,从而提高程序的容错性,使代码更加健壮。

 

posted @ 2017-03-27 13:03  Why-Not  阅读(255)  评论(2编辑  收藏  举报