package com.hm;
import java.util.Scanner;
/**
* 学生管理系统
*
* @author user
*
*/
public class StudentSystem {
// 接受用户的录入
private Scanner input = new Scanner(System.in);
// 学生初始个数
private int count = 0;
private Student[] stus;// 学生数组,尚未初始化
private String goon = "n";// 是否继续
private int ope = 0;// 菜单选项编号
private int stuCount = 0;// 现有学生数量
public static void main(String[] args) {
// 创建当前类对象,运行程序
new StudentSystem().run();
}
// 菜单方法kl
private void run() {
System.out.println("请先选择初始化学生个数:");
count = input.nextInt(); // 初始化学生个数
stus = new Student[count];// 初始学生数组
do {
System.out.println("==========欢迎来到XX学生管理系统=========");
System.out.println("1、增加学生:");
System.out.println("2、修改学生:");
System.out.println("3、删除学生:");
System.out.println("4、按编号查询学生:");
System.out.println("5、查询所有学生:");
ope = input.nextInt();
switch (ope) {
case 1:
addStu();
break;
case 2:
updateStu();
break;
case 3:
deleteStu();
break;
case 4:
findStuById();
break;
case 5:
findAll();
break;
default:
System.out.println("输入有误");
break;
}
System.out.println("====================================");
System.out.println("是否继续(y/n)");
goon = input.next();
} while (!goon.equalsIgnoreCase("n"));// 不是n/N就继续
}
// 查询所有
private void findAll() {
for (Student stu : stus) {
if (stu != null)
System.out.println(stu);
}
}
// 根据学生学号查询,返回当前索引
private int findStuById() {
System.out.println("请输要操作的学号");
int id = input.nextInt();
int index = -1; // 查询学号满足的学生下标,没有查询,下标为-1
for (int i = 0; i < stus.length; i++) {
if (stus[i] != null && stus[i].getId() == id) {
index = i;
break;
}
}
// 如果下标为-1,则没有查询到学生
if (index == -1) {
System.out.println("查无此学生");
} else {
System.out.println(stus[index]);
}
return index;
}
// 删除学生
private void deleteStu() {
int index = findStuById();
if (index != -1) {
System.out.println("学号为" + stus[index].getId() + "的学生,删除成功");
stus[index] = null;
}
}
// 修改学生
private void updateStu() {
int index = findStuById();
if (index != -1) {
Student stu = new Student();
System.out.println("请输入学生的学号:");
stu.setId(input.nextInt());
System.out.println("请输入学生的姓名");
stu.setName(input.next());
System.out.println("请输入学生的年龄");
stu.setAge(input.nextInt());
System.out.println("请输入学生的性别");
stu.setGender(input.next());
System.out.println("请输入学生的地址");
stu.setAddress(input.next());
stus[index] = stu;
System.out.println("学号为" + stus[index].getId() + "的学生,修改成功");
}
}
// 增加学生
private void addStu() {
int i = 0;// 可插入的下标
// 查看是否有null的位置,如果有则插入学生
for (; i < stus.length; i++) {
if (stus[i] == null) {
break; // 保存null的下标
}
}
if (i == stus.length) {
System.out.println("学生已满,请选择其它操作!");
return; // 运行到此外,方法结束
}
System.out.println("当前现有学生" + stuCount + "个");
Student stu = new Student();
System.out.println("请输入学生的学号:");
stu.setId(input.nextInt());
System.out.println("请输入学生的姓名");
stu.setName(input.next());
System.out.println("请输入学生的年龄");
stu.setAge(input.nextInt());
System.out.println("请输入学生的性别");
stu.setGender(input.next());
System.out.println("请输入学生的地址");
stu.setAddress(input.next());
stus[i] = stu; // 给null的位置赋值新同学
stuCount++; // 编计现有学生个数
findAll(); // 增加完,查询所有学生
}
}