基于控制台的学生信息管理系统

import java.util.Iterator;
import java.util.Scanner;
import java.util.ArrayList;
class Student{
    private int id;
    private String name;
    private String age;
    private String address;

    public Student(int id,String name,String age, String address){
        this.id = id;
        this.name = name;
        this.age = age;
        this.address = address;
    }

    public int getId(){
        return id;
    }
    public void setId(int id){
        this.id =id;
    }
    public String getName(){
        return name;
    }
    public void setName(String name){
        this.name = name;
    }
    public String getAge(){
        return age;
    }
    public void setAge(String age){
        this.age = age;
    }
    public String getAddress(){
        return address;
    }
    public void setAddress(String address){
        this.address = address;
    }

    public String toString(){
        return "Student{id = " +getId()+ ", name = " + getName() + ", age = " + getAge() + ", adress = " + getAddress() + "}";
    }
}
public class StudentInformation{
    public static  void main(String[] args){
        ArrayList<Student> list = new ArrayList<>();
        Scanner sc =new Scanner(System.in);
        boolean flag = true;
        while(flag){
            LoginMenu();
            System.out.println("输入你想要的功能");
            int input = sc.nextInt();
            switch(input){
                case 1:
                    sc.nextLine();
                    addStudent(list,sc);
                    break;
                case 2:
                     sc.nextLine();
                     DeleteStudent( list,sc);
                     break;
                case 3:
                    sc.nextLine();
                    ShowStudent(list);
                    break;
                case 4:
                    sc.nextLine();
                    CorrectStudent(list,sc);
                    break;
                case 5:
                    flag = false;
                    break;
            }
        }

    }
    private static void Judge(int id,ArrayList<Student> list){
        for (Student student : list) {
            if (student.getId() == id) {
                System.out.println("重新输入");
                return;
            }
        }
    }
    private static void LoginMenu(){
        System.out.println("1.增加学生");
        System.out.println("2.删除学生");
        System.out.println("3.显示学生信息");
        System.out.println("4.修改学生信息");
        System.out.println("5.退出");
    }
    private static void addStudent(ArrayList<Student> list,Scanner sc) {
        System.out.println("输入学生的id");
        int id;
        while (true) {
            if (sc.hasNextInt()) {
                id = sc.nextInt();
                Judge(id, list);
                break;
            } else {
                System.out.println("请输入一个有效的整数");
                sc.next(); // 清空输入缓冲区
            }
        }// 消耗掉输入缓冲区中的换行符

        sc.nextLine();
        System.out.println("输入学生的名字");
        String name = sc.nextLine();
        System.out.println("输入学的年龄:");
        String age = sc.nextLine();
        System.out.println("输入学生的地址:");
        String address = sc.nextLine();
        Student student = new Student(id, name, age, address);
        list.add(student);
    }
    private static void DeleteStudent(ArrayList<Student> list,Scanner sc){
        /*for(int i = 0;i<list.size();i++){
            Student student =list.get(i);
            if(student.getId() == id){
                list.remove(student);
            }
        }**/
        //当您在循环中使用 list.remove(student); 删除元素时,这会导致 ConcurrentModificationException 异常,因为在迭代过程中不能直接修改列表。为了避免这个问题,可以使用迭代器进行安全的删除操作。
        System.out.println("输入想要删除的id");
        int id =sc.nextInt();
        Iterator<Student> iterator = list.iterator();
        while (iterator.hasNext()) {
            Student student = iterator.next();
            if (student.getId() == id) {
                iterator.remove();
                System.out.println("学生 " + student.getName() + " 已删除");
            }
        }
    }
    private static void CorrectStudent(ArrayList<Student> list,Scanner sc){
        //只能整行修改
        System.out.println("输入要修改的id");
        int id =sc.nextInt();
        sc.nextLine();
        Student student =list.get(id -1);
        if(student.getId() == id){
                System.out.println("输入学生的名字");
                String name = sc.nextLine();
                System.out.println("输入学的年龄:");
                String age = sc.nextLine();
                System.out.println("输入学生的地址:");
                String address =sc.nextLine();
                student.setId(id);
                student.setName(name);
                student.setAge(age);
                student.setAddress(address);
        }
    }
    private static void ShowStudent(ArrayList<Student> list){
        System.out.println("显示所有信息");
        for (Student student : list) {
            System.out.println(student.toString());
        }
    }
}
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
学生信息管理系统是一个很常见的项目,我们可以使用Java语言来设计和实现。这个学生信息管理系统基于控制台,意味着用户和系统的交互都通过命令行输入和输出来完成。 首先,我们需要设计一个Student类来表示学生信息。这个类可以包含学生的姓名、学号、年龄和性别等属性,并且提供相应的get和set方法来对这些属性进行访问和修改。 接下来,我们需要设计一个Menu类来实现系统的菜单功能。这个类可以包含系统的各种功能选项,比如添加学生信息、删除学生信息、查找学生信息等。通过命令行输入对应的数字,用户可以选择相应的功能。 我们还需要设计一个StudentManagement类来实现学生信息的管理。这个类可以包含一个学生信息的集合,在添加、删除、查找等功能被调用时,对集合中的学生信息进行相应的操作。 在主函数中,我们可以创建一个Menu对象和一个StudentManagement对象,然后通过循环不断显示菜单,并根据用户的选择执行相应的功能。当用户选择退出系统时,程序结束。 在具体实现时,我们可以使用各种数据结构来存储学生信息,比如数组、链表或者HashMap等,根据实际需要选择合适的数据结构。 总之,学生信息管理系统基于控制台Java课程设计可以通过设计合理的类和相应的功能来实现,提供给用户方便的学生信息管理功能。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值