Forum zamknięte. Zapraszamy do grupy na Facebooku
Odpowiedz 
 
Ocena wątku:
  • 0 Głosów - 0 Średnio
  • 1
  • 2
  • 3
  • 4
  • 5
Konstruktory a scanner
05-05-2015, 04:50 PM (Ten post był ostatnio modyfikowany: 05-05-2015 04:51 PM przez Turtelian.)
Post: #9
RE: Konstruktory a scanner
Witam ponownie Smile w ramach powtórki piszę część programów od nowa , część rozbudowuje itp i przy rozwinięciu programu wyżej napotkałem znowu na problemy.
package powtorkaobiektowe;
import java.util.InputMismatchException;
import java.util.Scanner;

public class Kolo {
	private double promien;
	private int id;
	private static int nextid;
	public Kolo()
	{
		this(1);
	}
	public Kolo(double r){
		this(r,"m");
	}
	
	public Kolo(double r, String j)
	{
		id=nextid;
		promien=r;
		if(j.equals("km")){
			promien=promien*1000;
		}
		else if(j.equals("cm")){
			promien=promien/100;
		}
		else if(j.equals("m")){
			promien=promien;
		}
		else{
			System.out.println("zła jednostka");
		}
		
	}
	public void setPromien(double r){
		promien=r;
	}
	public int getId(){
		return id;
	}
	public double getPromien(){
		return promien;
	}
	public double obliczObwodKola(){
		return 2*Math.PI*promien;
	}
	public double obliczPoleKola(){
		return Math.PI*promien*promien;
	}
	public static void main(String[] args) {
		Scanner in = new Scanner(System.in);
		
		//System.out.println("podaj jednostke ");
		//String b =in.nextLine();
		//System.out.println("podaj promien ");
		//double a = in.nextDouble();
		//Kolo kolo= new Kolo(a,b);
		// wersja z 2zmiennymi
		System.out.println("podaj ile kolek cchesz opisać");
		int a=in.nextInt();
		Kolo[] kolka= new Kolo[a];
		for (int i=0; i< kolka.length; i++ ){
			System.out.println("podaj jednostke kola nr" + (i+1));
			String b =in.nextLine();
			System.out.println("podaj promien kola nr" + (i+1));
			double c = in.nextDouble();
			kolka[i]=new Kolo(c,b);
		}
		for(Kolo x:kolka){
			System.out.println("promien kola nr"+x.getId()+" wynosi : " + x.getPromien() + "m");
			System.out.println("obwod kola"+x.getId()+" wynosi : " + x.obliczObwodKola()+ "m" );
			System.out.println("pole kola"+x.getId()+" wynosi : " + x.obliczPoleKola()+ "m2");
			
		}
	}
	static {
		nextid=1;
	}

}
 
otoż po pierwsze scaner przy pytaniu o jednostke nie czeka w ogole na nia tylko od razu przeskakuje promienia
w konsoli wyglada to skrocie tak : Podaj jednostke Podaj promien. Co skutkuje tym że musze dac od razu promien a jednostka zostaje "pusta"
Drugi problem z id kola, po prostu nie działa, wszykie kola jako kola nr 1 opisuje
problem pewnie lezy w tej czesci kodu :

System.out.println("podaj ile kolek cchesz opisać");
		int a=in.nextInt();
		Kolo[] kolka= new Kolo[a];
		for (int i=0; i< kolka.length; i++ ){
			System.out.println("podaj jednostke kola nr" + (i+1));
			String b =in.nextLine();
			System.out.println("podaj promien kola nr" + (i+1));
			double c = in.nextDouble();
			kolka[i]=new Kolo(c,b);
		}
	
		for(Kolo x:kolka){
			System.out.println("promien kola nr"+x.getId()+" wynosi : " + x.getPromien() + "m");
			System.out.println("obwod kola"+x.getId()+" wynosi : " + x.obliczObwodKola()+ "m" );
			System.out.println("pole kola"+x.getId()+" wynosi : " + x.obliczPoleKola()+ "m2"); 

dodam ze nr id kola probowałem zrobic przez dodanie nr kola w petli for(kolox:kolka) po prostu jako nr=1 i na koncu inkrementacje nr++.
Znajdź wszystkie posty użytkownika
Odpowiedz cytując ten post
Odpowiedz 


Wiadomości w tym wątku
Konstruktory a scanner - Turtelian - 03-17-2015, 05:10 PM
RE: Konstruktory a scanner - lolo - 03-17-2015, 09:42 PM
RE: Konstruktory a scanner - Turtelian - 03-19-2015, 03:16 PM
RE: Konstruktory a scanner - lolo - 03-19-2015, 04:51 PM
RE: Konstruktory a scanner - Turtelian - 03-19-2015, 05:29 PM
RE: Konstruktory a scanner - lolo - 03-19-2015, 05:59 PM
RE: Konstruktory a scanner - Turtelian - 03-19-2015, 06:19 PM
RE: Konstruktory a scanner - lolo - 03-19-2015, 08:53 PM
RE: Konstruktory a scanner - Turtelian - 05-05-2015 04:50 PM

Skocz do:


Użytkownicy przeglądający ten wątek: 1 gości