Menu Strumienie wejsciowe

0
import java.io.*;

public class Tabela {
	public Tabela(){
		Start();
	}
	public void Start(){
		System.out.println("-----------------");
		System.out.println("1.Dodaj osobe ");
		System.out.println("2.Drukuj Tabele");
		System.out.println("3.Zapisz do pliku");
		System.out.println("4.Zakoncz");
		System.out.println("-----------------");
		
	}
	public static void main(String[] args){
		Tabela a = new Tabela();

		 BufferedReader read = new  BufferedReader( new InputStreamReader(System.in));
		 
		System.out.println("wybierz z menu");
		
		String line = null;
		while(!"4".equals(line)){

			try{
				line = read.readLine();
			}
			catch(IOException e){ 
				System.out.println("blad");
				return;
			}
			System.out.println("wprowadzone liczba to: "+line);
		}

	    }
	}

mam tu takie menu chce teraz zrobić tak zeby po wyborze robilo sie kolejne zadanie :/ myslalem zeby to zrobic switchem ale cos mi nie wychodzi :/. Chce zeby po wyboerze np 2 uruchomiła sie kolejna metoda??

0

Zamiast BufferedReader użyj Scanner i nextInt. Otrzymasz liczbę. Następnie zamiast Ifów stwórz tabelę, która będzie działała w nastepujący sposób:

  1. Zawiera obiekty implementujące interfejs Service:
public interface Service{
    void proceed() throws Throwable;
}
  1. Każdej funkcji odpowiada inna klas implementująca ten interfejs.
  2. Pojedyncze obiekty poszczególnych klas są umieszczone w kolejnych komórkach tablicy.
  3. Po odczytaniu liczby odejmujesz od niej 1 (bo indeksy tablicy zaczynają się od 0) i wywołujesz:
funkcje[wybranyIndeks].proceed();
0
	Scanner skan = new Scanner(System.in);
		System.out.println("wporwadz liczbe");
		while(){
			
			
		}

jaki dac warunek w while-u zeby po wprowadzeniu 4 petla sie dopiero zakonczyla? i jak to zrobic ze gdy wprowadze inna liczbe np 1 zadziala inna funkcja bo nie wiem dokladnie jak to sie robi ze tymi z tymi interfejsami :/

0

Jak nie łapiesz interfejsów to zrób tak:

while(true){
//tu kilka ifów
}
0
public static void main(String[] args){
		ArrayList<Wykaz> wykaz = new ArrayList<Wykaz>();
		Tabela a = new Tabela();
		Scanner skr = new Scanner(System.in);
		while(true){
			if(skr.nextByte()==1){
				
				System.out.println("podaj imie i zarobki(zapis do pliku");
				a.opcja1();
				a.opcja2();
				System.out.println("zakonczylo zapisywanie sie do pliku");
				break;
			}
			else if (skr.nextByte()==2){
				System.out.println("dodaj do tabeli");
				
				System.out.println("zakonczylo dodawanie");
				break;
			
			}
			
			else{
				break;
				}
		}
	}

pierwszy if dziala a przy drugi nie dziala ?? else tez :/

0

borze...

int n = skr.nextInt();
if(n==1)
{
   ...
}
else if(n==2)
{
   ...
}
else
{
    ...
}

BTW: po ch.. Ci pętla while(true), skoro w każdym przypadku robisz break...?

0

Dla topornych nowy artykuł:
Jak stworzyć menu w konsoli

0

Jestem początkującym i nawet ten artykul dla topornych jest dla mnie ciężki :/

import java.io.*;
import java.util.*;

public class Tabela {
	
	public String nazwa;
	
	public Tabela(){
	}
	
	public void wroc(){
		Start();
	}


	
	
	public void Start(){
		
		System.out.println("-----------------");
		System.out.println("1.Dodaj osobe ");
		System.out.println("2.Drukuj Tabele");
		System.out.println("3.Zapisz do pliku");
		System.out.println("4.Zakoncz");
		System.out.println("-----------------");
		
		Scanner skan = new Scanner(System.in);
		System.out.println("wprowadz liczbe");
		
		while(!skan.hasNextInt() && skan.nextInt()!=4){
			
		}
		int liczba = skan.nextInt();
		

		switch(liczba){
		case 1 :
			
			System.out.println("imie");
			
			Scanner opcja1 = new Scanner(System.in);
			opcja1.hasNext();

			System.out.println("wprowadz zarobki");
			Scanner zarobki = new Scanner(System.in);
			zarobki.hasNextInt();
			
			
			wroc();break;
		case 2 : 
			System.out.println( "dwaaa");
			
			wroc(); break;
		case 3 : 

			System.out.println("imie");
			
			Scanner opcja2 = new Scanner(System.in);
			opcja2.hasNext();
			
			
			System.out.println("wprowadz zarobki");
			Scanner opcja2zarobki = new Scanner(System.in);
			opcja2zarobki.hasNextInt();
			
			try{
				File f= new File("c://Users/marezo/Desktop/test.txt");
				RandomAccessFile file = new RandomAccessFile(f, "rw");
				file.seek(file.length());
				file.writeBytes(opcja2.next() +"  " +opcja2zarobki.next());
				wroc();break;
			}
			
			catch
				(Exception e){			
				}
			
		System.out.println("wybrales opcje trzy"); break;
			
		case 4 : System.out.println("KONIEC"); break; 
		}
	}
}

public class Wykaz {
	
	String nazwisko;
	double zarobki;
	
	

	public String getNazwisko() {
		return nazwisko;
	}

	public void setNazwisko(String nazwisko) {
		this.nazwisko = nazwisko;
	}

	public double getZarobki() {
		return zarobki;
	}

	public void setZarobki(double zarobki) {
		this.zarobki = zarobki;
	}
	
	public Wykaz(String nazwisko,double zarobki ){
		this.nazwisko= nazwisko;
		this.zarobki=zarobki;
	
	}

}

Działa tylko opcja 4 i 3 :/
Gdy wybieram opcje 1 podaje dane i nie wiem jak zrobić żeby te dane zostały dodane do listy (Array - może jakiś inny typ listy??). Nie wiem jak zrobić w opcji jeden żeby za każdym razem wywoływania tworzył się nowy obiekt który by został dodany do listy i opcja 2 można by wysieliście listę ;] .

Jeszcze odnośnie opcji 3 ktora zapisuje do pliku: Da rade jakoś to uporządkować i zapisywać w formie tabelki??

1 użytkowników online, w tym zalogowanych: 0, gości: 1