Początkujący prośba o pomoc.

0

Witam. Może znajdzie się tu ktoś, kto pomógłby mi trochę w zrozumieniu javy. Mam do poprawy ten przedmiot we wrześniu i podjąłem próby poćwiczenia pisania programów w tym języku. Na razie z marnymi rezultatami.... No i właśnie,na początek taki programik z zegarkiem:

  1. Napisz klasę Zegar reprezentującą pewną wartość czasu. Zegar powinien udostępniać metodę tick, przesuwającą go o minutę do przodu. W konstruktorze podajemy początkową wartość zegara.
  2. Działanie Zegara możesz przetestować na poniższym programie:
    Zegar z = new Zegar(7, 30);
    for (int i = 0; i < 1500; ++i)
    {
    z.tick();
    z.wypisz();
    }

A oto co udało mi się napisać:

public class Zegar {

int godz;
int min;

Zegar (int gg, int mm){
    godz = gg;
    min = mm;
}

void tick(){

    if(min < 59 ){
        min++;
    }
    else{
        min = 00;
        godz++;
    }
    if(godz == 23 & min == 59){  // w tym miejscu nie wiem jak ograniczyć zakres godzin i minut
    godz = 00;                            // zegarek powinien mieć zakres (00:00 - 23:59) 
    min = 00;                             // przy tym kodzie który napisałem gubi sekundę    23:57
                                                       //                                                                        23:58
                                                       //                                                                        00:00
    }                                         //                                                               w tym miejscu :-(
}

void wypisz(){
    System.out.println(godz + ":" + min);
}

public static void main (String args[]){

Zegar zegar = new Zegar(7, 30);
for (int i = 0; i<1500; i++){
    zegar.tick();
    zegar.wypisz();
}

}
}

0
  void tick(){
                if(min < 59 ){
                        min++;
                }
                else{
                        min = 00;
                        if(godz++==24){ 
                                  godz =0;
                        }
                }
        }
0

Można też odziedziczyć po klasie GregorianCalendar

public class Zegar extends GregorianCalendar
{
 ....
   public void tick()
   {
       add(Calendar.MINUTE,1);
   }
 ....
}
0

Zrobiłem to tak:

void tick(){
if (godz!=23){
if(min < 59 ){
min++;
}
else{
min = 00;
godz++;
}
}
else{
if(min<59){
min++;
}
else{
min = 00;
godz = 00;
}
}
}

i jakoś działa.

Dzięki za pomoc. A może pomożecie i w tym przypadku ??? :-)

  • Napisz klasę Konto:
    o klasa reprezentuje konto bankowe,
    o umożliwia wpłacanie i wypłacanie pieniędzy, oraz sprawdzanie salda,
    o powinniśmy kontrolować, czy użytkownik nie podaje niewłaściwych danych (np. ujemnej kwoty)
    o konto uniemożliwia dokonanie debetu,
    o za wykonywane operacje wpłaty i wypłaty pobierana jest stała prowizja.
  • Napisz klasę Bank:
    o bank składa sie z kont (klasy Konto),
    o możemy dodawać konta,
    o szukać kont o danym numerze.

Wskazówki:

  • Konto powinno zawierać:
    o składową reprezentującą kwotę na koncie,
    o metodę wpłać umożliwiającą wpłacenie podanej kwoty,
    o metodę wypłać, umożliwiającą dokonanie wypłaty,
    o metodę saldo, zwracającą stan konta.
  • Bank powinien zawierać:
    o tablicę lub listę Kont,
    o metodę dodaj, dodającą nowe konto do Banku,
    o metodę szukaj, zwracajacą konto o podanym numerze.
  • Składowe klas powinny być prywatne (słowo kluczowe private); jedynie metody (oraz konstruktory) powinny być publiczne (słowo kluczowe public).
  • Dla uproszczenia można przyjąć, że unikalnym numer konta jest po prostu jego indeks w tablicy w Banku.
  • Wszystkie operacje dotyczące konta są wywoływane bezpośrednio z niego, po jego pobraniu przy pomocy metody szukaj:
    bank.szukaj(3).wpłać(100);

Z pierwszą częścią, tzn klasą Konto jakoś sobie poradziłem, ale co do Banku to mam wątpliwości, że cokolwiek zrobiłem dobrze . Nie za bardzo przepadam za wypełnianiem tablic, zwłaszcza obiektami innej klasy ....

Może ktoś mi to jakoś wyjaśni w przystępny sposób. no dobra, rozpisałem się już chyba za dużo. Pod spodem to co udało mi się wypocić:

public class Konto {

private double stanKonta;

public void wplac(double kwota){
if(kwota>0)
stanKonta = (stanKonta + kwota) - 2.50;
else{
System.out.println("Nie możesz wpłacić ujemnej kwoty !!!");
}
}

public void wyplac(double kwota){
if((stanKonta-kwota) >= 0)
stanKonta = (stanKonta - kwota) - 2.50;
else{
System.out.println("Nie masz tyle środków na koncie !!!");
}
}

public double stanKonta(){
return stanKonta;
}

public void saldo(){
System.out.println("Stan konta wynosi:" + stanKonta());
}

}

public class Bank {

public Konto konto;
static Bank [] bank = new Bank[10];

public Bank(Konto konto){
    this.konto = konto;
}

public static void main(String args[]){

    Konto konto1 = new Konto(1500);

    bank[0] = new Bank(konto1);

    bank[0].konto.saldo();
}

}

0

"public class Bank extends Konto"
Od kiedy bank to lepsza wersja konta?

Polecam poczytanie jakiejś lektury o OOP.

0

Ok. Bank nie dziedziczy po klasie konto, tylko zawiera pola które są jej obiektami. Ale co dalej ....??? Jak wypełnić tą tablicę zgodnie z treścią zadania ????

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0