学生信息管理系统(Java)

基于java学习做的一个小作业,能够实现添加学生,删除学生,修改学生,查询学生,以及退出这几个功能。完整代码放在最后。

第一步:我们先创建一个student的Javabean类

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

第二步:按照题目要求,我们一步步来分析

首先先输出我们这个学生信息管理系统的功能,以供用户来选择。

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("请输入你的选择");

用户如果要使用这个系统,那么肯定需要输入指定的字符,我们可以先用键盘录入并用switch方法来实现此功能:

Scanner sc=new Scanner(System.in);
            String choose=sc.next();
            switch (choose){
                case "1"->add(list);
                case "2"->delete(list);
                case "3"->update(list);
                case "4"->que(list);
                case "5"->{
                    System.out.println("退出");
                    System.exit(0);
                }
                default -> System.out.println("没有这个选项");
            }

这样用户就可以输入1,2,3等数字来实现相应的功能,当然,用户使用我们这个系统肯定不是只用一次,所以我们可以在外面加一个while循环,循环等到用户输入5时跳出循环。

既然有这些功能,那就要利用相应的方法来实现它,先创建这些方法的架构,然后我们先找最简单的查询学生方法,

public static void add(ArrayList<Student> list){
        Student s=new Student();
        System.out.println("添加学生");}
        public static void delete(ArrayList<Student> list){
        System.out.println("删除学生");
    }
    public static void update(ArrayList<Student> list){
        System.out.println("修改学生");
    }
    public static void que(ArrayList<Student> list){
        System.out.println("查询学生");}
查询学生方法:

先写出查询学生的方法,我们对集合用size()方法:【size()方法是用于集合的返回元素个数的方法】因为集合里不一定有学生对象,如果里面还未输入学生对象,我们可以输出无学生对象。并返回。

if(list.size()==0){
            System.out.println("当前无学生信息");
            return;
        }

如果有学生对象,我们可以先创建一个类似表格的用来存储学生对象。

System.out.println("id\t\t姓名\t年龄\t家庭住址");
        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());

        }
添加学生方法:

查询的方法写完了,我们可以接着写添加学生对象的方法。添加学生对象可以用键盘录入让用户录入多个信息,然后我们可以新建一个构造函数,将录入的信息添加的新的构造函数中,再添加到集合中。

public static void add(ArrayList<Student> list){
        Student s=new Student();
        System.out.println("添加学生");
        Scanner sc=new Scanner(System.in);
        System.out.println("请输入学生的ID");
        String id = sc.next();
        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.println("学生信息添加成功");
    }

我们还要做一个确定id唯一的功能,我们再写一个方法,通过比较集合内的id来确定是否唯一,然后再在输入id时调用这个方法,如果已经有了这个id需要重新输入,所以可以利用while循环。

public static boolean bijiao(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;
    }
while (true) {
            System.out.println("请输入学生的ID");
            String id = sc.next();
            boolean flag = bijiao(list, id);
            if(flag){
                System.out.println("已有这个ID,请重新输入");
            }else {
                s.setId(id);
                break;
            }
        }
删除学生方法:

跟添加学生方法类似,通过返回索引,来确定是否可以删除。

public static int getIndex(ArrayList<Student> list, String id){
        for (int i = 0; i < list.size(); i++) {
            Student stu = list.get(i);
            String sid1 = stu.getId();
            if(sid1.equals(id)){
                return i;
            }

        }
        return -1;
        
    }
public static void delete(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){
                list.remove(index);
                System.out.println("id为"+id+"的学生删除成功");
            }else {
                System.out.println("id不存在,删除失败");

            }

    }
修改学生方法:

直接调用之前创建的getIndex()方法,通过判断索引来确定id是否存在,如果存在即可修改。

public static void update(ArrayList<Student> list){
        Scanner sc=new Scanner(System.in);
        System.out.println("请输入要修改学生的id");
        String sid = sc.next();
        int index = getIndex(list, sid);
        if (index==-1){
            System.out.println("id不存在,请重新输入");
            return;
        }
完整代码:

至此,学生信息管理系统就基本完成,这是一个简单的Java练习,完整代码发在下面:

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

public class String1 {
    public static void main(String[] args) {
        ArrayList<Student> list=new ArrayList<>();
        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("请输入你的选择");
            Scanner sc=new Scanner(System.in);
            String choose=sc.next();
            switch (choose){
                case "1"->add(list);
                case "2"->delete(list);
                case "3"->update(list);
                case "4"->que(list);
                case "5"->{
                    System.out.println("退出");
                    System.exit(0);
                }
                default -> System.out.println("没有这个选项");
            }
        }
    }

    public static void add(ArrayList<Student> list){
        Student s=new Student();
        System.out.println("添加学生");
        Scanner sc=new Scanner(System.in);
        while (true) {
            System.out.println("请输入学生的ID");
            String id = sc.next();
            boolean flag = bijiao(list, id);
            if(flag){
                System.out.println("已有这个ID,请重新输入");
            }else {
                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 delete(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){
                list.remove(index);
                System.out.println("id为"+id+"的学生删除成功");
            }else {
                System.out.println("id不存在,删除失败");

            }

    }
    public static void update(ArrayList<Student> list){
        Scanner sc=new Scanner(System.in);
        System.out.println("请输入要修改学生的id");
        String sid = sc.next();
        int index = getIndex(list, sid);
        if (index==-1){
            System.out.println("id不存在,请重新输入");
            return;
        }
        //执行到这时,id肯定存在了,
        Student stu = list.get(index);
        System.out.println("请输入要修改的学生姓名");
        String name = sc.next();
        stu.setName(name);
        System.out.println("请输入要修改的学生年龄");
        int age = sc.nextInt();
        stu.setAge(age);
        System.out.println("请输入要修改的学生家庭地址");
        String address = sc.next();
        stu.setAddress(address);
        System.out.println("学生信息修改成功");

    }
    public static void que(ArrayList<Student> list){
        System.out.println("查询学生");
        if(list.size()==0){
            System.out.println("当前无学生信息");
            return;
        }
        System.out.println("id\t\t姓名\t年龄\t家庭住址");
        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());

        }

    }
    public static boolean bijiao(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;
        return getIndex(list,id)>=0;
    }
    public static int getIndex(ArrayList<Student> list, String id){
        for (int i = 0; i < list.size(); i++) {
            Student stu = list.get(i);
            String sid1 = stu.getId();
            if(sid1.equals(id)){
                return i;
            }

        }
        return -1;
        
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值