Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/317.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
正在尝试检查用户选择的ID是否已在Java程序中选择_Java_Java.util.scanner - Fatal编程技术网

正在尝试检查用户选择的ID是否已在Java程序中选择

正在尝试检查用户选择的ID是否已在Java程序中选择,java,java.util.scanner,Java,Java.util.scanner,我正在进行一个学校项目,该项目基本上允许用户创建学生、班级、编辑他们,等等。我正在尝试为用户创建的每个学生分配ID,现在我允许用户输入他们自己的ID,如果尚未选择ID,程序会将其与其他ID进行比较,完成,但如果已选择,将显示一条消息,说明已选择,请选择其他ID,但我仍停留在这一部分,以下是我的代码,为简化起见,我仅显示main和create student方法,我会对我的想法发表//评论,希望你们能帮助我提出一些想法,请查看CreateStudent()方法 你需要使用一种新的方法。课程以大写字

我正在进行一个学校项目,该项目基本上允许用户创建学生、班级、编辑他们,等等。我正在尝试为用户创建的每个学生分配ID,现在我允许用户输入他们自己的ID,如果尚未选择ID,程序会将其与其他ID进行比较,完成,但如果已选择,将显示一条消息,说明已选择,请选择其他ID,但我仍停留在这一部分,以下是我的代码,为简化起见,我仅显示main和create student方法,我会对我的想法发表//评论,希望你们能帮助我提出一些想法,请查看CreateStudent()方法

你需要使用一种新的方法。课程以大写字母开头;变量名以小写字母开头。两者都使用驼峰案例

和大多数初学者一样,您编写的代码太多。您太担心屏幕I/O了

如果您已经了解了Java集合,我建议您创建
CourseCatalog
StudentFloster
类,以便在创建类和学生时保存它们

学生名册
可以轻松确定学生id是否已经存在:

public class StudentRoster {

    private static int ID = 1;
    
    private Map<Integer, Student> roster = new TreeMap<>();

    public void addStudent(int id, Student s) { this.roster.put(id, student); }

    public void addStudent(Student s) { this.roster.put(ID++, student); }

    public boolean hasId(int id) { return this.roster.containsKey(id); }

    public Student getStudent(int id) { return this.roster.get(id); }

}
公共班级学生名册{
私有静态int ID=1;
私有地图花名册=新树地图();
public void addStudent(int-id,Student s){this.floster.put(id,Student);}
public void addStudent(Student s){this.floster.put(ID++,Student);}
公共布尔hasId(int-id){返回this.lotster.containsKey(id);}
公立学生getStudent(int-id){返回this.floster.get(id);}
}

好的,您需要将您的ID存储在一个集合中,并检查您是否已经添加了此ID。 最简单的方法是在程序开始时读取输出文件,并将所有ID保存到哈希集中: 然后,当输入一个新ID时,您需要检查该ID是否已经在哈希集中。 如果ID存在,则打印错误,否则将学生添加到文件中,并将ID添加到哈希集

还有一个提示,您不应该使用以下代码:

if(userInput == 1) {
    CreateStudent();
} else if(userInput == 2) {
    CreateCourse();
} else if(userInput == 3) {
    CreateEnrollment();
} else if(userInput == 4 ) {
    EditStudent();
} else if(userInput == 5) {
   EditCourse();
} else if(userInput == 6) {
    EditEnrollment();
} else if(userInput == 7) {
    DisplayStudent();
} else if(userInput == 8) {
    DisplayCourse();
} else if(userInput == 9) {
    DisplayEnrollment();
} else if(userInput == 10) {
    GradesSubMenu();
} else if(userInput == 0) {
     System.out.print("Done");
} else {
    System.out.println("Invalid Option, Please try again.");
    userInput = keyboard.nextInt();
    if(userInput == 1) {
    ...
改用类似的方式:

int userInput = 0;
do {
    System.out.println("Please enter a valid choice(1-10, 0 to Quit) :");
    userInput = keyboard.nextInt();
    if(userInput == 1) {
        CreateStudent();
    } else if(userInput == 2) {
        CreateCourse();
    } else if(userInput == 3) {
        CreateEnrollment();
    } else if(userInput == 4 ) {
        EditStudent();
    } else if(userInput == 5) {
       EditCourse();
    } else if(userInput == 6) {
        EditEnrollment();
    } else if(userInput == 7) {
        DisplayStudent();
    } else if(userInput == 8) {
        DisplayCourse();
    } else if(userInput == 9) {
        DisplayEnrollment();
    } else if(userInput == 10) {
        GradesSubMenu();
    }
} while (userInput != 0);

当然,这也不是最好的方法,但我想你只是一个初学者,所以不要走得太深,试图让你的项目按照你的方式工作。

我目前是一名Python软件开发人员,并且会做出反应,但试图学习Java,我参加的课程并不好,也没有太多帮助,我们学习的基础是《从java开始,从控制结构到数据结构》第4版。我们还没找到那个学生谢谢!这看起来非常有帮助,将提供一个散列集的镜头,刚刚开始在这个Java世界
int userInput = 0;
do {
    System.out.println("Please enter a valid choice(1-10, 0 to Quit) :");
    userInput = keyboard.nextInt();
    if(userInput == 1) {
        CreateStudent();
    } else if(userInput == 2) {
        CreateCourse();
    } else if(userInput == 3) {
        CreateEnrollment();
    } else if(userInput == 4 ) {
        EditStudent();
    } else if(userInput == 5) {
       EditCourse();
    } else if(userInput == 6) {
        EditEnrollment();
    } else if(userInput == 7) {
        DisplayStudent();
    } else if(userInput == 8) {
        DisplayCourse();
    } else if(userInput == 9) {
        DisplayEnrollment();
    } else if(userInput == 10) {
        GradesSubMenu();
    }
} while (userInput != 0);