Java实现学生管理系统

项目介绍

本项目能够实现以下四个基本需求:
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 + "]";
	}
	
}
发布了18 篇原创文章 · 获赞 2 · 访问量 321

猜你喜欢

转载自blog.csdn.net/bravery__/article/details/105127156