创建一个程序,以接收多个输入数据,显示列表中的数据

时间:2018-11-17 09:55:47

标签: java arrays

i was told to make a program like that, after input i can see the data

这是我的代码,请帮助我进行搜索,但主要是在用户不知道数据的情况下进行。 它是使用数组还是用于? 我搜索了很多次,但仍然找不到像我的

我尝试使用数组

ive,但我不知道如何获取数组,在一个数组中有3个用户输入。大多数情况下,我发现仅使用一个用户输入

有时我会收到错误,表明字符串不能满足int类型

import java.util.Scanner;
public class Case7{
public static void main(String[] args) {
    Scanner input = new Scanner (System.in);

    int choose=0;
    String name ="";
    String pos = "";
    int age = 0;

    do{
    System.out.println("JOB VACANCY");
    System.out.println("===========");
    System.out.println("1. Insert new data");
    System.out.println("2. List of staff");
    System.out.println("3. Search staff");
    System.out.println("4. Exit");
    System.out.print("Choose: ");
    choose = input.nextInt();

        if (choose == 1)
        {
            System.out.println("\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n");


                do{
                System.out.print("Input staff name: ");
                name = input.nextLine();
                }while(name.length() < 3 || name.length() > 20);

                do{
                System.out.print("Input staff position [Manager | Analyst | Programmer]: ");
                pos=input.nextLine();
                }while(!pos.equalsIgnoreCase("Manager") && !pos.equalsIgnoreCase("Analyst") && !pos.equalsIgnoreCase("Programmer"));


                do{
                System.out.print("Input staff age: ");
                age=input.nextInt();
                }while(age <= 17);

                System.out.println("Data has been added!");
                input.nextLine();
                input.nextLine();

                System.out.println("\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n");


            }



        else if (choose == 2) 
        {
            System.out.println("\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n");

            for (int i = 1; i < 6 ; i++ ) 
            {
                System.out.println("Staff ID    :" + i);
                System.out.println("==============");
                System.out.println("1. name     : " +name );
                System.out.println("2. position : " +pos );
                System.out.println("3. age      : " +age );

                System.out.println("\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n");


            }

        }

1 个答案:

答案 0 :(得分:0)

我可以建议一个完全不同的实现方式吗? 您可以使用开关为选项打分,还可以使用LinkedList动态存储所有新员工。 这是我的评论代码:

static LinkedList<Staffer> staff=new LinkedList<>(); //ours database
static Scanner input = new Scanner (System.in);

public static void main(String[] args) {
    String s="";
    int number=-1;

    while(number!=4){ //if your choice is 4, we can exit!
    //Chooser:
    System.out.print("JOB VACANCY\n===========\n1. Input data\n2. Show Data\n3.Delete Data\n4.£xit\nYour choice: ");
    s=input.nextLine();
    if(s.matches("\\d+")){ //Check if s is a number
        number=Integer.parseInt(s);
        switch(number){
        case 1: input(); break;
        case 2: showData(); break;
        case 3: deleteData(); break;
        case 4: System.out.println("Goodbye!"); break;
        default: System.out.println("Number not valid. Try again!");
        }
    }else
        System.out.println("Number not valid. Try again!");
    }

}

private static void showData() {
    for(Staffer st:staff)
        System.out.println(st);

}

private static void deleteData(/*parameters*/) {
    // You can delete a staffer by passing the name, for example
}

private static void input() {
    //Plese, implements your data control options...
    String name, position;
    int age;
    System.out.print("Name: ");
    name=input.nextLine();
    System.out.print("Position: ");
    position=input.nextLine();
    System.out.print("Age: ");
    age=(Integer.parseInt(input.nextLine()));
    Staffer staffer=new Staffer(name,position, age);
    staff.add(staffer);

}

public static class Staffer{ //a staff member has 3 parameter: name, position and age... You can add others

    /*You should store the name using only upperCase or LowerCase, or
     * John Williams != john williams != JOHN WILLIAMS and you can have three times
     * the same people.
     * 
     * The position can be converted in enum for the same reason.
     */
    private String name, position;
    private int age;

    public Staffer(String name, String position, int age){
        this.name=name;
        this.position=position;
        this.age=age;
    }

    @Override
    public String toString(){
        return "Mr. "+name+", "+position+" (age: "+age+")";
    }
}

您可以看到以下示例输出:

Screenshot

显然,您必须改进输出和所有数据检查选项。