KoiraSovellus. Muodostimet.

package v9_eta;

import java.util.Scanner;

public class KoiraSovellus_3 {

/**
* @author ark
* @task 3-120325
* @version 0.3
*
*/

// Tee ohjelmaluokka KoiraSovellus, joka ylläpitää Koirien tietoja
// taulukossa.
// Tee ohjelmaan käyttöliittymä, joka näyttää seuraavalta:
// 1. Lisää koira
// 2. Etsi koira
// 3. Poista koira
// 4. Tulosta koirat
// 0. Lopeta
// valitse:

// Kun käyttäjä valitsee numeron 1, ohjelma pyytää koiran tiedot, luo Koira-
// olion ja lisää tämän taulukkoon.
// Kun käyttäjä valitsee numeron 2, ohjelma pyytää koiran rodun, etsii ja
// tulostaa taulukosta kaikkien koirien tiedot, joiden rotu on sama kuin
// annettu.

// Kun käyttäjä valitsee numeron 3, ohjelma pyytää koiran nimen, etsii,
// tulostaa ja poistaa taulukosta kaikkien koirien tiedot, joiden nimi on
// sama kuin annettu.
// Kun käyttäjä valitsee numeron 4, ohjelma tulostaa kaikkien koirien
// tiedot.

public static void main(String[] args) {
KoiraSovellus_3 gafgaf = new KoiraSovellus_3();
gafgaf.run();
}

private Scanner input;
private Koira_2[] taulu;
private int lkm;

public KoiraSovellus_3() {
taulu = new Koira_2[3]; // taulukon koko 3
input = new Scanner(System.in);
lkm = 0; // koiria tallennettuna taulukossa
}

private void run() {
int valinta;

// ///////////////////////
// Valinta
do {
System.out.println("\n***");
System.out.println("'1' Lisää koira");
System.out.println("'2' Etsi koira");
System.out.println("'3' Poista koira");
System.out.println("'4' Tulosta koirat");
System.out.println("'0' Lopeta");
System.out.println("***");
System.out.print(" Valitse: ");
valinta = input.nextInt();

switch (valinta) {
case 0:
break;
case 1:
lisaaKoira();
break;
case 2:
etsiKoira();
break;
case 3:
poistaKoira();
break;
case 4:
tulostaKoirat();
break;
default:
System.out.println("Anna luku väliltä 0-4:");
;
}
} while (valinta != 0);
}

// /////////////////////
//
private void lisaaKoira() {
System.out.println("'1' Lisää koira");
String nimi = "", rotu = "";
int syntymaVuosi;

if (lkm < taulu.length) {
do {
System.out.print("Anna koiran nimi: ");
nimi = input.next();
} while (nimi.equals(""));
System.out.print("Anna koiran rotu: ");
rotu = input.next();
System.out.print("Anna koiran syntynämuosi: ");
syntymaVuosi = input.nextInt();
taulu[lkm] = new Koira_2(nimi, rotu, syntymaVuosi); // luodaan uusi
// olio Koira_2
// taulukossa
// taulu
lkm++; // koirien määrään viittaava laskin päivitetään (uuden koiran
// tiedot tallennettu => +1)
}

else
System.out.println("Taulukko on täynnä!");
}

// /////////////////////
// POISTO
private void poistaKoira() {
System.out.println("Valitsit: '3' Poista koira");

String nimi;
do {
System.out
.print("Anna koiran nimi (HUOM: koirien tiedot (niiden joiden nimi on sama) poistetaan: ");
nimi = input.next();
} while (nimi == "");
int montako = 0;
for (int k = 0; k < lkm; k++) {

if (taulu[k].getNimi().equals(nimi)) {
System.out.println("Poistetaan " + taulu[k].toString());
taulu[k] = null;
tiivistaTaulukko(k);
montako++;
}
}
if (montako == 0) {
System.out
.println("Ei löytynyt koiria, joiden nimi on sama kuin annettu");
}
}

// private int etsiKoira(String nimi) {
// int i = 0;
// while (i < lkm && taulu[i].getNimi() != nimi)
// i++;
//
// return i;
// }

private void tiivistaTaulukko(int kohta) {
for (int i = kohta; i < lkm - 1; i++)
taulu[i] = taulu[i + 1];
lkm--; // lukumäärän vähennys
}

// /////////////////////
// HAKU
private void etsiKoira() {
System.out.println("Valitsit: '2' Etsi koira");

String etsiRodulta;
do {
System.out
.print("Anna etsittävän koiran rotu (ei saa olla tyhjä): ");
etsiRodulta = input.next();
} while (etsiRodulta == "");

System.out.println("Koirat, joiden rotu on " + etsiRodulta + ":");
System.out.println("---");

for (int i = 0; i < lkm; i++) {
if (taulu[i].getRotu().equals(etsiRodulta)) {
System.out.println(taulu[i].getNimi() + ", "
+ taulu[i].getSyntymaVuosi() + ";");
}
}
}

// /////////////////////
// TULOSTUS
private void tulostaKoirat() {
System.out.println("Valitsit '4', Tulosta koirat");

for (int i = 0; i < lkm; i++) {
System.out.println(taulu[i].toString());
}
}
}

Advertisements

Comments are closed.

%d bloggers like this: