mirror of
				https://github.com/ASDjonok/OOP_IO-2x_2023.git
				synced 2025-11-04 08:39:24 +02:00 
			
		
		
		
	
		
			
	
	
		
			119 lines
		
	
	
		
			4.5 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
		
		
			
		
	
	
			119 lines
		
	
	
		
			4.5 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
| 
								 | 
							
								import java.util.Arrays;
							 | 
						||
| 
								 | 
							
								import java.util.Comparator;
							 | 
						||
| 
								 | 
							
								import java.util.Scanner;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								public class lab4 {
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    public static class Student {
							 | 
						||
| 
								 | 
							
								        private int grBook;
							 | 
						||
| 
								 | 
							
								        private String name;
							 | 
						||
| 
								 | 
							
								        private int age;
							 | 
						||
| 
								 | 
							
								        private double gpa;
							 | 
						||
| 
								 | 
							
								        private String faculty;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        public Student(int grBook, String name, int age, double gpa, String faculty) {
							 | 
						||
| 
								 | 
							
								            this.grBook = grBook;
							 | 
						||
| 
								 | 
							
								            this.name = name;
							 | 
						||
| 
								 | 
							
								            this.age = age;
							 | 
						||
| 
								 | 
							
								            this.gpa = gpa;
							 | 
						||
| 
								 | 
							
								            this.faculty = faculty;
							 | 
						||
| 
								 | 
							
								        }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        public int getGrBook() {
							 | 
						||
| 
								 | 
							
								            return grBook;
							 | 
						||
| 
								 | 
							
								        }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        public String getName() {
							 | 
						||
| 
								 | 
							
								            return name;
							 | 
						||
| 
								 | 
							
								        }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        public int getAge() {
							 | 
						||
| 
								 | 
							
								            return age;
							 | 
						||
| 
								 | 
							
								        }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        public double getGpa() {
							 | 
						||
| 
								 | 
							
								            return gpa;
							 | 
						||
| 
								 | 
							
								        }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        public String getFaculty() {
							 | 
						||
| 
								 | 
							
								            return faculty;
							 | 
						||
| 
								 | 
							
								        }
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    public static void main(String[] args) {
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        int C11 = 2430 % 11;
							 | 
						||
| 
								 | 
							
								        System.out.println("\n  ----------------------------------------------------------------------------------------------------------");
							 | 
						||
| 
								 | 
							
								        System.out.println("          C17 = " + C11 + ", So, the task is:  Define the student class, which consists of at least 5 fields.");
							 | 
						||
| 
								 | 
							
								        System.out.println("  ----------------------------------------------------------------------------------------------------------");
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        Student[] students = {
							 | 
						||
| 
								 | 
							
								                new Student(1010, "Вікторія", 21, 84.6, "ФІОТ"),
							 | 
						||
| 
								 | 
							
								                new Student(2010, "Дарія", 20, 79.8, "РТФ"),
							 | 
						||
| 
								 | 
							
								                new Student(3010, "Анатолій", 19, 94.3, "ХТФ"),
							 | 
						||
| 
								 | 
							
								                new Student(4040, "Генадій", 22, 62.0, "ІХФ"),
							 | 
						||
| 
								 | 
							
								                new Student(5050, "Борис", 18, 89.1, "ФММ")
							 | 
						||
| 
								 | 
							
								        };
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        Scanner scanner = new Scanner(System.in);
							 | 
						||
| 
								 | 
							
								        boolean quit = false;
							 | 
						||
| 
								 | 
							
								        while (!quit) {
							 | 
						||
| 
								 | 
							
								            // Ask user which field and order to sort by
							 | 
						||
| 
								 | 
							
								            System.out.print("\nEnter the field to sort by (greed book, name, age, gpa, faculty) or enter 'quit' to exit: ");
							 | 
						||
| 
								 | 
							
								            String input = scanner.nextLine();
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								            if (!input.equals("greed book") && !input.equals("name") && !input.equals("age") && !input.equals("gpa") && !input.equals("faculty") && !input.equals("quit")) {
							 | 
						||
| 
								 | 
							
								                System.out.println("Invalid field to sort by! Please enter 'grBook', 'name', 'age', 'gpa', or 'faculty'.");
							 | 
						||
| 
								 | 
							
								                continue;
							 | 
						||
| 
								 | 
							
								            }
							 | 
						||
| 
								 | 
							
								            if (input.equals("quit")) {
							 | 
						||
| 
								 | 
							
								                quit = true;
							 | 
						||
| 
								 | 
							
								                System.out.println("Thank you for using my program:)");
							 | 
						||
| 
								 | 
							
								                continue;
							 | 
						||
| 
								 | 
							
								            }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								            String field = input;
							 | 
						||
| 
								 | 
							
								            System.out.print("Enter the sort order (asc or desc): ");
							 | 
						||
| 
								 | 
							
								            String order = scanner.nextLine();
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								            // Check if the sort order input is valid
							 | 
						||
| 
								 | 
							
								            if (!order.equals("asc") && !order.equals("desc")) {
							 | 
						||
| 
								 | 
							
								                System.out.println("Invalid sort order! Please enter 'asc' or 'desc'.");
							 | 
						||
| 
								 | 
							
								                continue;
							 | 
						||
| 
								 | 
							
								            }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								            // Sort the students array
							 | 
						||
| 
								 | 
							
								            Comparator<Student> comparator = null;
							 | 
						||
| 
								 | 
							
								            switch (field) {
							 | 
						||
| 
								 | 
							
								                case "greed book":
							 | 
						||
| 
								 | 
							
								                    comparator = Comparator.comparingInt(Student::getGrBook);
							 | 
						||
| 
								 | 
							
								                    break;
							 | 
						||
| 
								 | 
							
								                case "name":
							 | 
						||
| 
								 | 
							
								                    comparator = Comparator.comparing(Student::getName);
							 | 
						||
| 
								 | 
							
								                    break;
							 | 
						||
| 
								 | 
							
								                case "age":
							 | 
						||
| 
								 | 
							
								                    comparator = Comparator.comparingInt(Student::getAge);
							 | 
						||
| 
								 | 
							
								                    break;
							 | 
						||
| 
								 | 
							
								                case "gpa":
							 | 
						||
| 
								 | 
							
								                    comparator = Comparator.comparingDouble(Student::getGpa);
							 | 
						||
| 
								 | 
							
								                    break;
							 | 
						||
| 
								 | 
							
								                case "faculty":
							 | 
						||
| 
								 | 
							
								                    comparator = Comparator.comparing(Student::getFaculty);
							 | 
						||
| 
								 | 
							
								                    break;
							 | 
						||
| 
								 | 
							
								            }
							 | 
						||
| 
								 | 
							
								            if (order.equals("desc")) {
							 | 
						||
| 
								 | 
							
								                comparator = comparator.reversed();
							 | 
						||
| 
								 | 
							
								            }
							 | 
						||
| 
								 | 
							
								            Arrays.sort(students, comparator);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								            // Print the sorted students array
							 | 
						||
| 
								 | 
							
								            System.out.println("\nSorted by " + field + " (in " + order + "ending order):");
							 | 
						||
| 
								 | 
							
								            System.out.println(String.format("%n%-15s | %-20s | %-4s | %-4s | %-10s", "Greed book", "Name", "Age", "GPA", " Faculty"));
							 | 
						||
| 
								 | 
							
								            System.out.println("----------------------------------------------------------------");
							 | 
						||
| 
								 | 
							
								            for (Student student : students) {
							 | 
						||
| 
								 | 
							
								                System.out.println(String.format("%-15d | %-20s | %-4d | %-3.1f | %-10s", student.getGrBook(), student.getName(), student.getAge(), student.getGpa(), student.getFaculty()));
							 | 
						||
| 
								 | 
							
								            }
							 | 
						||
| 
								 | 
							
								        }
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								}
							 |