Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import java.io.IOException;
- import java.nio.file.Paths;
- import java.util.*;
- public class KontrRabota {
- public static void main(String[] args) {
- Scanner sc1 = null, sc2 = null;
- try {
- sc1 = new Scanner(Paths.get("input1.txt"));
- } catch (IOException | NullPointerException e) {
- System.out.println("Ошибка при чтении файла \"input1.txt\"");
- return;
- }
- try {
- sc2 = new Scanner(Paths.get("input2.txt"));
- } catch (IOException | NullPointerException e) {
- System.out.println("Ошибка при чтении файла \"input2.txt\"");
- return;
- }
- MyArray<Student> list1 = new MyArray<>();
- MyArray<Schoolboy> list2 = new MyArray<>();
- try {
- while (sc1.hasNext()) {
- list1.add(new Student(sc1.next(), sc1.next(), sc1.nextDouble(), sc1.nextInt()));
- }
- while (sc2.hasNext()) {
- list2.add(new Schoolboy(sc2.next(), sc2.next(), sc2.nextDouble(), sc2.nextInt(), sc2.next()));
- }
- } catch (NullPointerException | InputMismatchException e) {
- System.out.println("Ошибка при чтении из файла");
- return;
- }
- System.out.println(list1);
- System.out.println("Количество студентов с параметрами (C, d, 5.8, 3):"+list1.count(new Student("C", "d", 5.8, 3)));
- System.out.println("Найден студент? (F l 7.3 1): "+list1.binarySearch(new Student("F", "l", 7.3, 1)));
- System.out.println("Подсчет минимального по студентам: "+list1.min());
- System.out.println(list2);
- System.out.println("Количество школьников с параметрами (C, d, 5.8, 3, pr):"+list2.count(new Schoolboy("C", "d", 5.8, 3, "pr")));
- System.out.println("Найден школьник? (F l 7.3 1 pr): "+list2.binarySearch(new Schoolboy("F", "l", 7.3, 1, "pr")));
- try {
- System.out.println("Подсчет минимального по школьникам: " + list2.min());
- } catch (NoSuchElementException e ) {
- System.out.println("Список школьников пуст");
- }
- }
- }
- abstract class Pupil implements Comparable<Pupil> {
- private String fam, uchZav;
- private double srUsp;
- public int compareTo(Pupil p) {
- if (uchZav.compareTo(p.uchZav) != 0) {
- return uchZav.compareTo(p.uchZav);
- }
- return fam.compareTo(p.fam);
- }
- public Pupil(String f, String uz, double su) {
- fam = f;
- uchZav = uz;
- srUsp = su;
- }
- public String toString() {
- return "Фамилия:"+fam+" Учебное заведение:"+uchZav+" Средняя успеваемость:"+Double.toString(srUsp);
- }
- public boolean theSameWith(Pupil s) {
- if (s.uchZav.equals(uchZav) && s.fam.equals(fam) && s.srUsp == srUsp)
- return true;
- return false;
- }
- }
- class Student extends Pupil {
- private int kurs;
- public Student(String f, String uz, double su, int k) {
- super(f, uz, su);
- kurs = k;
- }
- public String toString() {
- return super.toString()+" Курс:"+Integer.toString(kurs);
- }
- public boolean theSameWith(Pupil s) {
- if (super.theSameWith(s) && ((Student) s).kurs == kurs)
- return true;
- return false;
- }
- }
- class Schoolboy extends Pupil {
- private int klass;
- private String povedenie;
- public Schoolboy (String f, String uz, double su, int k, String p) {
- super(f, uz, su);
- klass = k;
- povedenie = p;
- }
- public String toString() {
- return super.toString()+" Класс:"+Integer.toString(klass)+" Поведение:"+povedenie;
- }
- public boolean theSameWith(Pupil s) {
- if (super.theSameWith(s) && ((Schoolboy) s).klass == klass && ((Schoolboy) s).povedenie.equals(povedenie))
- return true;
- return false;
- }
- }
- class MyArray<T extends Pupil> extends ArrayList<T> {
- @Override
- public String toString() {
- StringBuilder sb = new StringBuilder();
- for (T member:this) {
- sb.append(member.toString());
- sb.append('\n');
- }
- return sb.toString();
- }
- public int count(T p) {
- int count = 0;
- for (T member:this) {
- if (member.theSameWith(p))
- count++;
- }
- return count;
- }
- public T binarySearch(T p) {
- if (Collections.binarySearch(this, p) >= 0)
- return p;
- return null;
- }
- public T min() {
- if (this.isEmpty())
- throw new NoSuchElementException();
- return Collections.min(this);
- }
- }
Add Comment
Please, Sign In to add comment