Created
August 19, 2016 20:00
-
-
Save YanchevskayaAnna/53004443ed937d073e17c1861223cdec to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
package Level_2.week_2.university; | |
/** | |
* Created by pc on 09.08.2016. | |
*/ | |
public class Address { | |
private String city; | |
private String street; | |
private int buildNumber; | |
private int flatNumber; | |
public Address(String city, String street, int buildNumber, int flatNumber) { | |
this.city = city; | |
this.street = street; | |
this.buildNumber = buildNumber; | |
this.flatNumber = flatNumber; | |
} | |
public String toString(){ | |
return String.format("city : %s, street : %s, building : %d, flat : %d", | |
city, street, buildNumber, flatNumber); | |
} | |
public void setCity(String city) { | |
this.city = city; | |
} | |
public void setStreet(String street) { | |
this.street = street; | |
} | |
public void setBuildNumber(int buildNumber) { | |
this.buildNumber = buildNumber; | |
} | |
public void setFlatNumber(int flatNumber) { | |
this.flatNumber = flatNumber; | |
} | |
public String getCity() { | |
return city; | |
} | |
public String getStreet() { | |
return street; | |
} | |
public int getBuildNumber() { | |
return buildNumber; | |
} | |
public int getFlatNumber() { | |
return flatNumber; | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
package Level_2.week_2.university; | |
/** | |
* Created by pc on 09.08.2016. | |
*/ | |
public class SemesterHours { | |
public static final double DOUBLE = 0.3; //todo 0.3 - make constant | |
private int semester; | |
private int hours; | |
private int minHours; | |
public SemesterHours(int semester, int hours){ | |
this.semester = semester; | |
this.hours = hours; | |
this.minHours = (int) (hours * DOUBLE); //todo 0.3 - make constant | |
} | |
public String toString(){ | |
return String.format("semester number : %d, hours : %d, min hours : %d", semester, hours, minHours); | |
} | |
public int getSemester(){ | |
return semester; | |
} | |
public double getHours(){ | |
return hours; | |
} | |
public void setSemester(int semester){ | |
this.semester = semester; | |
} | |
public void setHours(int hours){ | |
this.hours = hours; | |
} | |
public double getMinHours(){ | |
return minHours; | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
package Level_2.week_2.university; | |
/** | |
* Created by pc on 09.08.2016. | |
*/ | |
public class Student { | |
private Subject[] subjectList; | |
private String name; | |
private Address address; | |
private int subjectQuantity; | |
private static final int SIZE = 10; | |
public Student(String name, Address address) { | |
this.name = name; | |
this.address = address; | |
subjectList = new Subject[SIZE]; | |
} | |
public String toString(){ | |
return String.format("name : %s, address : %s", name, address.toString()); | |
} | |
public String getName() { | |
return name; | |
} | |
public Address getAddress() { | |
return address; | |
} | |
public Subject[] getSubject() { | |
return subjectList; | |
} | |
public void learning(Subject subject){ | |
int hours = (int) subject.getSemesterHours().getHours(); | |
subject.setStudentHours(hours); | |
subject.setStudentValue(subject.generateStudentValue()); | |
} | |
public boolean addSubject(Subject subject){ | |
expandSubjectList(); | |
subjectList[subjectQuantity++] = subject; | |
return true; | |
} | |
public boolean removeLastSubject(){ | |
subjectList[subjectQuantity--] = null; //todo check for empty list | |
return true; | |
} | |
public String showAllInfoAboutSubjects(){ | |
StringBuilder st = new StringBuilder(); | |
for (int i = 0; i < subjectQuantity; i++) { | |
st.append(i + "| " + subjectList[i].toString() + "\n"); | |
} | |
return st.toString(); | |
} | |
public double getGPA(){ | |
if (subjectQuantity == 0) { | |
System.out.println("not available subject"); | |
return -1; //todo Why not 0? | |
} | |
double gpa = 0; | |
for (int i = 0; i < subjectQuantity; i++) { | |
gpa += subjectList[i].getStudentValue(); | |
} | |
return gpa / subjectQuantity; | |
} | |
public void expandSubjectList(){ | |
if (subjectQuantity >= subjectList.length){ | |
Subject[] newStudentList = new Subject[subjectList.length * 2]; | |
System.arraycopy(subjectList, 0, newStudentList, 0, subjectList.length); | |
subjectList = newStudentList;; | |
} | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
package Level_2.week_2.university; | |
/** | |
* Created by pc on 09.08.2016. | |
*/ | |
public class Subject { | |
private String name; | |
private SemesterHours semesterHours; | |
private int studentHours; | |
private int studentValue; | |
private static final int MIN_RANGE = 2; | |
private static final int MAX_RANGE = 5; | |
public Subject(String name, SemesterHours semesterHours){ | |
this.name = name; | |
this.semesterHours = semesterHours; | |
this.studentHours = generateStudentHours(); | |
this.studentValue = generateStudentValue(); | |
} | |
public String toString(){ | |
return String.format("subject : %s, %s , student hours : %d, rating : %d", | |
name, semesterHours.toString(), studentHours, studentValue); | |
} | |
public boolean passExamination(Student student){ //todo Why we need variable student? | |
if (generateStudentValue() > MIN_RANGE && generateStudentValue() <= MAX_RANGE) { | |
if (generateStudentHours() >= semesterHours.getMinHours()) { | |
return true; | |
} | |
} | |
return false; | |
} | |
public double getStudentValue(Subject subject){ | |
return subject.getStudentValue(); | |
} | |
public String getName() { | |
return name; | |
} | |
public SemesterHours getSemesterHours() { | |
return semesterHours; | |
} | |
public int getStudentHours() { | |
return studentHours; | |
} | |
public int getStudentValue() { | |
return studentValue; | |
} | |
public int generateStudentValue(){ | |
return (int)(Math.random() * (MAX_RANGE - 2)) + 2; | |
} | |
public int generateStudentHours(){ | |
return (int)(Math.random() * semesterHours.getHours()); | |
} | |
public void setName(String name) { | |
this.name = name; | |
} | |
public void setSemesterHours(SemesterHours semesterHours) { | |
this.semesterHours = semesterHours; | |
} | |
public void setStudentHours(int studentHours) { | |
this.studentHours = studentHours; | |
} | |
public void setStudentValue(int studentValue) { | |
this.studentValue = studentValue; | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
package Level_2.week_2.university; | |
/** | |
* Created by oleksandr.maslovskyj on 12.08.2016. | |
*/ | |
public class Test { | |
public static void main(String[] args) { | |
Address address = new Address("Kyiv", "some street", 10, 123); | |
SemesterHours semesterHours = new SemesterHours(1, 120); | |
Subject subject0 = new Subject("math", semesterHours); | |
Subject subject1 = new Subject("literature", semesterHours); | |
Subject subject2 = new Subject("philof", semesterHours); | |
Student student = new Student("student1", address); | |
student.addSubject(subject0); | |
student.addSubject(subject1); | |
student.addSubject(subject2); | |
student.learning(subject1); | |
System.out.println(student.showAllInfoAboutSubjects()); | |
student.removeLastSubject(); | |
System.out.println(student.showAllInfoAboutSubjects()); | |
double gpa = student.getGPA(); | |
double expected = 1.5; //todo why 1.5? StudentValue is it random? | |
System.out.print(gpa == expected); | |
System.out.println(" = gpa result is: " + gpa); | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment