目录
数组与集合的区别
1.灵活度:集合比数组更灵活,集合有多种实现方式和不同的适用场合
2.效率:数组的效率高于集合类
3.容量:集合可以改变,数组不可以改变
4.判断元素个数:数组需要用遍历实现,集合用sizeof()
一、STUDENT包
1.Student类:
package STUDENT;
public class Student {
String id;
String name;
double score;
public void setId(String id) {
this.id = id;
}
public String getId() {
return id;
}
public void setName(String name) {
this.name = name;
}
public String getName() {
return name;
}
public void setScore(double score) {
this.score = score;
}
public double getScore() {
return score;
}
public Student() {
}
public Student(String id, String name, double score) {
this.id = id;
this.name = name;
this.score = score;
}
}
二、OPERATE包
1.Add类:
- 使用有参构造
package OPERATE;
import java.util.Scanner;
import STUDENT.Student;
public class Add {
public static int findIndex(Student[] students) {
for (int i = 0; i < students.length; i++) {
if (students[i] == null) {//遍历数组,当对象为空时,返回该地址,即为数组已经使用的长度
return i;
}
}
return -1;//表示数组开辟的空间已经用完,当返回-1时表示无法再存入数据
}
public static void addMessage(Student[] students) {
Scanner in = new Scanner(System.in);
System.out.println("请输入要添加的学生学号:");
String id = in.next();
System.out.println("请输入要添加的学生姓名:");
String name = in.next();
System.out.println("请输入要添加的学生分数:");
double score = in.nextDouble();
int index = findIndex(students);
Student student = new Student(id, name, score);
students[index] = student;
System.out.println("添加成功!");
System.out.println();
}
}
- 使用无参构造
public static void addMessage(Student[] students) {
Scanner in = new Scanner(System.in);
System.out.println("请输入要添加的学生学号:");
String id = in.next();
System.out.println("请输入要添加的学生姓名:");
String name = in.next();
System.out.println("请输入添加的学生分数:");
double score = in.nextDouble();
int index = findIndex(students);
Student student = new Student();
student.setId(id);
student.setName(name);
student.setScore(score);
students[index] = student;
System.out.println("添加成功!");
System.out.println();
}
2.Delete类:
package OPERATE;
import java.util.Scanner;
import STUDENT.Student;
public class Delete {
public static void deleteMessage(Student[] students) {
Scanner in = new Scanner(System.in);
System.out.println("请输入要删除的学生学号:");
String id = in.next();
for (int i = 0; i < students.length; i++) {
if (students[i] != null) {
if (students[i].getId().equals(id)) {
students[i] = null;
System.out.println("删除成功!");
return;//找到目标后删除该信息
}
}
}
System.out.println("查无此人!");//如果遍历完没有找到学生信息,则说明没有该学生
System.out.println();
}
}
3.Revise类:
package OPERATE;
import java.util.Scanner;
import STUDENT.Student;
public class Revise {
public static void reviseMessage(Student[] students) {
Scanner in = new Scanner(System.in);
System.out.println("请输入要修改的学生学号:");
String id = in.next();
System.out.println("请输入新的学生姓名:");
String name = in.next();
System.out.println("请输入新的学生成绩:");
int score = in.nextInt();
for (int i = 0; i < students.length; i++) {
if (students[i] != null) {
if (students[i].getId().equals(id)) {
students[i].setId(id);
students[i].setName(name);
students[i].setScore(score);
System.out.println("修改成功!");
System.out.println();
return;
}
}
}
System.out.println("查无此人!");//如果遍历完没有找到学生信息,则说明没有该学生
System.out.println();
}
}
Revise类还可以通过有参构造和无参构造实现
- 有参构造
for (int i = 0; i < students.length; i++) {
if (students[i] != null) {
if (students[i].getId().equals(id)) {
Student student = new Student(id, name, score);
students[i] = student;
System.out.println("修改成功!");
return;
}
}
}
System.out.println("查无此人!");
- 无参构造
for (int i = 0; i < students.length; i++) {
if (students[i] != null) {
if (students[i].getId().equals(id)) {
Student student = new Student();
student.setId(id);
student.setName(name);
student.setScore(score);
students[i] = student;
System.out.println("修改成功!");
return;
}
}
}
System.out.println("查无此人!");
4.Seek类:
package OPERATE;
import java.util.Scanner;
import STUDENT.Student;
public class Seek {
public static void seekMessage(Student[] students) {
Scanner in = new Scanner(System.in);
System.out.println("请输入要查找的学生学号:");
String id = in.next();
for (int i = 0; i < students.length; i++) {
if (students[i] != null) {
if (students[i].getId().equals(id)) {
System.out.println("查询成功!");
System.out.println(
"该学生学号:" + students[i].getId() + " 该学生姓名:" + students[i].getName() + " 该学生分数:"
+ students[i].getScore());
System.out.println();
return;
}
}
}
System.out.println("查无此人!");//如果遍历完没有找到学生信息,则说明没有该学生
System.out.println();
}
}
5.Show类:
package OPERATE;
import STUDENT.Student;
public class Show {
public static void showMessage(Student[] students) {
int c = 0;
System.out.println("以下为所有学生信息:");
for (int i = 0; i < students.length; i++) {
if (students[i] != null) {
System.out.println("学号:" + students[i].getId() + " 姓名:" + students[i].getName() + " 分数:"
+ students[i].getScore());
c++;
}
}
System.out.println("共有 " + c + " 个学生信息");
System.out.println();
}
}
三、USER包:
1.Demo类:
package USER;
import java.util.Scanner;
import OPERATE.*;
import STUDENT.Student;
public class Demo {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
Student[] students = new Student[100];
Face face = new Face();
face.menu();
System.out.println();
while (true) {
System.out.println("1.增加 2.删除 3.修改 4.查询 5.展示 6.退出");
System.out.println("请输入想要进行的操作:");
int num = in.nextInt();
if (num == 1) {
Add.addMessage(students);// 增加学生信息,调用addMessage方法
} else if (num == 2) {
Delete.deleteMessage(students);// 删除学生信息,调用deleteMessage方法
} else if (num == 3) {
Revise.reviseMessage(students);// 修改学生信息,调用reviseMessage方法
} else if (num == 4) {
Seek.seekMessage(students);// 查询学生信息,调用seekMessage方法
} else if (num == 5) {
Show.showMessage(students);// 展示学生信息,调用showMessage方法
} else if (num == 6) {
System.out.println("感谢你的使用!");
System.exit(0);
} else {
System.out.println("请重新输入:");
}
}
}
}
2.Face类:
package USER;
public class Face {
public void menu(){
System.out.println("欢迎来到学生管理系统!");
System.out.println("1:添加学生信息");
System.out.println("2:删除学生信息");
System.out.println("3:查找学生信息");
System.out.println("4:显示所有学生信息");
System.out.println("5:退出系统");
}
}
四、运行结果展示
/*
* 运行结果
* 欢迎来到学生管理系统!
* 1:添加学生信息
* 2:删除学生信息
* 3:查找学生信息
* 4:显示所有学生信息
* 5:退出系统
*
* 1.增加 2.删除 3.修改 4.查询 5.展示 6.退出
* 请输入想要进行的操作:
* 1
* 请输入要添加的学生学号:
* 1
* 请输入要添加的学生姓名:
* 康茹
* 请输入要添加的学生分数:
* 520
* 添加成功!
*
* 1.增加 2.删除 3.修改 4.查询 5.展示 6.退出
* 请输入想要进行的操作:
* 1
* 请输入要添加的学生学号:
* 2
* 请输入要添加的学生姓名:
* 小白
* 请输入要添加的学生分数:
* 521
* 添加成功!
*
* 1.增加 2.删除 3.修改 4.查询 5.展示 6.退出
* 请输入想要进行的操作:
* 5
* 以下为所有学生信息:
* 学号:1 姓名:康茹 分数:520.0
* 学号:2 姓名:小白 分数:521.0
* 共有 2 个学生信息
*
* 1.增加 2.删除 3.修改 4.查询 5.展示 6.退出
* 请输入想要进行的操作:
* 4
* 请输入要查找的学生学号:
* 1
* 查询成功!
* 该学生学号:1 该学生姓名:康茹 该学生分数:520.0
*
* 1.增加 2.删除 3.修改 4.查询 5.展示 6.退出
* 请输入想要进行的操作:
* 2
* 请输入要删除的学生学号:
* 2
* 删除成功!
*
* 1.增加 2.删除 3.修改 4.查询 5.展示 6.退出
* 请输入想要进行的操作:
* 5
* 以下为所有学生信息:
* 学号:1 姓名:康茹 分数:520.0
* 共有 1 个学生信息
*
* 1.增加 2.删除 3.修改 4.查询 5.展示 6.退出
* 请输入想要进行的操作:
* 3
* 请输入要修改的学生学号:
* 1
* 请输入新的学生姓名:
* 康茹
* 请输入新的学生成绩:
* 1314
* 修改成功!
*
* 1.增加 2.删除 3.修改 4.查询 5.展示 6.退出
* 请输入想要进行的操作:
* 5
* 以下为所有学生信息:
* 学号:1 姓名:康茹 分数:1314.0
* 共有 1 个学生信息
*
* 1.增加 2.删除 3.修改 4.查询 5.展示 6.退出
* 请输入想要进行的操作:
* 6
* 感谢你的使用!
*/