调用方法和使用正确的循环

时间:2016-11-20 18:57:18

标签: java loops methods while-loop call

我正在创建一个程序,它基本上会询问用户他们想要购买什么并给他们总计。

我应该在Main之外使用2个单独的方法来完成这个任务:

  1. 一种获取用户输入的方法,他们想要执行哪种服务,此方法还会告诉用户服务的总成本(超出税和劳动力)
  2. 计算人工成本和税费的另一种方法
  3. 第一种方法应该将总成本返回到main方法,第二种方法应该从main方法获得总数并计算加入人工和税后的最终成本。

    (如果汽车是进口的,应加上总量的5%)

    这是我到目前为止所做的:

    import java.util.Scanner;
    public class Assign3 {
    
        public static double carMaintenance(String userCar) {
            Scanner input = new Scanner(System.in);
    
            String service_ordered="";
            String more="yes";
            double amount;
            double total=0;
            //declare and intialize parallel arrays, Services and Prices and display them to the user
            String[] services = {"Oil Change" , "Tire Rotation", "Air Filter", "Fluid Check"}; //intialize list of services
            double[]price = {39.99, 49.99, 19.99, 10.99}; //initialize corresponding price for services
            for(int i= 0; i < services.length; i++) {
                System.out.print( services[i]+ "...." );    
                System.out.print( price[i] + "\t");  
            }
    
            do // *****2. THIS IS WHAT IS BEING EXECUTED FROM THE METHOD CALL IN MAIN *****
            {
                System.out.print("What service do you want done?: ");
                String choice = input.nextLine();
                if (choice.equalsIgnoreCase("oil change")) {
                    System.out.println("You chose an oil change");
                    amount = 39.99;
                    total = total + amount;
                    service_ordered+="Oil Change ";
                    System.out.print("Do you want to do another service? ");
                    more = input.nextLine();
                } else if (choice.equalsIgnoreCase("tire rotation")) {
                    System.out.println("You chose a tire rotation");
                    amount = 49.99;
                    total = total + amount;
                    service_ordered+="Tire Rotation ";
                    System.out.print("Do you want to do another service? ");
                    more = input.nextLine();
                } else if (choice.equalsIgnoreCase("air filter")) {
                    System.out.println("You chose an air filter");
                    amount = 19.99;
                    total = total + amount;
                    service_ordered+="Air Filter ";
                    System.out.print("Do you want to do another service? ");
                    more = input.nextLine();
                } else if (choice.equalsIgnoreCase("fluid check")) {
                    System.out.println("You chose a flud check");
                    amount = 10.99;
                    total = total + amount;
                    service_ordered+="Fluid Check ";
                    System.out.print("Do you want to do another service? ");
                    more = input.nextLine();
                } 
            } while (more.equalsIgnoreCase("yes"));
            System.out.println("You ordered: " + service_ordered);
            System.out.println("Your total due is " + total);
    
            return total;
        }
    
        public static void main(String[]args) {
            Scanner input = new Scanner(System.in);
    
            System.out.println("What kind of car do you have?: "); //****1. CODE STARTS HERE *****
            String userCar = input.nextLine();
    
    
            double total = carMaintenance(userCar); //*****2. CODE CALLS THIS METHOD AND EXECUTES IT *****
    
            calcFinalPrice(total);
        }
    
        public static void calcFinalPrice(double total) {
    
            double salesTax=.08;
            double laborFee=.3;
            double importFee=.05;
    
            Scanner input = new Scanner(System.in);
    
            System.out.println("Is your vehicle an import?: "); 
            String isImport = input.nextLine();
            if(isImport.equals("yes")) {
                total=total*laborFee+total;  // this is the labor fee
                double importTotal = total*importFee+total;
                double totalAfterTax = importTotal*salesTax+importTotal;    //this is the import total aftertax
                System.out.println("It will cost " + totalAfterTax + " to fix your vehicle.");
            }
    
            if(isImport.equals("no")) {
                total=total*laborFee+total;  // this is the labor fee
                double totalAfterTax = total*salesTax+total;    //this is the total aftertax
                System.out.println("It will cost " + totalAfterTax + " to fix your vehicle ");
            }
        }
    }   
    

0 个答案:

没有答案