首页 > 编程语言 >Java 学生管理系统(基础增删改查)

Java 学生管理系统(基础增删改查)

时间:2024-06-12 23:58:17浏览次数:14  
标签:Java list 改查 System 学生 println 增删 id out

目录

1. 学生类的定义

2. 学生管理系统主程序

3. 功能实现

 4.代码结构及结果展示

4. 总结

5.关于作者

1. 学生类的定义

首先,我们需要定义一个 Students 类来表示学生对象。这个类包含学生的ID、姓名、年龄和地址等属性,并提供了相应的构造方法和访问方法。

package Student;

public class Students {
    private String id;
    private String name;
    private int age;
    private String address;
    
    // 构造方法
    public Students(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;
    }
}

2. 学生管理系统主程序

接下来,我们编写一个名为 StudentSystem 的主程序类,用于启动学生管理系统并提供用户界面。这个类包含了添加、查询、修改和删除学生信息的方法。

package Student;

import java.util.ArrayList;
import java.util.Scanner;

public class StudentSystem {
    public static void main(String[] args) {
        // 开始界面
        System.out.println("-------------欢迎来到蓝星学生管理系统------------");
        ArrayList<Students> list = new ArrayList<>();
        Scanner sc = new Scanner(System.in);
        loop: while (true) {
            System.out.println("1:添加学生");
            System.out.println("2:查询学生");
            System.out.println("3:修改学生");
            System.out.println("4:删除学生");
            System.out.println("5:退出管理系统");
            System.out.println("请输入你的选择:");
            String choice = sc.next();
            switch (choice) {
                case "1" -> addStudents(list);
                case "2" -> queryStudents(list);
                case "3" -> updateStudents(list);
                case "4" -> deleteStudents(list);
                case "5" -> {
                    System.out.println("退出成功!");
                    break loop;
                }
                default -> System.out.println("没有这个选项");
            }
        }
    }
    
    // 添加学生信息
    public static void addStudents(ArrayList<Students> list) {
        Scanner sc = new Scanner(System.in);
        Students s = new Students();
        System.out.println("请输入学生id");
        String id = sc.next();
        if (isIdExist(list, id)) {
            System.out.println("学生id已存在,请重新输入");
            return;
        }
        s.setId(id);
        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.printf("学生:" + "%s" + "信息添加成功\n", name);
    }
    
    // 查询学生信息
    public static void queryStudents(ArrayList<Students> list) {
        if (list.size() == 0) {
            System.out.println("系统无学生信息");
        }
        // 输出表头
        System.out.printf("%-20s%-20s%-20s%-20s\n", "ID", "学生姓名", "学生年龄", "学生地址");
        for (int i = 0; i < list.size(); i++) {
            Students stu = list.get(i);
            // 输出学生信息
            System.out.printf("%-20s%-20s%-20d%-20s\n", stu.getId(), stu.getName(), stu.getAge(), stu.getAddress());
        }
    }
    
    // 修改学生信息
    public static void updateStudents(ArrayList<Students> list) {
        if (list.size() == 0) {
            System.out.println("系统无学生信息");
        }
        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不存在,请重新输入:");
            return;
        }
        
        int sid = Integer.parseInt(id);
        Students stu = list.get(index);
        System.out.println(stu.getId() + "\t" + stu.getName() + "\t" + stu.getAge() + "\t" + stu.getAddress());
        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 deleteStudents(ArrayList<Students> 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不存在,请重新输入");
        }
        list.remove(index);
        System.out.println("删除成功!");
    }
    
    // 输入id获取索引
    public static int getIndex(ArrayList<Students> list, String id) {
        for (int i = 0; i < list.size(); i++) {
            Students stu = list.get(i);
            if (stu.getId().equals(id)) {
                return i;
            }
        }
        // 如果id不存在则输出-1
        return -1;
    }
    
    // 判断id是否已存在
    public static boolean isIdExist(ArrayList<Students> list, String id) {
        for (Students stu : list) {
            if (stu.getId().equals(id)) {
                return true;
            }
        }
        return false;
    }
}
3. 功能实现
  • 添加学生信息:通过用户输入学生的ID、姓名、年龄和地址,将学生对象添加到学生列表中。
  • 查询学生信息:将学生列表中的学生信息以表格形式展示出来,包括ID、姓名、年龄和地址等。
  • 修改学生信息:根据用户输入的学生ID,在学生列表中找到对应的学生对象,然后修改其姓名、年龄和地址等信息。
  • 删除学生信息:根据用户输入的学生ID,在学生列表中找到对应的学生对象,并将其从列表中删除。  
 4.代码结构及结果展示

结构:

结果:

4. 总结

这篇博文主要介绍了如何使用 Java 编程语言实现一个学生管理系统的基础版,包括学生类的定义和学生管理系统主程序的编写,这个系统具有基本的增删改查功能,通过这个项目,我们可以学习到面向对象编程的基本概念和实践方法,希望本文对初学者有所帮助,谢谢阅读!

如果您喜欢本文,欢迎点赞收藏,也可以关注我的专栏获取更多有趣的技术文章。

5.关于作者

作者是一个对 Java 编程和软件开发感兴趣的初学者,希望通过自己的学习和实践,与大家一起分享有趣的技术和项目。如果您对本文有任何问题或建议,欢迎在评论区留言,作者会尽快回复。

标签:Java,list,改查,System,学生,println,增删,id,out
From: https://blog.csdn.net/2301_77016331/article/details/139639236

相关文章

  • Java项目:基于SSM框架实现的家居商城系统分前后台【ssm+B/S架构+源码+数据库+毕业论文
    一、项目简介本项目是一套基于SSM框架实现的家居商城系统包含:项目源码、数据库脚本等,该项目附带全部源码可作为毕设使用。项目都经过严格调试,eclipse或者idea确保可以运行!该系统功能完善、界面美观、操作简单、功能齐全、管理便捷,具有很高的实际应用价值二、技术实现......
  • 【保姆级详细介绍JavaScript初识及基本语法】
    ......
  • 二十一、Java工具类的创建
    什么是工具类?很好理解首先它是一个工具能完成某项功能。比如螺丝刀它是一个工具,能拧动螺丝。在Java中工具类就是能完成某项功能的类。比如定义一个数组工具类(ArrayTool),要求这个类无需创建对象就可以使用方法,且不可以创建对象,类包含的功能有,该类中没有主方法:1、数组的最......
  • 【java基础】线程池的状态流转
    前言:首先要知道什么是线程池?池化:数据库连接池,线程池,字符串常量池线程是用来执行任务的,如果不用线程池,那么线程每次使用前创建,使用后释放,资源利用率低。所以说用线程池提高了线程对象利用率。所以可以用线程池完成,先创建好那么多个线程对象在那等着,类比银行客户等待窗口办理......
  • JavaScript获取表单数据转换时间格式(学习自用)
    JavaScript获取表单数据转换时间格式:getTime(date){letdateNow=newDate(date);functionconvert(data){//时间为个位数时,前面加个0,使观感更好returndata<10?"0"+data:data;}letyear......
  • 【java基础】java线程的四种创建方式
    1.继承Thread类 2.实现Runnable接口 因为Runnable接口就是支持函数式编程的接口,可以这么玩 3.实现Callable接口,用FutureTask<T>获取返回值。FutureTask还是继承的Runnable接口   4.创建线程池Executors。由于Executors提供的等待队列LinkedBlockingQ是无界......
  • java 堆外内存排查
    操作系统:centos7jdk版本8yum-yinstallgccgcc-c++wgethttp://download.savannah.gnu.org/releases/libunwind/libunwind-0.99.tar.gzwgethttps://github.com/gperftools/gperftools/releases/download/gperftools-2.6.1/gperftools-2.6.1.tar.gz./configure--prefix=/u......
  • 黑马20天java-1/2天
    1.计算机中存储数据的单位是字节(byte),每个字节是由8位(bit)组成。2.人机交互方式:图形化界面(消耗内存+运行速度慢)+命令行3.常用的dos命令4.Path环境变量:可以理解为系统中的一个大管家,帮我们记录了很多软件的完整路径当我们要运行一个程序,而没有告诉它程序所在的完整路径......
  • 【java问答小知识8】一些Java基础的知识,用于想学习Java的小伙伴们建立一些简单的认知
    Java中的"java.util.IdentityHashMap"如何比较键?回答:"java.util.IdentityHashMap"使用==操作符来比较键,即它比较的是引用身份。Java中的"java.util.EventListener"接口有什么作用?回答:"java.util.EventListener"接口是所有事件监听器接口的基接口,用于定义事件处理方法......
  • 探索Java并发容器的深坑与妙用:从同步到并发的进化之路
    探索Java并发容器的深坑与妙用:从同步到并发的进化之路在Java的世界里,并发编程一直是一个复杂而又充满挑战的领域。尤其是在处理并发容器时,不同版本、不同类型的容器带来的种种问题和优化,更是让人眼花缭乱。今天,我们将深入探讨Java并发容器的演化历程,揭示其中的深坑与妙用,帮......