项目:ArrayList集合实现学生(自定义类)信息管理系统

项目:集合实现学生信息管理系统

存储自定义学生类

一、需求

添加学生:通过键盘录入学生信息,添加到集合中
删除学生:通过键盘录入要删除学生的学号,将该学生对象从集合中删除
修改学生:通过键盘录入要修改学生的学号,将该学生对象其他信息进行修改
查看学生:将集合中的学生对象信息进行展示
退出系统:结束程序

二、实现步骤

1. 定义学生类,包含以下成员变量
	学生类: Student成员变量:
	学号:sid
	姓名:name
	年龄:age
	生日:birthday
	构造方法:
	无参构造
	带四个参数的构造成员方法:
	每个成员变量对应给出get/set方法
2. 学生管理系统主界面的搭建步骤
	2.1 用输出语句完成主界面的编写
	2.2 用Scanner实现键盘录入数据
	2.3 用switch语句完成操作的选择
	2.4 用循环完成再次回到主界面
3. 学生管理系统的添加学生功能实现步骤
	3.1 用键盘录入选择添加学生
	3.2 定义一个方法,用于添加学生
		显示提示信息,提示要输入何种信息
		键盘录入学生对象所需要的数据
		创建学生对象,把键盘录入的数据赋值给学生对象的成员变量
		将学生对象添加到集合中(保存)
		给出添加成功提示
	3.3 调用方法
4. 学生管理系统的查看学生功能实现步骤
	4.1 用键盘录入选择查看所有学生信息
	4.2 定义一个方法,用于查看学生信息
		显示表头信息
		将集合中数据取出按照对应格式显示学生信息,年龄显示补充“岁”
	4.3 调用方法
5. 学生管理系统的删除学生功能实现步骤
	5.1 用键盘录入选择删除学生信息
	5.2 定义一个方法,用于删除学生信息
		显示提示信息
		键盘录入要删除的学生学号
		调用getIndex方法,查找该学号在集合的索引
			如果索引为-1,提示信息不存在
			如果索引不是-1,调用remove方法删除并提示删除成功
	5.3 调用方法
6. 学生管理系统的修改学生功能实现步骤
	6.1 用键盘录入选择修改学生信息
	6.2 定义一个方法,用于修改学生信息
		显示提示信息
		键盘录入要修改的学生学号
		调用getIndex方法,查找该学号在集合的索引
			如果索引为-1,提示信息不存在
			如果索引不是-1,键盘录入要修改的学生信息
		集合修改对应的学生信息
		给出修改成功提示
	6.3 调用方法
7. 退出系统
	使用System.exit(0);退出JVM

三、从代码分析

三一、学生实现类

1.包含四个成员变量:
    学号、姓名、年龄、生日
2.构造方法:
    无参构造、带四个成员变量的有参构造
3.每个成员都给出get/set方法
package com.lyz.stusys;

public class Student {
   
    private String sid;
    private String name;
    private int age;
    private String birthday;

    public Student() {
   
    }

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

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

    @Override
    public String toString() {
   
        return "Student{" +
                "sid='" + sid + '\'' +
                ", name='" + name + '\'' +
                ", age='" + age + "岁\'" +
                ", birthday='" + birthday + '\'' +
                '}';
    }
}

三二、main下

2.1 main

    /**
     * @author lyzLoser
     * @version 1.0
     * @since 集合实现学生信息管理系统
     * @param args
     */
    public static void main(String[] args) {
   
        List<Student> list = new ArrayList<>();
        menuStu(list);
    }

2.2 主体方法:menuStu

    /**
     * @since 菜单:定义标识flag,do-while循环接收chooseN方法的选项值。
     *         当出现输入次数过多错误时、或选择退出系统选项时,改变标识退出循环
     * @param list
     */
    public static void menuStu(List<Student> list) {
   
        //标识状态
        boolean flag = false;
        do {
   
            faceStu();
            int n = chooseN();
            switch (n) {
   
                case 1:
                    inPutStu(list);
                    System.out.println("*********************************");
                    System.out.println("返回菜单");
                    System.out.println("*********************************");
                    break;
                case 2:
                    deleteStu(list);
                    System.out.println("*********************************");
                    System.out.println("返回菜单");
                    System.out.println("*********************************");
                    break;
                case 3:
                    changeStu(list);
                    System.out.println("*********************************");
                    System.out.println("返回菜单");
                    System.out.println("*********************************");
                    break;
                case 4:
                    findStu(list);
                    System.out.println("*********************************");
                    System.out.println("返回菜单");
                    System.out.println("*********************************");
                    break;
                case 5:
                    showAllStu(list);
                    System.out.println("*********************************");
                    System.out.println("返回菜单");
                    System.out.println("*********************************");
                    break;
                case 6:
                    outStu();
                    flag = true;
                    break;
                default:
                    if (n == -1) {
   
                        System.out.println("有误功能选项错误次数过多,自动退出系统,请重启。");
                        flag = true;
                    }
                    break;
            }
        } while (!flag);
    }
2.2.1 界面面板:faceStu。
    /**
     * @since 面板:通过输出语句打印面板
     */
    public static void faceStu() {
   
        System.out.println("===========================================");
        System.out.println("\t\t1.增");
        System.out.println("\t\t2.删");
        System.out.println("\t\t3.改");
        System.out.println("\t\t4.查");
        System.out.println("\t\t5.查看现有数据");
        System.out.println("\t\t6.退出");
        System.out.println("\t请输入数字1~5选择功能");
        System.out.println("===========================================");
    }
2.2.2 菜单功能选项:chooseN
    /**
     * @return n:选择功能编号
     * @since 菜单功能选项:输入错误跳出当前循环,正确退出循环同时返回n,
     * 输入错误到达三次返回n=-1
     */
    public static int chooseN() {
   
        Scanner input = new Scanner(System.in);
        int n = -1;
        System
  • 8
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值