Как мне сохранить новую информацию о клиенте в массиве и иметь возможность просматривать ее снова в java? - PullRequest
0 голосов
/ 23 января 2020

Это мое задание. Я должен создать приложение, которое показывает меню и выполняет соответствующее действие на основе выбора пользователя. Вот то, что мое меню должно включать

1. add a new client - keep it as the current client
2. find a client with a given name - keep it as the current client
3. add a service for the current client
4. print the current client's balance
5. print the current client's history of services
6. print all the clients' balances
7. exit [save all the data to a file option and retrieve it back when the program starts] 
System.out.println("Welcome to Tracy'S Auto Mechanic Shop!");
do{
System.out.println("\nTracy's Auto Mechanic Shop Main Menu");
System.out.println("------------------------------------");
for(int i = 0; i < choices.length; i++){
System.out.println((i < choices.length-1? ? i+1 : 0) + ". " + choices[i]);
}

System.it.print("Make your choice: ");
choice = input.nextInt();

switch(choice){
case 1:
main_addNewClient();
break;
case 2:
main_SearchClient();
break;
case 3:
main_AddService();
break;
case 4:
main_ViewBalance();
break;
case 5:
main_ViewHistory();
break;
case 6:
main_ViewAll();
break;
case 0: 
System.exit(0);
default:
System.out.println("Invalid choice. Try again.");
}
}while(choice != 0);

input.close();
}

До сих пор я создал меню, но я застрял при добавлении нового клиента. Как мне сохранить всю информацию в массив и сохранить ее? Я создал класс, как показано внизу:

class Client{
   public String name;
   public String email;
   public String make;
   public int year;
   public String vin;

   public static void Client(String name, String email, String make, int year, String vin){
      this.name = name;
      this.email = email;
      this.make = make;
      this.year = year; 
      this.vin = vin;

   }

}

Для возможности добавления нового клиента я создал метод в main

public static void main_addNewClient() {
String name, email, vin, make;
int year;
input.nextLine();
System.out.print("Enter your first name: ");
name = input.nextLine();
System.out.print("Enter your email: ");
email = input.nextLine();
System.out.print("Enter vin: ");
vin = input.nextLine();
System.out.print("Enter make: ");
make = input.nextLine();
System.out.print("Enter year: ");
year = input.nextLine();

, но как мне взять все пользовательский ввод и сохранить его в массиве? Я не уверен, с чего начать.

Ответы [ 2 ]

0 голосов
/ 23 января 2020
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;

public class Exercise {

// list to store your clients
static List<Client> clients = new ArrayList<>();

static class Client{
    public String name;
    public String email;
    public String make;
    public int year;
    public String vin;

    Client(String name, String email, String make, int year, String vin){
        this.name = name;
        this.email = email;
        this.make = make;
        this.year = year;
        this.vin = vin;
    }
}

public static void main_addNewClient() {
    String name, email, vin, make;
    int year;
    Scanner input = new Scanner(System.in);
    input.nextLine();
    System.out.print("Enter your first name: ");
    name = input.nextLine();
    System.out.print("Enter your email: ");
    email = input.nextLine();
    System.out.print("Enter vin: ");
    vin = input.nextLine();
    System.out.print("Enter make: ");
    make = input.nextLine();
    System.out.print("Enter year: ");
    year = input.nextInt();

    // create new client object with input you got
    Client c = new Client(name, email, make, year, vin);
    // add client to the list
    clients.add(c);
}
}

Это то, что вы хотели знать? Есть много в этом упражнении. Я думаю, что сначала вам нужно создать меню, которое спросит пользователя, что он хочет сделать: добавить нового клиента, найти клиента и т. Д. c.

0 голосов
/ 23 января 2020

Во-первых, объявите ArrayList в вашем основном файле, который будет содержать все клиенты

 ArrayList clients = new ArrayList<Client>();   

Во-вторых, создайте новый клиент объект в вашем методе и заполните данными, полученными из затем добавьте эти данные клиента в созданный вами ArrayList

   Client client = new Client(name,email,vin,year,make);
   clients.add(client);
...