Aufgabe ist es ein Programm mit den Klassen Punkt und Strecke zu schreiben die mit der App TeststreckeApp laufen. Mit dem Programm sollen 2 Punkte eingegeben werden und als Ausgabe soll dann die Strecke zwischen den Punkten erscheinen.
Klasse Strecke
TeststreckeApp
So, nun habe ich einige Fragen zur Funktion und Ablauf des Programms.
UML Diagramme:
Punkt | Strecke
---------------------------------------------------------
double posX | Punkt p
double posY | Punkt q
---------------------------------------------------------
get posX | void read()
get posY | String toString()
void read | double getLaenge()
String toString() |
1.Sind die Diagramme so in Ordnung ?
2. Wie ist die Reihenfolge des Programmablaufs?
TeststreckenApp erzeugt das Objekt aber wann genau kommen die anderen Klassen ins Spiel ?
Zunächst wird die 5 als Ergebnis ausgegeben und dann folgt eine Eingabeaufforderung.
3. Sind Punkt und Strecke Attribute und posX, posY, Punkt p, Punkt q lokale Variablen und "s" dann das Objekt ?
Java:
import javax.swing.JOptionPane;
public class Punkt {
private double posX;
private double posY;
public Punkt(double posX, double posY) //Constructor
{
this.posX = posX;
this.posY = posY;
}
public double getPosX()
{
return this.posX;
}
public double getPosY() {
return this.posY;
}
public void read()
{
try {
this.posX = Double.parseDouble(JOptionPane.showInputDialog("Bitte die X-Koordinate eingeben: "));
}
catch (NumberFormatException e) {
JOptionPane.showMessageDialog(null, "Bitte eine Zahl eingeben.");
}
try
{
this.posY = Double.parseDouble(JOptionPane.showInputDialog("Bitte die Y-Koordinate eingeben: "));
}
catch (NumberFormatException e) {
JOptionPane.showMessageDialog(null, "Bitte eine Zahl eingeben.");
}
}
public String toString()
{
return "(" + this.posX + "/" + this.posY + ")";
}
}
Klasse Strecke
Java:
public class Strecke
{
private Punkt p;
private Punkt q;
public Strecke(Punkt p, Punkt q)
{
this.p = p;
this.q = q;
}
void read()
{
this.p.read();
this.q.read();
}
public String toString()
{
return this.p.toString() + ", " + this.q.toString();
}
public double getLaenge()
{
double a = this.q.getPosX() - this.p.getPosX();
double b = this.q.getPosY() - this.p.getPosY();
double laenge = Math.sqrt(Math.pow(a, 2.0D) + Math.pow(b, 2.0D));
return laenge;
}
}
TeststreckeApp
Java:
import java.io.PrintStream;
public class TestStreckeApp {
public static void main(String [ ] args) {
Punkt ursprung = new Punkt ( 0 . 0 , 0 . 0 ) ;
Punkt endpunkt = new Punkt ( 4 . 0 , 3 . 0 ) ;
Strecke s = new Strecke(ursprung , endpunkt ) ;
System . out . println("Die Laenge der Strecke " + s +
" betraegt " + s . getLaenge ( ) + "." ) ;
System . out . println ( ) ;
System . out . println("Strecke s eingeben:" ) ;
s . read ( ) ;
System . out . println ( ) ;
System . out . println("Die Laenge der Strecke " + s +
" betraegt " + s . getLaenge ( ) + "." ) ;
}
}
So, nun habe ich einige Fragen zur Funktion und Ablauf des Programms.
UML Diagramme:
Punkt | Strecke
---------------------------------------------------------
double posX | Punkt p
double posY | Punkt q
---------------------------------------------------------
get posX | void read()
get posY | String toString()
void read | double getLaenge()
String toString() |
1.Sind die Diagramme so in Ordnung ?
2. Wie ist die Reihenfolge des Programmablaufs?
TeststreckenApp erzeugt das Objekt aber wann genau kommen die anderen Klassen ins Spiel ?
Zunächst wird die 5 als Ergebnis ausgegeben und dann folgt eine Eingabeaufforderung.
3. Sind Punkt und Strecke Attribute und posX, posY, Punkt p, Punkt q lokale Variablen und "s" dann das Objekt ?
Zuletzt bearbeitet: