问:进行多个循环以及多个if语句和if-else语句||租赁汽车计算器项目 [英] Q : Doing multiple loops and multiple if-statements and if-else-statements || RENTAL CAR CALCULATOR PROJECT

查看:94
本文介绍了问:进行多个循环以及多个if语句和if-else语句||租赁汽车计算器项目的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我对项目的说明如下:

说明:使用标记值循环.创建基本的租车计算器

Instructions: Use a sentinel value loop. To create a basic Rental Car Calculator

向每个用户询问:

车辆类型(可以使用字符串以外的其他方式,例如:1用于经济性,2用于轿车等) 出租天数 计算(针对每个客户):

Type of vehicle (May use something other than strings, such as: 1 for an economy, 2 for a sedan, etc.) Days rented Calculate the (For each customer):

租金, 税金 应付总额. 共有三种不同的租金选项,分别收取不同的费用:经济型@ 31.76,轿车@ 40.32,SUV @ 47.56. [注意:仅考虑全天单位(无小时费率).

Rental cost, Taxes, Total Due. There are three different rental options with separate rates: Economy @ 31.76, sedan @ 40.32, SUV @ 47.56. [Note: only whole day units to be considered (no hourly rates)].

销售税为TOTAL的6%.

Sales tax is = to 6% on the TOTAL.

使用以下方法创建摘要数据:

Create summary data with:

客户数量 收款总额. 另外,包括IPO,算法和案头检查值(设计文件).

Number of customers Total money collected. Also, Include IPO, algorithm, and desk check values (design documents).

{我要做什么和我的问题}

{WHAT I HAVE GOING AND MY QUESTION(S)}

package tests;

import java.util.InputMismatchException;
import java.util.Scanner;

public class Tester {

public static void main(String []args){
int count=0;
int days;
int cus = 10; 
double DailyFee=0, NontaxTotal, CarType, Total,FullTotal=0;
boolean F1 = false, F2 = false, F3 = false;
Scanner in=new Scanner(System.in);


while (F3 == false) {
    F3 = true;
    System.out.print("Press 1 to enter Rental Calculator or else press 0 to quit\n");
    System.out.println("Please only enter 1 or 0. Also, please only enter number(s) not letter(s)");
    try {
        cus=in.nextInt();
        if (cus == 0 || cus == 1) {
            F3 = true;
        } else {
            F3 = false;
            System.out.println("Number must be either 1 or 0");
        }
    } catch (InputMismatchException ex) {
        F3 = false;
        System.out.println("Invalid entry");
        in.next();
    }
}

    if(cus == 1) { 
        while(F1 == false) {
            F1 = true;
            count++;
            System.out.print("What vehical would you like to rent?\n");
            System.out.println("Enter 1 for an economy car");
            System.out.println("Enter 2 for a sedan car");
            System.out.println("Enter 3 for an SUV");
            // 
            try {
                CarType = in.nextInt();
                if (CarType <= 0 || CarType >= 4) {
                    System.out.print("Number must be 1-3\n");
                    System.out.println("Please enter 1 for an economy car");
                    System.out.println("Enter 2 for a sedan car");
                    System.out.println("Enter 3 for an SUV");

                    F1 = false;
                } else {
                     if (CarType == 1) {
                         F1 = true;
                          DailyFee=31.76;
                } else if(CarType == 2) {
                        F1 = true;
                          DailyFee=40.32;
                } else if(CarType == 3) {
                        F1 = true;
                          DailyFee=47.56;
                }
                while (F2 == false) {
                    F2 = true;
                    try { 
                        System.out.print("Please enter the number of days rented. (Example; 3) : ");
                        days = in.nextInt();
                        if (days <= 0) {
                            System.out.println("Number of days must be more than zero");
                            F2 = false;
                        } else {

                            double x=days;
                            NontaxTotal = (DailyFee * x);
                            Total = (NontaxTotal * 1.06);
                            FullTotal+=Total;
                            F3 = true;

                        }
                    } catch(InputMismatchException ex) {
                        System.out.println("Answer must be a number");
                        F2 = false;
                        in.next();
                        }
                    }
                }
            } catch (InputMismatchException ex) {
                F1 = false;
                System.out.println("Answer must be a number"); 
            }
        }
    }
    in.close();
    System.out.println("Count of customers : " + count);
    System.out.printf("Total of the Day : $ %.2f", FullTotal);

    }
}

{我的问题}

  1. 当在提示中输入字母时,将显示按1进入租赁计算器,否则按0退出",出现错误提示,然后控制台要求再次输入.同样,当在提示符下输入字母您想租什么车?"时,控制台继续不停地打印行?我不知道该如何解决?

  1. When a letter is entered to the prompt "Press 1 to enter Rental Calculator or else press 0 to quit" it displays, an error prompt then the console asks for input again. Similarly, when a letter is inputted at the prompt "What vehicle would you like to rent?" the console continues to print lines with no stop? I do not know how to fix this?

我希望我的程序允许进行多个计算输入.但是,在进行完整的计算输入(天数*税额*汽车类型)之后,控制台发布摘要数据而不是循环吗? 2a.在提示请输入租用的天数.(示例; 3):"之后,并跟随用户输入.我如何让我的程序返回到询问按1进入租赁计算器,否则按0退出"?仍然使0提示我的摘要数据?

I want my program to allow multiple calculation inputs to be made. However, after full calculation input (Days * Tax * Car Type) the console post summary data rather than looping? 2a. After the prompt "Please enter the number of days rented. (Example; 3) : " and following user input. How would I get my program to loop back to asking "Press 1 to enter Rental Calculator or else press 0 to quit"? with still making 0 prompt my summary data?

推荐答案

在这里,我进行了一些修改,然后将整个过程放入while循环中(while(cus!= 0)),现在它可以正常工作了,试试此代码,如果您有任何疑问,请告诉我

Here you go, i modified it a bit and put the whole thing in a while loop (while (cus != 0)) now it is working perfectly, try this code and do let me know if you have questions

package inter;

import java.util.InputMismatchException;
import java.util.Scanner;

public class Inter {

    public static void main(String []args){
    int count=0;
    int days;
    int cus = 10; // added
    double DailyFee=0, NontaxTotal, CarType, Total,FullTotal=0;
    boolean F1 = false, F2 = false;
    Scanner in=new Scanner(System.in);

    while (cus != 0) {

        while (true) {  
            System.out.println("If there are any customer press 1 else press 0");
        try {           
            cus=in.nextInt();
            if (cus == 0 || cus == 1) {  
                break;
            } else {
                System.out.println("Number must be either 1 or 0");
            }
        } catch (InputMismatchException ex) {
            System.out.println("Invalid entry");
            in.next();
        }
    }

        if(cus == 1) {           
            while(F1 == false) {
                F1 = true;
                count++;
                System.out.print("What vehical would you like to rent?\n");
                System.out.println("Enter 1 for an economy car");
                System.out.println("Enter 2 for a sedan car");
                System.out.println("Enter 3 for an SUV");
                try {
                    CarType = in.nextInt();
                    if (CarType <= 0 || CarType >= 4) {
                        System.out.print("Number must be 1-3\n");
                        System.out.println("Please enter 1 for an economy car");
                        System.out.println("Enter 2 for a sedan car");
                        System.out.println("Enter 3 for an SUV");
                        F1 = false;
                    } else {
                         if (CarType == 1) {
                             F1 = true;
                              DailyFee=31.76;
                    } else if(CarType == 2) {
                            F1 = true;
                              DailyFee=40.32;
                    } else if(CarType == 3) {
                            F1 = true;
                              DailyFee=47.56;
                    }
                    while (F2 == false) {
                        F2 = true;
                        try { 
                            System.out.print("Please enter the number of days rented. (Example; 3) : ");                           
                            days = in.nextInt();
                            if (days <= 0) {
                                System.out.println("Number of days must be more than zero");
                                F2 = false;
                            } else {
                                //days = in.nextInt();
                                double x=days;
                                NontaxTotal = (DailyFee * x);
                                Total = (NontaxTotal * 1.06);
                                FullTotal+=Total;
                            }
                        } catch(InputMismatchException ex) {
                            System.out.println("Answer must be a number");
                            F2 = false;
                            in.next();
                            }
                        }
                    F2 = false;
                    }
                } catch (InputMismatchException ex) {
                    F1 = false;
                    System.out.println("Answer must be a number"); 
                    in.next();
                }
            }
            F1 = false;
        }
    }
    System.out.println("Count of customers : " + count);
    System.out.printf("Total of the Day : $ %.2f", FullTotal);
    }
}

这篇关于问:进行多个循环以及多个if语句和if-else语句||租赁汽车计算器项目的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆