Java基础---映射框架练习题

应用集合和映射框架写的一个简单的班级学生信息系统

student类:



import java.time.LocalDate;

public class Student {
    private int studentId;
    private String studentName;
    private String gender;
    private LocalDate studentBirth;
    private String studentHome;

    public Student() {
    }

    public Student(int studentId, String studentName, String gender, LocalDate studentBirth, String studentHome) {
        this.studentId = studentId;
        this.studentName = studentName;
        this.gender = gender;
        this.studentBirth = studentBirth;
        this.studentHome = studentHome;
    }

    public int getStudentId() {
        return studentId;
    }

    public void setStudentId(int studentId) {
        this.studentId = studentId;
    }

    public String getStudentName() {
        return studentName;
    }

    public void setStudentName(String studentName) {
        this.studentName = studentName;
    }

    public String getGender() {
        return gender;
    }

    public void setGender(String gender) {
        this.gender = gender;
    }

    public LocalDate getStudentBirth() {
        return studentBirth;
    }

    public void setStudentBirth(LocalDate studentBirth) {
        this.studentBirth = studentBirth;
    }

    public String getStudentHome() {
        return studentHome;
    }

    public void setStudentHome(String studentHome) {
        this.studentHome = studentHome;
    }

    @Override
    public String toString() {
        return "学生学号:" + studentId +
                ", 学生名字:" + studentName +
                ", 学生性别:" + gender +
                ", 学生出生日期:" + studentBirth +
                ", 学生家庭住址:" + studentHome;
    }
}

StudentClassUtil类:

import java.time.LocalDate;
import java.util.*;

public class StudentClassUtil {
    HashMap<String, ArrayList<Student>> studentMap = new HashMap<>();
    int studentId = 108;

    {
        ArrayList<Student> studentList1 = new ArrayList<>();
        Student student1 = new Student(101, "张三", "男", LocalDate.of(2000, 5, 20), "成都");
        Student student2 = new Student(102, "谭五", "男", LocalDate.of(2000, 5, 20), "重庆");
        studentList1.add(student1);
        studentList1.add(student2);
        studentMap.put("一班", studentList1);


        ArrayList<Student> studentList2 = new ArrayList<>();
        Student student3 = new Student(103, "翠花", "女", LocalDate.of(2002, 3, 20), "广州");
        Student student4 = new Student(104, "李四", "男", LocalDate.of(2001, 2, 27), "北京");
        studentList2.add(student3);
        studentList2.add(student4);
        studentMap.put("二班", studentList2);

        ArrayList<Student> studentList3 = new ArrayList<>();
        Student student5 = new Student(105, "雪舞", "女", LocalDate.of(2002, 1, 20), "康定");
        Student student6 = new Student(106, "糖糖", "女", LocalDate.of(2001, 10, 27), "新疆");
        Student student7 = new Student(107, "白月光", "女", LocalDate.of(2001, 05, 19), "摩纳哥");
        studentList3.add(student5);
        studentList3.add(student6);
        studentList3.add(student7);
        studentMap.put("三班", studentList3);
    }

    //展示所有班级的学生信息
    public HashMap<String, ArrayList<Student>> findAll() {
        return studentMap;
    }

    //增加新的班级的学生信息
    public void addClassStudent(String studentClass, ArrayList<Student> studentList) {
        studentMap.put(studentClass, studentList);
        System.out.println("添加成功!");
    }


    //根据班级名称获取学生信息
    public ArrayList<Student> findStudentClassName(String className) {
        ArrayList<Student> students = studentMap.get(className);
        return students;
    }

    //获取所有的班级名称
    public Set<String> studentClassNameAll() {
        Set<String> classNameAll = studentMap.keySet();
        return classNameAll;
    }

    //增加学生信息
    public void addStudent(String classNameInput, Student student) {
        student.setStudentId(studentId);
        studentId++;
        ArrayList<Student> students = studentMap.get(classNameInput);
        students.add(student);
        studentMap.put(classNameInput, students);
    }

    //修改学生信息
    public void reviseStudent(String classNameRevise, Student student) {
        ArrayList<Student> students = studentMap.get(classNameRevise);
        for (Student stu : students) {
            if (stu.getStudentId() == student.getStudentId()) {
                stu.setStudentName(student.getStudentName());
                stu.setGender(student.getGender());
                stu.setStudentBirth(student.getStudentBirth());
                stu.setStudentHome(student.getStudentHome());
                break;
            }
        }
    }

    //根据学生id删除学生
    public void deleteStudent(String studentClass,int deleteStudentId) {
        ArrayList<Student> students = studentMap.get(studentClass);
        for (Student stu : students) {
            if (stu.getStudentId() == deleteStudentId) {
                students.remove(stu);
                break;
            }
        }
    }
}

StudentClassMain类:

import java.time.LocalDate;
import java.util.*;

public class StudentClassMain {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        StudentClassUtil studentClassUtil = new StudentClassUtil();
        boolean flag1 = true;
        while (flag1) {
            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("6.查询一个班级的学生信息");
            System.out.println("7.退出系统");
            System.out.println("请输入选项:");
            if (sc.hasNextInt()) {
                int select = sc.nextInt();
                switch (select) {
                    case 1://展示所有班级的学生信息
                        HashMap<String, ArrayList<Student>> studentMap = studentClassUtil.findAll();
                        //所有的班级名称
                        Set<String> studentClassNameSet = studentMap.keySet();
                        for (String studentClassName : studentClassNameSet) {
                            System.out.println(studentClassName + "的学生信息如下:");
                            //所有的学生信息
                            ArrayList<Student> studentArrayList = studentMap.get(studentClassName);
                            for (Student student : studentArrayList) {
                                System.out.println(student);
                            }
                            System.out.println();
                        }
                        break;
                    case 2://增加新的班级的学生信息
                        boolean flag2 = true;
                        ArrayList<Student> studentList = new ArrayList<>();
                        System.out.println("请输入班级名称:");
                        String studentClass = sc.next();
                        while (flag2) {
                            Student student = new Student();
                            student.setStudentId(studentClassUtil.studentId++);
                            System.out.println("请输入学生的名字");
                            student.setStudentName(sc.next());
                            System.out.println("请输入学生的性别");
                            student.setGender(sc.next());
                            System.out.println("请输入学生的出生日期");
                            String studentBirth = sc.next();
                            LocalDate birth = LocalDate.parse(studentBirth);
                            student.setStudentBirth(birth);
                            System.out.println("请输入学生的家庭住址");
                            student.setStudentHome(sc.next());
                            studentList.add(student);
                            System.out.println("是否继续加入学生信息Y/N");
                            String yesNo = sc.next();
                            if (yesNo.equalsIgnoreCase("n")) {
                                flag2 = false;
                            }
                            studentClassUtil.addClassStudent(studentClass, studentList);
                        }
                        break;
                    case 3://增加学生信息
                        Set<String> classNameAll = studentClassUtil.studentClassNameAll();
                        System.out.println("所有的班级如下:");
                        for (String className : classNameAll) {
                            System.out.println(className);
                        }
                        System.out.println("请输入新增学生的班级:");
                        String classNameInput = sc.next();

                        Student student2 = new Student();
                        System.out.println("请输入学生的名字");
                        student2.setStudentName(sc.next());
                        System.out.println("请输入学生的性别");
                        student2.setGender(sc.next());
                        System.out.println("请输入学生的出生日期");
                        String studentBirth = sc.next();
                        LocalDate birth = LocalDate.parse(studentBirth);
                        student2.setStudentBirth(birth);
                        System.out.println("请输入学生的家庭住址");
                        student2.setStudentHome(sc.next());
                        studentClassUtil.addStudent(classNameInput, student2);
                        System.out.println("添加学生信息成功!");
                        break;
                    case 4://删除学生信息
                        Set<String> classNameAll3 = studentClassUtil.studentClassNameAll();
                        System.out.println("所有的班级如下:");
                        for (String className : classNameAll3) {
                            System.out.println(className);
                        }
                        System.out.println("请输入要删除学生的班级:");
                        String studentClass1 = sc.next();
                        ArrayList<Student> students4 = studentClassUtil.findStudentClassName(studentClass1);
                        System.out.println("此班级学生信息如下:");
                        for (Student student : students4) {
                            System.out.println(student);
                        }
                        System.out.println("请输入要删除学生的学号:");
                        int deleteStudentId = sc.nextInt();
                        studentClassUtil.deleteStudent(studentClass1,deleteStudentId);
                        System.out.println("删除成功!");
                        break;
                    case 5://修改学生信息
                        Set<String> classNameAll2 = studentClassUtil.studentClassNameAll();
                        System.out.println("所有的班级如下:");
                        for (String className : classNameAll2) {
                            System.out.println(className);
                        }
                        System.out.println("请输入要修改班级:");
                        String classNameRevise = sc.next();
                        ArrayList<Student> students2 = studentClassUtil.findStudentClassName(classNameRevise);
                        System.out.println("此班级学生信息如下:");
                        for (Student student : students2) {
                            System.out.println(student);
                        }
                        System.out.println("请输入要修改学生的学号:");
                        Student student3 = new Student();
                        int studentIdRevise = sc.nextInt();
                        student3.setStudentId(studentIdRevise);
                        System.out.println("请输入学生的名字");
                        student3.setStudentName(sc.next());
                        System.out.println("请输入学生的性别");
                        student3.setGender(sc.next());
                        System.out.println("请输入学生的出生日期");
                        String studentBirth1 = sc.next();
                        LocalDate birth1 = LocalDate.parse(studentBirth1);
                        student3.setStudentBirth(birth1);
                        System.out.println("请输入学生的家庭住址");
                        student3.setStudentHome(sc.next());
                        studentClassUtil.reviseStudent(classNameRevise,student3);
                        System.out.println("修改成功!");
                        break;
                    case 6://查询一个班级的学生信息
                        System.out.println("请输入要查询学生的班级名字:");
                        String studentClassName = sc.next();
                        ArrayList<Student> students = studentClassUtil.findStudentClassName(studentClassName);
                        if (students != null) {
                            System.out.println("班级学生信息如下:");
                            for (Student student : students) {
                                System.out.println(student);
                            }
                        } else {
                            System.out.println("该班级不存在!");
                        }
                        break;
                    case 7:
                        flag1 = false;
                        System.out.println("退出系统成功!");
                        break;
                }
            } else {
                System.out.println("输入的数据类型错误!");
                sc.next();
            }
        }
    }
}

运行展示

主菜单:

 功能1:

功能2:

 

功能3:


功能4:

功能5:

功能6:

功能7: 

  • 6
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值