All pastes #244412 Raw Edit

Miscellany

public java v1 · immutable
#244412 ·published 2006-11-09 19:28 UTC
rendered paste body
import java.io.*;public class OpintoRekisteri2 {		private static Kurssi[] kurssit = new Kurssi[3]; // Taulukkoon voi laittaa 5 kurssia.		public static void main (String [] args) throws IOException {				// Muuttujat.				int navigointi;		BufferedReader stdin = new BufferedReader(new InputStreamReader(System.in));				// Tulostukset				tulostaOhjeet();		tulostaValikko();					do {   			   			   			navigointi = Integer.parseInt(stdin.readLine());   			   			switch(navigointi) {   			   				case 1:   				 lisaaKurssi();  					 System.out.println("Anna seuraava valinta (0-7): ");   				 break;   				    				case 2:   				 muutaKurssia();					 System.out.println("Anna seuraava valinta (0-7): ");   				 break;   				    				case 3:   				 poistaKurssi();					 System.out.println("Anna seuraava valinta (0-7): ");   				 break;   				    				case 4:   				 tulostaKurssi();					 System.out.println("Anna seuraava valinta (0-7): ");   				 break;   				   				case 5:   				 tulostaValikko();   				 	 System.out.println("Anna seuraava valinta (0-7): ");   				 break;   				    				case 6:   				 tallennaTiedostoon();   				 	System.out.println("Anna seuraava valinta (0-7): ");   				 break;   				    				case 7:    				 lueTiedostosta();   				 	System.out.println("Anna seuraava valinta (0-7): ");   				 break;   				   				case 0:   				 break;   				    				default: System.out.println("Syota luku valilta 0-7!");					break;   			}   		   		} while (navigointi != 0);			} // Main		// tulostaValikko - metodi            public static void tulostaOhjeet() {    	System.out.println("Ohjelma tallettaa neljan kurssin tiedot (nimi, opintopisteet) taulukkoon.");    	System.out.println("Valikon kautta voit muokata kurssien tietoja.");		System.out.println("#5 tulostaa valikon uudestaan.");    }        public static void tulostaValikko() {    	    	System.out.println("");    	System.out.println("                   0. Lopetus.");    	System.out.println("                   1. Lisaa uusi kurssi.");    	System.out.println("                   2. Muokkaa kurssin tietoja.");    	System.out.println("                   3. Poista kurssi.");    	System.out.println("                   4. Tulosta kurssien tiedot.");    	System.out.println("                   5. Tulosta valikko uudestaan.");    	System.out.println("                   6. Tallenna tiedostoon.");    	System.out.println("                   7. Lue tiedostosta.");    	System.out.println("");	    } 		public static void lisaaKurssi() throws IOException {		   String kurssinNimi;	   int opintoPisteet;	   int index = 0;	   BufferedReader stdin = new BufferedReader(new InputStreamReader(System.in));	   	   /* Pyöritetään lukumäärälaskuria taulukon viimeiseen paikkaan asti.	    * jos viimeinen paikka on täynnä, niin toiminto keskeytetään. */	    	    for (index = 0; index <= kurssit.length-1; index++) {	   		   	   if(kurssit[index] == null) {	   	   	break;	   	   }	   	   if(kurssit[kurssit.length-1] != null) {	   	    break;	   	   }	   	   	   } // for				if(kurssit[index] == null) {						System.out.println("Anna "+(index+1)+" kurssin nimi: ");			kurssinNimi = stdin.readLine();						System.out.println("Anna kurssin "+(kurssinNimi)+ " opintopistelaajuus: ");			opintoPisteet = Integer.parseInt (stdin.readLine());			System.out.println("");				    // Luodaan näiden tietojen pohjalta kurssi olio */	      kurssit[index] = new Kurssi(kurssinNimi, opintoPisteet);	        		} 				// Jos taulukko on täysi, kehoitetaan käyttäjää poistamaan kursseja.				else {				   System.out.println("Taulutkot ovat taysia. Poista jotain ennen lisaysta.");		}					} // lisaakurssi			public static void muutaKurssia() throws IOException {		 // Muuttujat	 	 String kurssinNimi;	 int opintoPisteet;	 int paikka;	 BufferedReader stdin = new BufferedReader(new InputStreamReader(System.in));	 	 System.out.println("Valitse muokatattava kurssi (anna nimi): ");	 kurssinNimi = stdin.readLine();    paikka = haeSijainti(kurssinNimi);	 if (paikka >= 0) {	      System.out.println("Anna kurssin uusi nimi: ");			kurssinNimi = stdin.readLine();						System.out.println("Anna kurssin "+(kurssinNimi)+ " opintopistelaajuus: ");			opintoPisteet = Integer.parseInt (stdin.readLine());			System.out.println("");			// Luodaan uusi kurssiolio vanhan tilalle.			kurssit[paikka] = new Kurssi(kurssinNimi, opintoPisteet); 		 } // if		  else { System.out.println("Tarkista valintasi, kurssia ei loytynyt."); }    } // Muutakurssia	    public static void poistaKurssi() throws IOException {    	 String kurssinNimi;	 int paikka;	 BufferedReader stdin = new BufferedReader(new InputStreamReader(System.in));	 System.out.println("Valitse poistettava kurssi (anna nimi): ");	 kurssinNimi = stdin.readLine();	 paikka = haeSijainti(kurssinNimi);	 if (paikka >= 0) { kurssit[paikka] = null; } 	    else {System.out.println("Kurssia ei ole taulukossa, ei voida poistaa."); }    }  // poistakurssi    public static void tulostaKurssi() throws IOException {   	 int i, opmaara = 0;	 for (i = 0; i < kurssit.length; i++) {	 /* Verrataan onko taulukossa sisältöä. Jos on (eli != null), niin tulostellaan sisältö. */	  	 if (kurssit[i] != null) {	      	       System.out.println("Kurssin "+kurssit[i].palautaNimi()+ " opintopistelaajuus on: "+kurssit[i].palautaOpintopisteet() );          opmaara = kurssit[i].palautaOpintopisteet()+opmaara;	     } // If	  } // for		 System.out.println("Yhteenlaskettu opintopistemaara: "+opmaara);   } // tulostakurssi    /* Haesijainti metodin kuvaus:	  * haeSijainti(Kurssi[] kurssit,	  * String nimi), joka vertaa rekisterissä olevien kurssien nimiä	  * haettavaan nimeen equalsIgnoreCase-metodin avulla. Metodi palauttaa	  * kokonaislukuna löytyneen kurssin sijainnin taulukossa tai 	  * NEGATIIVISEN LUVUN, JOS OIKEAA KURSSIA EI LÖYDY. */	public static int haeSijainti(String nimi) throws IOException {	  int i;	  int paikka = -1; // Jos kurssia ei löytynyt, metodi palauttaa negatiivisen luvun. 	  // Pyöritetään laskuria taulukon läpi.	  for (i = 0; i < kurssit.length; i++) {	     // Jos löydetään kurssi...		  if (kurssit[i] != null) {		     // ... ja sen nimi on se mitä haettiin...           if (nimi.equalsIgnoreCase(kurssit[i].palautaNimi()) ) {		        // ... Otetaan paikka muistiin. Paikka - muuttujaa käytetään kurssin muokkaamiseen.			     paikka = i;				  } // 2. IF		  }  // 1. IF	  }  // for	  	     return paikka; 	  }  // haesijainti	public static void tallennaTiedostoon () throws IOException {				String kurssinNimi;		int opintoPisteet;					BufferedWriter out;		int i;						// Avataan tiedosto tallettemaista varten:		out = new BufferedWriter(new FileWriter("kursseja.dat"));				// kurssit[i] viittaa taulukkoon.		for (i = 0; i < kurssit.length; i++) {			out.write(kurssit[i].palautaNimi() + ":" + kurssit[i].palautaOpintopisteet() );		}					}	public static void lueTiedostosta () throws IOException {					}} // OpintoRekisteri