我受命用Java创建学校系统编码作业。这是项目要求:
我们需要保持所修课程及其各自的成绩;添加带有年级的课程,打印所有已修课程和平均成绩。假设一个学生学习整个课程的课程不超过30门。对于教师,我们需要保持当前教授的课程,并能够添加或删除所教授的课程。假设一位老师同时教授不超过5门课程。
我是Java新手。
这是我的代码:
Main Class
package com.company;
import java.util.Scanner;
interface getTheName {
String getName();
String getRole();
}
public class Main {
public static void main(String[] args) {
Information sys = new Information();
Sensei sys1 = new Sensei();
Trainee sys2 = new Trainee();
Courses sys3 = new Courses();
Scanner sc = new Scanner(System.in);
System.out.println("Welcome to Alan's Dojo begin the process for building your own ninja school!");
while (true) {
try {
System.out.println("[1] Add Trainee");
System.out.println("[2] Add Sensei");
System.out.println("[3] Add course");
System.out.println("[4] assign teacher");
System.out.println("[5] Enroll Trainee");
System.out.println("[6] Show courses");
System.out.println("[7] Show Trainees");
System.out.println("[8] Show Senseis");
System.out.println("[9] Show all Ninjas");
System.out.println("[10] Add marks");
System.out.println("[11] Show marks");
System.out.println("[12] exit program");
int menu = sc.nextInt();
sc.nextLine();
int senseiID, traineeID, courseID, mark;
switch (menu) {
case 1:
System.out.println("Enter trainee name: ");
sys.addTrainee(sc.nextLine());
//sys2.addTrainee(sc.nextLine());
break;
case 2:
System.out.println("Enter sensei name: ");
//sys.addSensei(sc.nextLine());
sys.addSensei(sc.nextLine());
break;
case 3:
System.out.println("Enter course name : ");
sys.addCourses(sc.nextLine());
//sys3.addCourses(sc.nextLine());
break;
case 4:
System.out.println("Enter sensei id : ");
senseiID = sc.nextInt();
System.out.println("Enter course id : ");
courseID = sc.nextInt();
//sys.teachCourse(senseiID, courseID);
sys1.teachCourse(senseiID, courseID);
break;
case 5:
System.out.println("Enter trainee id : ");
traineeID = sc.nextInt();
System.out.println("Enter course id : ");
courseID = sc.nextInt();
//sys.enrollTrainee(traineeID, courseID);
sys2.enrollTrainee(traineeID, courseID);
break;
case 6:
//sys.showCourses();
sys3.showCourses();
break;
case 7:
//sys.showTrainees();
sys2.showTrainees();
break;
case 8:
//sys.showSenseis();
sys1.showSenseis();
break;
case 9:
sys.showNames();
break;
case 10:
System.out.println("Enter course id : ");
courseID = sc.nextInt();
System.out.println("Enter trainee id : ");
traineeID = sc.nextInt();
System.out.println("Enter mark : ");
mark = sc.nextInt();
sys.markTrainee(courseID, traineeID, mark);
break;
case 11:
System.out.println("Enter trainee id : ");
traineeID = sc.nextInt();
System.out.println("Enter course id : ");
courseID = sc.nextInt();
sys.showMarks(traineeID, courseID);
break;
case 12:
System.out.println("Please come back to Alan's Dojo soon!");
return;
default:
sc.nextLine();
}
sc.nextLine();
} catch (Exception ex) {
sc.nextLine();
}
}
}
}
信息分类] >>
] >>package com.company; public class Information { public getTheName allNames[]; public int n_name; public Trainee allTrainees[]; public int n_trainee; public Sensei allSenseis[]; public Courses allCourses[]; public int n_sensei; public int n_course; public int allMarks[]; public int n_mark; public int mark; public Information() { allNames = new getTheName[30]; allTrainees = new Trainee[30]; allCourses = new Courses[30]; allSenseis = new Sensei[5]; allMarks = new int[100]; n_course = 0; n_name = 0; n_sensei = 0; n_trainee = 0; n_mark = 0; } public void addTrainee(String name) { allTrainees[n_trainee++] = new Trainee(name); allNames[n_name++] = allTrainees[n_trainee-1]; } public void addSensei(String name) { allSenseis[n_sensei++] = new Sensei(name); allNames[n_name++] = allSenseis[n_trainee-1]; } public void addCourses(String name) { allCourses[n_course++] = new Courses(name); } public void teachCourse(int senseiID,int courseID) { allCourses[courseID].setSensei(allSenseis[senseiID]); } public void enrollTrainee(int traineeID,int courseID) { allCourses[courseID].addTrainee(allTrainees[traineeID]); } public void markTrainee(int courseID,int traineeID,int mark) { allCourses[courseID].addTraineeMark(allTrainees[traineeID]); this.mark = mark; } public void showCourses() { System.out.println("Course list:"); for(int i = 0; i<n_course; i++) { System.out.println("Course id" + i + " :" + allCourses[i].getName()); } } public void showTrainees() { System.out.println("Trainees list:"); for(int i = 0; i <n_trainee; i++) { System.out.println("Trainees id" + i + " :" + allTrainees[i].getName()); } } public void showSenseis() { System.out.println("Sensei list:"); for(int i = 0; i<n_sensei; i++) { System.out.println("Sensei id" + i + " :" + allSenseis[i].getName()); } } public void showNames() { System.out.println("Name list:"); for(int i = 0; i<n_name; i++) { System.out.println(allNames[i].getRole() + ":" + allNames[i].getName()); } } public void showMarks(int traineeID, int courseID) { System.out.println("Marks:"); System.out.println(allCourses[courseID].getName() + " " + allTrainees[traineeID].getName() + " " + mark); } }
忍者职业
]package com.company; public class Ninja implements getTheName{ public getTheName allNames[]; public int n_name; public Trainee allTrainees[]; public int n_trainee; public Sensei allSenseis[]; public Courses allCourses[]; public int n_sensei; public int n_course; public int allMarks[]; public int n_mark; public int mark; public int id; protected String name; public Ninja(String p_name) { name=p_name; } public Ninja() { allNames = new getTheName[30]; allTrainees = new Trainee[30]; allCourses = new Courses[30]; allSenseis = new Sensei[5]; allMarks = new int[100]; n_course = 0; n_name = 0; n_sensei = 0; n_trainee = 0; n_mark = 0; } public void addTrainee(String name) { allTrainees[n_trainee++] = new Trainee(name); allNames[n_name++] = allTrainees[n_trainee-1]; } public void addSensei(String name) { allSenseis[n_sensei++] = new Sensei(name); allNames[n_name++] = allSenseis[n_trainee-1]; } public void addCourses(String name) { allCourses[n_course++] = new Courses(name); } public void teachCourse(int senseiID,int courseID) { allCourses[courseID].setSensei(allSenseis[senseiID]); } public void enrollTrainee(int traineeID,int courseID) { allCourses[courseID].addTrainee(allTrainees[traineeID]); } public void markTrainee(int courseID,int traineeID,int mark) { allCourses[courseID].addTraineeMark(allTrainees[traineeID]); this.mark = mark; } public void showCourses() { System.out.println("Course list:"); for(int i = 0; i<n_course; i++) { System.out.println("Course id" + i + " :" + allCourses[i].getName()); } } public void showTrainees() { System.out.println("Trainees list:"); for(int i = 0; i <n_trainee; i++) { System.out.println("Trainees id" + i + " :" + allTrainees[i].getName()); } } public void showSenseis() { System.out.println("Sensei list:"); for(int i = 0; i<n_sensei; i++) { System.out.println("Sensei id" + i + " :" + allSenseis[i].getName()); } } public void showNames() { System.out.println("Name list:"); for(int i = 0; i<n_name; i++) { System.out.println(allNames[i].getRole() + ":" + allNames[i].getName()); } } public void showMarks(int traineeID, int courseID) { System.out.println("Marks:"); System.out.println(allCourses[courseID].getName() + " " + allTrainees[traineeID].getName() + " " + mark); } public String getName(){ return name; } @Override public String getRole() { return null; } //public void setName(String p_name){name=p_name;} //public String get_role(){return"Ninja";} }
Sensei Class
package com.company; public class Sensei extends Ninja implements getTheName{ public getTheName allNames[]; public int n_name; public Trainee allTrainees[]; public int n_trainee; public Sensei allSenseis[]; public Courses allCourses[]; public int n_sensei; public int n_course; public int allMarks[]; public int n_mark; public Sensei() { super(); allNames = new getTheName[30]; allTrainees = new Trainee[30]; allCourses = new Courses[30]; allSenseis = new Sensei[5]; allMarks = new int[100]; n_course = 0; n_name = 0; n_sensei = 0; n_trainee = 0; n_mark = 0; } public String getName(){ return name; } public void addSensei(String name) { allSenseis[n_sensei++] = new Sensei(name); allNames[n_name++] = allSenseis[n_trainee-1]; } public void teachCourse(int senseiID,int courseID) { allCourses[courseID].setSensei(allSenseis[senseiID]); } public void showSenseis() { System.out.println("Sensei list:"); for(int i = 0; i<n_sensei; i++) { System.out.println("Sensei id" + i + " :" + allSenseis[i].getName()); } } public String getRole() { return"Sensei"; } public Sensei(String p_name) { super(p_name); } }
实习生课程
]package com.company; public class Trainee extends Ninja implements getTheName{ public getTheName allNames[]; public int n_name; public Trainee allTrainees[]; public int n_trainee; public Sensei allSenseis[]; public Courses allCourses[]; public int n_sensei; public int n_course; public int allMarks[]; public int n_mark; public int mark; public Trainee() { super(); allNames = new getTheName[30]; allTrainees = new Trainee[30]; allCourses = new Courses[30]; allMarks = new int[100]; n_course = 0; n_name = 0; n_trainee = 0; n_mark = 0; //listTrainees = new Trainee[30]; } public void addTrainee(String name) { allTrainees[n_trainee++] = new Trainee(name); allNames[n_name++] = allTrainees[n_trainee-1]; } public void enrollTrainee(int traineeID,int courseID) { allCourses[courseID].addTrainee(allTrainees[traineeID]); } public void markTrainee(int courseID,int traineeID,int mark) { allCourses[courseID].addTraineeMark(allTrainees[traineeID]); this.mark = mark; } public void showTrainees() { System.out.println("Trainees list:"); for(int i = 0; i <n_trainee; i++) { System.out.println("Trainees id" + i + " :" + allTrainees[i].getName()); } } public void showNames() { System.out.println("Name list:"); for(int i = 0; i<n_name; i++) { System.out.println(allNames[i].getRole() + ":" + allNames[i].getName()); } } public void showMarks(int traineeID, int courseID) { System.out.println("Marks:"); System.out.println(allCourses[courseID].getName() + " " + allTrainees[traineeID].getName() + " " + mark); } public Trainee(String p_name) { super(p_name); } }
课程类别
package com.company; public class Courses { public getTheName allNames[]; public int n_name; public Trainee allTrainees[]; public int n_trainee; public Sensei allSenseis[]; public Courses allCourses[]; public int n_sensei; public int n_course; public int allMarks[]; public int n_mark; public int mark; private String name; public Sensei SenseiAssigned; public Trainee listTrainees[]; public int n_student; public Courses(String p_name) { name = p_name; listTrainees = new Trainee[10000]; n_student = 0; } public Courses() { allNames = new getTheName[50]; allTrainees = new Trainee[30]; allCourses = new Courses[50]; allSenseis = new Sensei[5]; allMarks = new int[100]; n_course = 0; n_name = 0; n_sensei = 0; n_trainee = 0; n_mark = 0; } public void addCourses(String name) { allCourses[n_course++] = new Courses(name); } public void showCourses() { System.out.println("Course list:"); for(int i = 0; i<n_course; i++) { System.out.println("Course id" + i + " :" + allCourses[i].getName()); } } public String getName(){ return name; } // public void setName(String p_name){name=p_name;} public void setSensei(Sensei prof) { SenseiAssigned = prof; } public void addTrainee(Trainee t) { for (int i = 0; i < n_student; ++i) { if (listTrainees[i] == t) return; } listTrainees[n_student++] = t; } public void addTraineeMark(Trainee t) { listTrainees[n_student++] = t; } }
问题
因此,我目前遇到的问题是,当我尝试打印课程,老师或受训者的姓名时,它们无法正确打印。如果我将“添加Senseis,受训者或Course方法移到各自班级中的相应位置,但是随后将受训者的标记打印停止,则可以解决此问题。
输出:
https://photos.app.goo.gl/btsFQPCiHP9NgeVq5
所以我也需要该程序到受训者,老师和课程列表中。连同标记系统保持完整。
我受命用Java创建学校系统编码作业。这是项目要求:我们需要保持所学课程及其相应的成绩;用...
我对您的Main类进行了重新设计,以使其能够正常执行,并使用方法来最大程度地减少调试和理解的代码量。
我重命名了您的界面,使其更符合Java准则。