mOrt.java 14/Nov/2003 1 of 1

Werbung
mOrt.java
14/Nov/2003
/***********************************************************************
* Module: mOrt.java
* Author: Saim Sert
* Created: Mittwoch, 12. November 2003
* Purpose: Defines the Class mOrt
***********************************************************************/
import java.util.*;
public class mOrt
{
/** @param args */
public static void main(String[] args)
{
int anzahl = (args.length > 0)? Integer.parseInt(args[0]) : 0 ;
char modus = (args.length == 2)? args[1].charAt(0) : 'x' ;
System.out.println("\tSimulation einer Standortverwaltung\n\n") ;
if( anzahl >= 3 && anzahl <=100 && (modus == 'u' || modus == '+' || modus == '-') )
{
//
cStandorte standorte = new cStandorte(anzahl,modus);
}
else
{
anzahl = 10; modus = 'u';//weg
cStandorte standorte = new cStandorte(anzahl,modus);//weg
System.out.println("\n\tFalsche Parameter !");
System.out.println("1. Parameter: Anzahl der Standorte | 0<=anzahl<=100");
System.out.print("2. Parameter: Sortierreihenfolge
| 'u' Name,");
System.out.print(" '+' Strecke Auf, '-' Strecke Ab\n");
}
System.out.print("\n\tPrgramm wird beendet - ") ;
}
}
1 of 1
cStandorte.java
14/Nov/2003
/***********************************************************************
* Module: cStandorte.java
* Author: Saim Sert
* Created: Mittwoch, 12. November 2003
* Purpose: Defines the Class cStandorte
***********************************************************************/
import java.io.*;
import java.util.*;
import java.lang.Math;
public class cStandorte
{
private int zeiger = 0;
private int[] order = null;
private cOrt[] standort;
/** @param index */
private void createStandort(int index)
{
int x,y;
boolean ok = true ;
do
{
x = (int) (Math.random()*1200);
y = (int) (Math.random()*1200);
for (int i = 0; i < zeiger || (!ok); i++)
ok = calcDistanz(x,y,standort[i].getX(),standort[i].getY()) < 1200;
} while(!ok);
standort[index].setName("Ort_" + (index+1));
standort[index].setX(x);
standort[index].setY(y);
}
/** @param x1
* @param y1
* @param x2
* @param y2 */
private int calcDistanz(int x1, int y1, int x2, int y2)
{
double deltaX = (x1-x2);
double deltaY = (y1-y2);
int temp = (int) Math.sqrt(Math.pow(deltaX,2.00)+Math.pow(deltaY,2.00));
return temp;
}
private void updateDistanz()
{
for (int i = 0; i < standort.length; i++)
{
int summe = 0;
for (int j = 0; j < standort.length; j++)
summe += calcDistanz(standort[i].getX(),standort[i].getY(),
standort[j].getX(),standort[j].getX());
standort[i].setDistanz(summe);
}
}
private void printStandort()
{
int x, y, j = 0 ;
System.out.print("\tName
\t
(X-Koord.,Y-Koord.) \t
Strecke\n") ;
for(int i = 0; i < standort.length; i++)
{
j = order[i];
System.out.print("\t" + standort[j].getName() + "\t : ") ;
System.out.print("(" + standort[j].getX() + ",") ;
System.out.print(standort[j].getY() + ")\t\t") ;
System.out.print("-> " + standort[j].getDistanz() + "\n") ;
}
}
/** @param modus */
private void sortStandort(char modus)
{
if (modus == 'u')
{
for(int i = 0; i < order.length; i++)
order[i] = i;
}
else if (modus == '+' || modus == '-')
{
double[] streckenS = new double[order.length];
double[] streckenU = new double[order.length];
for(int i = 0; i < order.length; i++)
1 of 2
cStandorte.java
14/Nov/2003
streckenS[i] = standort[i].getDistanz();
System.arraycopy(streckenS, 0, streckenU, 0, streckenS.length);
Arrays.sort(streckenS);
for(int i = 0; i < streckenS.length; i++)
{
for(int j = 0; j < streckenU.length; j++)
if(streckenS[i] == streckenU[j])
order[i] = j;
}
}
if (modus == '-')
{
int tmp;
for( int i = order.length - 1, j = 0; i > j; --i, ++j )
{
tmp
= order[i];
order[i] = order[j];
order[j] = tmp;
}
}
}
/** @param laenge
* @param modus */
public cStandorte(int laenge, char modus)
{
standort = new cOrt[laenge];
order = new int[laenge];
for (int i = 0; i < standort.length; i++)
{
standort[i] = new cOrt();
createStandort(i);
}
updateDistanz();
sortStandort(modus);
printStandort();
}
}
2 of 2
cOrt.java
14/Nov/2003
/***********************************************************************
* Module: cOrt.java
* Author: Administrator
* Created: Donnerstag, 13. November 2003 18:20:00
* Purpose: Defines the Class cOrt
***********************************************************************/
import java.util.*;
public class cOrt
{
private String name;
private int x;
private int y;
private int distanz;
public cOrt()
{
name = null;
x = 0;
y = 0;
distanz = 0;
}
public String getName()
{
return name;
}
/** @param name */
public void setName(String name)
{
this.name = name;
}
public int getX()
{
return x;
}
/** @param x */
public void setX(int x)
{
this.x = x;
}
public int getY()
{
return y;
}
/** @param y */
public void setY(int y)
{
this.y = y;
}
public int getDistanz()
{
return distanz;
}
/** @param distanz */
public void setDistanz(int distanz)
{
this.distanz = distanz;
}
}
1 of 1
Herunterladen