系统初始界面要显示系统名称、系统开发者的班级和姓名、开发时间、版权所有等信息。
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("============================================");
}
}