Java 学生管理系统(黑马程序员)

该代码实现了一个简单的Java学生管理系统,包括添加、删除、修改和查询学生信息的功能。系统使用ArrayList存储Student对象,并通过主菜单交互,确保学生ID的唯一性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

步骤1:分析项目,b站链接:业务分析并搭建主菜单

步骤2:建StudentSystem包。

步骤3:编写StudentSystem和Student类。

代码:

StudentSystem类:

package StudentSystem;
import java.util.*;

public class StudentSystem {
    public static void main(String[] args) {
        ArrayList<Student> list = new ArrayList<>();

        //打印菜单
        loop: 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.println("请输入您的选择:");

            Scanner sc = new Scanner(System.in);
            String choose = sc.next();

            switch (choose){
                case "1" : { addStudent(list); break;}
                case "2" : { deleteStudent(list); break;}
                case "3" : { updateStudent(list); break;}
                case "4" : { queryStudent(list); break;}
                case "5" : {
                    System.out.println("退出");
                    break loop;
                }
                default : System.out.println("没有这个选项");break;
            }
        }

    }

    //增
    public static void addStudent(ArrayList<Student> list){
        System.out.println("添加学生");
        Scanner sc = new Scanner(System.in);

        String id = null;
        while (true) {
            System.out.println("请输入学生id");
            id = sc.next();
            boolean flag = contains(list, id);

            //true表示id已经存在
            if(flag) System.out.println("id已经存在,请重新输入");
            else break;
        }

        System.out.println("请输入学生姓名");
        String name = sc.next();

        System.out.println("请输入学生年龄");
        int age = sc.nextInt();

        System.out.println("请输入学生家庭住址");
        String address = sc.next();

        Student stu = new Student(id, name, age, address);

        list.add(stu);

        System.out.println("添加成功");
    }

    //删
    public static void deleteStudent(ArrayList<Student> list){
        System.out.println("删除学生");
        System.out.println("请输入要删除的id");

        Scanner sc = new Scanner(System.in);
        String id = sc.next();

        //id合法。删除
        if(getIndex(list, id) >= 0){
            list.remove(getIndex(list, id));
            System.out.println("id为" + id +"的学生删除成功");
        }
        //否则返回初始菜单
        else System.out.println("id不存在,删除失败");
    }

    //改
    public static void updateStudent(ArrayList<Student> list){
        System.out.println("修改学生");
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入需要修改的学生id");
        String id = sc.next();
        //获取id在list的下标
        int index = getIndex(list, id);
        //判断id是否合法,
        if(index < 0) {
            System.out.println("id不存在,修改失败");
            return;
        }
        //获取修改对象
        Student stu = list.get(index);
        System.out.println("请输入学生姓名");
        String newName = sc.next();
        stu.setName(newName);

        System.out.println("请输入学生年龄");
        int newAge = sc.nextInt();
        stu.setAge(newAge);

        System.out.println("请输入学生家庭住址");
        String newAddress = sc.next();
        stu.setAddress(newAddress);

        System.out.println("id为" +id+ "的学生信息修改成功");
    }

    //查
    public static void queryStudent(ArrayList<Student> list){
        System.out.println("查询学生");

        if(list.size() == 0) {
            System.out.println("当前无学生信息,请添加后再查询");
            return;
        }

        System.out.println("id\t姓名\t\t年龄\t\t家庭住址");  // \t制表符
        for (int i = 0; i < list.size(); i++) {
            Student stu = list.get(i);
            System.out.println(stu.getId() +"\t"+ stu.getName() +"\t\t"+ stu.getAge() +"\t\t"+ stu.getAddress());

        }
    }

    //判断id是否唯一
    public static boolean contains(ArrayList<Student> list, String id){
        /*for (int i = 0; i < list.size(); i++) {
            Student stu = list.get(i);
            if(stu.getId().equals(id)) return true;
        }
        return false;*/
        return getIndex(list,id) >= 0; //true表示id已经存在
    }

    //查询id下标
    public static int getIndex(ArrayList<Student> list, String id){
        for (int i = 0; i < list.size(); i++) {
            Student stu = list.get(i);
            //找到下标就返回
            if(stu.getId().equals(id)) return i;
        }
        return -1;
    }
}

Student类:

package StudentSystem;

public class Student {
    private String id;
    private String name;
    private int age;
    private String address; // 家庭住址


    public Student() { //空参构造
    }

    public Student(String id, String name, int age, String address) {//全参构造
        this.id = id;
        this.name = name;
        this.age = age;
        this.address = address;
    }

    public String getId() {
        return id;
    }

    public void setId(String id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }

    public String getAddress() {
        return address;
    }

    public void setAddress(String address) {
        this.address = address;
    }
}

根据提供的引用内容,黑马程序员提供了一套针对Java初学者的完整学习笔记和教程,涵盖了从基础语法到高级开发技能的全面知识体系。该课程包含大量示例、练习题以及实际项目演练,适合零基础入门者系统性地掌握Java编程语言[^1]。 ### 学习资源涵盖的主要内容: - **基础语法**:包括变量、数据类型、运算符、控制结构(如if语句、循环)、方法等。 - **面向对象编程**:类与对象、封装、继承、多态、抽象类、接口等核心概念。 - **异常处理**:try-catch块、自定义异常、finally块的作用及使用方式。 - **集合框架**:List、Set、Map等常用接口及其具体实现类(如ArrayList、HashSet、HashMap)。 - **泛型与Lambda表达式**:提升代码复用性和简洁性的现代Java特性。 - **输入输出流(IO)**:文件读写操作、缓冲流、对象序列化等内容。 - **多线程编程**:线程创建、同步机制、线程池等并发处理技术。 - **网络编程**:Socket通信、HTTP请求处理等基础知识。 - **数据库连接(JDBC)**:使用Java操作数据库,执行SQL语句并处理结果集。 - **实战项目**:结合真实场景设计的综合案例,如学生管理系统、银行账户模拟系统等。 ### 如何获取黑马程序员Java学习笔记 可以通过以下几种方式获取相关资料: 1. **Bilibili视频配套资料**:访问提供的视频链接,通常在视频描述或评论区中会附上下载链接或网盘分享地址。 2. **官方平台下载**:前往黑马程序员官网或者其合作教育平台注册账号后,部分课程资料可免费或付费下载。 3. **社区交流**:加入相关的QQ群、微信群或论坛(如GitHub、优快云),与其他学习者共享资源。 4. **书籍推荐**:参考《Java核心技术卷Ⅰ》《Effective Java》等经典教材作为补充材料。 ### 示例代码:简单的学生管理系统 以下是一个简单的Java控制台程序示例,用于管理学生信息: ```java import java.util.ArrayList; import java.util.List; import java.util.Scanner; class Student { private String name; private int age; public Student(String name, int age) { this.name = name; this.age = age; } @Override public String toString() { return "Student{name='" + name + "', age=" + age + "}"; } } public class StudentManagementSystem { private static List<Student> students = new ArrayList<>(); private static Scanner scanner = new Scanner(System.in); public static void main(String[] args) { while (true) { System.out.println("1. Add Student"); System.out.println("2. View Students"); System.out.println("3. Exit"); System.out.print("Choose an option: "); int choice = scanner.nextInt(); scanner.nextLine(); // Consume newline switch (choice) { case 1: addStudent(); break; case 2: viewStudents(); break; case 3: System.out.println("Exiting..."); return; default: System.out.println("Invalid choice. Please try again."); } } } private static void addStudent() { System.out.print("Enter student name: "); String name = scanner.nextLine(); System.out.print("Enter student age: "); int age = Integer.parseInt(scanner.nextLine()); students.add(new Student(name, age)); System.out.println("Student added successfully.\n"); } private static void viewStudents() { if (students.isEmpty()) { System.out.println("No students found.\n"); } else { for (Student student : students) { System.out.println(student); } System.out.println(); } } } ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值