Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public class C0167_Intermediate {
- private static Library lib = new Library();
- public static void main(String[] args) {
- //Get an array of students and sort them
- Student[] students = sortStudents(readFromFile());
- //Output the sorted students
- outputStudents(students);
- }
- private static Student[] sortStudents(Student[] s){
- Student j = null;
- boolean flag = true;
- while(flag){
- flag = false;
- for(int i = 0; i < s.length-1; i++){
- if(s[i].getAverage() < s[i+1].getAverage()){
- j = s[i];
- s[i] = s[i+1];
- s[i+1] = j;
- flag = true;
- }
- }
- }
- return s;
- }
- private static void outputStudents(Student[] s){
- for(int i = 0; i < s.length; i++){
- System.out.print(" " + s[i].getName() + getSpacing(s[i].getName()) + s[i].getLastName() + getSpacing(s[i].getLastName()));
- System.out.print(" (" + s[i].getAverage() + "%) " + " (" + s[i].getGrade() + ") ");
- for(int j = 0; j < 5; j++) System.out.print(s[i].getGradeAt(j) + getNumberSpacing(s[i].getGradeAt(j)));
- System.out.println("");
- }
- }
- private static String getNumberSpacing(int num){
- if((num + "").length() == 2) return " ";
- else if((num + "").length() == 3) return " ";
- else return " ";
- }
- private static String getSpacing(String t){
- String s = "";
- for(int i = 0; i < 10-t.length(); i++){
- s+= " ";
- }
- return s;
- }
- private static Student[] readFromFile(){
- String[] lines = lib.readFromFile("Grades");
- Student[] students = new Student[lines.length];
- String[] line;
- int[] tempGrades;
- for(int i = 0; i < lines.length; i++){
- line = lines[i].split(" ");
- tempGrades = new int[5];
- for(int j = 0; j < tempGrades.length; j++) tempGrades[j] = Integer.parseInt(line[j+2]);
- students[i] = (new Student(line[0], line[1], tempGrades));
- }
- return students;
- }
- }
- class Student {
- private String name;
- private String lastName;
- private int[] grades;
- private static Library lib = new Library();
- public Student(String name, String lastName, int[] grades){
- this.name = name;
- this.lastName = lastName;
- this.grades = grades;
- grades = lib.sort(grades);
- }
- public String getName() {
- return name;
- }
- public String getLastName() {
- return lastName;
- }
- public int getGradeAt(int j){
- return grades[j];
- }
- public String getGrade(){
- int avg = getAverage();
- if(avg >= 90) return "A ";
- else if(avg >= 80){
- if(avg >= 87) return "B+";
- if(avg <= 83) return "B-";
- else return "B ";
- } else if(avg >= 70){
- if(avg >= 77) return "C+";
- if(avg <= 73) return "C-";
- else return "C ";
- } else if(avg >= 60){
- if(avg >= 67) return "D+";
- if(avg <= 63) return "D-";
- else return "D ";
- } else return "F ";
- }
- public int getAverage(){
- int avg = 0;
- for(int i = 0; i < grades.length; i++) avg+=grades[i];
- return (int) Math.ceil(avg/grades.length + 0.0);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement