Hi currently I\'ve written a programme which prints out the following when I pro
ID: 3704350 • Letter: H
Question
Hi currently I've written a programme which prints out the following when I prompt the user to enter the names and studentID of students.
Welcome to Java University.
FIT1234 Advanced Bogosorts
Enrolled Students:
12345678 Victor Chang
12345679 Fred Nurke
FIT2027 Introduction to Spaghetti Coding
Enrolled Students:
12345680 Indira Naidu
FIT3456 Enterprise Fizzbuzz
Enrolled Students:
12345680 Indira Naidu
Thanks for using Java University
There are twotypes of assessment at JavaUniversity: exams and assignments. I need to extend the capabilities of my programme to print out the following by prompting the user to enter the weightage and the duration of exam and the title and weightage of assignment, for example:
Welcome to Java University.
FIT1234 Advanced Bogosorts
Exam: duration 17 minutes, weight 80%
Assignment: Tea Project, weight 20%
Enrolled Students:
12345678 Victor Chang
12345679 Fred Nurke
FIT2027 Introduction to Spaghetti Coding
Exam: duration 16 minutes, weight 20%
Assignment: TProject, weight 80%
Enrolled Students:
12345680 Indira Naidu
FIT3456 Enterprise Fizzbuzz
Exam: duration 19 minutes, weight 60%
Assignment: ea Project, weight 40%
Enrolled Students:
12345680 Indira Naidu
Thanks for using Java University
So I've already created my exam class and assignment class and they both extend assessment class. I also have an assesment scheme class where it is a collection of assesments.?PLEASE MODIFY MY UNIT AND UNIVERSITY CLASS SO THAT THE ASSESMENT SCHEME CAN BE SET.
Exam.java
public class Exam extends Assessment {
private int duration;
public Exam(int newWeight,int newDuration) {
setWeight(newWeight);
duration=newDuration;
}
public String description(){
return "Exam: duration " + duration + " minutes, weight " + getWeight() + "%";
}
}
Assignment.java
public class Assignment extends Assessment {
private String title;
public Assignment(int newWeight, String newTitle) {
setWeight(newWeight);
title=newTitle;
}
public String description(){
return "Assignment" + " " + title + " ," + " " + getWeight() + "%";
}
Assessment.java
public abstract class Assessment {
private int weight;
//setter
public void setWeight(int weight ) {
this.weight=weight;
}
// getter
public int getWeight() {
return weight;
}
public abstract String description();
}
}
AssessmentScheme.java
import java.util.ArrayList;
public class AssessmentScheme {
private ArrayList<Assessment> assessmentArray = new ArrayList<>();
public void addAssessment(Assessment assessment){
assessmentArray.add(assessment);
}
public ArrayList<Assessment> getAssessmentScheme(){
return assessmentArray;
}
}
?CLASSES TO MODIFY:UNIT.JAVA
import java.util.HashMap;
public class Unit {
private String code;
private String name;
private HashMap<String,Student> enrolledStudents = new HashMap<>();
int i=0;
public Unit (String unitCode, String unitName) {
code=unitCode;
name=unitName;
}
public void enrolStudent (Student newStudent) {
enrolledStudents.put(newStudent.getStudentId(), newStudent);
}
public boolean isEnrolled(Student newStudent){
boolean result = false;
for (Student st : enrolledStudents .values()){
if (st.equals(newStudent)) {
result = true;
}
}
return result;
}
public void unenrolStudent(Student newStudent) {
enrolledStudents.remove(newStudent.getStudentId());
}
public String description() {
return code + " " + name;
}
public String getCode() {
return code;
}
public String returnEnrolledStudents() {
StringBuilder returnVal = new StringBuilder("Unit: " + code + " " + name + " Enrolled Students: ");
for (String s : enrolledStudents.keySet()) {
returnVal.append(enrolledStudents.get(s).description() + " ");
}
return returnVal.toString();
}
}
University.java
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class University {
Unit[] units = new Unit[3];
private String studentID;
private String givenName;
private String familyName;
private String readString(String prompt) {
System.out.print(prompt);
BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
String s = null;
try {
s = in.readLine();
} catch (IOException e) {
e.printStackTrace();
}
return s;
}
public void createUnits() {
units[0] = new Unit("FIT1008", "IntroToCompSc");
units[1] = new Unit("FIT1045", "Python");
units[2] = new Unit("FIT2081", "MobileAppDev");
for (int i = 0; i < units.length; i++) {
studentID = readString("Enter a studentID:");
givenName = readString("Enter a firstName:");
familyName = readString("Enter a familyName:");
units[i].enrolStudent(new Student(studentID, givenName, familyName));
}
}
public void displayUnits() {
for (int i = 0; i < units.length; i++)
System.out.println(units[i].returnEnrolledStudents());
}
public void printStatus() {
System.out.println("Welcome to Java University");
System.out.println();
System.out.println("Thank you for using Java University");
createUnits();
displayUnits();
System.out.println("Goodbye");
}
}
Explanation / Answer
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.List;
public class University {
Unit[] units ;
private String studentID;
private String givenName;
private String familyName;
private String readString(String prompt) {
System.out.print(prompt);
BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
String s = null;
try {
s = in.readLine();
} catch (IOException e) {
e.printStackTrace();
}
return s;
}
public void createUnits() {
int noOfUnits = Integer.parseInt(readString("Enter Number of Units:"));
units = new Unit[noOfUnits];
for (int i = 0; i < noOfUnits; i++) {
String unitCode = readString("Enter Unit Code:");
String unitName = readString("Enter Unit Name:");
units[i] = new Unit(unitCode, unitName);
int noOfAssignments = Integer.parseInt(readString("Enter Number of Assignments for " +unitName +" : "));
int noOfExams = Integer.parseInt(readString("Enter Number of Exams for " +unitName +" : "));
int noOfStudents = Integer.parseInt(readString("Enter Number of Students for " +unitName +" : "));
AssessmentScheme assignScheme = new AssessmentScheme();
for(int assCnt = 0;assCnt<noOfAssignments;assCnt++) {
Assignment assignment = new Assignment();
String assgnTitle = readString("Enter Assignment Code:");
int assgnWeight = Integer.parseInt(readString("Enter Weight:"));
assignment.setTitle(assgnTitle);
assignment.setWeight(assgnWeight);
assignScheme.addAssessment(assignment);
}
AssessmentScheme examScheme = new AssessmentScheme();
for(int exCnt = 0;exCnt<noOfExams;exCnt++) {
Exam exam = new Exam();
int examDuration = Integer.parseInt(readString("Enter Duration:"));
int examWeight = Integer.parseInt(readString("Enter Weight:"));
exam.setDuration(examDuration);
exam.setWeight(examWeight);
examScheme.addAssessment(exam);
}
for(int stCnt = 0;stCnt<noOfStudents;stCnt++) {
studentID = readString("Enter a studentID:");
givenName = readString("Enter a firstName:");
familyName = readString("Enter a familyName:");
units[i].enrolStudent(new Student(studentID, givenName, familyName));
}
units[i].setAssignmentScheme(assignScheme);
units[i].setExamScheme(examScheme);
}
}
public void displayUnits() {
for (int i = 0; i < units.length; i++) {
//Newly adde code
AssessmentScheme assingScheme = units[i].getAssignmentScheme();
for(Assessment assign:assingScheme.getAssessmentArray()) {
System.out.println(assign.description());
}
AssessmentScheme examScheme = units[i].getExamScheme();
for(Assessment exam:examScheme.getAssessmentArray()) {
System.out.println(exam.description());
}
//Newly adde code
System.out.println(units[i].returnEnrolledStudents());
}
}
public void printStatus() {
System.out.println("Welcome to Java University");
System.out.println();
System.out.println("Thank you for using Java University");
createUnits();
displayUnits();
System.out.println("Goodbye");
}
}
=======================
import java.util.HashMap;
import java.util.List;
public class Unit {
private String code;
private String name;
private List<Assignment> assignment;
private List<Exam> exam;
private AssessmentScheme assignmentScheme;
public AssessmentScheme getAssignmentScheme() {
return assignmentScheme;
}
public void setAssignmentScheme(AssessmentScheme assignmentScheme) {
this.assignmentScheme = assignmentScheme;
}
public AssessmentScheme getExamScheme() {
return examScheme;
}
public void setExamScheme(AssessmentScheme examScheme) {
this.examScheme = examScheme;
}
private AssessmentScheme examScheme;
private HashMap<String, Student> enrolledStudents = new HashMap<>();
int i = 0;
public Unit(String unitCode, String unitName) {
code = unitCode;
name = unitName;
}
public void enrolStudent(Student newStudent) {
enrolledStudents.put(newStudent.getStudentId(), newStudent);
}
public boolean isEnrolled(Student newStudent) {
boolean result = false;
for (Student st : enrolledStudents.values()) {
if (st.equals(newStudent)) {
result = true;
}
}
return result;
}
public void unenrolStudent(Student newStudent) {
enrolledStudents.remove(newStudent.getStudentId());
}
public String description() {
return code + " " + name;
}
public String getCode() {
return code;
}
public String returnEnrolledStudents() {
StringBuilder returnVal = new StringBuilder("Unit: " + code + " " + name + " Enrolled Students: ");
for (String s : enrolledStudents.keySet()) {
returnVal.append(enrolledStudents.get(s).description() + " ");
}
return returnVal.toString();
}
}
=======================================
public class Exam extends Assessment {
private int duration;
public Exam() {
super(0);
}
public int getDuration() {
return duration;
}
public void setDuration(int duration) {
this.duration = duration;
}
public Exam(int newWeight, int newDuration) {
super(newWeight);
duration = newDuration;
}
public String description() {
return "Exam: duration " + duration + " minutes, weight " + getWeight() + "%";
}
}
===========================================
public class Assignment extends Assessment {
private String title;
public Assignment(int newWeight, String newTitle) {
super(newWeight);
title = newTitle;
}
public Assignment() {
super(0);
}
public String description() {
return "Assignment" + " " + title + " ," + " " + getWeight() + "%";
}
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
}
==========================================
import java.util.ArrayList;
public class AssessmentScheme {
private ArrayList<Assessment> assessmentArray = new ArrayList<>();
public void addAssessment(Assessment assessment) {
assessmentArray.add(assessment);
}
public ArrayList<Assessment> getAssessmentScheme() {
return assessmentArray;
}
public ArrayList<Assessment> getAssessmentArray() {
return assessmentArray;
}
public void setAssessmentArray(ArrayList<Assessment> assessmentArray) {
this.assessmentArray = assessmentArray;
}
}
=========================================
public abstract class Assessment {
private int weight;
public Assessment(int w) {
weight = w;
}
// setter
public void setWeight(int weight) {
this.weight = weight;
}
// getter
public int getWeight() {
return weight;
}
public abstract String description();
}
Related Questions
drjack9650@gmail.com
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.