Java中的集合2——学生管理系统(1)

一、前言

本文主要是实现登录学生管理系统后的功能一部分,包括实现学生类和主界面、添加学生、查看所有学生,其主界面如图
在这里插入图片描述

二、学生类实现

在本管理系统中,需要录入的是学生的学号、姓名和性别,所以首先要定义三个成员变量

  • private String id
  • private String name
  • private String gender

然后生成一个标准的JavaBean类,快捷方法参考文章:IDEA2018 中有关编写JavaBean类的小技巧(保姆级教程)
生成后将最后两行删除,代码如下:

public class student {

        private String id;
        private String name;
        private String gender;


    public student() {
    }

    public student(String id, String name, String gender) {
        this.id = id;
        this.name = name;
        this.gender = gender;
    }

    /**
     * 获取
     * @return id
     */
    public String getId() {
        return id;
    }

    /**
     * 设置
     * @param id
     */
    public void setId(String id) {
        this.id = id;
    }

    /**
     * 获取
     * @return name
     */
    public String getName() {
        return name;
    }

    /**
     * 设置
     * @param name
     */
    public void setName(String name) {
        this.name = name;
    }

    /**
     * 获取
     * @return gender
     */
    public String getGender() {
        return gender;
    }

    /**
     * 设置
     * @param gender
     */
    public void setGender(String gender) {
        this.gender = gender;
    }


}

三、主界面实现

1.解题思路

由于这里要选择的选项很多,所以我们用 switch语句 来实现

  1. 创建一个集合,用来存放学生数据
  2. 打印输出 “-----欢迎来到学生管理系统-----”
  3. 打印输出“----------------------------” 和 “请选择需要执行的操作”
  4. 键盘输入一个数
  5. 运用switch语句来进行选择,并调用方法实现每个选择
  6. 调用无限循环语句使得每次执行操作完回到主界面

2.代码实现

public static void main(String[] args) {
        ArrayList<student> list = new ArrayList<>();
        Scanner in = new Scanner(System.in);
        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("----------------------------");
            System.out.println("请选择需要执行的操作");
            int i = in.nextInt();
            switch (i) {
                case 1:
                    System.out.println("添加学生");
                    addStudent(list);
                    break;
                case 2:
                    System.out.println("删除学生");
                    removeStudent(list);
                    break;
                case 3:
                    System.out.println("修改学生");
                    modifyStudent(list);
                    break;
                case 4:
                    System.out.println("查找学生");
                    searchStudent(list);
                    break;
                case 5:
                    System.out.println("查看学生");
                    lookStudent(list);
                    break;
                default:
                    System.out.println("输入有误,请重新输入");
                    break;

            }
        }

四、添加学生功能

1.解题思路

  1. 定义一个带参数的方法,需要添加学生时调用方法即可
  2. 参数为一个集合,用来存放数据
  3. 分别从键盘录入要添加学生的学号、姓名和性别
  4. 将键盘输入的信息添加到集合中
  5. 返回提示信息 “添加成功”

2.学号重复情况

当录入的学号已经存在时,我们就要提示用户重新输入,直至不重复为止,这时候我们就需要重新定义一个方法来判断学号是否重复

🟡思路

  1. 定义一个带参数的方法来判断输入的学号是否已经存在与集合内
  2. 参数为集合和输入的学号
  3. 定义一个 flag,使其值为 false,表示新增元素与集合中存在元素不相同
  4. 遍历集合,判断输入的学号是否与集合中的元素相同
  5. 如果相同,修改flag的值为 true 并退出循环
  6. 返回flag的值
  7. 定义一个boolean型的变量接收返回值
  8. 参数为增加学生方法内定义的集合名以及输入的学号
  9. 判断变量值;如果为true,则输出提升语句:“学号重复,请重新输入”,如果为false则退出循环
  10. 由于添加循环,所以学号的类型要在循环体外定义,不影响后续使用

🟡判断是否重复功能的代码

public static boolean isUsed(ArrayList<student> Array,String id){
	boolean flag = false;
    for (int i = 0; i < Array.size(); i++) {
    	student s = Array.get(i);
        if(s.getId().equals(id)){
        	flag = true;
            break;
        }
    }
        return flag;
}

🟡在实现添加学生功能内代码

while (true) {
	System.out.println("请输入学号");
    id = in.next();
    boolean flag = isUsed(Array, id);
    if (flag) {
    	System.out.println("学号重复,请重新输入");
   	}
    else {
        break;
    }

3.代码实现

 public static void addStudent(ArrayList<student> Array){
        student s = new student();
        Scanner in = new Scanner(System.in);
        String id;
        while (true) {
            System.out.println("请输入学号");
            id = in.next();
            boolean flag = isUsed(Array, id);
            if (flag) {
                System.out.println("学号重复,请重新输入");

            }
            else {
                break;
            }
        }
        System.out.println("请输入姓名");
        String name = in.next();
        System.out.println("请输入性别");
        String gender = in.next();
        s.setName(name);
        s.setId(id);
        s.setGender(gender);
        Array.add(s);
        System.out.println("添加成功");

    }

public static boolean isUsed(ArrayList<student> Array,String id){
	boolean flag = false;
    for (int i = 0; i < Array.size(); i++) {
    	student s = Array.get(i);
        if(s.getId().equals(id)){
        	flag = true;
            break;
        }
    }
        return flag;
}

五、查看所有学生功能

1.解题思路

  1. 运用判断语句来判断集合内是否有元素存在
  2. 当集合内为空时,返回提示语句:“无信息,请添加后再查询”
  3. 当集合内有元素时,遍历集合并输出集合内元素
  4. 为了整齐,使用制表符 \t 来缩进

2.代码实现

public static void lookStudent(ArrayList<student> Array){
        if(Array.size() == 0){
            System.out.println("无信息,请添加后再查询");
        }
        for (int i = 0; i < Array.size(); i++) {
            student s = Array.get(i);
            System.out.println("学号"+"\t"+"姓名"+"\t"+"性别"+"\t");
            System.out.println(s.getId()+"\t"+s.getName()+"\t"+s.getGender()+"\t");

        }

    }

六、结语

本文实现了一部分功能,下一篇文章中会实现剩余功能

评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

Alita11101_

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

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

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

打赏作者

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

抵扣说明:

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

余额充值