学生管理系统

一、案例需求:

        针对目前我们的所学内容,完成一个综合案例:学生管理系统!该系统主要功能如下:
                添加学生:通过键盘录入学生信息,添加到集合中
                删除学生:通过键盘录入要删除学生的学号,将该学生对象从 集合中删除
                修改学生:通过键盘录入要修改学生的学号,将该学生对象其他信息进行修改
                查看学生:将集合中的学生对象信息进行展示
                退出系统:结束程序
        ArrayList实现这个小项目

二、实现步骤:

        1 、书写一个学生类 Student :学号 num 姓名 name 年龄 age 生日 brithday
        2 Application 入口类
        构建欢迎页面 ,( 菜单功能 )
                1 、创建键盘录入对象
                2 、书写死循环重复展示每次选择功能页面内容
                3 、循环内:
                输出页面内容
        3 、选择功能:
                1 、添加学生
                         1 、提示用户录入学生的相关信息 --- 使用到键盘录入对象
                        2 、把这些信息封装到学生对象中 ---- 创建对象
                        3 、创建添加学生的容器 --- 容器的长度未知选择集合 , ArrayList 添加一次不能创建一次容器,添加到一个容器中 ,容器在循环外部创建唯一的容器
                        4 、把学生对象添加到集合中
                2 、查看学生
                        1 、判断集合中有没有学员
                                没有:
                                        提示:没有人 先添加再查看
                                有:
                                        1 、制作显示学员信息的表头 ----- 输出语句
                                        2 、遍历 ArrayList 集合获取学生对象
                                        3 、遍历过程中获取到学生对象,通过对象获取学生信息打印
                3 、修改学生
                        1 、键盘录入要修改的学员的学号 都是通过唯一的标识修改 , 学号
                        2 、查看学号的学员是不是存在
                        不存在:提示查无此人
                        存在:
                                提示输入修改的姓名 年龄 生日
                                重新跟学生对象这个属性赋值即可
                                提示修改成功
                4 、删除学生
                        1 、键盘录入要删除的学员的学号 都是通过唯一的标识修改 , 学号
                        2 、查看学号的学员是不是存在
                        不存在:提示查无此人
                        存在:
                                直接删除
                                提示删除成功
                5 、退出系统

三、项目实现

                                                        废话不多说,咱直接上代码

        Student类

package com.offcn.student;

public class Student {

    //封装所有学生属性
    private String id;
    private String name;
    private int age;
    private String birthday;

    //无参构造
    public Student(){};

    //有参构造
    public Student(String id, String name, int age, String birthday) {
        this.id = id;
        this.name = name;
        this.age = age;
        this.birthday = birthday;
    }

    //所有封装属性的setter、getter方法
    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 getBirthday() {
        return birthday;
    }

    public void setBirthday(String birthday) {
        this.birthday = birthday;
    }
}

        主类: 

package com.offcn.main;

import com.offcn.student.Student;

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

public class StudentSystem {
    private static ArrayList<Student> list = new ArrayList<>();
    private static Scanner sc = new Scanner(System.in);
    public static void main(String[] args) {
        //创建学生管理系统欢迎界面及菜单
        //死循环
        //用if或者switch语句判断用户的选择(个人喜好if语句)
        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.print("请输入您的选择:");
            int select = sc.nextInt();
            if(select==1){
                //调用添加学生信息方法
                addStudent();
            }else if(select==2){
                //调用修改学生信息方法
                setStudent();
            }else if (select==3){
                //调用删除学生信息方法
                removeStudent();
            }else if(select==4){
                //调用展示全部学生信息方法
                showStudent();
            }else if (select==5){
                //退出程序
                System.out.println("感谢使用学生管理系统!");
                break;
            }

        }
    }

    //添加学生信息方法
    public static void addStudent(){
        System.out.println("添加学生信息");
        while(true){
            //通过键盘录入输入属性值
            System.out.print("学号:");
            String id = sc.next();
            System.out.print("姓名:");
            String name = sc.next();
            System.out.print("年龄:");
            int age = sc.nextInt();
            System.out.print("生日:");
            String birthday = sc.next();
            //将输入的属性传给Student对象,并且将对象存入集合list
            list.add(new Student(id,name,age,birthday));
            //判断操作是否结束
            System.out.print("是否继续(Y/N):");
            String a = sc.next();
            if(a.equals("N")){
                break;
            }
        }
    }

    //修改学生信息方法
    public static void setStudent(){
        System.out.println("修改学生信息!");
        //通过学号来寻找要修改学生的对象
        System.out.print("输入学生学号:");
        String id1 = sc.next();
        //一个空学生对象待用
        Student stu = null;
        //增强for循环遍历集合
        for (Student student : list) {
            //将遍历得到的对象中的id与用户输入的id比较
            if(id1.equals(student.getId())){
                //如果相同,则进行修改
                //将遍历得到的对象赋值给stu
                stu = student;
                //重新给对象的属性赋值
                System.out.print("学号:");
                stu.setId(sc.next());
                System.out.print("姓名:");
                stu.setName(sc.next());
                System.out.print("年龄:");
                stu.setAge(sc.nextInt());
                System.out.print("生日:");
                stu.setBirthday(sc.next());
                break;
            }
        }
        //如果执行了for循环之后师徒仍然为null,说明用户输入的id在集合中并不存在
        if(stu==null){
            System.out.println("查无此人");
        }
        System.out.println("是否继续(Y/N):");
        String b = sc.next();
        if(b.equals("Y")){
            setStudent();
        }
    }

    //  删除学生信息方法
    public static void removeStudent(){
        //通过学号在集合中寻找要删除的学生
        System.out.print("输入你要删除学生的学号:");
        String id = sc.next();
        //避免并发异常的出现
        //遍历出所有信息进行id比较
        for (int i = 0;i<list.size();i++) {
            Student student = list.get(i);
            if(student.getId().equals(id)){
                //删除相应的学生对象
                list.remove(list.get(i));
                System.out.println(student.getName()+"已被删除");
                break;
            }else if(i==list.size()-1&&!student.getId().equals(id)){//如果比较到最后仍然没有找到相同的,则是查无此人
                System.out.println("查无此人");
            }
        }
        System.out.println("是否继续(Y/N):");
        String b = sc.next();
        if(b.equals("Y")){
            //这个方法没有用while循环保证操作的持续性,所以在用户选择继续时,重新调用方法自身
            removeStudent();
        }
    }
    //查看所有学生信息方法
    public static void showStudent(){
        while(true){
            //判断集合是否为空,为空是isEmpty=true,反之为false
            if(list.isEmpty()){
                System.out.println("无任何学生信息!");
            }else {
                //不为空时遍历集合,打印所有学生信息
                for (Student student : list) {
                    System.out.println("学号:" + student.getId() + " 姓名:" + student.getName() + " 年龄:" + student.getAge() + " 生日:" + student.getBirthday());
                }
            }
            System.out.print("输入N退出:");
            String a = sc.next();
            if(a.equals("N")){
                break;
            }
        }
    }
}

 四、运行结果

        1、程序菜单

 

        2、添加学生信息

 

        3、修改学生信息

 

        4、删除学生信息

 

        5、查看所有学生信息

    

 

  • 3
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

皇正经

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值