hi,ich habe projekt gemacht,dieses projekt berechnet die verbindung zwischen ein paar städte.ein teil von den code sieht so aus:
den programm läuft sauber,aber jetzt ich wollte nicht dass ich mit meine objekte was was habe ich definiert sondern ich habe dafür ein datenbank erstellt,mit zwei tabellen;
Table Stadt:
name
k | koordx | koordy |
Table Wege:
stadt (fk:Stadt:name) | ziel (fk:Stadt:name) | entfernung | ....
und ich hab's versucht meine datenbank mit meine programe durch jdbc zu verbinden,aber ich habe schwerigkeit gefunden,weil wie sie sehen mein code arbeitet mit dieser objekte:
Node emden = new Node("Emden",50,650);
Node bremen = new Node("Bremen",200,550);
Node koeln = new Node("Koeln",50,350);
Node frankfurt = new Node("Frankfurt",250,250);
Node karlsruhe = new Node("Karlsruhe",150,150);
Node stuttgart = new Node("Stuttgart",300,100);
Node muenchen = new Node("Muenchen",500,50);
Node nuernberg = new Node("Nuernberg",450,200);
Node kassel = new Node("Kassel",300,400);
Node hannover = new Node("Hannover",350,500);
Node hamburg = new Node("Hamburg",400,650);
Node kiel = new Node("Kiel",450,750);
Node berlin = new Node("Berlin",550,550);
Node leipzig = new Node("Leipzig",500,400);
Node dresden = new Node("Dresden",650,350);
und ich weisse nicht wie kann ich in jdbc es darstellen.
wer hat eine idee????
vielen dank
Java:
package a_stern;
import java.util.*;
public class Graph {
Node[] nodeArray;
public Graph (String end) {
Node emden = new Node("Emden",50,650);
Node bremen = new Node("Bremen",200,550);
Node koeln = new Node("Koeln",50,350);
Node frankfurt = new Node("Frankfurt",250,250);
Node karlsruhe = new Node("Karlsruhe",150,150);
Node stuttgart = new Node("Stuttgart",300,100);
Node muenchen = new Node("Muenchen",500,50);
Node nuernberg = new Node("Nuernberg",450,200);
Node kassel = new Node("Kassel",300,400);
Node hannover = new Node("Hannover",350,500);
Node hamburg = new Node("Hamburg",400,650);
Node kiel = new Node("Kiel",450,750);
Node berlin = new Node("Berlin",550,550);
Node leipzig = new Node("Leipzig",500,400);
Node dresden = new Node("Dresden",650,350);
Node[] s = {emden,bremen,koeln,frankfurt,karlsruhe,stuttgart,muenchen,nuernberg,kassel,
hannover,hamburg,kiel,berlin,leipzig,dresden};
nodeArray = s;
Node endNode = getNode(end);
Node.setDestination(endNode);
emden.setNeighbour(bremen,130);
bremen.setNeighbour(emden,130);
bremen.setNeighbour(koeln,200);
bremen.setNeighbour(hannover,100);
koeln.setNeighbour(bremen,200);
koeln.setNeighbour(frankfurt,200);
frankfurt.setNeighbour(koeln,200);
frankfurt.setNeighbour(karlsruhe,100);
frankfurt.setNeighbour(kassel,50);
frankfurt.setNeighbour(nuernberg,200);
karlsruhe.setNeighbour(frankfurt,100);
karlsruhe.setNeighbour(stuttgart,150);
stuttgart.setNeighbour(karlsruhe,150);
stuttgart.setNeighbour(nuernberg,100);
nuernberg.setNeighbour(stuttgart,100);
nuernberg.setNeighbour(muenchen,130);
nuernberg.setNeighbour(dresden,200);
nuernberg.setNeighbour(leipzig,50);
nuernberg.setNeighbour(kassel,50);
nuernberg.setNeighbour(frankfurt,200);
muenchen.setNeighbour(nuernberg,130);
kassel.setNeighbour(frankfurt,50);
kassel.setNeighbour(hannover,100);
kassel.setNeighbour(nuernberg,50);
hannover.setNeighbour(kassel,100);
hannover.setNeighbour(bremen,100);
hannover.setNeighbour(hamburg,130);
hamburg.setNeighbour(hannover,130);
hamburg.setNeighbour(kiel,100);
hamburg.setNeighbour(berlin,100);
kiel.setNeighbour(hamburg,100);
berlin.setNeighbour(hamburg,100);
berlin.setNeighbour(dresden,200);
berlin.setNeighbour(leipzig,50);
leipzig.setNeighbour(berlin,50);
leipzig.setNeighbour(dresden,100);
leipzig.setNeighbour(nuernberg,50);
dresden.setNeighbour(leipzig,100);
dresden.setNeighbour(berlin,200);
dresden.setNeighbour(nuernberg,200);
}
public Node getNode(String town){
Node node = null;
for (int i=0; i < nodeArray.length; i++){
if (town.equals(nodeArray[i].id)) {
node = nodeArray[i];
}
}
return node;
}
public void aStar (Node start, String end) {
OpenList listOpen = new OpenList ();
NodeSecond secondNodeStart = new NodeSecond(start.id, null, 0, 0);
listOpen.insertNewNode(secondNodeStart);
listOpen.setEnd(end);
String decidePath0 = null;
NodeSecond decidePathSecN =null;
do {
decidePath0 = listOpen.decidePath();
Node decidePath = getNode(decidePath0);
decidePathSecN = (NodeSecond) listOpen.getNodeforGraph(decidePath0);
System.out.println("decidePath: " + listOpen.decidePath() + ", f-wert: " + decidePathSecN.f);
if( decidePath0 != end) {
listOpen.deleteNode(decidePathSecN);
Object[] nodeObj0 = decidePath.getNeighboursAsObject(); // hole vom gelšschten die nachbarn
Node[] node0 = new Node [nodeObj0.length];
for (int k=0; k<node0.length; k++) {
node0[k] = (Node) nodeObj0[k];
}
NodeSecond[] secondNode0 = new NodeSecond[node0.length];
for (int j=0; j < node0.length; j++){ // inseriere NodeSecond
secondNode0[j] = new NodeSecond(node0[j].id, decidePathSecN, node0[j].heuristik, node0[j].edge);
//System.out.println("insert new node: " + node0[j].id + " heuristik: " + node0[j].heuristik + " edge: " +node0[j].edge);
listOpen.insertNewNode(secondNode0[j]);
}
}
} while ( decidePath0 != end);
listOpen.getRoute(decidePathSecN);
}
// ab hier nicht in verwendeung!!!
public Object[] getNeighboursArrayAsObject(int i) {
int index = nodeArray[i].neighbour.size();
Object [] neighboursArray = new Node[index];
neighboursArray = nodeArray[i].getNeighboursAsObject();
return neighboursArray;
}
public Node getNeighbour(int aktualNode, int whichNeighbour) {
Object [] neighboursArrayObj = getNeighboursArrayAsObject(aktualNode);
return (Node) neighboursArrayObj[whichNeighbour];
}
public int getEdges(int aktualNode, int neighbour) {
Object [] neighboursArrayObj = getNeighboursArrayAsObject(aktualNode);
Node newNode = (Node) neighboursArrayObj[neighbour];
return newNode.edge;
}
public int getHeuristik (int aktualNode, int neighbour) {
Object [] neighboursArrayObj = getNeighboursArrayAsObject(aktualNode);
Node newNode = (Node) neighboursArrayObj[neighbour];
return newNode.heuristik;
}
// fahrtzeit: km/(km/h) = h
public double getTravelTimeEdge(int aktualNode, int neighbour) {
double travelTime = (double) getEdges(aktualNode, neighbour)/getNeighbour(aktualNode,neighbour).speed;
return travelTime;
}
public void test() {
//int test = getEdges(0,0)+getEdges(1,1);
//System.out.println("test: emden nach kšln: " + test);
int testDistanz = getEdges(0,0);
System.out.println("test distanz: emden nach bremen: " + testDistanz);
double testFahrtzeit = getTravelTimeEdge(0,0);
System.out.println("test fahrtzeit: emden nach bremen: " + testFahrtzeit);
}
}
Table Stadt:
name
Table Wege:
stadt (fk:Stadt:name) | ziel (fk:Stadt:name) | entfernung | ....
und ich hab's versucht meine datenbank mit meine programe durch jdbc zu verbinden,aber ich habe schwerigkeit gefunden,weil wie sie sehen mein code arbeitet mit dieser objekte:
Node emden = new Node("Emden",50,650);
Node bremen = new Node("Bremen",200,550);
Node koeln = new Node("Koeln",50,350);
Node frankfurt = new Node("Frankfurt",250,250);
Node karlsruhe = new Node("Karlsruhe",150,150);
Node stuttgart = new Node("Stuttgart",300,100);
Node muenchen = new Node("Muenchen",500,50);
Node nuernberg = new Node("Nuernberg",450,200);
Node kassel = new Node("Kassel",300,400);
Node hannover = new Node("Hannover",350,500);
Node hamburg = new Node("Hamburg",400,650);
Node kiel = new Node("Kiel",450,750);
Node berlin = new Node("Berlin",550,550);
Node leipzig = new Node("Leipzig",500,400);
Node dresden = new Node("Dresden",650,350);
und ich weisse nicht wie kann ich in jdbc es darstellen.
wer hat eine idee????
vielen dank