1

我有一个使用 BlueJ 执行的任务,我得到了一个名为 HW4CustomerList 的类,我必须为它创建一个基于文本的 UI。我必须创建的类名为 CustomerTUI,它包含一个名为 addCustomer 的方法,该方法将我的新客户对象添加到 ArrayList。这种方法尤其是我所坚持的。类规范说我不能接受任何参数(即无参数方法)。在之前的工作中,我们使用了 BlueJ 的“方法框”来与对象交互并将它们添加到 ArrayLists,但是我不知道这是否可以在这个特定的实例中使用。请在下面找到我的 CustomerTUI 代码以及 Customer 类和 HW4CustomerList 类的代码。提前谢谢了。

CustomerTUI 类:

import java.util.Scanner;

public class CustomerTUI
{
private HW4CustomerList customerList;
private Scanner myScanner;

public CustomerTUI()
{
    customerList = new HW4CustomerList();
    myScanner = new Scanner(System.in);
}

public void menu()
{
    int command;
    boolean running = true;

    while(running)
    {
        displayMenu();
        command = getCommand();
        execute(command);
    }
}

private void addCustomer()
{
    customerList.addCustomer();
}

private void displayMenu()
{
    System.out.println("            CustomerList program         ");
    System.out.println("=========================================");
    System.out.println("|Add a customer to the list..........[1]|");
    System.out.println("|Get number of customers.............[2]|");
    System.out.println("|Remove a customer from the list.....[3]|");
    System.out.println("|Show all customer details...........[4]|");
    System.out.println("|Show a specific customers details...[5]|");
    System.out.println("|Quit................................[6]|");
    System.out.println("=========================================");
}

private void execute(int command)
{
    if(command == 1)
    {
        addCustomer();
    }

    else if(command == 2)
    {
        getNumberOfCustomers();
    }

    else if(command == 3)
    {
        removeCustomer();
    }

    else if(command == 4)
    {
        showAllCustomers();
    }

    else if(command == 5)
    {
        showCustomer();
    }

    else if(command == 6)
    {
        quitCommand();
    }

    else
    {
        unknownCommand(command);
    }
}

private int getCommand()
{
    System.out.println("Enter the command of the function you wish to use: ");
    int command = myScanner.nextInt();
    return command;
}

private void getNumberOfCustomers()
{
    if(customerList.getNumberOfCustomers() == 1)
    {
        System.out.println("We have " + customerList.getNumberOfCustomers() + " customer.");
    }
    else
    {
        System.out.println("We have " + customerList.getNumberOfCustomers() + " customers.");
    }
}

private void quitCommand()
{
    System.out.println("The program is now closing down...");
    System.exit(0);
}

private void removeCustomer()
{
    String accNo;

    System.out.println("Enter the account number of the customer you wish to remove: ");
    accNo = myScanner.next();
    if (customerList.removeCustomer(accNo) == true)
    {
        System.out.println("Customer with account number " + accNo + " was successfully removed.");
    }
    else
    {
        System.out.println("Customer with account number " + accNo + " was NOT successfully removed.");
        System.out.println("Please try again.");
    }
}

private void showAllCustomers()
{
    customerList.getAllCustomers();
}

private void showCustomer()
{
    String accNo;

    System.out.println("Enter the account number of the customer you wish to view: ");
    accNo = myScanner.next();
    if(customerList.getCustomer(accNo) == false)
    {
        System.out.println("Could not find customer with account number " + accNo + ".");
    }
    else
    {
        return;
    }
}

private void unknownCommand(int command)
{
    System.out.println("Command number " + command + " is not valid. Please try again.");
}
}

HW4CustomerList 类:

import java.util.*;

public class HW4CustomerList
{
private ArrayList<Customer> customers;    

public HW4CustomerList()
{
   customers = new ArrayList<Customer>();
}

public void addCustomer(Customer customer)
{
    customers.add(customer);
}

public int getNumberOfCustomers()
{
    return customers.size();
}

public boolean getCustomer(String accountNumber)
{
   for(Customer customer : customers)
   {
       if(accountNumber.equals(customer.getAccountNumber()))
       {
          customer.printCustomerDetails();
          return true;
      }
  }
  return false;
}


public void getAllCustomers()
{
    for(Customer customer : customers)
    {
        customer.printCustomerDetails();
        System.out.println("\n");
    }
}


public boolean removeCustomer(String accountNumber)
{
     int index = 0;
     for (Customer customer: customers)
     {
          if (accountNumber.equals(customer.getAccountNumber()))
        {
            customers.remove(index);
            return true;
        }
        index++;
    }
    return false;
}
}
4

1 回答 1

0

我认为您需要做的就是在您的 addCustomer() 方法中创建一个新的 Customer 对象。这可能需要获取更多详细信息:

public void addCustomer()
{
    Scanner scanner = new Scanner(System.in);
    System.out.println("Enter customer name: ");
    String name = scanner.nextLine();
    //any additional details
    Customer customer = new Customer(name, otherParams);
    customers.add(customer);
}

希望有帮助!

于 2012-11-26T15:26:22.537 回答