Java SE小结:学生管理系统

该文章展示了一个简单的JavaSE应用程序,用于管理学生信息。通过创建一个Student类存储学号、姓名、年龄和地址,并在TestStudent类中实现添加、删除、查找和修改学生信息的功能。系统使用ArrayList集合存储Student对象,并通过Scanner获取用户输入进行交互。

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

这是一个简单的Java SE小结的系统,学管理系统。

Student类设计:

首先我们要设计一个Student类来存放成员属性(学习学号,姓名,年龄,地址)和成员方法,

import java.util.Objects;

public class Student {
    private String id;
    private String name;
    private Integer age;
    private String address;

    public Student() {
    }

    public Student(String id, String  name, Integer 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 Integer getAge() {
        return age;
    }

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

    public String getAddress() {
        return address;
    }

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

    @Override
    public boolean equals(Object o) {
        if (this == o) return true;
        if (o == null || getClass() != o.getClass()) return false;
        Student student = (Student) o;
        return Objects.equals(id, student.id) &&
                Objects.equals(name, student.name) &&
                Objects.equals(age, student.age) &&
                Objects.equals(address, student.address);
    }

    @Override
    public int hashCode() {
        return Objects.hash(id, name, age, address);
    }
}

 TestStudent类设计:

再设计一个TestStudent类作为一个实现类,在这个类中添加一些用户引导语,其中ArrayList集合  要设置为一个静态变量,这样,在下面的方法中就可以直接调用了。每一个具体功能,使用一个方法实现。其中Collections为ArrayList集合的根集合,可以直接添加。

import jdk.nashorn.internal.ir.CallNode;
import java.lang.reflect.Array;
import java.nio.Buffer;
import java.util.ArrayList;
import java.util.Collections;
import java.util.LinkedList;
import java.util.Scanner;
public class TestStudent {
    private static ArrayList<Student> list= new ArrayList();
    public static void main(String[] args) {
        Collections.addAll(list,new Student("001","王五",10,"山西"),
                new Student("002","张三",11,"太原"));
        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("请输入你的选择(1-5)");
            Scanner scanner = new Scanner(System.in);
            int i = scanner.nextInt();
            switch (i){
                case 1:
                    System.out.println("1  查看学生");
                    findall();
                    break;
                case 2:
                    System.out.println("2  添加学生");
                    add();
                    break;
                case 3:
                    System.out.println("3  删除学生");
                    delete();
                    break;
                case 4:
                    System.out.println("4  修改学生");
                    update();
                    break;
                case 5:
                    System.out.println("5  退出学生系统");
                   System.exit(0);
            }
        }
    }
    //查询学生
    public static void findall() {
        if(list==null&&list.size()==0){
            System.out.println("没有信息,请重新输入");
            return;//return//表示结束当前的方法
        }
        System.out.println("学号\t\t姓名\t\t年龄\t\t地址");
        for (Student student : list) {
            System.out.println(student.getId()+"\t\t"+student.getName()+"\t\t"+student.getAge()+"\t\t"+student.getAddress());
        }
    }


    public static Student findId(String id) {//这里的返回值类型必须是student,后面要根据这个删除
        for (Student student : list)
        {
            String stuid = student.getId();
            if (stuid.equals(id)) {
                return student;
            }
        }
        return null;
    }
    //添加学生
    public static void add() {
        Scanner sc1 = new Scanner(System.in);
        Scanner sc2 = new Scanner(System.in);
        System.out.println("请输入学生学号");
        String id = sc1.nextLine();
        if(!(findId(id)==null)){
            System.out.println("id重复");
        }
        System.out.println("请输入学生姓名");
        String name = sc1.nextLine();
        System.out.println("请输入学生年龄");
        int age = sc2.nextInt();
        System.out.println("请输入学生地址");
        String address = sc1.nextLine();
        Student student = new Student(id, name, age, address);
        list.add(student);
    }

    //删除学生
    public static void delete() {
        System.out.println("请输入要删除的学生学号");
        Scanner sc1 = new Scanner(System.in);
        String s = sc1.nextLine();
        for (Student student : list)
        {
            String stuid = student.getId();
            if (!(stuid.equals(s))){
                System.out.println("查无此人");
            }
            //根据返回对象删除
            list.remove(student);
        }
    }
    //修改学生
    public static void update() {
        System.out.println("请输入要修改的学生学号");
        Scanner sc1 = new Scanner(System.in);
        String s = sc1.nextLine();
        /**不能使用String类型,String基本数据类型无法改变,在修改完后list中的id改变了,但是String id中的值没有改变
            for (Student stu : list) {
            String id = stu.getId();
            if(!id.equals(s)){
                System.out.println("查无此人");
            }
         */
        Student stu = findId(s);
        if(stu==null){
            System.out.println("查无此人");
        }
        System.out.println("请输入学生姓名");
            String name = sc1.nextLine();
            System.out.println("请输入学生年龄");
            Scanner sc2 = new Scanner(System.in);
            int age = sc2.nextInt();
            System.out.println("请输入学生地址");
            String address = sc1.nextLine();
            stu.setName(name);
            stu.setAge(age);
            stu.setAddress(address);
            System.out.println("修改完成");
        }
    }

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值