Java学生信息管理系统

问题遇到的现象和发生背景 基于控制台的学生信息管理系统
遇到的现象和发生背景,请写出第一个错误信息找到源码,想和我的登录程序结合起来
用代码块功能插入代码,请勿粘贴截图。 不用代码块回答率下降 50%
import java.util.Scanner;
public class Enter {
    
    public static void main(String[] args) {
        // TODO 自动生成的方法存根
        String username="cc";
        String password="1234";
        boolean flag =true;
        while(true){
        System.out.println("欢迎使用学生登录系统");
        System.out.println("学生管理系统");
        System.out.println("1、注册");
        System.out.println("2、登录");
        System.out.println("3、修改");
        System.out.println("4、查看");
        System.out.println("0、退出");
        System.out.println("学生管理系统");
        System.out.println("请选择功能");
        Scanner sc =new Scanner(System.in);
        int choice=sc.nextInt();
        switch (choice){
        case 1:
        System.out.println("请输入注册的账号:");
            String name=sc.next();
            if(name.equals(username)){
                System.out.println("该账号已被注册!请重新输入:");
            }else{
                System.out.println("请输入要密码:");
                String word=sc.next();
                System.out.println("注册成功");
                username=name;
                password=word;
                flag=false;
        }    
        break;
        case 2:
            while(flag){
                System.out.println("请输入账号:");
                String name0=sc.next();
                System.out.println("请输入要密码:");
                String word=sc.next();
                if(name0.equals(username)&&word.equals(password)){
                    System.out.println("登录成功");    
                }else{
                    System.out.println("登录失败");
                    flag=false;
                }
            }
            break;
        case 3:
            System.out.println("请输入要修改的用户名");
            String cc=sc.next();
            System.out.println("请输入要修改的密码");
            String bb=sc.next();
            username=cc;
            password=bb;
            System.out.println("请输入修改的用户名:");
            
            break;
        case 4:System.out.println("当前账号为:"+username+"当前密码为:"+password);
            
            break;
        case 0:
            System.out.print("退出系统!");
            return;
        default:System.out.print("输入错误请重新输入!");
            break;
        }
    }

    }
}

运行结果及详细报错内容登录代码没做封装,上课没仔细听,不会弄
我的解答思路和尝试过的方法,不写自己思路的,回答率下降 60%最好能把学生和教师登录区分出来,教师能使用全部功能,学生只能查看
我想要达到的结果,如果你需要快速回答,请尝试 “付费悬赏
boolean flag = truewhile(true)这两行换个位置:
  while(true){
            boolean flag =true;

望采纳!!点击该回答右侧的“采纳”按钮即可采纳!!
兄弟你也没认真听课啊哈哈,我以前也是
我觉得可以创建一个名为 login 的方法,用于执行登录逻辑。这个方法应该接受两个参数:用户名和密码。
它还应该返回一个布尔值,表示登录是否成功

public static boolean login(String username, String password) {
    System.out.println("请输入账号:");
    String name = sc.next();
    System.out.println("请输入密码:");
    String pwd = sc.next();
    if (name.equals(username) && pwd.equals(password)) {
        System.out.println("登录成功");
        return true;
    } else {
        System.out.println("登录失败");
        return false;
    }
}
}


然后你就可以在 main 方法中调用这个方法来实现登录逻辑,例如:

boolean success = login(username, password);
if (success) {
// 登录成功,执行其他操作
}

希望这些信息对你有帮助。

我看到你的程序出现了一个编译错误,错误信息是:

“Exception in thread "main" java.util.InputMismatchException”

这个错误是由于你在使用 Scanner 类的 nextInt() 方法读取用户输入时,用户输入的不是整数导致的。你可以尝试使用 Scanner 类的 nextLine() 方法来读取用户输入的字符串,然后再使用 Integer 类的 parseInt() 方法将字符串转换为整数。

例如,你可以改写你的代码如下:

Scanner sc = new Scanner(System.in);
System.out.println("请选择功能:");
String choiceStr = sc.nextLine();
int choice = Integer.parseInt(choiceStr);

这样就能避免出现“Exception in thread "main" java.util.InputMismatchException”这个错误了。

如何把他插入到学生信息管理系统里啊?求救

import java.util.ArrayList;
import java.util.Scanner;
 
public class Test {
    
     //定义学生集合
    static ArrayList<Student> students = new ArrayList<>();                
    static Scanner sc = new Scanner(System.in);
 
    public static void main(String[] args) {
        while (true) {
            show1();
            int a = sc.nextInt();
            if (a == 0){
                break;
            }
            switch (a) {
                case 1 -> show();//显示
                case 2 -> add();//增加
                case 3 -> delete();//删除
                case 4 -> modify();//修改
                case 5 -> search();//查询
                case 6 -> sort();//排序
                case 7 -> count();//统计
                default -> System.out.println("请输入正确序号!");
            }
        }
    }
 
    public static void show1(){
        System.out.println("-----进入学生信息管理系统-----");
        System.out.println("-------1.显示学生信息-------");
        System.out.println("-------2.增加学生信息-------");
        System.out.println("-------3.删除学生信息-------");
        System.out.println("-------4.修改学生信息-------");
        System.out.println("-------5.查找学生信息-------");
        System.out.println("-------6.按照成绩排序-------");
        System.out.println("-------7.统计学生信息-------");
        System.out.println("-------0.退出管理系统-------");
        System.out.print("请选择功能编号:");
    }
    //显示学生信息
    public static void show(){                     //显示学生信息
        System.out.println("----------------------------------学生信息表----------------------------------");
        System.out.println("序号\t学号\t姓名\t性别\t年龄\t\t出生日期\t\t成绩");
        for (int i = 0; i < students.size(); i++) {
            final Student student = students.get(i);
            System.out.println(i + 1 + "\t" + student.getId() + "\t" + student.getName() + "\t" + student.getSex() + "\t"
                    +student.getAge() + "\t\t" +student.getBirthday() + "\t" + student.getGrade());
        }
       }

    //增加学生信息
    public   static void add(){                     
        System.out.print("请输入您要添加学生的个数:");
        int s = sc.nextInt();
        for (int i = 0; i < s; i++) {
            System.out.print("请输入您要添加的学号:");
            String str = sc.next();
            int count = 0;
            for (final Student student : students) {
                if (student.getId().equals(str)) {
                    System.out.println("已有此人!");
                    break;
                }
                count++;
            }
            if (count == students.size()){
                System.out.print("姓名:");
                String str1 = sc.next();
                System.out.print("性别:");
                String str2 = sc.next();
                System.out.print("年龄:");
                String str3 = sc.next();
                System.out.print("出生日期(yyyy-mm-dd):");
                String str4 = sc.next();
                System.out.print("成绩:");
                int str5 = sc.nextInt();
                Student student = new Student(str,str1,str2,str3,str4,str5);
                students.add(student);
                System.out.println("添加成功!");
            }
        }
    }
 
    public  static void delete(){                       //删除学生信息
        System.out.print("请输入您要删除的学号:");
        String str = sc.next();
        int a = students.size();
        int count = 0;
        for (int i = 0; i < students.size(); i++) {
            final Student student = students.get(i);
            if (student.getId().equals(str)){
                students.remove(i);
                System.out.println("删除成功!");
                break;
            }
            count++;
        }
        if (count == a){
            System.out.println("查无此人!");
        }
    }
 
    public  static void modify() {                          //修改学生信息
        System.out.print("请输入您要修改的学号:");
        String str = sc.next();
        int count = 0;
        for (final Student student : students) {
            if (student.getId().equals(str)) {
                while (true) {
                    System.out.println("------进入修改界面-----");
                    System.out.println("1.修改学生姓名");
                    System.out.println("2.修改学生性别");
                    System.out.println("3.修改出生日期");
                    System.out.println("4.修改学生年龄");
                    System.out.println("5.修改学生成绩");
                    System.out.print("请输入您要修改的选项:");
                    int a = sc.nextInt();
                    if (a == 1 || a == 2 || a == 3 || a == 4 || a == 5) {
                        System.out.print("修改为:");
                        String str0 = sc.next();
                        switch (a) {
                            case 1 -> student.setName(str0);
                            case 2 -> student.setSex(str0);
                            case 3 -> student.setBirthday(str0);
                            case 4 -> student.setAge(str0);
                            case 5 -> student.setGrade(Integer.parseInt(str0));
                        }
                        System.out.println("修改成功!");
                        break;
                    } else {
                        System.out.println("请输入正确的序号!");
                    }
                }
                break;
            }
            count++;
        }
        if (count == students.size()){
            System.out.println("查无此人!");
        }
    }
 
    public  static void search(){                          //查找学生信息
        System.out.print("请输入您要查找的学号:");
        String str = sc.next();
        int count = 0;
        for (final Student student : students) {
            if (student.getId().equals(str)) {
                System.out.println(student.getId() + "\t\t" + student.getName() + "\t\t\t" + student.getSex() + "\t\t\t"
                        + student.getAge() + "\t\t\t" + student.getBirthday() + "\t\t" + "\t\t\t" + student.getGrade());
                break;
            }
            count++;
        }
        if (count == students.size()){
            System.out.println("查无此人!");
        }
    }
 
    public  static void sort(){                         //按照成绩排序
        int [][]grade = new int[students.size()][2];
        for (int i = 0; i < students.size(); i++) {
            final Student student = students.get(i);
            grade[i][0] = student.getGrade();
            grade[i][1] = i;
        }
        for (int i = 0; i < students.size(); i++) {
            for (int j = 1; j < students.size() - i; j++) {
                if (grade[j - 1][0] > grade[j][0]){
                    int a = grade[j][0];
                    grade[j][0] = grade[j - 1][0];
                    grade[j - 1][0] = a;
                    int c = grade[j][1];
                    grade[j][1] = grade[j - 1][1];
                    grade[j - 1][1] = c;
                }
            }
        }
        for (int i = students.size() - 1; i >= 0; i--) {
            final Student student = students.get(grade[i][1]);
            System.out.println(student.getId() + "\t\t" + student.getName() + "\t\t\t" + student.getSex() + "\t\t\t"
                    + student.getAge() + "\t\t\t" + student.getBirthday() + "\t\t" + "\t\t\t" + student.getGrade());
        }
    }
 
    public  static void count(){                        //统计学生总数
        System.out.println("学生总人数为:" + students.size());
    }
}



如果还没解决,就找我