应用集合和映射框架写的一个简单的班级学生信息系统
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: