首页 > 编程语言 >Java实现学生管理系统

Java实现学生管理系统

时间:2024-07-11 18:56:27浏览次数:17  
标签:studentArrayList Java String 管理系统 System 学生 println id out

        学生类

package StudentsSystem;

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 void setId(String id) {
        this.id = id;
    }
    public void setName(String name) {
        this.name = name;
    }
    public void setAge(int age) {
        this.age = age;
    }
    public void setAddress(String address) {
        this.address = address;
    }


    public String getId() {
        return this.id;
    }
    public String getName() {
        return this.name;
    }
    public int getAge() {
        return this.age;
    }
    public String getAddress() {
        return this.address;
    }


}

        主体系统(相对于C语言,Java写要简单不少)

package StudentsSystem;
import java.util.Scanner;
import java.util.ArrayList;
public class MainSystem {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        ArrayList<Student> studentList = new ArrayList<>();
        while (true) {
            menu();
            int choice = sc.nextInt();
            switch (choice) {
                case 1 -> addStudent(studentList);
                case 2 -> printStudents(studentList);
                case 3 -> deleteStudents(studentList);
                case 4 -> replaceStudents(studentList);
                case 5 -> checkStudents(studentList);
                case 0 -> {
                    System.out.println("退出");
                    System.exit(0);
                }
                default -> System.out.println("选择错误,请重新选择");
            }
        }
    }


    public static void menu() {
        System.out.println("\t\t\t\t欢迎使用学生管理系统");
        System.out.println("\t\t\t\t    1.添加学生");
        System.out.println("\t\t\t\t    2.输出学生");
        System.out.println("\t\t\t\t    3.删除学生");
        System.out.println("\t\t\t\t    4.修改学生");
        System.out.println("\t\t\t\t    5.查询学生");
        System.out.println("\t\t\t\t    0.退出系统");
        System.out.println("请选择要进行的操作-->");
    }

    public static void addStudent(ArrayList<Student> studentList) {
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入要添加多少个学生?");
        int n = sc.nextInt();
        String id;
        String name;
        int age;
        String address;
        for (int i = 0; i < n; i++) {
            System.out.printf("请输入第%d个学生的id", (studentList.size() + 1));
            id = sc.next();
            if (checkId(id, studentList)) {
                System.out.println("id合法");
            } else {
                System.out.println("id输入不合法,添加失败");
                continue;
            }
            System.out.printf("请输入第%d个学生的姓名", (studentList.size() + 1));
            name = sc.next();
            System.out.printf("请输入第%d个学生的年龄", (studentList.size() + 1));
            age = sc.nextInt();
            System.out.printf("请输入第%d个学生的地址", (studentList.size() + 1));
            address = sc.next();
            Student s = new Student();
            s.setId(id);
            s.setName(name);
            s.setAge(age);
            s.setAddress(address);
            studentList.add(s);
            System.out.printf("第%d个学生添加成功\n", (studentList.size() + 1));
        }
    }

    public static boolean checkId(String id, ArrayList<Student> studentArrayList) {
        if (id.length() != 6) {
           return false;
        }
        if (id.charAt(0) >= '0' && id.charAt(0) <= '9') {
            return false;
        }
        for (int i = 0; i < studentArrayList.size(); i++) {
            if(studentArrayList.get(i).getId().equals(id))
                return false;
        }
        return true;
    }

    public static void printStudents(ArrayList<Student> studentArrayList) {
        System.out.println("\t\t\t\t学生信息为");
        System.out.println("id\t\t\t姓名\t\t年龄\t家庭地址");
        for (int i = 0; i < studentArrayList.size(); i++) {
            System.out.printf("%s\t\t%s\t\t\t%d\t\t%s\n", studentArrayList.get(i).getId(),
                                                          studentArrayList.get(i).getName(),
                                                          studentArrayList.get(i).getAge(),
                                                          studentArrayList.get(i).getAddress());
        }
        System.out.println();
        System.out.println();
        System.out.println();
    }

    public static void replaceStudents(ArrayList<Student> studentArrayList) {
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入想要修改学生的id");
        String id = sc.next();
        int index = findIndex(studentArrayList, id);
        if (index == -1) {
            System.out.println("找不到该id");
        } else {
            System.out.println("请输入更新后的学生id");
            id = sc.next();
            if (checkId(id, studentArrayList)) {
                System.out.println("id合法");
            } else {
                System.out.println("id输入不合法,请重新输入");
                return;
            }
            System.out.println("请输入更新后的学生姓名");
            String name = sc.next();
            System.out.println("请输入更新后的学生年龄");
            int age = sc.nextInt();
            System.out.println("请输入更新后的学生地址");
            String address = sc.next();
            Student s = new Student();
            s.setId(id);
            s.setName(name);
            s.setAge(age);
            s.setAddress(address);
            studentArrayList.set(index, s);
            System.out.println("修改成功");
        }
    }

    public static int findIndex(ArrayList<Student> studentArrayList, String id) {
        for (int i = 0; i < studentArrayList.size(); i++) {
            if (studentArrayList.get(i).getId().equals(id)) {
                return i;
            }
        }
        return -1;
    }

    public static void deleteStudents(ArrayList<Student> studentArrayList) {
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入想要删除学生的id");
        String id = sc.next();
        int index = findIndex(studentArrayList, id);
        if (index == -1) {
            System.out.println("找不到该id");
        } else {
            studentArrayList.remove(index);
            System.out.println("删除成功");
        }
    }

    public static void checkStudents(ArrayList<Student> studentArrayList) {
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入想要查询的学生id");
        String id = sc.next();
        int index = findIndex(studentArrayList, id);
        if (index == -1) {
            System.out.println("找不到该id");
        } else {
            System.out.println("\t\t\t\t学生信息为");
            System.out.println("id\t\t\t姓名\t\t年龄\t家庭地址");
                System.out.printf("%s\t\t%s\t\t\t%d\t\t%s\n", studentArrayList.get(index).getId(),
                        studentArrayList.get(index).getName(),
                        studentArrayList.get(index).getAge(),
                        studentArrayList.get(index).getAddress());
            System.out.println();
            System.out.println();
            System.out.println();
        }
    }
}

 

标签:studentArrayList,Java,String,管理系统,System,学生,println,id,out
From: https://blog.csdn.net/Aishangyuwen/article/details/140281458

相关文章

  • 基于Java的科大讯飞大模型API调用实现
        写在前面:因为现在自己实习的公司新拓展的一个业务是结合AI的低代码平台,我负责后端的开发,之前一直都是直接使用gpt或者文心一言等ui界面来直接使用大模型,从来没有自己调接口过,所以本文记录一下自己第一次使用大模型的心得,小趴菜一个,大佬们勿喷~~    源码:ll......
  • java—Spring框架
    Spring简介        Spring框架由RodJohnson开发,2004年发布了Spring框架的第一版。Spring是一个从实际开发中抽取出来的框架,因此它完成了大量开发中的通用步骤,留给开发者的仅仅是与特定应用相关的部分,从而大大提高了企业应用的开发效率。Spring是什么?      ......
  • Java中线程池的最佳实践
    一、使用正确的声明方式线程池必须手动通过ThreadPoolExecutor的构造函数来声明,避免使用Executors类创建线程池,会有OOM风险。Executors创建的线程池对象有以下弊端:FixedThreadPool和SingleThreadExecutor使用的是有界阻塞队列LinkedBlockingQueue,任务队列的默认长度和......
  • Java多线程&并发编程(二)
    一、CyclicBarrier、CountDownLatch、Semaphore的区别CyclicBarrier的某个线程运行到某个点上之后,该线程即停止运行,直到所有的线程都到达了这个点,所有线程才重新运行(类似于一个栅栏拦住所有线程直到所有线程到达后在重新执行)CountDownLatch则不是,某线程运行到某个点上之后,......
  • 基于Javaweb在线手机购物商城系统设计与实现
      博主介绍:黄菊华老师《Vue.js入门与商城开发实战》《微信小程序商城开发》图书作者,CSDN博客专家,在线教育专家,CSDN钻石讲师;专注大学生毕业设计教育和辅导。所有项目都配有从入门到精通的基础知识视频课程,学习后应对毕业设计答辩。项目配有对应开发文档、开题报告、任务书......
  • java 生成mapbox-gl 可以直接使用的雪碧图,包含对应json,图片大小无限制自动适配
    1、文件路径配置sprite-path:/home/mapplate/sprite/2、实现类packagecom.shgis.service.impl;/***CreatedbyAdministratoron2021/10/9.*/importcom.alibaba.fastjson.JSONObject;importcom.shgis.config.FileProperties;importcom.shgis.entity.Ebuf......
  • JavaScript 进阶(五)---forEach/map/filterevery/some/includes/reduce的详细用法
    目录1.forEach2.map3.filter4.for...in5.for...of6.every7.some8.includes9.reduce举个例子:使用fliter:使用 map 来筛选并转换数组使用 forEach 来筛选并构建数组总结1.forEach-详解:`forEach`方法对数组的每个元素执行一次提供的函数。这个方......
  • Java毕业设计基于Vue+SpringBoot的高校学生评教系统(代码+数据库+文档LW+运行成功)
    文末获取资源,收藏关注不迷路文章目录项目介绍技术介绍项目界面关键代码目录项目介绍当今社会己进入信息社会时代。信息己经受到社会的广泛关注,被看作社会和科学技术发展的三大支柱;材料、能源、信息;。信息是管理的基础,是进行决策的的基本依据。在一个组织里,信息......
  • Java毕业设计基于Vue+SpringBoot的癌症患者交流平台(代码+数据库+文档LW+运行成功)
    文末获取资源,收藏关注不迷路文章目录项目介绍技术介绍项目界面关键代码目录项目介绍随着社会的发展,社会的各行各业都在利用信息化时代的优势。计算机的优势和普及使得各种信息系统的开发成为必需。癌症患者交流平台,主要的模块包括查看首页、轮播图、抗癌故事管理......
  • 不用JavaScript实现鼠标移入判断示例
    要点利用了伪元素生成了4个三角形组成了一个正方形,通过hover哪个透明的三角形来判断用户的操作方位。具体实现HTML:<divclass="box"><divclass="box__right">Right→Left</div><divclass="box__left">Left→Right</div><divclas......