import java.util.Random ;
import java.util.Scanner ;
class Samochod {
private double cenaZaDzien;
private static String wypozyczalnia
= "Wypożyczalnia Samochodów" ;
// Konstruktor dla Samochodu z losową ceną
this .marka = marka;
this .model = model;
this .cenaZaDzien = losujCene( 50 , 500 ) ; // Losuje cenę w przedziale 50-500 zł
}
// Konstruktor z podaną ceną, sprawdzający minimalną wartość
public Samochod
( String marka,
String model,
double cenaZaDzien
) { this .marka = marka;
this .model = model;
setCenaZaDzien( cenaZaDzien) ;
}
// Metoda losująca cenę w podanym przedziale
private double losujCene( int min, int max) {
return random.nextInt ( max - min + 1 ) + min;
}
// Metoda ustawiająca cenę z minimalnym ograniczeniem
public void setCenaZaDzien( double cenaZaDzien) {
if ( cenaZaDzien >= 50 ) {
this .cenaZaDzien = cenaZaDzien;
} else {
System .
out .
println ( "Cena wynajmu musi być większa lub równa 50 zł." ) ; }
}
// Wyświetlanie danych o samochodzie
public void display( ) {
System .
out .
println ( "Samochód: " + marka
+ " " + model
+ ", Cena za dzień: " + cenaZaDzien
+ " zł, Wypożyczalnia: " + wypozyczalnia
) ; }
}
class Wypozyczalnia {
public static void main
( String [ ] args
) { Scanner scanner
= new Scanner
( System .
in ) ; Samochod[ ] samochody = new Samochod[ 3 ] ;
// Dodajemy trzy samochody do wypożyczalni - jeden z losową ceną, dwa z ustaloną ceną
samochody[ 0 ] = new Samochod( "Toyota" , "Corolla" ) ; // Samochód z losową ceną wynajmu
samochody[ 1 ] = new Samochod( "BMW" , "X5" , 400 ) ; // Samochód z ustaloną ceną wynajmu
samochody[ 2 ] = new Samochod( "Audi" , "A3" , 200 ) ; // Samochód z ustaloną ceną wynajmu
// Wyświetlamy dostępne samochody
System .
out .
println ( "Dostępne samochody:" ) ; for ( Samochod samochod : samochody) {
samochod.display ( ) ;
}
// Użytkownik może zmienić cenę dla jednego z samochodów
System .
out .
println ( "\n Czy chcesz zmienić cenę wynajmu dla jednego z samochodów? (tak/nie)" ) ; String odpowiedz
= scanner.
nextLine ( ) ;
if ( odpowiedz.equalsIgnoreCase ( "tak" ) ) {
System .
out .
print ( "Podaj numer samochodu (1-3): " ) ; int numerSamochodu = scanner.nextInt ( ) ;
if ( numerSamochodu >= 1 && numerSamochodu <= 3 ) {
System .
out .
print ( "Podaj nową cenę za dzień: " ) ; double nowaCena = scanner.nextDouble ( ) ;
samochody[ numerSamochodu - 1 ] .setCenaZaDzien ( nowaCena) ;
} else {
System .
out .
println ( "Nieprawidłowy numer samochodu." ) ; }
}
// Wyświetlamy dane samochodów po ewentualnych zmianach
System .
out .
println ( "\n Zaktualizowane dane samochodów:" ) ; for ( Samochod samochod : samochody) {
samochod.display ( ) ;
}
scanner.close ( ) ;
}
}
aW1wb3J0IGphdmEudXRpbC5SYW5kb207CmltcG9ydCBqYXZhLnV0aWwuU2Nhbm5lcjsKCmNsYXNzIFNhbW9jaG9kIHsKICAgIHByaXZhdGUgU3RyaW5nIG1hcmthOwogICAgcHJpdmF0ZSBTdHJpbmcgbW9kZWw7CiAgICBwcml2YXRlIGRvdWJsZSBjZW5hWmFEemllbjsKICAgIHByaXZhdGUgc3RhdGljIFN0cmluZyB3eXBvenljemFsbmlhID0gIld5cG/FvHljemFsbmlhIFNhbW9jaG9kw7N3IjsKCiAgICAvLyBLb25zdHJ1a3RvciBkbGEgU2Ftb2Nob2R1IHogbG9zb3fEhSBjZW7EhQogICAgcHVibGljIFNhbW9jaG9kKFN0cmluZyBtYXJrYSwgU3RyaW5nIG1vZGVsKSB7CiAgICAgICAgdGhpcy5tYXJrYSA9IG1hcmthOwogICAgICAgIHRoaXMubW9kZWwgPSBtb2RlbDsKICAgICAgICB0aGlzLmNlbmFaYUR6aWVuID0gbG9zdWpDZW5lKDUwLCA1MDApOyAvLyBMb3N1amUgY2VuxJkgdyBwcnplZHppYWxlIDUwLTUwMCB6xYIKICAgIH0KCiAgICAvLyBLb25zdHJ1a3RvciB6IHBvZGFuxIUgY2VuxIUsIHNwcmF3ZHphasSFY3kgbWluaW1hbG7EhSB3YXJ0b8WbxIcKICAgIHB1YmxpYyBTYW1vY2hvZChTdHJpbmcgbWFya2EsIFN0cmluZyBtb2RlbCwgZG91YmxlIGNlbmFaYUR6aWVuKSB7CiAgICAgICAgdGhpcy5tYXJrYSA9IG1hcmthOwogICAgICAgIHRoaXMubW9kZWwgPSBtb2RlbDsKICAgICAgICBzZXRDZW5hWmFEemllbihjZW5hWmFEemllbik7CiAgICB9CgogICAgLy8gTWV0b2RhIGxvc3VqxIVjYSBjZW7EmSB3IHBvZGFueW0gcHJ6ZWR6aWFsZQogICAgcHJpdmF0ZSBkb3VibGUgbG9zdWpDZW5lKGludCBtaW4sIGludCBtYXgpIHsKICAgICAgICBSYW5kb20gcmFuZG9tID0gbmV3IFJhbmRvbSgpOwogICAgICAgIHJldHVybiByYW5kb20ubmV4dEludChtYXggLSBtaW4gKyAxKSArIG1pbjsKICAgIH0KCiAgICAvLyBNZXRvZGEgdXN0YXdpYWrEhWNhIGNlbsSZIHogbWluaW1hbG55bSBvZ3JhbmljemVuaWVtCiAgICBwdWJsaWMgdm9pZCBzZXRDZW5hWmFEemllbihkb3VibGUgY2VuYVphRHppZW4pIHsKICAgICAgICBpZiAoY2VuYVphRHppZW4gPj0gNTApIHsKICAgICAgICAgICAgdGhpcy5jZW5hWmFEemllbiA9IGNlbmFaYUR6aWVuOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiQ2VuYSB3eW5ham11IG11c2kgYnnEhyB3acSZa3N6YSBsdWIgcsOzd25hIDUwIHrFgi4iKTsKICAgICAgICB9CiAgICB9CgogICAgLy8gV3nFm3dpZXRsYW5pZSBkYW55Y2ggbyBzYW1vY2hvZHppZQogICAgcHVibGljIHZvaWQgZGlzcGxheSgpIHsKICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIlNhbW9jaMOzZDogIiArIG1hcmthICsgIiAiICsgbW9kZWwgKyAiLCBDZW5hIHphIGR6aWXFhDogIiArIGNlbmFaYUR6aWVuICsgIiB6xYIsIFd5cG/FvHljemFsbmlhOiAiICsgd3lwb3p5Y3phbG5pYSk7CiAgICB9Cn0KCmNsYXNzIFd5cG96eWN6YWxuaWEgewogICAgcHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nW10gYXJncykgewogICAgICAgIFNjYW5uZXIgc2Nhbm5lciA9IG5ldyBTY2FubmVyKFN5c3RlbS5pbik7CiAgICAgICAgU2Ftb2Nob2RbXSBzYW1vY2hvZHkgPSBuZXcgU2Ftb2Nob2RbM107CgogICAgICAgIC8vIERvZGFqZW15IHRyenkgc2Ftb2Nob2R5IGRvIHd5cG/FvHljemFsbmkgLSBqZWRlbiB6IGxvc293xIUgY2VuxIUsIGR3YSB6IHVzdGFsb27EhSBjZW7EhQogICAgICAgIHNhbW9jaG9keVswXSA9IG5ldyBTYW1vY2hvZCgiVG95b3RhIiwgIkNvcm9sbGEiKTsgLy8gU2Ftb2Now7NkIHogbG9zb3fEhSBjZW7EhSB3eW5ham11CiAgICAgICAgc2Ftb2Nob2R5WzFdID0gbmV3IFNhbW9jaG9kKCJCTVciLCAiWDUiLCA0MDApOyAvLyBTYW1vY2jDs2QgeiB1c3RhbG9uxIUgY2VuxIUgd3luYWptdQogICAgICAgIHNhbW9jaG9keVsyXSA9IG5ldyBTYW1vY2hvZCgiQXVkaSIsICJBMyIsIDIwMCk7IC8vIFNhbW9jaMOzZCB6IHVzdGFsb27EhSBjZW7EhSB3eW5ham11CgogICAgICAgIC8vIFd5xZt3aWV0bGFteSBkb3N0xJlwbmUgc2Ftb2Nob2R5CiAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJEb3N0xJlwbmUgc2Ftb2Nob2R5OiIpOwogICAgICAgIGZvciAoU2Ftb2Nob2Qgc2Ftb2Nob2QgOiBzYW1vY2hvZHkpIHsKICAgICAgICAgICAgc2Ftb2Nob2QuZGlzcGxheSgpOwogICAgICAgIH0KCiAgICAgICAgLy8gVcW8eXRrb3duaWsgbW/FvGUgem1pZW5pxIcgY2VuxJkgZGxhIGplZG5lZ28geiBzYW1vY2hvZMOzdwogICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiXG5DenkgY2hjZXN6IHptaWVuacSHIGNlbsSZIHd5bmFqbXUgZGxhIGplZG5lZ28geiBzYW1vY2hvZMOzdz8gKHRhay9uaWUpIik7CiAgICAgICAgU3RyaW5nIG9kcG93aWVkeiA9IHNjYW5uZXIubmV4dExpbmUoKTsKCiAgICAgICAgaWYgKG9kcG93aWVkei5lcXVhbHNJZ25vcmVDYXNlKCJ0YWsiKSkgewogICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50KCJQb2RhaiBudW1lciBzYW1vY2hvZHUgKDEtMyk6ICIpOwogICAgICAgICAgICBpbnQgbnVtZXJTYW1vY2hvZHUgPSBzY2FubmVyLm5leHRJbnQoKTsKICAgICAgICAgICAgaWYgKG51bWVyU2Ftb2Nob2R1ID49IDEgJiYgbnVtZXJTYW1vY2hvZHUgPD0gMykgewogICAgICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludCgiUG9kYWogbm93xIUgY2VuxJkgemEgZHppZcWEOiAiKTsKICAgICAgICAgICAgICAgIGRvdWJsZSBub3dhQ2VuYSA9IHNjYW5uZXIubmV4dERvdWJsZSgpOwogICAgICAgICAgICAgICAgc2Ftb2Nob2R5W251bWVyU2Ftb2Nob2R1IC0gMV0uc2V0Q2VuYVphRHppZW4obm93YUNlbmEpOwogICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJOaWVwcmF3aWTFgm93eSBudW1lciBzYW1vY2hvZHUuIik7CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIC8vIFd5xZt3aWV0bGFteSBkYW5lIHNhbW9jaG9kw7N3IHBvIGV3ZW50dWFsbnljaCB6bWlhbmFjaAogICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiXG5aYWt0dWFsaXpvd2FuZSBkYW5lIHNhbW9jaG9kw7N3OiIpOwogICAgICAgIGZvciAoU2Ftb2Nob2Qgc2Ftb2Nob2QgOiBzYW1vY2hvZHkpIHsKICAgICAgICAgICAgc2Ftb2Nob2QuZGlzcGxheSgpOwogICAgICAgIH0KCiAgICAgICAgc2Nhbm5lci5jbG9zZSgpOwogICAgfQp9Cg==
stdout
Dostępne samochody:
Samochód: Toyota Corolla, Cena za dzień: 196.0 zł, Wypożyczalnia: Wypożyczalnia Samochodów
Samochód: BMW X5, Cena za dzień: 400.0 zł, Wypożyczalnia: Wypożyczalnia Samochodów
Samochód: Audi A3, Cena za dzień: 200.0 zł, Wypożyczalnia: Wypożyczalnia Samochodów
Czy chcesz zmienić cenę wynajmu dla jednego z samochodów? (tak/nie)
Zaktualizowane dane samochodów:
Samochód: Toyota Corolla, Cena za dzień: 196.0 zł, Wypożyczalnia: Wypożyczalnia Samochodów
Samochód: BMW X5, Cena za dzień: 400.0 zł, Wypożyczalnia: Wypożyczalnia Samochodów
Samochód: Audi A3, Cena za dzień: 200.0 zł, Wypożyczalnia: Wypożyczalnia Samochodów