项目介绍
本项目能够实现以下四个基本需求:
1、添加学生信息
2、删除学生信息
3、修改学生信息
4、查询学生信息
Main类:
package venus;
import java.util.Scanner;
//修改:地址传递,按照学号查询
public class Main {
static int index = 0;// 加static,直接使用属性,不需要用引用.的方式调用
static Student[] students = new Student[45]; // 创建一个存储对象的数组
public static void main(String[] args) {
System.out.println("***********************");
System.out.println("* 欢迎进入管理系统 *");
System.out.println("***********************");
for (;;) {
menu();
}
}
private static void menu() {
System.out.println("1、添加学生信息");
System.out.println("2、删除学生信息");
System.out.println("3、修改学生信息");
System.out.println("4、查询学生信息");
System.out.println("请输入操作项,点击Enter键");
Scanner scanner = new Scanner(System.in);
int option = scanner.nextInt();
switch (option) {
case 1: {
if (index > students.length - 1) {
System.out.println("无法添加");
break;
}
Student student = new Student();
System.out.println("添加学生信息");
System.out.println("请输入学生姓名,点击Enter键:");
student.setName(scanner.next());
System.out.println("请输入学生身份证号码,点击Enter键:");
student.setId(scanner.next());
System.out.println("请输入学生手机号,点击Enter键:");
student.setMobile(scanner.next());
System.out.println("请输入学生家庭住址,点击Enter键:");
student.setAddress(scanner.next());
if (index != 0) {
for (Student stu : students) {
if (stu == null) {
break;
}
if (stu.getId().equals(student.getId())) {
System.out.println("学号不允许重复");
return;
} // 每次进入menu方法student都是一个新对象,与原来的数组无关,数组内已经存储的对象id与这个新对象进行比较。然后那个stu==null,表示数组内有没有对象可以与student进行比较
}
}
students[index] = student;
System.out.println(index);
index++;
System.out.println("添加成功");
break;
}
case 2: {
System.out.println("删除学生信息");
boolean hasData = false;
System.out.println("请输入学号,点击Enter键");
String id = scanner.next();
int a = 0;
for (Student student : students) {// students仅代表数组名,表示前面的元素属于哪个数组
if (student == null)// 判断位置是否为空,就算已经输入几个学生的信息,仍然要判断,因为for循环遍历整个数组,后面的位置也可能为空,就会出现空指针异常
{
break;
}
if (student.getId().equals(id)) {
int i = a;// i表示要删除元素的位置
for (; i < students.length; i++) {
if (i == students.length - 1) {
students[i] = null;
break;
}
students[i] = students[i + 1];
if (students[i + 1] == null)
break;
}
hasData = true;
System.out.println("删除成功");
index--;
}
if (!hasData) {
System.out.println("未找到id为" + id + "的学生信息,无法删除");
}
}
a++;
break;
}
case 3: {
System.out.println("修改学生信息");
System.out.println("请输入学号,点击Enter键");
String id = scanner.next();
for (Student student : students) {// students仅代表数组名,表示前面的元素属于哪个数组
if (student == null)// 判断位置是否为空,就算已经输入几个学生的信息,仍然要判断,因为for循环遍历整个数组,后面的位置也可能为空,就会出现空指针异常
{
break;
}
if (student.getId().equals(id)) {
System.out.println("请选择修改选项:");
System.out.println("1、姓名");
System.out.println("2、学号");
System.out.println("3、手机号码");
System.out.println("4、家庭住址");
System.out.println("5、全部信息");
int m = scanner.nextInt();
switch (m) {
case 1:
student.setName(scanner.next());
System.out.println("修改成功!");
break;
case 2:
student.setId(scanner.next());
System.out.println("修改成功!");
break;
case 3:
student.setMobile(scanner.next());
System.out.println("修改成功!");
break;
case 4:
student.setAddress(scanner.next());
System.out.println("修改成功!");
break;
default:
System.out.println("请输入姓名,点击Enter键");
student.setName(scanner.next());
System.out.println("请输入学号,点击Enter键");
student.setId(scanner.next());
System.out.println("请输入手机号码,点击Enter键");
student.setMobile(scanner.next());
System.out.println("请输入家庭住址,点击Enter键");
student.setAddress(scanner.next());
}
return;
}
System.out.println("没有找到id为" + id + "的学生信息,无法修改");
}
break;
}
case 4: {
boolean hasData = false;
System.out.println("查询学生信息");
System.out.println("请输入学号,点击Enter键");
String id = scanner.next();
for (Student student : students) {// students仅代表数组名,表示前面的元素属于哪个数组
if (student == null)// 判断位置是否为空,就算已经输入几个学生的信息,仍然要判断,因为for循环遍历整个数组,后面的位置也可能为空,就会出现空指针异常
{
break;
}
if (student.getId().equals(id)) {
System.out.println(student);// 输出对象显示的是调用toString方法的结果
hasData = true;
}
if (!hasData) {
System.out.println("没有找到id为" + id + "学生信息");
}
}
break;
}
default:
System.out.println("系统没有找到" + option + "操作项");
}
}
}
student类
package venus;
public class Student {
private String name;
private String id;
private String mobile;
private String address;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getMobile() {
return mobile;
}
public void setMobile(String mobile) {
this.mobile = mobile;
}
public String getAddress() {
return address;
}
public void setAddress(String address) {
this.address = address;
}
@Override
public String toString() {
return "Student [name=" + name + ", id=" + id + ", mobile=" + mobile + ", address=" + address + "]";
}
}