Guest User

Untitled

a guest
Dec 6th, 2016
61
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.93 KB | None | 0 0
  1. import java.io.IOException;
  2. import java.nio.file.Paths;
  3. import java.util.*;
  4.  
  5. public class KontrRabota {
  6. public static void main(String[] args) {
  7. Scanner sc1 = null, sc2 = null;
  8. try {
  9. sc1 = new Scanner(Paths.get("input1.txt"));
  10. } catch (IOException | NullPointerException e) {
  11. System.out.println("Ошибка при чтении файла \"input1.txt\"");
  12. return;
  13. }
  14.  
  15. try {
  16. sc2 = new Scanner(Paths.get("input2.txt"));
  17. } catch (IOException | NullPointerException e) {
  18. System.out.println("Ошибка при чтении файла \"input2.txt\"");
  19. return;
  20. }
  21.  
  22. MyArray<Student> list1 = new MyArray<>();
  23. MyArray<Schoolboy> list2 = new MyArray<>();
  24.  
  25. try {
  26. while (sc1.hasNext()) {
  27. list1.add(new Student(sc1.next(), sc1.next(), sc1.nextDouble(), sc1.nextInt()));
  28. }
  29. while (sc2.hasNext()) {
  30. list2.add(new Schoolboy(sc2.next(), sc2.next(), sc2.nextDouble(), sc2.nextInt(), sc2.next()));
  31. }
  32. } catch (NullPointerException | InputMismatchException e) {
  33. System.out.println("Ошибка при чтении из файла");
  34. return;
  35. }
  36.  
  37. System.out.println(list1);
  38. System.out.println("Количество студентов с параметрами (C, d, 5.8, 3):"+list1.count(new Student("C", "d", 5.8, 3)));
  39. System.out.println("Найден студент? (F l 7.3 1): "+list1.binarySearch(new Student("F", "l", 7.3, 1)));
  40. System.out.println("Подсчет минимального по студентам: "+list1.min());
  41.  
  42. System.out.println(list2);
  43. System.out.println("Количество школьников с параметрами (C, d, 5.8, 3, pr):"+list2.count(new Schoolboy("C", "d", 5.8, 3, "pr")));
  44. System.out.println("Найден школьник? (F l 7.3 1 pr): "+list2.binarySearch(new Schoolboy("F", "l", 7.3, 1, "pr")));
  45. try {
  46. System.out.println("Подсчет минимального по школьникам: " + list2.min());
  47. } catch (NoSuchElementException e ) {
  48. System.out.println("Список школьников пуст");
  49. }
  50. }
  51. }
  52.  
  53. abstract class Pupil implements Comparable<Pupil> {
  54. private String fam, uchZav;
  55. private double srUsp;
  56.  
  57. public int compareTo(Pupil p) {
  58. if (uchZav.compareTo(p.uchZav) != 0) {
  59. return uchZav.compareTo(p.uchZav);
  60. }
  61. return fam.compareTo(p.fam);
  62. }
  63.  
  64. public Pupil(String f, String uz, double su) {
  65. fam = f;
  66. uchZav = uz;
  67. srUsp = su;
  68. }
  69.  
  70. public String toString() {
  71. return "Фамилия:"+fam+" Учебное заведение:"+uchZav+" Средняя успеваемость:"+Double.toString(srUsp);
  72. }
  73.  
  74. public boolean theSameWith(Pupil s) {
  75. if (s.uchZav.equals(uchZav) && s.fam.equals(fam) && s.srUsp == srUsp)
  76. return true;
  77. return false;
  78. }
  79. }
  80.  
  81. class Student extends Pupil {
  82. private int kurs;
  83.  
  84. public Student(String f, String uz, double su, int k) {
  85. super(f, uz, su);
  86. kurs = k;
  87. }
  88.  
  89. public String toString() {
  90. return super.toString()+" Курс:"+Integer.toString(kurs);
  91. }
  92.  
  93. public boolean theSameWith(Pupil s) {
  94. if (super.theSameWith(s) && ((Student) s).kurs == kurs)
  95. return true;
  96. return false;
  97. }
  98. }
  99.  
  100. class Schoolboy extends Pupil {
  101. private int klass;
  102. private String povedenie;
  103.  
  104. public Schoolboy (String f, String uz, double su, int k, String p) {
  105. super(f, uz, su);
  106. klass = k;
  107. povedenie = p;
  108. }
  109.  
  110. public String toString() {
  111. return super.toString()+" Класс:"+Integer.toString(klass)+" Поведение:"+povedenie;
  112. }
  113.  
  114. public boolean theSameWith(Pupil s) {
  115. if (super.theSameWith(s) && ((Schoolboy) s).klass == klass && ((Schoolboy) s).povedenie.equals(povedenie))
  116. return true;
  117. return false;
  118. }
  119. }
  120.  
  121. class MyArray<T extends Pupil> extends ArrayList<T> {
  122. @Override
  123. public String toString() {
  124. StringBuilder sb = new StringBuilder();
  125. for (T member:this) {
  126. sb.append(member.toString());
  127. sb.append('\n');
  128. }
  129. return sb.toString();
  130. }
  131.  
  132. public int count(T p) {
  133. int count = 0;
  134. for (T member:this) {
  135. if (member.theSameWith(p))
  136. count++;
  137. }
  138. return count;
  139. }
  140.  
  141. public T binarySearch(T p) {
  142. if (Collections.binarySearch(this, p) >= 0)
  143. return p;
  144. return null;
  145. }
  146.  
  147. public T min() {
  148. if (this.isEmpty())
  149. throw new NoSuchElementException();
  150. return Collections.min(this);
  151. }
  152. }
Add Comment
Please, Sign In to add comment