学生信息管理系统(面向对象的初步尝试)

1、建立菜单

2、功能一:添加学生

  • 代码展示:
case 1:
				// Add a student
				System.out.println("Enter student name:");
				String name = scanner.next();
				System.out.println("Enter student age:");
				int age = scanner.nextInt();
				System.out.println("Enter student gender:");
				String gender = scanner.next();
				System.out.println("Enter student ID:");
				String id = scanner.next();
				System.out.println("Enter student major:");
				String major = scanner.next();
				System.out.println("Enter student GPA:");
				double gpa = scanner.nextDouble();
				Student student = new Student(name, age, gender, id, major, gpa);
				sms.addStudent(student);
				System.out.println("Student added successfully!\n");
				break;
  • 运行结果

  • 简单分析
  1. 输入学生信息:

    • System.out.println("Enter student name:");:提示用户输入学生的姓名。
    • String name = scanner.next();:通过 scanner.next() 方法读取用户输入的学生姓名并存储在 name 变量中。
    • System.out.println("Enter student age:");:提示用户输入学生的年龄。
    • int age = scanner.nextInt();:读取用户输入的年龄并存储在 age 变量中。
    • System.out.println("Enter student gender:");:提示用户输入学生的性别。
    • String gender = scanner.next();:读取用户输入的性别并存储在 gender 变量中。
    • System.out.println("Enter student ID:");:提示用户输入学生的ID。
    • String id = scanner.next();:读取用户输入的ID并存储在 id 变量中。
    • System.out.println("Enter student major:");:提示用户输入学生的专业。
    • String major = scanner.next();:读取用户输入的专业并存储在 major 变量中。
    • System.out.println("Enter student GPA:");:提示用户输入学生的GPA(绩点)。
    • double gpa = scanner.nextDouble();:读取用户输入的GPA并存储在 gpa 变量中。
  2. 创建 Student 对象:

    • Student student = new Student(name, age, gender, id, major, gpa);:使用用户输入的信息创建一个新的 Student 对象。
  3. 将学生对象添加到系统中:

    • sms.addStudent(student);:调用 sms(学生管理系统)的 addStudent 方法,将新创建的 Student 对象添加到系统中。
  4. 确认添加成功:

    • System.out.println("Student added successfully!\n");:输出一条消息,表示学生信息已成功添加。

基本语法讲解

  • System.out.println():这是一个用于在控制台输出信息的Java语句。println() 会在输出后自动换行。

  • scanner.next():读取用户输入的字符串。next() 方法在遇到空白字符时结束输入。

  • scanner.nextInt()scanner.nextDouble():分别读取用户输入的整数和浮点数。

  • new Student(...):创建一个新的 Student 对象,并调用其构造函数初始化对象。

  • sms.addStudent(student);:调用 sms 对象的 addStudent 方法,将 student 对象添加到系统中。

类功能讲解

 Student 类定义如下:

public class Student {
    private String name;
    private int age;
    private String gender;
    private String id;
    private String major;
    private double gpa;

    public Student(String name, int age, String gender, String id, String major, double gpa) {
        this.name = name;
        this.age = age;
        this.gender = gender;
        this.id = id;
        this.major = major;
        this.gpa = gpa;
    }

Student 类功能:

  • 属性:存储学生的姓名、年龄、性别、ID、专业和GPA。
  • 构造函数:初始化 Student 对象的所有属性。
  • getter 和 setter 方法:允许访问和修改 Student 对象的属性。

 sms 是一个 StudentManagementSystem 类的实例,并且它定义了一个 addStudent 方法,如下:

public class StudentManagementSystem {
    private List<Student> students;

    public void addStudent(Student student) {
        students.add(student);
    }
}

StudentManagementSystem 类功能:

  • 属性:存储学生对象的列表。
  • addStudent 方法:将学生对象添加到列表中。

 3、功能二:查询学生

  • 代码展示
case 3:
				// Show all Students
				List<Student> studentList = sms.getStudents();
				if (studentList.size() == 0) {
					System.out.println("The System Data is empty Now!");
				}else {
					for (Student studentItem : studentList) {
						System.out.println(studentItem.toString());
					}
				}
				break;
  • 运行结果 

 

  •  简单分析

 

基本语法讲解

  • System.out.println():在控制台输出信息,并在输出后自动换行。
  • scanner.next():读取用户输入的字符串(学生姓名)。
  • List<Student> searchResults = sms.searchByName(searchName);:调用 searchByName 方法,返回一个包含匹配学生的列表。
  • searchResults.isEmpty():检查 searchResults 列表是否为空。
  • for (Student s : searchResults):遍历 searchResults 列表中的每个 Student 对象,并输出其信息。

类功能讲解

 StudentManagementSystem 类定义了一个 searchByName 方法,类似于:

public class StudentManagementSystem {
    private List<Student> students;
    public List<Student> searchByName(String name) {
        List<Student> result = new ArrayList<>();
        for (Student student : students) {
            if (student.getName().equals(name)) {
                result.add(student);
            }
        }
        return result;
    }
}

 

searchByName 方法功能:

  • 遍历学生列表:检查每个学生的姓名是否与搜索姓名匹配(忽略大小写)。
  • 返回结果:将所有匹配的学生添加到 result 列表中并返回。

Student 类需要实现 toString 方法:

@Override
    public String toString() {
        return "Student{" +
                "name='" + name + '\'' +
                ", age=" + age +
                ", gender='" + gender + '\'' +
                ", id='" + id + '\'' +
                ", major='" + major + '\'' +
                ", gpa=" + gpa +
                '}';
    }
}

4、功能三:显示所有学生  

  • 代码展示 
case 3:
				// Show all Students
				List<Student> studentList = sms.getStudents();
				if (studentList.size() == 0) {
					System.out.println("The System Data is empty Now!");
				}else {
					for (Student studentItem : studentList) {
						System.out.println(studentItem.toString());
					}
				}
				break;
  • 运行结果

 

  • 简单分析

基本语法讲解

  • List<Student> studentList = sms.getStudents();:调用 getStudents 方法获取一个 Student 对象的列表,并将其存储在 studentList 变量中。
  • studentList.size() == 0:检查 studentList 的大小是否为 0,以判断是否有学生数据。
  • for (Student studentItem : studentList):使用增强型 for 循环遍历 studentList 中的每个 Student 对象。
  • studentItem.toString():调用 Student 对象的 toString 方法,将学生信息格式化为字符串并输出。

类功能讲解

StudentManagementSystem 类定义了一个 getStudents 方法,如下所示:

public class StudentManagementSystem {
    private List<Student> students;
    public List<Student> getStudents() {
        return students;
    }
}

getStudents 方法功能:

  • 返回学生列表:返回 students 列表的一个副本,以避免外部直接修改原始列表。

Student 类的 toString 方法:

@Override
    public String toString() {
        return "Student{" +
                "name='" + name + '\'' +
                ", age=" + age +
                ", gender='" + gender + '\'' +
                ", id='" + id + '\'' +
                ", major='" + major + '\'' +
                ", gpa=" + gpa +
                '}';
    }
}

 在这个代码片段中,通过 sms.getStudents() 获取当前系统中所有学生的列表。如果列表为空,则输出提示信息;否则,遍历列表并输出每个学生的信息,利用 toString 方法将学生对象格式化为易于阅读的字符串。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值