写了个java的教师管理系统,理解一下集合的使用

package test;

import domain.Student;
import domain.Teacher;

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

public class TeacherTest {
    public static void main(String[] args) {
        /**
         * 需求:
         创建一个Teacher管理系统,能增删改查,存储在集合中
         要求,id不可重复
         */
        //创建集合,操作围绕集合展开
        ArrayList<Teacher> list = new ArrayList<>();
        Teacher tch1 = new Teacher("001", "张三", 23, "1999-9-16");
        Teacher tch2 = new Teacher("002", "李四", 24, "2999-5-16");
        Teacher tch3 = new Teacher("003", "王五", 25, "2099-7-23");

        list.add(tch1);
        list.add(tch2);
        list.add(tch3);


        //接受键盘输入,switch匹配
        Scanner sc = new Scanner(System.in);


        //搭建主菜单
        System.out.println("---欢迎来到教师管理系统---");
        while (true) {
            System.out.println("1 增加教师");
            System.out.println("2 删除教师");
            System.out.println("3 修改教师");
            System.out.println("4 查看教师");
            System.out.println("5 退出系统");

            int choice = sc.nextInt();

            switch (choice) {
                case 1:
                    addTeacher(list);
                    break;
                case 2:
                    deleteTeacherById(list);
                    break;
                case 3:
                    updateTeacherInfoById(list);
                    break;
                case 4:
                    queryTeacherInfors(list);
                    break;
                case 5:
                    System.out.println("感谢你的使用,再见");
                    System.exit(0);
                default:
                    System.out.println("输入有误,请重新输入!");
            }
        }
    }

    /**
     * 次方法用于向集合中添加对象
     */
    private static void addTeacher(ArrayList<Teacher> list) {
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入要添加的老师id:");
        while (true) {
            String id = sc.next();

            //调用getIndex判断id是否重复
            int index = getIndex(id, list);
            if (index == -1) {
                System.out.println("请输入要添加的老师姓名:");
                String name = sc.next();
                System.out.println("请输入要添加的老师年龄:");
                int age = sc.nextInt();
                System.out.println("请输入要添加的老师生日:");
                String birthday = sc.next();

                //把数据封装到对象里,添加到集合中
                Teacher tch = new Teacher(id, name, age, birthday);
                list.add(tch);
                System.out.println("新老师添加成功");
                break;
            } else {
                System.out.println("id已存在,请重新输入");
            }
        }

    }

    /**
     * 此方法根据id修改集合中的对象的内容
     */
    private static void updateTeacherInfoById(ArrayList<Teacher> list) {
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入要修改的老师id:");
        String id = sc.next();
        int index = getIndex(id, list);
        if (index == -1) {
            System.out.println("查无此人,修改失败");
        } else {
            System.out.println("请输入新的老师姓名");
            String name = sc.next();
            System.out.println("请输入新的老师年龄");
            int age = sc.nextInt();
            System.out.println("请输入新的老师生日");
            String birthday = sc.next();

            //将接受到的新数据封装成一个对象,存入集合
            Teacher tch = new Teacher(id, name, age, birthday);
            list.set(index, tch);

        }
    }

    /**
     * 此方法根据id删除老师
     */
    private static void deleteTeacherById(ArrayList<Teacher> list) {
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入要删除的老师id:");
        String id = sc.next();
        int index = getIndex(id, list);
        if (index == -1) {
            System.out.println("查无此人,请重新输入");
        } else {
            list.remove(index);
            System.out.println("删除成功");
            queryTeacherInfors(list);
        }
    }

    /**
     * 此方法用于遍历查看集合中的数据
     */
    private static void queryTeacherInfors(ArrayList<Teacher> list) {
        System.out.println("教师号\t姓名\t年龄\t生日");
        for (int i = 0; i < list.size(); i++) {
            Teacher tch = list.get(i);
            System.out.println(tch.getId() + "\t\t" + tch.getName() + "\t" + tch.getAge() + "\t" + tch.getBirthday());
        }
        System.out.println("----------------------");
    }

    /**
     * 此方法根据传入的id在传入的集合中查找index并返回
     */
    private static int getIndex(String id, ArrayList<Teacher> list) {
        for (int i = 0; i < list.size(); i++) {
            Teacher tch = list.get(i);
            if (tch.getId().equals(id)) {
                return i;
            }
        }
        return -1;
    }
}

package domain;

public class Teacher {
    private String id;
    private String name;
    private int age;
    private String birthday;

    public Teacher() {

    }

    public Teacher(String id, String name, int age, String birthday) {
        this.id = id;
        this.name = name;
        this.age = age;
        this.birthday = birthday;
    }

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

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,我可以为你提供一些关于如何使用Java集合完成学生成绩管理系统的建议。首先,你可以使用HashMap集合来保存学生姓名和对应的成绩,因为HashMap集合能够提供快速的查找和存储。以下是示例代码: ```java import java.util.HashMap; import java.util.Scanner; public class StudentGradeManagement { public static void main(String[] args) { HashMap<String, Integer> grades = new HashMap<String, Integer>(); // 创建HashMap对象,用于存储学生姓名和成绩 Scanner input = new Scanner(System.in); // 创建Scanner对象,用于输入 while (true) { System.out.println("请输入学生姓名:"); String name = input.nextLine(); // 获取学生姓名 if (name.equals("exit")) { // 如果学生姓名为exit,则退出程序 break; } System.out.println("请输入学生成绩:"); int grade = input.nextInt(); // 获取学生成绩 input.nextLine(); // 清空输入缓冲区 grades.put(name, grade); // 将学生姓名和成绩存入HashMap中 } System.out.println("学生成绩单如下:"); for (String name : grades.keySet()) { // 遍历HashMap中的键值对 int grade = grades.get(name); // 获取学生成绩 System.out.println(name + "的成绩为:" + grade); // 输出学生成绩 } } } ``` 以上是一个简单的学生成绩管理系统使用HashMap集合来存储学生姓名和成绩。当输入学生姓名和成绩时,程序会将它们存入HashMap集合中。当输入exit时,程序会结束并打印出学生成绩单。希望这能够帮助你解决问题!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值