Skip to content
Snippets Groups Projects
Commit 4eed5563 authored by aichinos's avatar aichinos
Browse files

sekä kurssi että kurssit alustukset tehty

parent 21096999
No related branches found
No related tags found
No related merge requests found
...@@ -84,10 +84,11 @@ public class Kurssi { ...@@ -84,10 +84,11 @@ public class Kurssi {
/** /**
* Apumetodi, jolla saadaan täytettyä testiarvot kurssille. * Apumetodi, jolla saadaan täytettyä testiarvot kurssille.
* Visibility muutettu "package:ksi"
* TODO: POISTA, kun kaikki toimii!! * TODO: POISTA, kun kaikki toimii!!
* *
*/ */
private void tayta1() { void tayta1() {
this.nimi = "Japani 4"; this.nimi = "Japani 4";
this.opeEtunimi = "Ken"; this.opeEtunimi = "Ken";
this.opeSukunimi = "Manninen"; this.opeSukunimi = "Manninen";
...@@ -98,7 +99,7 @@ public class Kurssi { ...@@ -98,7 +99,7 @@ public class Kurssi {
* TODO: POISTA, kun kaikki toimii!! * TODO: POISTA, kun kaikki toimii!!
* *
*/ */
private void tayta2() { void tayta2() {
this.nimi = "Ohjelmointi 2"; this.nimi = "Ohjelmointi 2";
this.opeEtunimi = "Vesa"; this.opeEtunimi = "Vesa";
this.opeSukunimi = "Kokko"; this.opeSukunimi = "Kokko";
......
package mmkurssit;
/**
* Kopioi CRC-kortin tietoa tähän
* @author aichi
* @version 25 Feb 2025
*
*/
public class Kurssit {
private Kurssi[] kurssit;
private int kpl = 0;
private static final int maxKpl = 5;//montako kurssia yhdelle taulukolle
/**
* Alustetaan kurssit, johon säilytetään rekisteroiityjen kurssien viitteet
*/
public Kurssit() {
this.kurssit = new Kurssi[maxKpl];
}
/**
* Lisataan kurssi kurssit-taulukolle
* @param kurssi lisattava uusi kurssi
* @throws SailoException jos tietorakenne on jo täynnä
* @example
* <pre name="test">
* #THROWS SailoException
*
* Kurssit kurssit = new Kurssit();
* Kurssi test1 = new Kurssi();
* Kurssi test2 = new Kurssi();
* kurssit.getKpl() === 0;
* kurssit.lisaa(test1); kurssit.getKpl() === 1;
* kurssit.lisaa(test2); kurssit.getKpl() === 2;
* kurssit.lisaa(test1); kurssit.getKpl() === 3;
* kurssit.anna(0) === test1;
* kurssit.anna(1) === test2;
* kurssit.anna(2) === test1;
*
* kurssit.anna(0) == test2 === false;
* kurssit.anna(0) == test1 === true;
* kurssit.anna(3) === test1; #THROWS IndexOutOfBoundsException
*
* kurssit.lisaa(test1); kurssit.getKpl() === 4;
* kurssit.lisaa(test1); kurssit.getKpl() === 5;
* kurssit.lisaa(test1); #THROWS SailoException
*/
private void lisaa(Kurssi esim) throws SailoException {
if (kpl >= kurssit.length) throw new SailoException ("Too many courses!");
this.kurssit[this.kpl] = esim;//miten tämä error poistetaan, kun esimK ei tarvitse muuttaa
this.kpl++;
}
/**
* Palauttaa rekisteroityjen kurssien kpl
* @return kurssien lukuäärä
*/
private int getKpl() {
return this.kpl;
}
/**
* Palauttaa viitteen i:teen kurssin
* @param i kyseisen kurssin index
* @return viite kurssiin, jonka index on i
* @throws IndexOutOfBoundsException jos i ei ole tietorakenteen sisällä
*/
private Kurssi anna(int i) {
if (i<0 || this.kpl <= i)
throw new IndexOutOfBoundsException("Not yet index: "+ i);
return kurssit[i];
}
/**
* @param args ei käytössä
*/
public static void main(String[] args) {
Kurssit taulukko = new Kurssit();
Kurssi japani4 = new Kurssi();
japani4.rekisteroi();
japani4.tayta1();
Kurssi ohjelmointi2 = new Kurssi();
ohjelmointi2.rekisteroi();
ohjelmointi2.tayta2();
try {
taulukko.lisaa(japani4);
taulukko.lisaa(ohjelmointi2);
//taulukko.lisaa(japani4);
//taulukko.lisaa(ohjelmointi2);
//taulukko.lisaa(japani4);
//taulukko.lisaa(ohjelmointi2);
} catch (SailoException e) {
System.err.println(e.getMessage());
}
System.out.println("=======================Kurssit testi==========================");
for (int i=0; i<taulukko.getKpl(); i++) {
Kurssi kurssi = taulukko.anna(i);
System.out.println("Säilytetty taulukon paikalla: " + i);
kurssi.tulosta(System.out);
}
}
}
package mmkurssit;
/**
* Poikkeusluokka tietorakenteesta aiheutuville poikkeuksille.
* @author aichi
* @version 25 Feb 2025
*
*/
public class SailoException extends Exception {
private static final long serialVersionUID = 1L;
/**
* Poikkeuksen muodostaja jolle tuodaan poikkeuksessa käytettävä viesti
* @param viesti Poikkeuksen viesti
*/
public SailoException(String viesti) {
super(viesti);
}
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment