学生管理系统(Java版)

基于ArrayList集合实现学生管理系统

ArrayList简介:

ArrayList 是 Java 集合框架中比较常用的数据结构。继承自 AbstractList,实现了 List 接口。底层基于数组实现容量大小动态变化,允许 null 的存在。

实现的具体功能:

  • 添加学生信息
  • 根据学号删除学生信息
  • 根据索引删除学生信息
  • 修改学生信息
  • 查看所有学生信息

简单易懂,代码直接附上:

Student类:

public class Student {

    private String sid;//学号
    private String name;//姓名
    private String age;//年龄
    private String address;//居住地

    public Student(){}

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

    public String getSid(){
        return sid;
    }

    public void setSid(String sid){
        this.sid=sid;
    }

    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;
    }

}

StudentDemo类(主函数):

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

public class StudentDemo {

    public static void main(String[]arrays){
    
        ArrayList<Student>array=new ArrayList<>();

        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("5.查看所有学生");
            System.out.println("6.退出");
            System.out.println("----------------------");
            System.out.println("请输入你的选择:");

            Scanner sc = new Scanner(System.in);
            String line = sc.nextLine();

            switch (line) {
                case "1":
                    addStudent(array);
                    break;
                case "2":
                    deleteStudent(array);
                    break;
                case "3":
                    deleteIndex(array);
                    break;
                case "4":
                    updateAllStudent(array);
                    break;
                case "5":
                    findAllStudent(array);
                    break;
                case "6":
                    System.out.println();
                    System.exit(0);//JVM退出
            }
        }
    }
//添加学生信息
    public static void addStudent(ArrayList<Student> array){
        Scanner sc=new Scanner(System.in);

        String sid;

        while (true) {
            System.out.println("请输入学号:");
            sid = sc.nextLine();
            boolean flag=isUsed(array,sid);
            if (flag){//若返回ture,输出提醒
                System.out.println("此学号已经输入,请重新输入:");
            }else{
                break;//若无重复,结束while循环
            }
        }

        System.out.println("请输入姓名:");
        String name=sc.nextLine();
        System.out.println("请输入年龄:");
        String age=sc.nextLine();
        System.out.println("请输入居住地:");
        String address=sc.nextLine();

        Student s=new Student();
        s.setSid(sid);
        s.setName(name);
        s.setAge(age);
        s.setAddress(address);

        array.add(s);

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

    }
//删除学生信息(根据学生学号删除)
    public static void deleteStudent(ArrayList<Student>array){

        if(array.size()==0){
            System.out.println("请先输入数据再进行删除");
            return;
        }

        System.out.println("请输入你需要删除的学生学号:");
        Scanner sc=new Scanner(System.in);
        String sid= sc.nextLine();

        int index=-1;

        for(int i=0;i< array.size();i++) {
            Student s = array.get(i);
            if (s.getSid().equals(sid)) {
                index=i;
                break;
            }
        }

        if (index==-1){
            System.out.println("该索引不存在,请重新输入");
            deleteStudent(array);
        }else{
            array.remove(index);
            System.out.println("删除成功");
        }
    }
//删除学生信息(根据索引删除)
    public static void deleteIndex(ArrayList<Student>array){
        if(array.size()==0){
            System.out.println("请先输入数据再进行删除");
            return;
        }
        System.out.println("请输入你需要删除的信息索引");
        Scanner sc=new Scanner(System.in);
        int i= sc.nextInt();
        if (i>0||i< array.size()){
            array.remove(i);
            System.out.println("删除成功");
            return;
        }else{
            System.out.println("你输入的索引有误");
        }
        deleteIndex(array);
    }
//修改学生信息
    public static void updateAllStudent(ArrayList<Student>array){

        if(array.size()==0){
            System.out.println("请先输入数据再进行修改");
            return;
        }

        Scanner sc=new Scanner(System.in);
        System.out.println("请输入你要修改的学生学号");
        String sid=sc.nextLine();

        int index=-1;

        for(int i=0;i< array.size();i++) {
            Student s = array.get(i);
            if (s.getSid().equals(sid)) {
                index=i;
                break;
            }
        }

        if (index==-1){
            System.out.println("该索引不存在,请重新输入");
        }else{
            System.out.println("请输入学生的新学号");
            sid=sc.nextLine();
            System.out.println("请输入学生的新姓名");
            String name=sc.nextLine();
            System.out.println("请输入学生的新年龄");
            String age=sc.nextLine();
            System.out.println("请输入学生的新居住地");
            String address=sc.nextLine();

            Student s=new Student();
            s.setSid(sid);
            s.setName(name);
            s.setAge(age);
            s.setAddress(address);

            array.set(index,s);
            System.out.println("修改成功");
            return;
        }
        updateAllStudent(array);
    }
//查询学生信息
    public static void findAllStudent(ArrayList<Student>array){
        if(array.size()==0){
            System.out.println("请先输入数据再进行查询");
            return;
        }

        System.out.println("学号  \t姓名   \t年龄   \t居住地");
        for(int i=0;i< array.size();i++){
            Student s= array.get(i);
            System.out.println(s.getSid()+"  \t"+s.getName()+"   \t"+s.getAge()+"   \t"+s.getAddress());
        }

    }
//判断学号是否被占用
    public static boolean isUsed(ArrayList<Student>array,String sid){
        boolean flag=false;

        for (int i=0;i< array.size();i++){
            Student s= array.get(i);
            if (s.getSid().equals(sid)){
                flag=true;//学号已被占用,返回ture
                break;
            }
        }
        return flag;
    }
}

程序根据实际使用情况已作出优化,如:判断学生学号是否占用,删除或修改学生信息前是否存在信息,删除学生信息的索引是否合法等,期待借鉴指正。

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值