JAVA——【案例】实现计算机系信息管理系统(教师和学生信息管理)

需求:

系统初始界面要显示系统名称、系统开发者的班级和姓名、开发时间、版权所有等信息。
2)系统要有主菜单,让用户可自由选择管理教师信息或管理学生信息或退出;
3)教师信息管理中至少有教师基本信息录入、课时数录入、打印教师信息表等功能;
4)学生信息管理中至少有学生基本信息录入、打印学生基本信息表、数学成绩录入、英语成绩录入、Java成绩录入、输出成绩表等功能;
5)在教师信息管理和学生信息管理中要有子菜单,可以让用户自由选择其中的子功能。
3.实验拓展要求(自由选择)
1)增加统计功能。如统计分数段、平均分、不及格学生等;
2)增加查询功能。如按学号或姓名查询成绩、查询平均分等。

import java.util.Scanner;
public class TestManagement {

	public static void main(String[] args) {
		// TODO 自动生成的方法存根
	boolean loop = true;//定义一个用于判断是否继续循环(外层主菜单)的布尔类型常量
	Scanner input = new Scanner(System.in);		
	teaManage teamanage = new teaManage(300);//创建teaManage对象以便调用其方法
	stuManage stumanage = new stuManage(1000);//创建stuManage对象以便调用其方法(容量为3000学生)
	while(loop) {	
		ViewSystem.mainMenu();//调用显示主菜单
		System.out.println("请输入你选择的序号(0-2):");
		int choice = input.nextInt();//用于选择主菜单功能的输入
		if(choice == 1){
			boolean loop1 = true;//用于判断是否继续循环(教师信息管理功能)的布尔类型常量
			while(loop1) {
			ViewSystem.teaMenu();//显示教师子菜单
			System.out.println("请输入你选择的序号(0-3):");
			int num = input.nextInt();//用于选择教师子菜单的输入
			switch(num){
				case 1:teamanage.infoEntry();//调用(教师信息录入)方法
					break;
				case 2:teamanage.classHoursEntry();//调用(课时数录入)方法
				break;
				case 3:teamanage.teaList();//调用(输出教师列表)方法
				break;
				case 0:System.out.println("成功退出教师信息管理"+"\n");
						loop1 = false;
				break;
				default:System.out.println("[选择功能序号有误]"+"\n");
					break;
			}
		}
	}
		else if(choice == 2){
			boolean loop2 = true;//用于判断是否继续循环(学生信息管理功能)的布尔类型常量
			while(loop2) {
			ViewSystem.stuMenu();//显示学生子菜单
			System.out.println("请输入你选择的序号(0-8):");
			int num = input.nextInt();//用于选择学生子菜单的输入
			switch(num){
				case 1:stumanage.infoEntry();//调用(学生信息录入)方法
				break;
				case 2:stumanage.stuList();//调用(打印学生列表)方法
				break;
				case 3:stumanage.mathScore();//调用(录入数学成绩)方法
				break;
				case 4:stumanage.engScore();//调用(录入英语成绩)方法
				break;
				case 5:stumanage.javaScore();//调用(录入java成绩)方法
				break;
				case 6:stumanage.scoreList();//调用(输出成绩列表)方法
				break;
				case 7:
						boolean loop3 = true;//用于判断是否继续循环(成绩统计功能)的布尔类型常量loop3
						while(loop3) {
							ViewSystem.scoreStatistics();//显示成绩统计子菜单
							System.out.println("请输入你选择的序号(0-2):");
							int choice1 = input.nextInt();//用于选择学生子菜单的输入
							switch(choice1) {
							case 1:stumanage.aveScore();//调用(统计平均分)方法
								break;
							case 2:stumanage.flunkNum(); //调用(统计不及格人数)方法
								break;
							case 0:
								loop3 = false;
								System.out.println("返回上一级");
								break;
							default:
								System.out.println("[选择功能序号有误]"+"\n");
								break;
							}
						}
				break;
				case 8:
						boolean loop4 = true;//用于判断是否继续循环(学生查询功能)的布尔类型常量loop3
						while(loop4) {
						ViewSystem.stuSearch();//调用(学生查询)方法
						System.out.println("请输入你选择的序号(0-3):");
						int choice2 = input.nextInt();
						switch(choice2) {	
						case 1:stumanage.stuNumSearch();//调用按学号查询功能
							break;
						case 2:stumanage.nameSearch();//调用按姓名查询功能
							break;
						case 0:
							loop4 = false;
							System.out.println("返回上一级");
							break;
						default:
							System.out.println("[选择功能序号有误]"+"\n");
							break;
						}
					}
				break;
				case 0:System.out.println("成功退出学生信息管理"+"\n");
						loop2 = false;
				break;
				default:
					System.out.println("[选择功能序号有误]"+"\n");
					break;
			}
		}
	}
		
		else if(choice == 0){
			System.out.println("成功退出计算机系信息管理系统"+"\n");
			loop = false;
		}
		else {
			System.out.println("选择序号错误..."+"\n");
		}
	}
	}
}


class teaManage {//教师信息管理类
	private Teacher[]  teacher;//保存Teacher对象类型数组,数组名为teacher
	Scanner input = new Scanner(System.in);	
	private   int teaNum ;//教师人数
	private int number = 0;//本次要输入的教师信息数
	//构造器,定义参数size,
	public teaManage(int size) {
		teacher = new Teacher[size];//当创建HouseService对象,此构造器能够指定teacher数组大小
	}
	
	//get、set方法
	public int getTeaNum() {
		return teaNum;
	}
	public void setTeaNum(int teaNum) {
		this.teaNum = teaNum;
	}

	public int getNumber() {
		return number;
	}

	public void setNumber(int number) {
		this.number = number;
	}
	
	public  void infoEntry() {//教师信息录入
		System.out.println("输入教师人数:");
		number = input.nextInt();
		System.out.println("请输入"+number+"个教师的身份证、姓名、教师号:");
		for(int i = 0;i < number; i++) {
			teacher[teaNum+i] = new Teacher();//把教师对象数组中的teacher[i]对象实例化
			teacher[teaNum+i].setId(input.next());//接收身份证输入并赋值给对象
			teacher[teaNum+i].setName(input.next());//接收姓名输入并赋值给对象
			teacher[teaNum+i].setTeaNum(input.next());//接收教师号输入并赋值给对象
		}
		teaNum += number;//更新当前已存教师信息个数
	}
	
	public  void classHoursEntry() {//课时数录入
		System.out.println("请输入"+number+"个教师的课时数");
		for(int i = teaNum - number;i < teaNum; i++) {
			teacher[i].setClassHours(input.nextInt());//接收身份证输入并赋值给对象
		}
	}
	public  void teaList() {//输出教师列表
		System.out.println("教师号\t姓名\t课时数");
		for(int i = 0;i < teaNum; i++) {
			System.out.println(teacher[i].getTeaNum()+"\t"+teacher[i].getName()
					+"\t"+teacher[i].getClassHours()+"\t");
		}
	}
}

class stuManage{//学生信息管理类
	private Student[]  student;//保存Student对象类型数组,数组名为student
	Scanner input = new Scanner(System.in);	
	private   int stuNum ;//学生人数
	private int number = 0;//本次要输入的学生信息数
	//构造器,定义参数size,
	public stuManage(int size) {
		student = new Student[size];//当创建HouseService对象,此构造器能够指定teacher数组大小
	}

	public  void infoEntry() {//学生信息录入
		System.out.println("输入学生人数:");
		number = input.nextInt();
		System.out.println("请输入"+number+"学生的身份证、姓名、学号:");
		for(int i = 0;i < number; i++) {
			student[stuNum+i] = new Student();//把学生对象数组中的student[i]对象实例化
			student[stuNum+i].setId(input.next());//接收身份证输入并赋值给对象
			student[stuNum+i].setName(input.next());//接收姓名输入并赋值给对象
			student[stuNum+i].setStuNum(input.next());//接收学号输入并赋值给对象
		}
		stuNum += number;//更新当前已存教师信息个数
	}
	
	public  void stuList() {//打印学生信息
			System.out.println("学号\t姓名");
			for(int i = 0;i < stuNum; i++) {
				System.out.println(student[i].getStuNum()+"\t"+student[i].getName());
			}
		}
	public  void mathScore() {//数学成绩录入
		for(int i = stuNum - number; i < stuNum;i++) {
			System.out.println(student[i].getName()+"的数学成绩");
			student[i].setMath(input.nextDouble());
		}
	}
	public  void engScore() {//英语成绩录入
		for(int i = stuNum - number; i < stuNum;i++) {
			System.out.println(student[i].getName()+"的英语成绩");
			student[i].setEnglish(input.nextDouble());
		}
	}
	public  void javaScore() {//java成绩录入
		for(int i = stuNum - number; i < stuNum;i++) {
			System.out.println(student[i].getName()+"的Java成绩");
			student[i].setJava(input.nextDouble());
		}
	}
	
	public  void scoreList() {//输出成绩列表
		System.out.println("学号\t姓名\t数学\t英语\tJava");
		for(int i = 0;i < stuNum;i++) {
			System.out.println(student[i].getStuNum()+"\t"+student[i].getName()+"\t"
					+student[i].getMath()+"\t"+student[i].getEnglish()+"\t"+student[i].getJava());
		}
	}
	//0.返回    1.平均分  2.不及格学生
	public void aveScore() {//学生成绩平均分功能
		double avg;
		System.out.println("姓名\t学号\t平均分");
		for(int i = 0; i < stuNum;i++) {
			avg = (student[i].getMath()+student[i].getEnglish()+student[i].getJava())/3;//算平均分
			System.out.println(student[i].getName()+"\t"+student[i].getStuNum()+"\t"+String.format("%.2f", avg));//输出小数点为两位数的平均分
		}
	}
	public void flunkNum() {//统计不及格人数功能
		int mathNum = 0,engNum = 0,JavaNum = 0;//定义统计三个科目不及格人数
		for(int i = 0; i < stuNum;i++) {
			if(student[i].getMath() < 60) {
				mathNum += 1;
			}
			if(student[i].getEnglish() < 60) {
				engNum += 1;
			}
			if(student[i].getJava() < 60) {
				JavaNum += 1;
			}
		}
		System.out.println("[不及格人数]\n数学\t英语\tJava");
		System.out.println(mathNum+"\t"+engNum+"\t"+JavaNum);
	}
	//0.返回 1.按学号查询 2.按姓名查询 
	public void stuNumSearch() {//按学号查询学生信息功能
		System.out.println("请输入要查询学生信息的学号:");
		String searchNum = input.next();//接收输入学号
		for(int i = 0;i < stuNum;i++) {//遍历判断学号是否存在
			if(searchNum.equals(student[i].getStuNum())) {//存在即输出该学生信息
				System.out.println("学号\t姓名\t数学\t英语\tJava");
				System.out.println(student[i].getStuNum()+"\t"+student[i].getName()+"\t"
				+student[i].getMath()+"\t"+student[i].getEnglish()+"\t"+student[i].getJava());
			}else {
				System.out.println("查询失败,学号不存在");
			}
		}

		
	}
	public void nameSearch() {//按姓名查询学生信息功能
		System.out.println("请输入要查询学生信息的姓名:");
		String searchname = input.next();//接收输入姓名
		for(int i = 0;i < stuNum;i++) {//遍历判断姓名是否存在
			if(searchname.equals(student[i].getName())) {//存在即输出该学生信息
				System.out.println("学号\t姓名\t数学\t英语\tJava");
				System.out.println(student[i].getStuNum()+"\t"+student[i].getName()+"\t"
						+student[i].getMath()+"\t"+student[i].getEnglish()+"\t"+student[i].getJava());
			}else {
				System.out.println("查询失败,学号不存在");
			}
		}
		
	}
}


class Person{//人员类
	private String Id;//身份证号
	private String name;//姓名
	private int age;//年龄
	private char gender;//性别
	private String major;//专业
	
	//get、set方法
	public String getId() {
		return Id;
	}
	public void setId(String id) {
		Id = id;
	}
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public int getAge() {
		return age;
	}
	public void setAge(int age) {
		this.age = age;
	}
	public char getGender() {
		return gender;
	}
	public void setGender(char gender) {
		this.gender = gender;
	}
	public String getMajor() {
		return major;
	}
	public void setMajor(String major) {
		this.major = major;
	}
	
	public String printInformation() {//基本信息输出方法(人员类属性)
		return Id + "\t" + name + "\t" + age+"\t" + gender + "\t" + major;
	}
}

class Teacher extends Person{//Person的教师子类
	private String teaNum;//教师工号
	private int classHours; //课时数
	
	//get、set方法
	public String getTeaNum() {
		return teaNum;
	}
	public void setTeaNum(String teaNum) {
		this.teaNum = teaNum;
	}
	public int getClassHours() {
		return classHours;
	}
	public void setClassHours(int classHours) {
		this.classHours = classHours;
	}
	
	public String printInformation() {//重写基本信息输出方法
		return super.printInformation() + "\t" + teaNum;
	}
}

class Student extends Person{//Person的学生子类
	private String stuNum;//学号
	private double math; //数学成绩
	private double english; //英语成绩
	private double Java; //java成绩
	
	//get、set方法
	public String getStuNum() {
		return stuNum;
	}
	public void setStuNum(String stuNum) {
		this.stuNum = stuNum;
	}
	public double getMath() {
		return math;
	}
	public void setMath(double math) {
		this.math = math;
	}
	public double getEnglish() {
		return english;
	}
	public void setEnglish(double english) {
		this.english = english;
	}
	public double getJava() {
		return Java;
	}
	public void setJava(double java) {
		Java = java;
	}
	

	public String printInformation(){//重写基本信息输出方法
		return super.printInformation() + "\t" + stuNum;
	}
	public double aveScore() {//平均分计算
		return (math + english + Java) / 3;
	}
	
}


class  ViewSystem{//菜单显示你
	
	public static void mainMenu() {//显示外层主菜单
		System.out.println("=============计算机系信息管理系统=============");
		System.out.println("==    系统开发人:熊 | 林 | 林    ==");
		System.out.println("==              曾 | 杨 | 稚    ==");
		System.out.println("==    开发时间:2022/4/25                   ==");
		System.out.println("==    版本x1.0  版权所有:01红客行星俱乐部    ==");
		System.out.println("============================================");
		System.out.println();
		System.out.println("+++++++++++系 统 功 能+++++++++++");
		System.out.println("**       0 退 出 系 统         **");
		System.out.println("**       1 教 师 信 息 管 理   **");
		System.out.println("**       2 学 生 信 息 管 理   **");
		System.out.println("*******************************");
		System.out.println();
	}
	public static void teaMenu() {//教师信息管理菜单
		System.out.println("=============           教师信息管理        ==============");
		System.out.println("== 0.退出系统  1.教师信息录入 2.录入课时信息 3.教师信息打印 ==");
		System.out.println("==================================+++++====");
		System.out.println();
		
	}
	public static void stuMenu() {//学生信息管理菜单
		System.out.println("===================     学生信息管理      =========================");
		System.out.println("==             1.学生信息录入  2.打印学生信息表  3.录入数学成绩     ==");
		System.out.println("==             4.录入英语成绩  5.录入Java成绩   6.打印成绩表       ==");
		System.out.println("==             7.成绩统计      8.学生查询       0.返回            ==");
		System.out.println("==================================================================");
		System.out.println();
	}
	public static void scoreStatistics() {//学生成绩统计功能
		System.out.println("============  学生成绩统计  =============");
		System.out.println("==  0.返回   1.平均分   2.不及格学生    ==");
		System.out.println("=========================================");
	}
	public static void stuSearch() {//学生查询功能
		System.out.println("===============  学生查询功能  ==============");
		System.out.println("==    0.返回  1.按学号查询   2.按姓名查询   ==");
		System.out.println("============================================");
	}
	
}

JAVA——【案例】实现计算机系信息管理系统(教师和学生信息管理)_第1张图片
JAVA——【案例】实现计算机系信息管理系统(教师和学生信息管理)_第2张图片

你可能感兴趣的:(#,Java,#,案例,后端,java)