Skip to content

Commit 8ad3ab9

Browse files
authored
Update ex01.java
1 parent f53a754 commit 8ad3ab9

File tree

1 file changed

+80
-55
lines changed

1 file changed

+80
-55
lines changed

1-1/ex01.java

Lines changed: 80 additions & 55 deletions
Original file line numberDiff line numberDiff line change
@@ -1,105 +1,127 @@
1+
import java.io.IOException;
12
import java.util.HashMap;
23
import java.util.HashSet;
34
import java.util.Iterator;
45
import java.util.Scanner;
56

6-
/*TODO
7-
* Dhmiourgia metavlhtwn max gia swsth diaxeirish tou pinaka
8-
* del kai search: dhmiourgia if gia elegxo an den uparxei kai emfanish katallhlwn mhnumatwn
9-
*/
107
public class ex01 {
118
private static final HashMap <String,car> cars = new HashMap <>();
12-
public static void main(String[] args) {
13-
cars.put("123",new car("toyota","Celica",255,2000,15000,"White"));
14-
cars.put("555",new car("Fiat","Cinquecento",39,900,700,"Black"));
15-
cars.put("753",new car("FIAT","Punto",45,1100,500,"red"));
16-
cars.put("666",new car("Subaru","Impreza WRX STI 1999",300,2500,50000,"Blue"));
17-
cars.put("359",new car("Toyota","Starlet",43,1000,5000,"Gray"));
9+
public static void main(String[] args) throws IOException {
10+
Scanner in = new Scanner(System.in);
11+
int option=12;
12+
do{
13+
System.out.print("******************************\n*Σύστημα Διαχείρισης CarDealer*\n******************************\n0->Εμφάνιση όλων των αυτοκινήτων\n1->Προσθήκη αυτοκινήτου\n2->Διαγραφή αυτοκινήτου\n3->Αναζήτηση αυτοκινήτου\n4->Εμφάνιση κατασκευαστών\n5->Εμφάνιση αυτοκινήτου με τη μεγαλύτερη ιπποδύναμη\n6->Εμφάνιση αυτοκινήτου με τη μικρότερη ιπποδύναμη\n7->Εμφάνιση αυτοκινήτου με τη μεγαλύτερη ιπποδύναμη συγκεκριμένου κατασκευαστή\n8->Εμφάνιση αυτοκινήτου με τη μικρότερη ιπποδύναμη συγκεκριμένου κατασκευαστή\n9->Πλήθος αυτοκινήτων συγκεκριμένου κατασκευαστή\n10->Εμφάνιση αυτοκινήτων φθηνότερα από συγκεκριμένη τιμή\n11->Εμφάνιση αυτοκινήτων ακριβότερα από συγκεκριμένη τιμή\n12->Τερματισμός Λειτουργίας\nΕισάγετε τον αριθμό της επιλογής σας και πατήστε Enter: ");
14+
option = in.nextInt();
15+
if(option!=1 && option!=12 && cars.isEmpty()) System.out.println("Δεν υπάρχουν αυτοκίνητα");
16+
else if(option==0) displayAll();
17+
else if(option==1) add();
18+
else if(option==2) del();
19+
else if(option==3) search();
20+
else if(option==4) brands();
21+
else if(option==5) power(1,0);
22+
else if(option==6) power(0,0);
23+
else if(option==7) power(1,1);
24+
else if(option==8) power(0,1);
25+
else if(option==9) System.out.println("Αριθμός αυτοκινήτων: "+carsOf());
26+
else if(option==10) displayByPrice(0);
27+
else if(option==11) displayByPrice(1);
28+
if(option!=12) { System.out.print("Πατήστε Enter για να συνεχίσετε..."); System.in.read(); }
29+
}while(option!=12);
1830
}
1931
private static void add(){
2032
Scanner in = new Scanner(System.in);
21-
System.out.println("Εισάγετε εταιρεία κατασκευής: ");
22-
String brand = in.next();
23-
System.out.println("Εισάγετε μοντέλο: ");
24-
String model = in.next();
25-
System.out.println("Εισάγετε ιπποδύναμη σε άλογα (hp): ");
33+
System.out.print("Εισάγετε εταιρεία κατασκευής: ");
34+
String brand = in.nextLine();
35+
System.out.print("Εισάγετε μοντέλο: ");
36+
String model = in.nextLine();
37+
System.out.print("Εισάγετε ιπποδύναμη σε άλογα (hp): ");
2638
int hp = in.nextInt();
27-
System.out.println("Εισάγετε χωρητκότητα σε κυβικά εκατοστά(cc): ");
39+
System.out.print("Εισάγετε χωρητκότητα σε κυβικά εκατοστά(cc): ");
2840
int cc = in.nextInt();
29-
System.out.println("Εισάγετε κόστος σε ευρώ(€): ");
41+
System.out.print("Εισάγετε κόστος σε ευρώ(€): ");
3042
int price = in.nextInt();
31-
System.out.println("Εισάγετε χρώμα: ");
32-
String color = in.next();
43+
System.out.print("Εισάγετε χρώμα: ");
44+
in.nextLine();
45+
String color = in.nextLine();
3346
String randomCode;
3447
do{
3548
int r = (int)(Math.random()*1000);
3649
randomCode = String.valueOf(r/100%10) + String.valueOf(r/10%10) + String.valueOf(r%10);
3750
} while(cars.get(randomCode) != null );
3851
cars.put(randomCode,new car(brand,model,hp,cc,price,color));
39-
}
52+
System.out.println("Προστέθηκε το αυτοκίνητο με τα παρακάτω στοιχεία");
53+
tabTitle();
54+
System.out.println(randomCode + ' ' + cars.get(randomCode).toString());
55+
}
4056
private static void del(){
4157
Scanner in = new Scanner(System.in);
42-
System.out.println("Εισάγετε αριθμό προς διαγραφή: ");
43-
String tmp = in.next();
44-
cars.remove(tmp);
45-
System.out.println("Το αυτοκίνητο με αριθμό "+tmp+" διαγράφηκε επιτυχώς");
58+
System.out.print("Εισάγετε αριθμό προς διαγραφή: ");
59+
String tmp = in.nextLine();
60+
if(cars.remove(tmp)!=null)
61+
System.out.println("Το αυτοκίνητο με ID "+tmp+" διαγράφηκε επιτυχώς");
62+
else System.out.println("Δεν υπάρχει αυτοκίνητο με ID "+tmp);
4663
}
4764
private static void search(){
4865
Scanner in = new Scanner(System.in);
49-
System.out.println("Εισάγετε αριθμό προς αναζήτηση: ");
50-
String tmp = in.next();
51-
System.out.println(cars.get(tmp).toString());
66+
System.out.print("Εισάγετε αριθμό προς αναζήτηση: ");
67+
String tmp = in.nextLine();
68+
if(cars.get(tmp)!=null){
69+
tabTitle();
70+
System.out.println(tmp + ' ' + cars.get(tmp).toString());
71+
}
72+
else System.out.println("Δεν υπάρχει αυτοκίνητο με ID "+tmp);
5273
}
5374
private static void brands(){
5475
HashSet <String> tmp = new HashSet <> ();
55-
for (Iterator<String> it = cars.keySet().iterator(); it.hasNext();) {
76+
for (Iterator<String> it = cars.keySet().iterator(); it.hasNext();)
5677
tmp.add(cars.get(it.next()).getBrand());
57-
}
58-
for(String str: tmp){
78+
for(String str: tmp)
5979
System.out.println(str);
60-
}
6180
}
62-
private static void power(String maxORmin, String brand){
81+
private static void power(int maxORmin, int byBrand){
6382
int max=0,min=9999;
6483
String maxID="", minID="";
65-
brand=(brand!=null)?toTitleCase(brand):null;
84+
String brand=" ";
85+
if(byBrand==1){
86+
Scanner in = new Scanner(System.in);
87+
System.out.print("Εισάγεται κατασκευαστή: ");
88+
brand = toTitleCase(in.nextLine());
89+
}
6690
for (Iterator<String> it = cars.keySet().iterator(); it.hasNext();) {
6791
String tmp = it.next();
68-
if( cars.get(tmp).getBrand().equals(brand) || brand==null ){
69-
max=Math.max(cars.get(tmp).getHP(),max);
70-
maxID=(max==cars.get(tmp).getHP())?tmp:maxID;
71-
min=Math.min(cars.get(tmp).getHP(),min);
72-
minID=(min==cars.get(tmp).getHP())?tmp:minID;
92+
if( cars.get(tmp).getBrand().equals(brand) || byBrand==0 ){
93+
max = Math.max( cars.get(tmp).getHP() , max);
94+
maxID = ( max==cars.get(tmp).getHP() ) ? tmp : maxID;
95+
min = Math.min( cars.get(tmp).getHP() , min);
96+
minID=( min == cars.get(tmp).getHP() ) ? tmp : minID;
7397
}
7498
}
75-
if(maxORmin.equals("max"))
76-
System.out.println("To autokinhto me th megaluterh ippodunamh einai:\n"+maxID+" "+cars.get(maxID).toString());
77-
else if(maxORmin.equals("min"))
78-
System.out.println("To autokinhto me th mikroterh ippodunamh einai:\n"+minID+" "+cars.get(minID).toString());
79-
else System.out.println("Lathos parametros, eisagete min h max gia mikroterh h megaluterh ippodunamh antistoixa");
99+
System.out.println("Το αυτοκίνητο με τη "+((maxORmin==1)?"μεγαλύτερη":"μικρότερη")+" ιπποδύναμη είναι:");
100+
tabTitle();
101+
System.out.println(((maxORmin==1)?maxID:minID)+' '+cars.get(((maxORmin==1)?maxID:minID)).toString());
80102
}
81-
public static void power(String maxORmin){
82-
power(maxORmin,null);
83-
}
84-
public static int brandCars(String brand){
85-
brand=toTitleCase(brand);
103+
public static int carsOf(){
104+
Scanner in = new Scanner(System.in);
105+
System.out.print("Εισάγεται κατασκευαστή και πατήστε Enter: ");
106+
String brand = toTitleCase(in.nextLine());
86107
int counter=0;
87-
for (Iterator<String> it = cars.keySet().iterator(); it.hasNext();) {
108+
for (Iterator<String> it = cars.keySet().iterator(); it.hasNext();)
88109
if(cars.get(it.next()).getBrand().equals(brand))counter++;
89-
}
90110
return counter;
91111
}
92-
private static void displayByPrice(String maxORmin, int price){
93-
System.out.format("%3s %-20s %-20s %-4s %-5s %-7s %-18s\n", "ID", "Brand", "Model", "HP","CC","Price","Color");
112+
private static void displayByPrice(int maxORmin){
113+
Scanner in = new Scanner(System.in);
114+
System.out.print("Εισάγετε τιμή και πατήστε Enter: ");
115+
int price = in.nextInt();
116+
tabTitle();
94117
for (Iterator<String> it = cars.keySet().iterator(); it.hasNext();) {
95118
String cur=it.next();
96-
Boolean lol = (maxORmin.equals("max")?price>cars.get(cur).getPrice():price<cars.get(cur).getPrice());
97-
if((maxORmin.equals("max")?price>cars.get(cur).getPrice():price<cars.get(cur).getPrice()))
119+
if( maxORmin==1 ? cars.get(cur).getPrice() > price : cars.get(cur).getPrice() < price )
98120
System.out.println(cur + ' ' + cars.get(cur).toString());
99121
}
100122
}
101123
private static void displayAll(){
102-
System.out.format("%3s %-20s %-20s %-4s %-5s %-7s %-18s\n", "ID", "Brand", "Model", "HP","CC","Price","Color");
124+
tabTitle();
103125
for (Iterator<String> it = cars.keySet().iterator(); it.hasNext();) {
104126
String cur=it.next();
105127
System.out.println(cur + ' ' + cars.get(cur).toString());
@@ -108,4 +130,7 @@ private static void displayAll(){
108130
public static String toTitleCase(String tmp){
109131
return tmp.substring(0,1).toUpperCase() + tmp.substring(1).toLowerCase();
110132
}
133+
private static void tabTitle(){
134+
System.out.format("%3s %-20s %-25s %-4s %-5s %-7s %-18s\n", "ID", "Κατασκευαστής", "Μοντέλο", "HP","CC","Τιμή","Χρώμα");
135+
}
111136
}

0 commit comments

Comments
 (0)