车险保单信息打印(AutoPolicy Class)

来源:互联网 发布:linux 创建swap分区 编辑:程序博客网 时间:2024/04/28 06:20

业务逻辑:

1. 车险保单类包括客户号、保险标的-车型、所在州(美国)等属性,及setter, getter

2. 还包括判断所在州是否适用“no fault insurance(无过失保险)”的方法:isNoFaultState

3. 判断业务逻辑是否正确,需要具有相应的业务知识,需要花费额外的精力奋斗


代码如下:


//JHTP Exercise 5.30: Modified AutoPolicy Class//by pandenghuang@163.com/**(Modified AutoPolicy Class) Modify class AutoPolicy in Fig. 5.11 to validate the two-letterstate codes for the northeast states. The codes are: CT for Connecticut, MA for Massachusetts, MEfor Maine, NH for New Hampshire, NJ for New Jersey, NY for New York, PA for Pennsylvaniaand VT for Vermont. In AutoPolicy method setState, use the logical OR (||) operator(Section 5.9) to create a compound condition in an if…else statement that compares the method’sargument with each two-letter code. If the code is incorrect, the else part of the if…else statementshould display an error message. In later chapters, you’ll learn how to use exception handling to indicatethat a method received an invalid value.*/import java.util.Scanner;public class AutoPolicy {   private int accountNumber; // policy account number   private String makeAndModel; // car that the policy applies to   private String state; // two-letter state abbreviation   // constructor   public AutoPolicy(int accountNumber, String makeAndModel)   {      this.accountNumber = accountNumber;      this.makeAndModel = makeAndModel;   }   // sets the accountNumber   public void setAccountNumber(int accountNumber)   {      this.accountNumber = accountNumber;   }   // returns the accountNumber   public int getAccountNumber()   {      return accountNumber;   }    // sets the makeAndModel   public void setMakeAndModel(String makeAndModel)   {      this.makeAndModel = makeAndModel;   }   // returns the makeAndModel   public String getMakeAndModel()   {      return makeAndModel;   }    // sets the state   public String setState(String state)   {  String result="";       if(state.equals("CT") || state.equals("MA") || state.equals("ME") || state.equals("NH")       || state.equals("NJ") || state.equals("NY") || state.equals("PA") || state.equals("VT")){      this.state = state;      result="OK";   }      else{     System.out.println("抱歉,暂不支持您所输入的州的业务");      this.state="N/A";}            return result;   }   // returns the state   public String getState()   {      return state;   }   // predicate method returns whether the state has no-fault insurance   public String isNoFaultState()   {      String noFaultState;             // determine whether state has no-fault auto insurance      switch (getState()) // get AutoPolicy object's state abbreviation      {         case "MA": case "NJ": case "NY": case "PA":            noFaultState = "是";            break;         case "N/A":        noFaultState= "不确定";        break;         default:            noFaultState = "不是";            break;      }      return noFaultState;   }      public static void main(String[] args)   {  int accountNumber=0;  String makeAndModel="";  String state="";            Scanner input=new Scanner(System.in);     while (accountNumber!=-1){      System.out.print("请输入客户号(输入-1退出):");      accountNumber=input.nextInt();      if(accountNumber==-1)      break;      System.out.print("请输入车型:");      makeAndModel=input.next();           AutoPolicy ap=new AutoPolicy(accountNumber,makeAndModel);            System.out.print("请输入州名:");      state=input.next();      ap.setState(state);            policyInNoFaultState(ap);      }   }   // method that displays whether an AutoPolicy    // is in a state with no-fault auto insurance    public static void policyInNoFaultState(AutoPolicy policy)   {      System.out.println("车险保单信息:");      System.out.printf(         "客户 #: %d; 车型: %s;%n%s是否为“无过失州”:%s%n%n",          policy.getAccountNumber(), policy.getMakeAndModel(),          policy.getState(),          policy.isNoFaultState());   } }


运行结果:

请输入客户号(输入-1退出):1001
请输入车型:勇闯天涯
请输入州名:NY
车险保单信息:
客户 #: 1001; 车型: 勇闯天涯;
NY是否为“无过失州”:是

请输入客户号(输入-1退出):1002
请输入车型:仁者无敌
请输入州名:CT
车险保单信息:
客户 #: 1002; 车型: 仁者无敌;
CT是否为“无过失州”:不是

请输入客户号(输入-1退出):1009
请输入车型:不忘初心
请输入州名:NX
抱歉,暂不支持您所输入的州的业务
车险保单信息:
客户 #: 1009; 车型: 不忘初心;
N/A是否为“无过失州”:不确定

请输入客户号(输入-1退出):-1




0 0