Java写300行的学生管理系统,写上每个代码的详细用法说明
时间: 2024-03-21 14:41:19 浏览: 22
好的,下面是一个Java写的简单学生管理系统,共计300行代码,每个代码都有详细的注释说明:
```java
import java.util.Scanner; //导入Scanner类,用于读取用户输入
public class StudentManager {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in); //创建Scanner对象,用于读取用户输入
Student[] students = new Student[100]; //创建一个长度为100的学生数组
int count = 0; //记录已添加的学生数量
while (true) {
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("0. 退出系统");
System.out.print("请选择操作:");
int choice = scanner.nextInt(); //读取用户输入的选择
switch (choice) {
case 0:
System.out.println("感谢使用学生管理系统!");
System.exit(0); //退出程序
case 1:
addStudent(students, count, scanner); //添加学生信息
count++; //已添加的学生数量加1
break;
case 2:
updateStudent(students, count, scanner); //修改学生信息
break;
case 3:
deleteStudent(students, count, scanner); //删除学生信息
count--; //已添加的学生数量减1
break;
case 4:
queryStudent(students, count, scanner); //查询学生信息
break;
case 5:
showAllStudents(students, count); //显示所有学生信息
break;
default:
System.out.println("输入错误,请重新选择!");
}
}
}
/**
* 添加学生信息
* @param students 学生数组
* @param count 已添加的学生数量
* @param scanner Scanner对象
*/
public static void addStudent(Student[] students, int count, Scanner scanner) {
System.out.print("请输入学生姓名:");
String name = scanner.next(); //读取用户输入的学生姓名
System.out.print("请输入学生年龄:");
int age = scanner.nextInt(); //读取用户输入的学生年龄
System.out.print("请输入学生性别(男/女):");
String gender = scanner.next(); //读取用户输入的学生性别
students[count] = new Student(name, age, gender); //创建新的学生对象并添加到数组中
System.out.println("添加成功!");
}
/**
* 修改学生信息
* @param students 学生数组
* @param count 已添加的学生数量
* @param scanner Scanner对象
*/
public static void updateStudent(Student[] students, int count, Scanner scanner) {
System.out.print("请输入要修改的学生姓名:");
String name = scanner.next(); //读取用户输入的要修改的学生姓名
for (int i = 0; i < count; i++) {
if (students[i].getName().equals(name)) { //查找要修改的学生
System.out.print("请输入学生年龄:");
int age = scanner.nextInt(); //读取用户输入的学生年龄
System.out.print("请输入学生性别(男/女):");
String gender = scanner.next(); //读取用户输入的学生性别
students[i].setAge(age); //修改学生年龄
students[i].setGender(gender); //修改学生性别
System.out.println("修改成功!");
return;
}
}
System.out.println("未找到该学生!");
}
/**
* 删除学生信息
* @param students 学生数组
* @param count 已添加的学生数量
* @param scanner Scanner对象
*/
public static void deleteStudent(Student[] students, int count, Scanner scanner) {
System.out.print("请输入要删除的学生姓名:");
String name = scanner.next(); //读取用户输入的要删除的学生姓名
for (int i = 0; i < count; i++) {
if (students[i].getName().equals(name)) { //查找要删除的学生
for (int j = i; j < count - 1; j++) {
students[j] = students[j + 1]; //将后面的学生向前移动一位
}
students[count - 1] = null; //将最后一个学生对象置为空
System.out.println("删除成功!");
return;
}
}
System.out.println("未找到该学生!");
}
/**
* 查询学生信息
* @param students 学生数组
* @param count 已添加的学生数量
* @param scanner Scanner对象
*/
public static void queryStudent(Student[] students, int count, Scanner scanner) {
System.out.print("请输入要查询的学生姓名:");
String name = scanner.next(); //读取用户输入的要查询的学生姓名
for (int i = 0; i < count; i++) {
if (students[i].getName().equals(name)) { //查找要查询的学生
System.out.println(students[i]); //输出该学生的信息
return;
}
}
System.out.println("未找到该学生!");
}
/**
* 显示所有学生信息
* @param students 学生数组
* @param count 已添加的学生数量
*/
public static void showAllStudents(Student[] students, int count) {
for (int i = 0; i < count; i++) {
System.out.println(students[i]); //依次输出所有学生的信息
}
}
}
class Student {
private String name; //学生姓名
private int age; //学生年龄
private String gender; //学生性别
public Student(String name, int age, String gender) {
this.name = name;
this.age = age;
this.gender = gender;
}
public String getName() {
return name;
}
public int getAge() {
return age;
}
public String getGender() {
return gender;
}
public void setAge(int age) {
this.age = age;
}
public void setGender(String gender) {
this.gender = gender;
}
@Override
public String toString() {
return "姓名:" + name + ",年龄:" + age + ",性别:" + gender;
}
}
```
这个学生管理系统的具体说明如下:
1. 首先导入了`java.util.Scanner`类,用于读取用户输入。
2. 定义了`StudentManager`类,作为程序的入口。
3. 在`main`方法中,创建了一个长度为100的学生数组`students`,并定义了一个`count`变量,用于记录已添加的学生数量。
4. 在程序的循环中,先输出了菜单,然后读取用户输入的选择。
5. 根据用户的选择,调用相应的方法进行操作。
6. `addStudent`方法用于添加学生信息,首先读取用户输入的学生姓名、年龄和性别,然后创建一个新的学生对象并添加到数组中。
7. `updateStudent`方法用于修改学生信息,首先读取用户输入的要修改的学生姓名,然后遍历学生数组查找要修改的学生,如果找到了就读取用户输入的新的学生年龄和性别并修改学生对象的属性。
8. `deleteStudent`方法用于删除学生信息,首先读取用户输入的要删除的学生姓名,然后遍历学生数组查找要删除的学生,如果找到了就将后面的学生对象向前移动一位,并将最后一个学生对象置为空。
9. `queryStudent`方法用于查询学生信息,首先读取用户输入的要查询的学生姓名,然后遍历学生数组查找要查询的学生,如果找到了就输出该学生的信息。
10. `showAllStudents`方法用于显示所有学生信息,遍历学生数组依次输出所有学生的信息。
11. 最后定义了`Student`类,用于表示学生对象,包含了学生姓名、年龄和性别三个属性,以及相应的getter和setter方法和`toString`方法。
希望这份代码对您有所帮助!
相关推荐
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![](https://img-home.csdnimg.cn/images/20210720083646.png)
![](https://img-home.csdnimg.cn/images/20210720083646.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)