Java实现学生管理系统

该代码实现了一个简单的Java学生管理系统,包括添加学生(检查ID唯一性)、删除学生、修改学生信息以及查询所有学生信息的功能。系统使用ArrayList存储学生对象,并通过Scanner获取用户键盘输入。

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

初始菜单
在这里插入图片描述
学生类
属性:id、姓名、年龄、家庭住址
添加功能
键盘录入每个学生并添加
在这里插入图片描述

删除功能
键盘录入要删除的学生id,id存在则删除,id不存在,需提示不存在,并返回初始菜单
在这里插入图片描述

修改功能
键盘录入要修改的学生id,id存在则修改,id不存在,需提示不存在,并返回初始菜单
在这里插入图片描述

查询功能
打印所有学生信息,如果没有学生信息,则提示当前无学生信息,请添加后查询,如果有学生信息,则输出
在这里插入图片描述

学生类代码实现

package com.edu.bbc.computer;

public class Student {
    //学生id、学生姓名name、学生姓名age、学生地址address
    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;
    }
}

添加学生

 //添加学生
    public static void addStudent(ArrayList<Student> list){
        //利用空参构造学生对象
        Student s = new Student();
        Scanner sc = new Scanner(System.in);
        String id = null;
        while (true) {
            System.out.println("请输入学生的id");
            id = sc.next();
            boolean flag = contains(list,id);
            if(flag){
                //表示id已经存在
                System.out.println("id已存在,请重新输入");
            }else{
                //表示id不存在,可以继续使用
                s.setId(id);
                break;
            }
        }
        
        System.out.println("请输入学生的姓名");
        String name = sc.next();
        s.setName(name);
        System.out.println("请输入学生的年龄");
        int age = sc.nextInt();
        s.setAge(age);
        System.out.println("请输入学生的家庭住址");
        String address = sc.next();
        s.setAddress(address);

        //把学生对象添加到集合中
        list.add(s);

        //提示用户
        System.out.println("学生信息添加成功");


    }

删除学生

//删除学生
    public static void deleteStudent(ArrayList<Student> list){
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入需要删除的学生id");
        String id = sc.next();
        int index = getIndex(list,id);
        if(index >= 0){
            //表示id存在,直接删除
            list.remove(index);
            System.out.println("id为:"+ id + "的学生删除成功");
        }else{
            System.out.println("id不存在,删除失败");
        }


    }

修改学生

//修改学生
    public static void updateStudent(ArrayList<Student> list){
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入需要修改的学生id");
        String id = sc.next();
        int index =  getIndex(list,id);
        if(index == -1){
            System.out.println("要修改的学生id" + 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("学生信息已经修改成功");

    }

查询学生

 //查询学生
    public static void queryStudent(ArrayList<Student> list){
        if(list.size() == 0){
            System.out.println("当前无学生信息,请添加后查询");
            return;
        }
        //打印表头信息
        System.out.println("id  姓名   年龄  住址");
        //如果集合中有数据
        for (int i = 0; i < list.size(); i++) {
            Student stu = list.get(i);//得到学生对象
            System.out.println(stu.getId() + "\t" + stu.getName() + "\t" + stu.getAge() + "\t" + stu.getAddress());
        }

    }

完整代码

package com.edu.bbc.computer;

import java.sql.SQLOutput;
import java.util.ArrayList;
import java.util.Scanner;

public class StudentSystem {
    public static void main(String[] args) {
        //创建一个集合,存储信息
        ArrayList<Student> list = new ArrayList<>();
        //欢迎界面
      loop:  while (true) {//loop标记,按5即可以退出
            System.out.println("--------------欢迎来到学生管理系统----------------");
            System.out.println("1:添加学生");
            System.out.println("2:删除学生");
            System.out.println("3:修改学生");
            System.out.println("4:查询学生");
            System.out.println("5:退出");
            Scanner sc = new Scanner(System.in);
            System.out.println("请输入您的选择:");
            String chose = sc.next();
            switch (chose) {
                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;
                    //System.exit(0);停止虚拟机运行
                default:
                    System.out.println("没有这个选项");
            }
        }
    }


    //添加学生
    public static void addStudent(ArrayList<Student> list){
        //利用空参构造学生对象
        Student s = new Student();
        Scanner sc = new Scanner(System.in);
        String id = null;
        while (true) {
            System.out.println("请输入学生的id");
            id = sc.next();
            boolean flag = contains(list,id);
            if(flag){
                //表示id已经存在
                System.out.println("id已存在,请重新输入");
            }else{
                //表示id不存在,可以继续使用
                s.setId(id);
                break;
            }
        }

        System.out.println("请输入学生的姓名");
        String name = sc.next();
        s.setName(name);
        System.out.println("请输入学生的年龄");
        int age = sc.nextInt();
        s.setAge(age);
        System.out.println("请输入学生的家庭住址");
        String address = sc.next();
        s.setAddress(address);

        //把学生对象添加到集合中
        list.add(s);

        //提示用户
        System.out.println("学生信息添加成功");


    }

    //删除学生
    public static void deleteStudent(ArrayList<Student> list){
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入需要删除的学生id");
        String id = sc.next();
        int index = getIndex(list,id);
        if(index >= 0){
            //表示id存在,直接删除
            list.remove(index);
            System.out.println("id为:"+ id + "的学生删除成功");
        }else{
            System.out.println("id不存在,删除失败");
        }


    }

    //修改学生
    public static void updateStudent(ArrayList<Student> list){
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入需要修改的学生id");
        String id = sc.next();
        int index =  getIndex(list,id);
        if(index == -1){
            System.out.println("要修改的学生id" + 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("学生信息已经修改成功");

    }

    //查询学生
    public static void queryStudent(ArrayList<Student> list){
        if(list.size() == 0){
            System.out.println("当前无学生信息,请添加后查询");
            return;
        }
        //打印表头信息
        System.out.println("id  姓名   年龄  住址");
        //如果集合中有数据
        for (int i = 0; i < list.size(); i++) {
            Student stu = list.get(i);//得到学生对象
            System.out.println(stu.getId() + "\t" + stu.getName() + "\t" + stu.getAge() + "\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);//获取每个学生对象
            String sid = stu.getId();
            if(sid.equals(id)){
                return true;
            }
        }
        return false;
    }
    //通过id获取索引的方法
    public static int getIndex(ArrayList<Student> list, String id){
        for (int i = 0; i < list.size(); i++) {
            Student stu = list.get(i);//获取每个学生对象
            String sid = stu.getId();//获取每个学生对象的id
            if(sid.equals(id)){//拿集合中的学生id和要删除的学生Id进行比较
                return i;
            }
        }
        return -1;
    }
}

1、把6个java文件保存到同一文件夹,例如C:\Student.然后将6个java文件分别编译生成相应的字节码(.class)文件,然后,用java 解释器运行主类:C:\Student\java StudentManager 2、使用jar.exe把一些文件压缩成JAR文件,来发布我们的应用程序。我们可以把本java应用程序中涉及到的类文件(*.class)压缩成一个JAR文件,例如StudentManager.jar。 首先,用记事本编写一个清单文件(Manifestfiles): Manifest-Version: 1.0 Main-class: StudentManager Created-By: 1.2.2(Sun Microsystems Inc.) 例如,清单文件命名为moon.mf,保存到C:\Student。 注意:在编写清单文件时,在“Manifest-Version:”和“1.0”之间,“Main-class:”和“StudentManager”之间,以及在“Created-By:”和“1.2.2(Sun Microsystems Inc.)”之间必须有且只有一个空格。 然后,如下生成JAR文件: C:\Student\jar cvfm StudentManager.jar moon.mf *.class 其中,参数C表示要生成一个新的JAR文件;f表示要生成的JAR文件的名字,m表示文件清单文件的名字,v表示生成详细输出到标准输出上。具体运行jar命令请查看 现在就可以将StudentManager.jar拷贝到任何一个安装了java运行环境(jdk版本号须高于1.2.2)的计算机上,只要鼠标双击StudentManager.jar文件就可以运行该java应用程序了。 注意在装了WinRAR解压缩软件的机子上可能不能运行,因此,在发布本系统时,还应该建立一个有如下内容的.bat文件(StudentManager.bat),用记事本编写javaw -jar StudentManager.jar 保存即可。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

橘猫...

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值