Java tehtäviä konsoli ratkaisu4c
Mureakuha
Tehtävä:
Toteuta CD-levyjen tietokantaohjelma, jossa on seuraava valikko:
=============================== a = lisää uusi CD b = poista CD c = selaa tietoja x = lopeta ===============================
Ohjelmassa on tilaa viidelle tietueelle. Jokaisesta levystä talletetaan 6 tietoa; koodi, esittäjä, levyn nimi, julkaisuvuosi, kokonaiskesto ja sanallinen arvostelu. Alusta käyttämättömät solut miinus-merkillä tai numerolla nolla. Ohjelman täytyy itse tunnistaa onko jokin tietue käytössä vai onko se tyhjä, eikä käytettyjen tietueiden päälle saa kirjoittaa.
import java.io.*; public class CD { public static void main(String args[]) { final int KOKO = 5; int valinta = 0; CDlevy arkisto[] = new CDlevy[10]; for (int i=0; i<KOKO; i++) arkisto[i] = new CDlevy(i); do { System.out.println("\n*********************"); System.out.println(" a = Lisaa uusi CD"); System.out.println(" b = Poista CD"); System.out.println(" c = Selaa tietoja"); System.out.println(" x = Lopeta"); System.out.println("*********************"); try { System.out.print("Valitse: "); System.in.skip(System.in.available()); valinta = System.in.read(); } catch(IOException e) {System.out.println("IO-virhe!!");} switch (valinta) { case 'a': { int i; for (i=0; i<KOKO && arkisto[i].julkaisu != 0; i++) ; if (i >= KOKO) { System.out.print("\nKaikki paikat taynna."); break; } arkisto[i].Lisaa(); break; } case 'b': { System.out.print("Anna levyn koodi joka poistetaan: "); try { byte bufferi1[] = new byte[100]; System.in.skip(System.in.available()); System.in.read(bufferi1); String bufferi2 = new String(bufferi1); bufferi2 = bufferi2.substring(0, bufferi2.indexOf('\r')); int koodi = Integer.parseInt(bufferi2); if (koodi < KOKO) { arkisto[koodi].Nollaa(); arkisto[koodi].Tulosta(); } else System.out.println("Virheellinen koodi!!"); } catch(IOException e) {System.out.println("IO-virhe!!");} break; } case 'c': { for (int i=0; i<KOKO; i++) arkisto[i].Tulosta(); break; } } } while (valinta != 'x'); } } import java.io.*; public class CDlevy { int koodi = 0; String nimi = "-"; String levy = "-"; int julkaisu = 0; double kesto = 0.0; String arvostelu = "-"; public CDlevy(int i) { koodi = i; } public void Tulosta() { System.out.println("***** Tietue " + koodi+ " *****"); System.out.println(" Nimi: " + nimi); System.out.println(" Levy: " + levy); System.out.println(" Julkaisu: " + julkaisu); System.out.println(" Kesto: " + kesto); System.out.println(" Arvostelu: " + arvostelu); } public void Lisaa() { byte bufferi1[] = new byte[100]; String bufferi2 = new String(""); try { System.in.skip(System.in.available()); System.out.println("\n***** Tietue " + koodi + " *****"); System.out.print(" Nimi: "); System.in.read(bufferi1); String nim = new String(bufferi1); nimi = nim.substring(0, nim.indexOf('\r')); System.out.print(" Levy: "); System.in.read(bufferi1); levy = new String(bufferi1); levy = levy.substring(0, levy.indexOf('\r')); System.out.print(" Julkaisu: "); System.in.read(bufferi1); bufferi2 = new String(bufferi1); bufferi2 = bufferi2.substring(0, bufferi2.indexOf('\r')); julkaisu = (int)Double.parseDouble(bufferi2); System.out.print(" Kesto: "); System.in.read(bufferi1); bufferi2 = new String(bufferi1); bufferi2 = bufferi2.substring(0, bufferi2.indexOf('\r')); kesto = Double.parseDouble(bufferi2); System.out.print(" Arvostelu: "); System.in.read(bufferi1); arvostelu = new String(bufferi1); arvostelu = arvostelu.substring(0, arvostelu.indexOf('\r')); System.out.println("*********************"); } catch (Exception e) {System.out.println("Virhe!!");} } public void Nollaa() { nimi = "-"; levy = "-"; julkaisu = 0; kesto = 0.0; arvostelu = "-"; } }
Tämän dokumentin kopiointi, levittäminen sekä muokkaaminen on sallittua GNU Free Documentation Licensen version 1.2 tai uudemman Free Software Foundationin julkaiseman version mukaisesti, ilman muuttumattomuuslauseketta tai kansitekstejä. Tätä koskee vastuuvapaus.
Kopio lisenssistä (englanniksi) löytyy täältä.
Kopio lisenssistä (englanniksi) löytyy täältä.
Alkuperäinen (c) Petteri Hämäläinen
