使用JAVA语言完成实验,以下是实验要求,提供源代码 要求1:使用泛型集合来模拟实现对班级和同学的管理的查询功能。 要求2:分别建立班级类(班级编号、名称、班主任、专业、年级等)和学生类(学号、姓名、年龄、性别); 要求3:以使用 Map 映射来存储班级和班级内同学,其键为 Class(班级) 类型,值为 List 类型(Student); 要求4:然后遍历输出每个班级所包含的多个学生信息。 要求5:从键盘输入一个学生学号,输出该学生所在班级信息及学生信息。
时间: 2024-03-29 22:36:57 浏览: 15
以下是使用JAVA语言完成的班级和同学管理查询功能的源代码:
班级类 ClassInfo.java:
```java
public class ClassInfo {
private String classNo;
private String className;
private String classTeacher;
private String major;
private String grade;
public ClassInfo(String classNo, String className, String classTeacher, String major, String grade) {
this.classNo = classNo;
this.className = className;
this.classTeacher = classTeacher;
this.major = major;
this.grade = grade;
}
public String getClassNo() {
return classNo;
}
public void setClassNo(String classNo) {
this.classNo = classNo;
}
public String getClassName() {
return className;
}
public void setClassName(String className) {
this.className = className;
}
public String getClassTeacher() {
return classTeacher;
}
public void setClassTeacher(String classTeacher) {
this.classTeacher = classTeacher;
}
public String getMajor() {
return major;
}
public void setMajor(String major) {
this.major = major;
}
public String getGrade() {
return grade;
}
public void setGrade(String grade) {
this.grade = grade;
}
@Override
public String toString() {
return "ClassInfo{" +
"classNo='" + classNo + '\'' +
", className='" + className + '\'' +
", classTeacher='" + classTeacher + '\'' +
", major='" + major + '\'' +
", grade='" + grade + '\'' +
'}';
}
}
```
学生类 Student.java:
```java
public class Student {
private String stuNo;
private String stuName;
private int age;
private String gender;
public Student(String stuNo, String stuName, int age, String gender) {
this.stuNo = stuNo;
this.stuName = stuName;
this.age = age;
this.gender = gender;
}
public String getStuNo() {
return stuNo;
}
public void setStuNo(String stuNo) {
this.stuNo = stuNo;
}
public String getStuName() {
return stuName;
}
public void setStuName(String stuName) {
this.stuName = stuName;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String getGender() {
return gender;
}
public void setGender(String gender) {
this.gender = gender;
}
@Override
public String toString() {
return "Student{" +
"stuNo='" + stuNo + '\'' +
", stuName='" + stuName + '\'' +
", age=" + age +
", gender='" + gender + '\'' +
'}';
}
}
```
主程序 Main.java:
```java
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
// 创建班级和学生列表
List<Student> stuList1 = new ArrayList<>();
stuList1.add(new Student("1001", "张三", 20, "男"));
stuList1.add(new Student("1002", "李四", 21, "女"));
stuList1.add(new Student("1003", "王五", 22, "男"));
List<Student> stuList2 = new ArrayList<>();
stuList2.add(new Student("2001", "赵六", 23, "女"));
stuList2.add(new Student("2002", "钱七", 24, "男"));
stuList2.add(new Student("2003", "孙八", 25, "女"));
// 创建班级列表
Map<ClassInfo, List<Student>> classMap = new HashMap<>();
classMap.put(new ClassInfo("001", "计算机1班", "张老师", "计算机科学", "大一"), stuList1);
classMap.put(new ClassInfo("002", "计算机2班", "李老师", "计算机科学", "大一"), stuList2);
// 遍历输出每个班级所包含的多个学生信息
for (Map.Entry<ClassInfo, List<Student>> entry : classMap.entrySet()) {
ClassInfo classInfo = entry.getKey();
List<Student> stuList = entry.getValue();
System.out.println("班级信息:" + classInfo.toString());
System.out.println("学生信息:");
for (Student student : stuList) {
System.out.println(student.toString());
}
}
// 从键盘输入一个学生学号,输出该学生所在班级信息及学生信息
System.out.println("请输入学生学号:");
Scanner scanner = new Scanner(System.in);
String stuNo = scanner.next();
for (Map.Entry<ClassInfo, List<Student>> entry : classMap.entrySet()) {
ClassInfo classInfo = entry.getKey();
List<Student> stuList = entry.getValue();
for (Student student : stuList) {
if (student.getStuNo().equals(stuNo)) {
System.out.println("班级信息:" + classInfo.toString());
System.out.println("学生信息:" + student.toString());
return;
}
}
}
System.out.println("未找到该学生!");
}
}
```
这里用到了 Map 映射来存储班级和班级内同学,其键为 ClassInfo 类型,值为 List 类型(Student)。通过遍历 Map 来输出每个班级所包含的学生信息,通过从键盘输入学生学号来查找学生所在班级信息及学生信息。