Skocz do zawartości

[Java] Prosty program na studia


Recommended Posts

Dzień dobry,

 

Szukam pomocy w napisaniu prostego programu na studia.

Większość kursów online przeskakuje z podstaw od razu na głęboką wodę i nigdzie nie znalazłem napisanego poradnika krok po kroku.

 

Programowałem już w C++ i o ile tam nie mam problemu z napisaniem takiego programu jednak java to dla mnie czarna magia.

 

Potrzebuję napisać program który liczy pole i obwód koła z funkcją switch czyli wybieramy co chcemy liczyć.

 

Z góry dziękuję za pomoc lub naprowadzenie mnie na cel.

Link to post
Share on other sites
  • 2 tygodnie później...
public class CircleClass {
	private int radius;
	
	public CircleClass(int option,int radius){
		this.radius = radius;
		
		switch (option){
			case 1:
				circumference();
				break;
			case 2:
				circleArea();
				break;
			default:
				System.out.println("Blednie wybrana opcja");
				break;
		}
		
	}
	
	public void circumference(){
		double result = 2*Math.PI*radius;
		System.out.println("Obwod kola wynosi: "+result);
	}
	
	public void circleArea(){
		double result = Math.PI*Math.pow(radius, 2);
		System.out.println("Pole kola wynosi: "+result);
	}
}
import java.util.InputMismatchException;
import java.util.Scanner;


public class TestSwitch {

	public static void main(String[] args) {
		Scanner mScanner = new Scanner(System.in);
		int radius;
		try{
			System.out.println("Podaj promien kola");
			radius = mScanner.nextInt();
			while(radius<=0){
				System.out.println("Blednie podany promien.Sproboj raz jeszcze");
				radius = mScanner.nextInt();
			}
			
			System.out.println("Wpisz jedną z poniższych opcji i zatwierdź: \n"+
								"1 - obwód koła \n"+"2 - pole koła  \n");
			int option = mScanner.nextInt();
			new CircleClass(option,radius);
		}catch(InputMismatchException e){}
	}
}

Możesz prześledzić i poprawić kod który napisałam. Walidację danych wejściowych itd, czy dodanie gui. 

  • Popieram 1
Link to post
Share on other sites

Osobiście mi się wydaje, że porządniej by było jako argument nowego obiektu brać tylko promień koła, funkcje zostawić tak jak są, a switcha użyć co najwyżej w main'ie. Bardziej by się to imało ducha obiektowego programowania.

Co do poradników do programowania w javie google -> "java tutorial", jest dużo podstawowych poradniów na czołowych pozycjach, wziąć ktorykolwiek.

  • Popieram 1
Link to post
Share on other sites

Racja,bo tak na prawdę narzucamy użycie tych metod w konstruktorze i ograniczamy użycie tej klasy do innego typu zadania. 

public class CircleClass {
	private int radius;
	
	public CircleClass(int radius){
		this.radius = radius;
	}
	
	public void circumference(){
		double result = 2*Math.PI*radius;
		System.out.println("Obwod kola wynosi: "+result);
	}
	
	public void circleArea(){
		double result = Math.PI*Math.pow(radius, 2);
		System.out.println("Pole kola wynosi: "+result);
	}
}
import java.util.InputMismatchException;
import java.util.Scanner;

public class TestSwitch {

	public static void main(String[] args) {
		Scanner mScanner = new Scanner(System.in);
		int radius;
		try{
			System.out.println("Podaj promien kola");
			radius = mScanner.nextInt();
			while(radius<=0){
				System.out.println("Blednie podany promien.Sproboj raz jeszcze");
				radius = mScanner.nextInt();
			}
			CircleClass myCircle = new CircleClass(radius);
			System.out.println("Wpisz jedną z poniższych opcji i zatwierdź: \n"+
								"1 - obwód koła \n"+"2 - pole koła  \n");
			int option = mScanner.nextInt();
			while(!(option==1 || option==2)){
				System.out.println("Blednie podane pole wyboru. Spróbuj jeszcze raz");
				option = mScanner.nextInt();
			}
			
			switch (option){
			case 1:
				myCircle.circumference();
				break;
			case 2:
				myCircle.circleArea();
				break;
			default:
				System.out.println("Blednie wybrana opcja");
				break;
			}
			mScanner.close();
		}catch(InputMismatchException e){}
	}
}
Edytowane przez annakowalewska
Link to post
Share on other sites

Dołącz do dyskusji

Możesz dodać zawartość już teraz a zarejestrować się później. Jeśli posiadasz już konto, zaloguj się aby dodać zawartość za jego pomocą.

Gość
Odpowiedz w tym wątku...

×   Wklejono zawartość z formatowaniem.   Usuń formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Odnośnik został automatycznie osadzony.   Przywróć wyświetlanie jako odnośnik

×   Przywrócono poprzednią zawartość.   Wyczyść edytor

×   Nie możesz bezpośrednio wkleić grafiki. Dodaj lub załącz grafiki z adresu URL.

  • Ostatnio przeglądający   0 użytkowników

    Brak zarejestrowanych użytkowników przeglądających tę stronę.

×
×
  • Dodaj nową pozycję...