Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /** Project 1 COP 3503
- *
- * @author shayan
- *
- */
- import java.util.*;
- import java.io.*;
- import java.util.Scanner;
- import java.util.ArrayList;
- public class University {
- // Properties
- private String name;
- private String currentTerm; // Fall/Spring/etc.
- private int year; // 2011...
- private Course[] courses;
- private Student[] students;
- private Instructor[] instructors;
- // Constructors
- public University(String name, String currentTerm, int year, Student[] students, Instructor[] instructors, Course[] courses) {
- this.name = name;
- this.currentTerm = currentTerm;
- this.year = year;
- this.students = students;
- this.courses = courses;
- this.instructors = instructors;
- }
- // Get/set
- public String getName() {
- return name;
- }
- public void setName(String name) {
- this.name = name;
- }
- public String getCurrentTerm() {
- return currentTerm;
- }
- public void setCurrentTerm(String currentTerm) {
- this.currentTerm = currentTerm;
- }
- public int getYear() {
- return year;
- }
- public void setYear(int year) {
- this.year = year;
- }
- public Course[] getCourses() {
- return courses;
- }
- public void setCourses(Course[] courses) {
- this.courses = courses;
- }
- public Student[] getStudents() {
- return students;
- }
- public void setStudents(Student[] students) {
- this.students = students;
- }
- public Instructor[] getInstructors() {
- return instructors;
- }
- public void setInstructors(Instructor[] instructors) {
- this.instructors = instructors;
- }
- public boolean writeToFile(String filename) {
- PrintWriter output = null;
- try {
- output = new PrintWriter(new File(filename));
- output.print("University Name: "); output.println(this.name);
- output.print("Current Term: "); output.println(this.currentTerm);
- output.print("Current Year: "); output.println(this.year);
- output.print("Number of Students: "); output.println(students.length);
- output.print("Number of Instructors: "); output.println(instructors.length);
- output.print("Number of Courses: "); output.println(courses.length);
- for(int i=0; i<students.length; i++) {
- if(students[i] instanceof UndergradStudent) {
- output.println("Undergrad Student:");
- }
- else if(students[i] instanceof GradStudent) {
- output.println("Grad Student:");
- }
- output.print("Name: "); output.println(students[i].getName());
- output.print("UFID: "); output.println(students[i].getUFID());
- output.print("D.O.B: "); output.println(students[i].getDob());
- output.print("GPA: "); output.println(students[i].getGpa());
- output.print("Number of Courses: "); output.println(students[i].getNumCoursesEnrolled());
- }
- for(int i = 0; i<instructors.length; i++) {
- output.println("Instructor:");
- output.print("Name: "); output.println(instructors[i].getName());
- output.print("UFID: "); output.println(instructors[i].getUFID());
- output.print("D.O.B: "); output.println(instructors[i].getDob());
- }
- for(int i = 0; i<courses.length; i++) {
- if(courses[i] != null) {
- output.println("Course:");
- output.print(courses[i].getType()); output.println(courses[i].getNumber());
- output.println(courses[i].getTitle());
- output.print("Number of Credits: "); output.println(courses[i].getNumCredits());
- output.print("Instructor UFID: "); output.println(courses[i].getInstructor().getUFID());
- output.print("Number of TAs: "); output.println(courses[i].getTAs().length);
- output.print("TA UFIDs: ");
- for(int j = 0; j<courses[i].getTAs().length; j++) {
- output.print(courses[i].getTAs()[j].getUFID());
- if(j<courses[i].getTAs().length-1) {
- output.print(",");
- }
- }
- output.println(" ");
- output.print("Capacity: "); output.println(courses[i].getCapacity());
- output.print("Current Enrollment: "); output.println(courses[i].getCurrentEnrollment());
- output.print("Student UFIDs: ");
- for(int k = 0; k<courses[i].getStudents().length; k++) {
- if(courses[i].getStudents()[k] != null) {
- output.print(courses[i].getStudents()[k].getUFID());
- if(k<courses[i].getStudents().length-1) {
- output.print(",");
- }
- }
- }
- output.println(" ");
- }
- }
- output.flush();
- }
- catch(IOException ioe) {
- System.out.println(ioe.toString());
- }
- finally {
- if (output != null){
- output.close();
- return true;
- }
- }
- return false;
- }
- public static University readFromFile(String filename) {
- String line1 = "";
- File inFile = new File(filename);
- Scanner in = null;
- String line2 = "";
- ArrayList<UndergradStudent> undergrads2 = new ArrayList<UndergradStudent>();
- ArrayList<GradStudent> grads2 = new ArrayList<GradStudent>();
- ArrayList<Course> courses2 = new ArrayList<Course>();
- ArrayList<Instructor> instructors2 = new ArrayList<Instructor>();
- ArrayList<Student> students2 = new ArrayList<Student>();
- String studentName = "";
- int studentUFID = 0;
- String studentDOB = "";
- double studentGPA = 0.0;
- int studentNumCourses = 0;
- String instructorName = "";
- int instructorUFID = 0;
- String instructorDOB = "";
- String courseType = "";
- int courseNumber = 0;
- String courseTitle = "";
- int numOfCredits = 0;
- int courseInstructorUFID = 0;
- int numOfTAs = 0;
- int taUFID = 0;
- int courseCapacity = 0;
- int currentEnrollment = 0;
- try {
- in = new Scanner(inFile);
- if ((line1 = in.nextLine()) == null) {
- throw new EmptyFileException(filename);
- }
- String[] tokens = line1.split(" ");
- for(int i = 2; i<tokens.length; i++) {
- line2 += tokens[i];
- if (i<tokens.length-1) {
- line2 += " ";
- }
- }
- String universityName = line2;
- line2 = "";
- line1 = in.nextLine();
- String[] tokens2 = line1.split(" ");
- for(int i = 2; i<tokens2.length; i++) {
- line2 += tokens2[i];
- }
- String currentTerm = line2;
- line2 = "";
- line1 = in.nextLine();
- String[] tokens3 = line1.split(" ");
- for(int i = 2; i<tokens3.length; i++) {
- line2 += tokens3[i];
- }
- int currentYear = Integer.parseInt(line2);
- line2 = "";
- line1 = in.nextLine();
- String[] tokens4 = line1.split(" ");
- for(int i = 3; i<tokens4.length; i++) {
- line2 += tokens4[i];
- }
- int numberOfStudents = Integer.parseInt(line2);
- line2 = "";
- Student[] students = new Student[numberOfStudents];
- line1 = in.nextLine();
- String[] tokens5 = line1.split(" ");
- for(int i = 3; i<tokens5.length; i++) {
- line2 += tokens5[i];
- }
- int numberOfInstructors = Integer.parseInt(line2);
- line2 = "";
- Instructor[] instructors = new Instructor[numberOfInstructors];
- line1 = in.nextLine();
- String[] tokens6 = line1.split(" ");
- for(int i = 3; i<tokens6.length; i++) {
- line2 += tokens6[i];
- }
- int numberOfCourses = Integer.parseInt(line2);
- line2 = "";
- Course[] courses = new Course[numberOfCourses];
- for(int i = 0; i<numberOfStudents; i++) {
- int count = 0;
- line1 = in.nextLine();
- if(line1.equals("Undergrad Student:")) {
- line1 = in.nextLine();
- String[] tokens7 = line1.split(" ");
- for(int a = 1; a < tokens7.length; a++){
- line2 += tokens7[a];
- if (a<tokens7.length-1) {
- line2 += " ";
- }
- }
- studentName = line2;
- line2 = "";
- line1 = in.nextLine();
- String[] tokens8 = line1.split(" ");
- for(int b = 1; b<tokens8.length; b++) {
- line2 += tokens8[b];
- }
- studentUFID = Integer.parseInt(line2);
- line2 = "";
- line1 = in.nextLine();
- String[] tokens9 = line1.split(" ");
- for(int c = 1; c<tokens9.length; c++) {
- line2 += tokens9[c];
- }
- studentDOB = line2;
- line2 = "";
- line1 = in.nextLine();
- String[] tokens10 = line1.split(" ");
- for(int d = 1; d<tokens10.length; d++){
- line2 += tokens10[d];
- }
- studentGPA = Double.parseDouble(line2);
- line2 = "";
- line1 = in.nextLine();
- String[] tokens11 = line1.split(" ");
- for(int e =3; e<tokens11.length; e++) {
- line2 += tokens11[e];
- }
- studentNumCourses = Integer.parseInt(line2);
- line2 = "";
- UndergradStudent underGradStudent = new UndergradStudent(studentName, studentUFID, studentDOB, studentGPA);
- undergrads2.add(underGradStudent);
- }
- else if(line1.equals("Grad Student:")) {
- line1 = in.nextLine();
- String[] tokens7 = line1.split(" ");
- for(int a = 1; a < tokens7.length; a++){
- line2 += tokens7[a];
- if (a<tokens7.length-1) {
- line2 += " ";
- }
- }
- studentName = line2;
- line2 = "";
- line1 = in.nextLine();
- String[] tokens8 = line1.split(" ");
- for(int b = 1; b<tokens8.length; b++) {
- line2 += tokens8[b];
- }
- studentUFID = Integer.parseInt(line2);
- line2 = "";
- line1 = in.nextLine();
- String[] tokens9 = line1.split(" ");
- for(int c = 1; c<tokens9.length; c++) {
- line2 += tokens9[c];
- }
- studentDOB = line2;
- line2 = "";
- line1 = in.nextLine();
- String[] tokens10 = line1.split(" ");
- for(int d = 1; d<tokens10.length; d++){
- line2 += tokens10[d];
- }
- studentGPA = Double.parseDouble(line2);
- line2 = "";
- line1 = in.nextLine();
- String[] tokens11 = line1.split(" ");
- for(int e =3; e<tokens11.length; e++) {
- line2 += tokens11[e];
- }
- studentNumCourses = Integer.parseInt(line2);
- line2 = "";
- GradStudent gradStudent = new GradStudent(studentName, studentUFID, studentDOB, studentGPA);
- grads2.add(gradStudent);
- }
- }
- for(int x = 0; x < numberOfInstructors; x++) {
- line1 = in.nextLine();
- line1 = in.nextLine();
- String[] tokens12 = line1.split(" ");
- for(int f = 1; f < tokens12.length; f++){
- line2 += tokens12[f];
- if (f<tokens12.length-1) {
- line2 += " ";
- }
- }
- instructorName = line2;
- line2 = "";
- line1 = in.nextLine();
- String[] tokens13 = line1.split(" ");
- for(int g = 1; g<tokens13.length; g++){
- line2 += tokens13[g];
- }
- instructorUFID = Integer.parseInt(line2);
- line2 = "";
- line1 = in.nextLine();
- String[] tokens14 = line1.split(" ");
- for(int h = 1; h<tokens14.length; h++){
- line2 += tokens14[h];
- }
- instructorDOB = line2;
- line2 = "";
- Instructor instructor = new Instructor(instructorName, instructorUFID, instructorDOB);
- for(int ab = 0; ab <instructors.length; ab++) {
- if(instructors[ab] == null) {
- instructors[ab] = instructor; break;
- }
- }
- }
- for(int z = 0; z<numberOfCourses; z++) {
- line1 = in.nextLine();
- line1 = in.nextLine();
- String[] tokens15 = line1.split(" ");
- courseType = tokens15[0];
- courseNumber = Integer.parseInt(tokens15[1]);
- line1 = in.nextLine();
- courseTitle = line1;
- line2 = "";
- line1 = in.nextLine();
- String[] tokens16 = line1.split(" ");
- for(int j = 3; j<tokens16.length; j++){
- line2 += tokens16[j];
- }
- numOfCredits = Integer.parseInt(line2);
- line2 = "";
- line1 = in.nextLine();
- String[] tokens17 = line1.split(" ");
- for(int k = 2; k<tokens17.length; k++){
- line2 += tokens17[k];
- }
- courseInstructorUFID = Integer.parseInt(line2);
- line2 = "";
- line1 = in.nextLine();
- String[] tokens18 = line1.split(" ");
- for(int l = 3; l<tokens18.length; l++) {
- line2 += tokens18[l];
- }
- numOfTAs = Integer.parseInt(line2);
- line2 = "";
- int[] TAUFIDs = new int[numOfTAs];
- line1 = in.nextLine();
- String[] tokens19 = line1.split(" ");
- for(int n = 2; n<tokens19.length; n++) {
- line2 += tokens19[n];
- }
- String[] tokens20 = line2.split(",");
- if(tokens20.length < 2) {
- taUFID = Integer.parseInt(line2);
- TAUFIDs[0] = taUFID;
- }
- else {
- for(int o =0; o<tokens20.length; o++) {
- TAUFIDs[o] = Integer.parseInt(tokens20[o]);
- }
- }
- line2 = "";
- line1 = in.nextLine();
- String[] tokens21 = line1.split(" ");
- for(int p = 1; p<tokens21.length; p++){
- line2 += tokens21[p];
- }
- courseCapacity = Integer.parseInt(line2);
- line2 = "";
- int[] studentUFIDs = new int[currentEnrollment];
- Course course = new Course(courseType, courseNumber, courseTitle, numOfCredits);
- GradStudent[] TAs = new GradStudent[numOfTAs];
- for(int ee = 0; ee<instructors.length; ee++) {
- if(instructors[ee].getUFID() == courseInstructorUFID) {
- course.setInstructor(instructors[ee]);
- instructors[ee].setCourse(course);
- }
- }
- line1 = in.nextLine();
- String[] tokens22 = line1.split(" ");
- for(int q = 2; q<tokens22.length; q++) {
- line2 += tokens22[q];
- }
- currentEnrollment = Integer.parseInt(line2);
- line2 = "";
- line1 = in.nextLine();
- String[] tokens23 = line1.split(" ");
- for(int r = 2; r<tokens23.length; r++) {
- line2 += tokens23[r];
- }
- String[] tokens24 = line2.split(",");
- if(tokens24.length < 2) {
- studentUFID = Integer.parseInt(line2);
- studentUFIDs[0] = studentUFID;
- }
- else {
- for(int s =0; s<studentUFIDs.length; s++) {
- studentUFIDs[s] = Integer.parseInt(tokens24[s]);
- }
- }
- course.setCapacity(courseCapacity);
- for(int u = 0; u < grads2.size(); u++) {
- for(int w = 0; w < studentUFIDs.length; w++) {
- if(grads2.get(u).getUFID() == studentUFIDs[w]){
- grads2.get(u).addCourse(course);
- course.addStudent(grads2.get(u));
- }
- }
- }
- for(int ux = 0; ux < undergrads2.size(); ux++) {
- for(int wx = 0; wx < studentUFIDs.length; wx++) {
- if(undergrads2.get(ux).getUFID() == studentUFIDs[wx]){
- undergrads2.get(ux).addCourse(course);
- course.addStudent(undergrads2.get(ux));
- }
- }
- }
- course.setCapacity(courseCapacity);
- for(int gg = 0; gg<grads2.size(); gg++) {
- for(int hh = 0; hh<TAUFIDs.length; hh++){
- if(grads2.get(gg) != null && grads2.get(gg).getUFID() == TAUFIDs[hh]){
- grads2.get(gg).setCourseTA(course);
- for(int xx = 0; xx < TAs.length; xx++){
- if(TAs[xx] == null) {
- TAs[xx] = grads2.get(gg);break;
- }
- }
- }
- }
- }
- course.setTAs(TAs);
- course.setCurrentEnrollment(currentEnrollment);
- for(int bc = 0; bc<courses.length; bc++) {
- if(courses[bc] == null) {
- courses[bc] = course;
- }
- }
- for(int ada = 0; ada < undergrads2.size(); ada++){
- for(int eza = 0; eza < students.length; eza++){
- if(students[eza] == null) {
- students[eza] = undergrads2.get(ada);break;
- }
- }
- }
- for(int ad = 0; ad < grads2.size(); ad++){
- for(int ez = 0; ez < students.length; ez++){
- if(students[ez] == null) {
- students[ez] = grads2.get(ad);break;
- }
- }
- }
- }
- University ufl = new University(universityName, currentTerm, currentYear, students, instructors, courses);
- return ufl;
- } catch (EmptyFileException e) {
- e.toString();
- } catch (FileNotFoundException x) {
- x.printStackTrace();
- }finally {
- if (in != null)
- in.close();
- }
- return null;
- }
- // toString
- public String toString() {
- String str = "University Name: " + name;
- //str += "\nCurrent Semester: " + currentTerm + " " + year;
- str += "\nCurrent Term: " + currentTerm;
- str += "\nCurrent Year: " + year;
- str += "\nNumber of Students: " + students.length;
- str += "\nNumber of Instructors: " + instructors.length;
- str += "\nNumber of Courses: " + courses.length;
- return str;
- }
- }
Add Comment
Please, Sign In to add comment