打印出客户姓名、ID、余额



我正在编写一个我需要的Java程序:

一种读取客户名称和 ID 并将其存储在数组中的方法。(读取由零行或多行组成的序列,每行都包含一个客户的名称和 ID。每行实例化一个Customer对象,并将每个对象存储在对象数组中。数组的长度不必超过 10 个元素。nameid的序列将以空行结尾)。

主要

import java.util.Scanner;
public class CustomerTest {
    public static void main(String[] args) {
        Customer[] customers = new Customer[10];
        Scanner myScanner = new Scanner(System.in);
        int numItem;
        readCustomer(myScanner, customers); //not sure about this calling
        readNameAmount(myScanner, customers); ////not sure about this calling
    }
    public static void readCustomer(Scanner myScanner, Customer[] input) {
        boolean streamEnded = false;
        int numItem = 0;
        while (!streamEnded && myScanner.hasNext()) {
            String name = myScanner.nextLine();
            String id = myScanner.nextLine();
            if (name.length() == 0 && id.length() == 0) {
                streamEnded = true;
            } else {
                input[numItem] = name; //error
                input[numItem] = id; //error
            }
            numItem++;
            Customer customerTest = new Customer(name, id);
        }
    }
    public static void readNameAmount(Scanner myScanner, Customer[] input) {
        while (myScanner.hasNext()) {
            String id = myScanner.nextLine();
            double amount = myScanner.nextDouble();
            int i = 0;
            boolean found = false;
            while (i <numItem && !found) { //error
                if (customers[i].equals(id)) { //error
                    changeBalance(double value);//error
                }
                found = true;
                i++;
            }
        }
    } 
    public static void print(Customer[] input, int numItem) {
        for (int i = 0; i < numItem; i++) {
            System.out.println(customers[i].toString()); //error
        }
    }
}

你能检查一下这是否有效吗?我不知道我是否理解你的问题。我刚刚清除了错误。

public class CustomerTest {
static int numItem = 0;
public static void main(String[] args) {
    Customer[] customers = new Customer[10];
    Scanner myScanner = new Scanner(System.in);
    readCustomer(myScanner, customers); //not sure about this calling
    readNameAmount(myScanner, customers); ////not sure about this calling
}
public static void readCustomer(Scanner myScanner, Customer[] input) {
    boolean streamEnded = false;
    while (!streamEnded && myScanner.hasNext()) {
        String name = myScanner.nextLine();
        String id = myScanner.nextLine();
        if (name.length() == 0 && id.length() == 0) {
            streamEnded = true;
        } 
        else {
            input[numItem].getName();
            input[numItem].getId(); //error
        }
        numItem++;
        Customer customerTest = new Customer(name, id);
    }
}
public static void readNameAmount(Scanner myScanner, Customer[] input) {
    while (myScanner.hasNext()) {
        String id = myScanner.nextLine();
        Customer cust = new Customer();
        double amount = myScanner.nextDouble();
        int i = 0;
        boolean found = false;
        while (i < numItem && !found) { //error
            if (input[i].equals(id)) { //error
                cust.changeBalance(amount);//error
            }
            found = true;
            i++;
        }
    }
} 
public static void print(Customer[] input, int numItem) {
    for (int i = 0; i < numItem; i++) {
        System.out.println(input[i].toString()); //error
    }
}
}

让我知道你的想法。

客户.java

public class Customer {
    private String name;
    private String id;
    private double balance;
    public Customer(){
    }
    public Customer(String name, String id) {
        this.name = name;
        this.id = id;
    }
    public String getName() {
        return name;
    }
    public String getId() {
        return id;
    }
    public void changeBalance(double value) {
        balance = balance + value;
    }
    public String toString() {
        return "name " + name + " id " + id + " balance " + balance;
    }
}

相关内容

最新更新