JAVA Objektorientiert

sds200289

Grünschnabel
JAVA Objektorientiert!
Hey Leute,

haben folgendes Problem:

In einer Klasse haben wir 470 Orte mit Koordinaten.(x und y).

Wir möchten nun eine Operation (Objektorientiert) schreiben, welche die Entfernug zweier Punkte berechnet. Diese soll so erfolgen, das jeder Punkt mit jedem verglichen wird, und die Entfernung berechnet wird (In einem Feld ? )

Die kürzeste Strecke soll ausgegeben werden.

Alles soll Objektiorientiert sein!

Welche Variablen muss ich in dieser Klasse ( Name = Berechnungen) deklarieren? Wie muss der Aufbau erfolgen?

Bitten dringend um Hilfe!

Danke!
 
Und was hat das im Forum "News" zu suchen?
Bitte Fragen immer im passenden Forenbereich posten, danke.

*verschoben*
 
Die Klasse soll Berechnungen heissen. Was brauchst du denn fuer die Berechnungen? Genau diese Variablen die du brauchst, wuerde ich als Felder deklarieren.
Versteh ich es weiterhin richtig, dass du diese Orte alle an die Klasse uebergeben willst und diese Klasse soll dann zurueckgeben, welche Orte den kurzesten Abstand haben?
 
Vielen Dank für deine schnelle Antwort! Am einfachsten wäre, ich würde dir die Aufgabenstellung, und meine bisherigen Klassen schicken, und Du machst des, des wäre einfacher:-D

Ich brauche eine Berechnung, welche den Abstand zwischen den punkten durchführt.

Alles weitere verstehst du richtig....

Ich möchte in einer extra Klasse (in der die Main Methode ist) die Prozedur "abstandberechnen" aufrufen!

Brauche hierfür in der Mainmethode ein Konstruktor?

Danke für deine Hilfe...
 
Du hast doch gerade geschrieben, du hättest schon Klassen geschrieben, und wolltest die zusammen mit der Aufgabenstellung an Mimi schicken.

Wenn du diese Sachen einfach hier ins Forum postest, wirst du wahrscheinlich mehr Hilfe bekommen.

Und den Java-Code am besten gleich zwischen [code=java]...[/code] schreiben, damit wirds übersichtlicher
 
Es ist auch die Frage, was für Punkte es sind? Sind es einfach Punkte in einem flachen karthesischen Koordinatensystem oder reden wir hier von Punkten auf der Erde, weil dann wird es je nach Koordinatensystem kompliziert :D
 
Es handelt sich um zwei dimensionale Punkte (float werte von x und y)

Es gibt bisher eine Klasse Ort:
Code:
import java.io.File;
import java.io.FileNotFoundException;
import java.util.Scanner;


public class Ort {

	public static int length;
	private int nummer;
	private double x;
	private double y;
	
	public Ort(int nummer, double x, double y) {
		this.nummer = nummer;
		this.setX(x);
		this.y = y;
	}
	
	public int nummer() {
		return nummer;
	}
	
	public double x() {
		return getX();
	}
	
	public double y() {
		return y;
	}
	
	public static Ort[] einlesenAus(File file) throws FileNotFoundException {
		Scanner scanner = new Scanner(file);
		Ort[] orte = new Ort[0];
		int index = 0;
				
		while(scanner.hasNext()) {
			
			String next = scanner.next();

			if (next.equals("DIMENSION:")) {
				orte = new Ort[scanner.nextInt()];
				continue;
			} 				
			try {
				int nummer = Integer.valueOf(next);
				if (scanner.hasNext()) {
					double x = Double.valueOf(scanner.next());
					if (scanner.hasNext()) {
						double y = Double.valueOf(scanner.next());
							
						orte[index] = new Ort(nummer, x, y);
						index++;
					}					
				}
			} catch (NumberFormatException e) {}			
		}	
		return orte;
	}

	public void setX(double x) {
		this.x = x;
	}

	public double getX() {
		return x;
	}
	
	
}


Hinzu kommmt eine Klasse Projekt:

import java.io.File;
import java.io.FileNotFoundException;


public class Projekt {
	
	
	/**
	 * @param args
	 * @throws FileNotFoundException 
	 */
	public static void main(String[] args) throws FileNotFoundException {
		
		Ort[] orte = Ort.einlesenAus(new File("att532.tsp"));


		}
		
//hier sollen die Operationen aus der noch zu entstehenden Klasse Berechnungen aufgerufen werden.	

	private static void auslesen(Ort[] orte) {
		for (int i = 0; i < orte.length; i++)
			System.out.println(orte[i].nummer() + " " + orte[i].x() + " " + orte[i].y());
		
		}
}


Danke und Gruß
 
Zurück