import java.util.Scanner;
public class Manager {
// 创建对象数组
static Student[] students;
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println(“欢迎使用学生管理系统”);
System.out.println(“请完成学生信息录入操作”);
int length = 0;
do {
System.out.println(“请输入需录取信息的学生数量:”);
length = sc.nextInt();
} while (length <= 0);
students = new Student[length];
// 录入学生信息
entering(length);
// 显示学生信息
showStudents();
menu();// 显示菜单
}
// 录入学生信息
public static Student[] entering(int length) {
for (int i = 0; i < length; i++) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入学号");
String stuID = sc.nextLine();
System.out.println("请输入学生姓名");
String name = sc.nextLine();
System.out.println("请输入学生性别");
String sex = sc.nextLine();
System.out.println("请输入学生年龄");
int age = sc.nextInt();
System.out.println("请输入学生成绩");
double grade = sc.nextDouble();
// 创建一个学生对象
Student s = new Student(name, sex, stuID, age, grade);
// 将学生对象存储对象数组中
students[i] = s;
}
return students;
}
// 菜单
public static void menu() {
Scanner sc = new Scanner(System.in);
int choice = 0;
do {
System.out.println("******欢迎使用学生管理系统*****");
System.out.println("\t1.查看所有学生信息");
System.out.println("\t2.根据名称查找学生");
System.out.println("\t3.根据成绩降序");
System.out.println("\t4.根据成绩升序");
System.out.println("\t5.删除学生信息");
System.out.println("\t6.修改学生信息");
System.out.println("\t7.增加学生信息");
System.out.println("\t0.退出系统");
System.out.println("请输入您的选择");
choice = sc.nextInt();
switch (choice) {
case 1:
showStudents();
waitInput();
break;
case 2:
find();
waitInput();
break;
case 3:
// asc 升序 desc降序
sort("desc");
waitInput();
break;
case 4:
sort("asc");
waitInput();
break;
case 5:
delete();
waitInput();
break;
case 6:
modify();
waitInput();
break;
case 7:
add();
waitInput();
break;
case 0:
System.exit(0);
break;
default:
System.out.println("您输入的参数有误");
break;
}
} while (choice != 0);
}
// 查找所有学生信息
public static void showStudents() {
for (Student s : students) {
if (null != s) {
s.showInfo();
} else {
System.out.println("无学生信息");
}
}
}
// 根据名字查找
public static Student[] find() {
Scanner sc = new Scanner(System.in);
boolean flag = false;// 表示 是否查到学生
System.out.println("请输入您要查找的学生姓名:");
String name = sc.nextLine();
for (Student s : students) {
if (name.equals(s.getName())) {
flag = true;
s.showInfo();
}
}
if (flag == false) {
System.out.println("查无该学生信息");
}
return students;
}
// 按成绩排序
private static Student[] sort(String str) {
if ("asc".equals(str)) {
for (int i = 0; i < students.length; i++) {
for (int j = 0; i < students.length - i - 1; j++) {
if (students[j].getGrade() > students[j + i].getGrade()) {
Student temp = students[j];
students[j] = students[j + 1];
students[j + 1] = temp;
}
}
}
} else if ("desc".equals(str)) {
for (int i = 0; i < students.length; i++) {
for (int j = 0; j < students.length - i - 1; j++) {
if (students[j].getGrade() < students[j + 1].getGrade()) {
Student temp = students[j];
students[j] = students[j + 1];
students[j + 1] = temp;
}
}
}
} else {
System.out.println("不能识别排序方式。。。。");
}
return students;
}
// 删除
private static Student[] delete() {
Scanner sc = new Scanner(System.in);
System.out.println("请输入要删除的学号");
String stuID = sc.nextLine();
boolean flag = false;
int i;
int temp = 0;//临时变量
for (i = 0; i < students.length; i++) {
if (stuID.equals(students[i].getStuID())) {
System.out.println("该同学信息如下:(确认删除输入true否则输入false)");
students[i].showInfo();
flag = sc.nextBoolean();
temp = i;//把此刻i的值记录下来
}
}
if (flag) {
int num = students.length;
num--;
Student[] stu = new Student[num];
for (int j = 0; j < temp; j++) {
stu[j] = students[j];
}
for (int k = temp; k < students.length - 1; k++) {
stu[k] = students[k + 1];
}
students = stu;
for (i = 0; i < students.length; i++) {
if (!stuID.equals(students[i].getStuID())) {
System.out.println("已删除成功");
} else {
System.out.println("删除失败");
}
}
} else {
System.out.println("查无此人,信息错误");
}
return students;
}
// 修改
private static Student[] modify() {
Scanner sc = new Scanner(System.in);
System.out.println("请输入你要修改的学生学号");
boolean flag = false;
String stuID = sc.nextLine();
for (int i = 0; i < students.length; i++) {
//遍历students找到学号为stuID的学生
if (stuID.equals(students[i].getStuID())) {
flag = true;
//输入该学生新的信息
System.out.println("请输入学生姓名");
String name = sc.nextLine();
System.out.println("请输入学生性别");
String sex = sc.nextLine();
System.out.println("请输入学生年龄");
int age = sc.nextInt();
System.out.println("请输入学生成绩");
double grade = sc.nextDouble();
Student s = new Student(name, sex, stuID, age, grade);
students[i] = s;
}
}
if (flag == false) {
System.out.println("查无该学生信息");
}
return students;
}
// 添加学生
private static Student[] add() {
Scanner sc = new Scanner(System.in);
int index = students.length;//获取到继续添加学生的下标
boolean flag = true;
if (flag == true) {
int num = students.length;
num++;
Student[] stu = new Student[num];//定义另一个学生对象数组,进行复制以及添加
//将原students复制给stu
for (int i = 0; i < students.length; i++) {
stu[i] = students[i];
}
//添加新的学生
System.out.println("请输入学号");
String stuID = sc.nextLine();
System.out.println("请输入学生姓名");
String name = sc.nextLine();
System.out.println("请输入学生性别");
String sex = sc.nextLine();
System.out.println("请输入学生年龄");
int age = sc.nextInt();
System.out.println("请输入学生成绩");
double grade = sc.nextDouble();
Student s = new Student(name, sex, stuID, age, grade);
stu[index] = s;
students = stu;
System.out.println("继续输入请输入true,否则输入false");
flag = sc.nextBoolean();
}
return students;
}
//操作完后按enter键继续
public static void waitInput() {
Scanner sc = new Scanner(System.in);
System.out.println("请按enter键继续");
sc.nextLine();
}
}