Erinevus lehekülje "ITI0011:harjutus 06" redaktsioonide vahel

Allikas: Kursused
Mine navigeerimisribale Mine otsikasti
 
(ei näidata sama kasutaja 2 vahepealset redaktsiooni)
1. rida: 1. rida:
 
== Üldine ==
 
== Üldine ==
  
Ülesande tähtaeg: 2. - 5. märts<br />
+
Ülesande tähtaeg: 2. - 4. märts<br />
 
Kaust git'is: EX06
 
Kaust git'is: EX06
  
7. rida: 7. rida:
  
 
* [[Java:Objektid]] - Klassid, objektid.
 
* [[Java:Objektid]] - Klassid, objektid.
* [[Java:Kogumid]] - Loendi (''list'') kasutamine.
+
 
  
 
== Ülesanne ==
 
== Ülesanne ==
  
Madisel on väga palju sõpru.<br />
+
Olete Kathmandu ametnik ning soovite oma riigitöö kõrvalt natuke lisaraha teenida. Öösel tekkis teil hea idee luua oma pank, kuid ühe kiiksuga - ülekandeid saavad teha ainult programmeerijad (sisse/välja ka teistele teenusepakkujate kontodele). Kuna tegemist ei ole just kõige arenenuma riigiga siis puuduvad täielikult igasugused veebiliidesed ja automaadid. Tänu sellele näete oma idees tõelist kullaauku siis proovite realiseerida TruBank Java API’t mis lihtsustaks kohalike elu oluliselt.
Väga väga palju.<br />
+
 
Selleks, et kõikide nimed meelde jätta, on Madis need kenasti failidesse kirja pannud. Nüüd tahaks Madis leida oma sõpru üles perekonnanimede järgi. Kuna Madis on kuulnud, et olete kõva progeja, siis palkab ta teid (pai eest(noa ähvardusel)) tegema talle programmi, mis loeks sisse sõbrad ja võimaldaks otsida perekonnanimede järgi.
+
Versioon 1 peab lubama järgmised tegevused:
 +
 
 +
* <code>public double getBalance()</code> - Tagastab hetkel pangas hoiusel oleva rahasumma.
 +
* <code>public double withdrawMoney(double amount)</code> - Võtab kontolt amount võrra raha maha, kui võimalik. (Negatiivseks ei tohi minna, vastasel juhu tagastada Double.NaN). Lubatud summa välja võtmisel tagastab kontol oleva rahasumma.
 +
* <code>public void addMoney(double amount)</code> - Lisab hoiusele amount võrra raha juurde.
 +
* <code>public boolean transferMoneyTo(BankAccount targetAccount, double amount)</code> - Ülekandeid teisele kontole. Kusjuures tuleb arvestada, et saatja kontol oleks piisavalt raha ning targetAccount reaalselt eksiteerib. Tagastab tõeväärtusena ülekande õnnestumise. Ülekande tasuks saatjale on 1% ülekantavast summast.
 +
   
 +
 
 +
== Mall ==
 +
 
 +
Selle ülesande jaoks looge kaks faili:
 +
 
 +
EX06.java:
 +
<source lang="java">
 +
public class EX06 {
 +
 
 +
  public static void main(String[] args) {
 +
 
 +
      BankAccount first = new BankAccount();
 +
      BankAccount second = new BankAccount();
 +
 
 +
      first.addMoney(101.0);
 +
      second.addMoney(200.0);
 +
 
 +
      first.transferMoneyTo(second, 100.0);
 +
      System.out.println(second.getBalance()); // 300.0
 +
      System.out.println(first.getBalance()); // 0.0
 +
      second.withdrawMoney(67.3);
 +
      System.out.println(second.getBalance()); // 232.7
 +
  }
 +
}
 +
</source>
 +
 
 +
BankAccount.java:
 +
<source lang="java">
 +
public class BankAccount {
 +
 
 +
  private double balance;
 +
 
 +
 
 +
  public double getBalance() {
 +
      // TODO: implement function
 +
      return Double.NaN;
 +
  }
  
Luua klass <code>Friend</code>. Kõik selle klassi väljad peavad olema teiste klasside eest peidetud. Väljadele ligipääsuks on vaja luua <code>get</code> ja <code>set</code> meetodid. Klassil <code>Friend</code> peab olema konstruktormeetod, mis ei võta vastu ühtegi argumenti.
+
  public double withdrawMoney(double amount) {
 +
      // TODO: implement function
 +
      return Double.NaN;
 +
  }
  
Klassil <code>Friend</code> '''peab''' olema kaks välja: <code>names, lastName</code>. Esimese andmetüüp on <code>List<String></code> ning teise andmetüüp on <code>String</code>.
+
  public void addMoney(double amount) {
Klassi <code>Friend</code> meetod <code>String getLastName()</code> tagastab perekonnanime, <code>String getFullName()</code> tagastab eesnimedest ja perekonnanimest moodustatud stringi (täisnime).<br />
+
      // TODO: implement function
Klassi <code>EX06</code> staatiline meetod <code>String findFriendByLastName(String lastName)</code> tagastab sõbra täispika nime. Juhul kui sõprade hulgas on mitu sama perekonnanimega inimest (näiteks: Bilbo Baggins ja Frodo Baggins, tagastab meetod vaid Bilbo Bagginsi täisnime, ehk, tähestikus eespool oleva nime).
+
  }
Klassi <code>EX06</code> meetod <code>List<Friend> readFriendsFromFile(String fileName)</code> loeb sisse argumendiga ette antud nimega failist loendi Madise sõpradest. Failis on sõbrad esitatud ridadena, st igal real on üks sõber ning sõbra nimed on lahutatud üksteisest tühikutega. Meetod peaks muutma failis olevad sõbrad <code>Friend</code> klassi objektideks.
+
  public boolean transferMoneyTo(BankAccount targetAccount, double amount) {
 +
      // TODO: implement function
 +
      return false;
 +
  }
 +
}

Viimane redaktsioon: 26. veebruar 2016, kell 14:40

Üldine

Ülesande tähtaeg: 2. - 4. märts
Kaust git'is: EX06

Lisalugemist


Ülesanne

Olete Kathmandu ametnik ning soovite oma riigitöö kõrvalt natuke lisaraha teenida. Öösel tekkis teil hea idee luua oma pank, kuid ühe kiiksuga - ülekandeid saavad teha ainult programmeerijad (sisse/välja ka teistele teenusepakkujate kontodele). Kuna tegemist ei ole just kõige arenenuma riigiga siis puuduvad täielikult igasugused veebiliidesed ja automaadid. Tänu sellele näete oma idees tõelist kullaauku siis proovite realiseerida TruBank Java API’t mis lihtsustaks kohalike elu oluliselt.

Versioon 1 peab lubama järgmised tegevused:

  • public double getBalance() - Tagastab hetkel pangas hoiusel oleva rahasumma.
  • public double withdrawMoney(double amount) - Võtab kontolt amount võrra raha maha, kui võimalik. (Negatiivseks ei tohi minna, vastasel juhu tagastada Double.NaN). Lubatud summa välja võtmisel tagastab kontol oleva rahasumma.
  • public void addMoney(double amount) - Lisab hoiusele amount võrra raha juurde.
  • public boolean transferMoneyTo(BankAccount targetAccount, double amount) - Ülekandeid teisele kontole. Kusjuures tuleb arvestada, et saatja kontol oleks piisavalt raha ning targetAccount reaalselt eksiteerib. Tagastab tõeväärtusena ülekande õnnestumise. Ülekande tasuks saatjale on 1% ülekantavast summast.


Mall

Selle ülesande jaoks looge kaks faili:

EX06.java: <source lang="java"> public class EX06 {

  public static void main(String[] args) {
      BankAccount first = new BankAccount();
      BankAccount second = new BankAccount();
      first.addMoney(101.0);
      second.addMoney(200.0);
      first.transferMoneyTo(second, 100.0);
      System.out.println(second.getBalance()); // 300.0
      System.out.println(first.getBalance()); // 0.0
      second.withdrawMoney(67.3);
      System.out.println(second.getBalance()); // 232.7
  }

} </source>

BankAccount.java: <source lang="java"> public class BankAccount {

  private double balance;


  public double getBalance() {
      // TODO: implement function
      return Double.NaN;
  }
  public double withdrawMoney(double amount) {
      // TODO: implement function
      return Double.NaN;
  }
  public void addMoney(double amount) {
      // TODO: implement function
  }
  public boolean transferMoneyTo(BankAccount targetAccount, double amount) {
      // TODO: implement function
      return false;
  }

}