All pastes #244411 Raw Edit

Something

public text v1 · immutable
#244411 ·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