学生管理系统

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();

}

}

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值