2016-11-20 1 views
-3

Ich erstelle einen Code, der dem Benutzer eine array der Dienste und ihre entsprechenden Preise anzeigt. Benutzereingabe mit Arrays und While-Loops

Jedes Mal, wenn der Benutzer einen Dienst wählt, möchte ich der Preis für diesen Dienst für den Benutzer angezeigt werden ...

Wenn der Benutzer für mehrere Dienste ausgeführt werden, möchte ich den Computer, sie zu fragen, bis Sie sagen etwas anderes.

Außerdem muss ich einen Akku verwenden, um die Preise der Dienste hinzuzufügen, die Benutzer anfordert.

Bisher ist es das, was ich habe:

import java.util.Scanner; 
public class Assign3 
{ 
    public static void carMake(String bmw) 
    { 
     Scanner input = new Scanner(System.in); 

     //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"); 


     } 

     System.out.println("What service do you want done?: "); 
     String service= input.nextLine(); 




    } 
     public static void main(String[]args) 
     { 
      String bmw = "fancy car"; 
      carMake(bmw); 


     } 
} 
+0

bedeuten Sie etwas Ähnliches wie folgt aus: http://stackoverflow.com/questions/40689994/printing-all-the-items/ – DevilsHnd

+0

So werden Sie Zustandsnummern für die Optionen, z Ölwechsel als 1 oder muss der Benutzer "Ölwechsel" eingeben? Wie werden Sie sich an die Benutzerauswahl erinnern? –

+0

Der Benutzer muss einen Ölwechsel eintippen. Ich möchte, dass das System einen Akkumulator (i ++) verwendet, um jeden vom Benutzer gewünschten Dienst hinzuzufügen und ihnen einen Dienst zu geben, wenn sie alle gewünschten Dienste ausgewählt haben. –

Antwort

2

Obwohl ich nicht ein volles Programm einreichen, kann ich Ihnen alle Informationen, die Sie benötigen, dieses Projekt zu beenden. Zuerst müssen Sie entscheiden, wie Sie die Verbindung zwischen einem Service und dessen Preis integrieren.

Ein besserer Ansatz anstelle von zwei Arrays wäre das Erstellen eines "Service" -Objekts. Zum Beispiel:

public class Service { 
    // Variables to use 
    String name = ""; 
    double price = 0.0; 

    // Constructor of the 'Service' class 
    public Service(String inputName, double inputPrice) { 
      name = inputName; 
      price = inputPrice; 
    } 
} 

Diese Sie den Anruf dann würde erlauben:

// Create the oilChange service 
Service oilChange = new Service("Oil Change", 39.99); 

// Get the oilChange values: 
System.out.println(oilChange.name); // Displays 'Oil Change' 
System.out.println(oilChange.price); // Displays '39.99' 

Von dort müssen Sie bestimmen, ob ein for-loop oder eine while- loop zu verwenden. A for-loop erfordert, dass Sie wissen, wie oft die Schleife ausgeführt wird. Für Ihr Beispiel ist dies jedoch etwas, was Sie nicht wissen werden. Daher müssen Sie einen while-loop verwenden. Ein Beispiel für ein while-loop für Ihr Programm würde so aussehen:

double totalPrice = 0.0; 
boolean userIsDone = false; 
Service listOfServices = [] // Contains created service objects from above 
while (userIsDone == false) { 
    System.out.println("What service do you want done? (Type 'quit' to exit): "); 
    String service= input.nextLine(); 
    if (input.equalsIgnoreCase("quit")) { 
      userIsDone = true; 
    } else { 
      /* 
      1.) Loop through the 'listOfServices' array finding 
       a service with the name that matches user input 
      2.) Then retrieve the price of that service and add 
       it to the 'totalPrice' counter 
      */ 
    } 
} 
System.out.println(totalPrice); // Updated total price! 

hoffe, das hilft!

0

Also, wenn ich richtig verstehe, wollen Sie, dass wir etwas Code erstellen, der das ausführen wird, bis der Benutzer das Programm beenden möchte. Die Frage ist unklar, wo Sie uns sagen, was Sie tun wollen, nicht was Sie wollen, also verzeihen Sie, wenn ich die Frage, die gestellt wird, nicht interpretiere. Hier ist meine Antwort auf die Frage, die ich nehme an, Sie fragen:

import java.util.Scanner; 
public class Assign3 
{ 
    public static void carMake(String bmw) 
    { 
     Scanner input = new Scanner(System.in); 

     //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 
     { 
      System.out.println("What service do you want done?: \n"+ 
           "1. Oil Change\n"+ 
           "2. Tire Rotation\n"+ 
           "3. Etc.\n"+ 
           "4. Etc.\n"+ 
           "5. Exit Program"); 
      int service= input.nextInt(); 

      System.out.println("\nThe price for that service will be: "+ price[service]); 
     } 
     while(input.hasNextInt()&&service!=5) 


    } 
     public static void main(String[]args) 
     { 
      String bmw = "fancy car"; 
      carMake(bmw); 


     } 
} 
Verwandte Themen