| TuntiRekisteri1.java |
1 /**
2 * TuntiRekisteri pitää kirjaa työntekijöiden tehdyistä työtunneista.
3 * @author Sami Kosonen
4 * @version 1.0, 9.3.2004
5 */
6 public class TuntiRekisteri1 {
7
8 public class TaulukkoTaysiException extends Exception { }
9
10 private Henkilo henkilot[];
11
12 /**
13 * Konstruktori.
14 * @param maxAlkioita - kuinka isoksi henkilot-taulu alustetaan
15 */
16 public TuntiRekisteri1(int maxAlkioita) {
17
18 }
19
20 /**
21 * Lisää rekisteriin uuden henkilön.
22 * Jos rekisterissä on jo saman niminen henkilö, lisäystä ei tehdä.
23 * @param henkilo - lisättävä henkilö
24 * @throws TaulukkoTaysiException - jos taulukkoon ei mahdu uutta henkilöä
25 */
26 public void lisaaHenkilo(Henkilo henkilo) throws TaulukkoTaysiException {
27
28 }
29
30 /**
31 * Lisää rekisteriin yhdelle henkilölle työtunnit.
32 * @param nimi - kenelle tunnit lisätään
33 * @param tunnit - montako tuntia lisätään
34 */
35 public void lisaaTunnit(String nimi, int tunnit) {
36
37 }
38
39 /**
40 * Antaa henkilön työtunnit.
41 * @param nimi - kenenkä työtunnit annetaan
42 * @return työtunnit
43 */
44 public int getTunnit(String nimi) {
45 return 0;
46 }
47
48 /**
49 * Poistaa henkilön rekisteristä.
50 * Algoritmi:
51 * Etsitään taulukon alkio, joka osoittaa poistettavaan henkilöön.
52 * Siirretään taulukon viimeinen alkio poistettavan alkion paikalle.
53 *
54 * @param nimi - poistettavan henkilön nimi
55 */
56 public void poistaHenkilo(String nimi) {
57
58 }
59
60 /**
61 * Etsii henkilön.
62 * @param nimi - etsittävän henkilön nimi
63 * @return Jos henkilö löytyy, palautetaan kyseinen henkilö.
64 * Jos ei löydy, palautetaan null.
65 */
66 protected Henkilo etsiHenkilo(String nimi) {
67 return null;
68 }
69
70 /**
71 * Testaa TuntiRekisteri-luokkaa.
72 * @param args komentoriviparametrit
73 */
74 public static void main(String args[]) {
75 TuntiRekisteri1 rekisteri = new TuntiRekisteri1(5);
76
77 try{
78 rekisteri.lisaaHenkilo(new Henkilo("Marjaana"));
79 rekisteri.lisaaHenkilo(new Henkilo("Liisa"));
80 rekisteri.lisaaHenkilo(new Henkilo("Mikko"));
81
82 rekisteri.lisaaTunnit("Marjaana", 7);
83 rekisteri.lisaaTunnit("Liisa", 6);
84 rekisteri.lisaaTunnit("Mikko", 9);
85
86 rekisteri.lisaaTunnit("Marjaana", 5);
87
88 //Piirrä kuva tästä vaiheesta
89
90 Henkilo matti = new Henkilo("Matti");
91 rekisteri.lisaaHenkilo(matti);
92 matti = null;
93 rekisteri.lisaaTunnit("Matti", 8);
94
95 rekisteri.poistaHenkilo("Liisa");
96 matti = new Henkilo("Liisa");
97 rekisteri.lisaaHenkilo(matti);
98
99 rekisteri.lisaaTunnit("Matti", 8);
100
101 System.out.println("Matin tunnit: " + rekisteri.getTunnit("Matti"));
102 System.out.println("Liisan tunnit: " + rekisteri.getTunnit("Liisa"));
103
104 rekisteri.lisaaHenkilo(new Henkilo("Ville"));
105 rekisteri.lisaaHenkilo(new Henkilo("Kalle"));
106 System.out.println("Villen tunnit: " + rekisteri.getTunnit("Ville"));
107
108 } catch(TaulukkoTaysiException e){
109 System.err.println("Taulukko on täynnä!");
110 }
111 }
112 }
113
114 | TuntiRekisteri1.java |