1 import java.io.BufferedReader;
2 import java.io.IOException;
3 import java.nio.charset.StandardCharsets;
4 import java.nio.file.Files;
5 import java.nio.file.Paths;
6 import java.util.ArrayList;
7 import java.util.Scanner;
8 import java.util.Comparator;
9 import java.util.HashSet;
10 import java.util.Set;
11
12
13 public class konyvek {
14 public static void main(String args[]) throws IOException {
15 ArrayList<kiadas> KONYVEK = new ArrayList<>();
16
17 try (BufferedReader FBE = Files.newBufferedReader(Paths.get("kiadas2.txt"), StandardCharsets.UTF_8)) {
18
19 String sor;
20 while ((sor = FBE.readLine()) != null) {
21 sor = sor.trim();
22 if (!sor.isEmpty()) {
23 String[] mezok = sor.split(";");
24 int ev = Integer.parseInt(mezok[0]);
25 int negyedev = Integer.parseInt(mezok[1]);
26 String eredet = mezok[2];
27 String leiras = mezok[3];
28 int peldany = Integer.parseInt(mezok[4]);
29 KONYVEK.add(new kiadas(ev, negyedev, eredet, leiras, peldany));
30 }
31 }
32
33
34 System.out.println("2. feladat:");
35 System.out.print("Szerzo: ");
36 Scanner scanner = new Scanner(System.in);
37 String Szerzo = scanner.nextLine();
38 int kiadasDb = 0;
39 for (kiadas Konyv : KONYVEK) {
40 if (Konyv.leiras.contains(Szerzo)) kiadasDb++;
41 }
42 if (kiadasDb > 0)
43 System.out.printf("%d kiadas%n", kiadasDb);
44 else
45 System.out.println("Nem adtak ki.");
46
47
48
49 System.out.println("3. feladat:");
50 ArrayList<kiadas> RENDEZETT = new ArrayList<>(KONYVEK);
51 RENDEZETT.sort(Comparator.comparingInt((kiadas k) -> k.peldany).reversed());
52 int MAXpeldany = RENDEZETT.get(0).peldany;
53 int index = 1;
54 while (RENDEZETT.get(index).peldany == MAXpeldany) {
55 index++;
56 }
57 System.out.printf("Legnagyobb peldanyszam: %d, elofordult %d alkalommal.%n", MAXpeldany, index);
58
59
60
61
62 System.out.println("4. feladat:");
63 index = 0;
64 while (!("kf".equals(KONYVEK.get(index).eredet) && KONYVEK.get(index).peldany >= 40000)) {
65 index++;
66 }
67 System.out.printf("%d/%d4. %s%n", KONYVEK.get(index).ev, KONYVEK.get(index).negyedev, KONYVEK.get(index).leiras);
68
69
70
71 System.out.println("5. feladat:");
72 int[][] stat = new int[4][4];
73 int eredetIndex;
74 int peldanyIndex;
75 for (kiadas Konyv: KONYVEK) {
76 int ev = Konyv.ev - 2020;
77 eredetIndex = "ma".equals(Konyv.eredet) ? 0 : 2;
78 peldanyIndex = "ma".equals(Konyv.eredet) ? 1 : 3;
79 stat[ev][eredetIndex]++;
80 stat[ev][peldanyIndex] += Konyv.peldany;
81 }
82 System.out.println("Ev Magyar kiadas Magyar peldanyszam Kulfuldi kiadas Kulfoldi peldanyszam");
83 for (int ev = 0; ev < 4; ev++) {
84 System.out.printf("%d ", ev + 2020);
85 for (int j = 0; j < 4; j++) {
86 System.out.printf("%d\t\t\t", stat[ev][j]);
87 }
88 System.out.println();
89 }
90
91
92
93 System.out.println("6. feladat:");
94 System.out.println("Legalabb ketszer, nagyobb peldanyszamban ujra kiadott konyvek: ");
95 Set<String> leirasok = new HashSet<>();
96 int darab;
97 int peldany_i;
98 int peldany_k;
99 String leiras_i;
100 String leiras_k;
101 for (int i = 0; i < KONYVEK.size() - 1; i++) {
102 leiras_i = KONYVEK.get(i).leiras;
103 if (!leirasok.contains(leiras_i)) {
104 leirasok.add(leiras_i);
105 peldany_i = KONYVEK.get(i).peldany;
106 darab = 0;
107 for (int k = i + 1; k < KONYVEK.size(); k++) {
108 leiras_k = KONYVEK.get(k).leiras;
109 peldany_k = KONYVEK.get(k).peldany;
110 if (leiras_i.equals(leiras_k)) {
111
112 if (peldany_k > peldany_i) {
113 darab++;
114 }
115 }
116 }
117 if (darab >= 2) {
118 System.out.println(leiras_i);
119 }
120 }
121 }
122 }
123 }
124 }
125
126 class kiadas {
127 int ev;
128 int negyedev;
129 String eredet;
130 String leiras;
131 int peldany;
132
133 kiadas(int ev, int negyedev, String eredet, String leiras, int peldany) {
134 this.ev = ev;
135 this.negyedev = negyedev;
136 this.eredet = eredet;
137 this.leiras = leiras;
138 this.peldany = peldany;
139 }
140
141 public String toString() {
142 return ev + ";" + negyedev + ";" + eredet + ";" + leiras + ";" + peldany;
143 }
144 }
145
146