?? pkw.java
字號:
/** Programmname : Pkw <br>Klasse : <b> Pkw </b>@autor Li,Haibin Hou,Yujing Zhang,Xiangpeng@version 1.0 / 15.12.2006*/import java.io.*;import java.util.*;import java.text.DateFormat;import java.lang.Integer;import java.lang.String;public class Pkw extends Object implements Comparable, Cloneable { /** Objekt-Attribute */ private int identnummer; // Identifikationsnummer > 0 private String typ; // Typ des Pkw private String hersteller; // Name des Herstellers private String farbe; // Farbe des Pkw private int kmleistung; // Kilometerleistung private int preis; // Preis des Pkw /** Klassen-Attribute */ private static int aktIdentnummer = 0; // Akt. Nummerierung private static String stdTyp = "GOLF"; // Standardtyp private static String stdHersteller = "VW"; // Stadardhersteller private static String stdFarbe = "ROT"; // Standardfarbe private static PkwArray pkwArr = new PkwArray(); /** * Konstruktor 1 Pkw setzt default Werte * * @param keine */ public Pkw() { this(stdTyp, stdHersteller, stdFarbe, 0, 0); } /** * Konstruktor 2 Pkw * * @param String * t, Typ * @param String * h, Hersteller * @param String * f, Farbe * @param int * k, kmleistung * @param int * p, preis */ public Pkw(String t, String h, String f, int k, int p) { identnummer = ++aktIdentnummer; typ = t; hersteller = h; farbe = f; kmleistung = k; preis = p; pkwArr.insert(this); } /** * Konstruktor 3 Pkw * * @param String * t, Typ * @param String * h, Hersteller */ public Pkw(String t, String h) { this(t, h, stdFarbe, 0, 0); } /** * Konstruktor 4 Pkw - zum Clonen * * @param int * id, Identifikationsnummer * @param String * t, Typ * @param String * h, Hersteller * @param String * f, Farbe * @param int * k, kmleistung * @param int * p, preis */ Pkw(int id, String t, String h, String f, int k, int p) { identnummer = id; typ = t; hersteller = h; farbe = f; kmleistung = k; preis = p; } /** * Stringausgabe eines Pkw Objekts * * @return String */ public String toString() { String s=new String(); if ( this == null) /* Falls der PKW nicht vorhanden ist, z.B. bei Ausgabe * eines Arrays mit leeren Elementen */ s+= "PKW=Null"; else s=s+identnummer+':'+typ+','+hersteller+','+farbe+','+kmleistung+" km," +preis+" EUR"; /* Durch das vorangestellte s+ weider Compiler, dass * er die folgenden Variablen in Strings casten muss */ return s; } /** * Stringausgabe des Pkw Arrays * * @return String */ public static String alltoString() { String s=new String(); for (int i = 0; i < pkwArr.getCount(); i++) { s += pkwArr.getPkw(i).toString() + '\n'; } return s; } /** * get-Methode Identnummer * * @return int */ int getIdentnummer() { return identnummer; } /** * get-Methode Typ * * @return String */ String getTyp() { return typ; } /** * get-Methode Hersteller * * @return String */ String getHersteller() { return hersteller; } /** * get-Methode Farbe * * @return String */ String getFarbe() { return farbe; } /** * get-Methode Kmleistung * * @return int */ int getKmleistung() { return kmleistung; } /** * get-Methode Preis * * @return int */ int getPreis() { return preis; } /** * set-Methode Farbe * * @param String * f, Farbe */ void setFarbe(String f) { farbe = f; } /** * set-Methode Kmleistung * * @param int * k, kmleistung */ void setKmleistung(int k) { kmleistung = k; } /** * set-Methode Preis * * @param int * p, preis */ void setPreis(int p) { preis = p; } /** * get-Methode des Klassenattributs aktIdentnummer * * @return int */ static int getAktIdentnummer() { return aktIdentnummer; } /** * get-Methode des Klassenattributs pkwArr * * @return PkwArray */ static PkwArray getPkwArr() { return pkwArr; } /** * Funktion zum l鰏chen eines Pkw's aus dem Array * * @param Pkw * p * @return boolean */ static boolean delete(Pkw p) { if(pkwArr.remove(p)) { return true; } else { return false; } } /** * Funktion zum setzen der Standardwerte * * @param String * t, Typ * @param String * h, Hersteller * @param f, * Farbe */ static void setStandard(String t, String h, String f) { if (t != "") { stdTyp = t; } if (h != "") { stdHersteller = h; } if (f != "") { stdFarbe = f; } } /** * 黚erschriebene Methode zum Gr鲞envergleich von Pkw-Objekten anhand des * Preises * * @param Object * o * @return int */ public int compareTo(Object o) { return (this.preis - ((Pkw) o).preis); } /** * 黚erschrieben Methode zum pr黤en auf Gleichheit von Pkw-Objekten * * @param Pkw * p * @return boolean */ public boolean equals(Object o) { Pkw p = (Pkw)o; if (this.typ == p.typ && this.hersteller == p.hersteller && this.farbe == p.farbe && this.kmleistung == p.kmleistung && this.preis == p.preis) { return true; } else { return false; } } /** * 黚erschriebene Methode zum clonen von Pkw-Objekten * * @return Object */ protected Object clone() { return new Pkw(this.identnummer, this.typ, this.hersteller, this.farbe, this.kmleistung, this.preis); } /** * save-Methode zum speichern von Pkw-Objekten * * @param String * s * @return boolean, gibt true zur點k wenn alles gespeichert wurde */ public static boolean save(String s) { if (!s.endsWith(".pkw")) { s += ".pkw"; } PkwUnloadFile savePkwFile = new PkwUnloadFile(s,pkwArr.getCount()); boolean p = savePkwFile.writeHeader(); for (int i = 0; (i < pkwArr.getCount()) && p; i++) { p = savePkwFile.writePkw(pkwArr.getPkw(i)); } savePkwFile.close(); return p; } /** * load-Methode zum laden von Pkw-Objekten * * @param String * @return boolean, */ public static boolean load(String s) { boolean p = true; int i = 0; int m = Pkw.getPkwArr().getCount()-1; int n = 0; PkwLoadFile loadPkwFile = new PkwLoadFile(s); String hString = loadPkwFile.readHeader(); // Lesen der Header-Zeile // Anzahl der Pkw auslesen aus Datei int index1 = hString.indexOf("#"); int index2 = hString.indexOf(" "); String anzahl = hString.substring(index1 + 1, index2); System.out.println("n: " + anzahl); n = Integer.parseInt(anzahl); for (i = m; i >= 0; i--) { if (null == pkwArr.remove(i)) { p = false; break; } } for (i = 0; i < n; i++) { if (!pkwArr.insert(loadPkwFile.readPkw())) { p = false; break; } } if (p) { if (pkwArr.getCount() > 0) { aktIdentnummer = pkwArr.getPkw(pkwArr.getCount()-1).getIdentnummer(); } else { aktIdentnummer = 0; } } return p; }}/** nicht 鰂fentliche Klasse PkwUnloadFile <br>Klasse : <b> PkwUnloadFile </b>@autor Malte Blanken, Frank Thiesing, Svenja Wichelhaus, Jan Sch鋎lich, Hartmut Bakker@version 1.4 / 31.10.2005*/class PkwUnloadFile { private String fileName; private BufferedWriter aWriter; private int count; /** * Konstruktor * * @param String * pathname, filename */ public PkwUnloadFile(String pathname, int c) { fileName = pathname; aWriter = null; count = c; } /** * schreibt den Header der Pkw-Datei * * @return boolean, gibt true zur點k falls das Schreiben erfolgreich war */ public boolean writeHeader() { boolean p; if (aWriter != null) p = false; else { try { OutputStreamWriter outStream = new OutputStreamWriter( new FileOutputStream(fileName)); aWriter = new BufferedWriter(outStream); } catch (FileNotFoundException e) { p = false; } try { String s = "#" + count + " Pkw Records at "; DateFormat aDateFormat = DateFormat.getDateTimeInstance( DateFormat.DEFAULT, DateFormat.DEFAULT, Locale.GERMAN); s += aDateFormat.format(new Date()); aWriter.write(s); aWriter.newLine(); p = true; } catch (IOException ex) { p = false; } } return p; } /** * schreibt einen Pkw in die Pkw-Datei * * @return boolean, gibt true zur點k falls das Schreiben erfolgreich war */ public boolean writePkw(Pkw aPkw) { boolean p = true; try { String s = Integer.toString(aPkw.getIdentnummer()) + "|" + aPkw.getTyp() + "|" + aPkw.getHersteller() + "|" + aPkw.getFarbe() + "|" + Integer.toString(aPkw.getKmleistung()) + "|" + Integer.toString(aPkw.getPreis()); aWriter.write(s); aWriter.newLine(); } catch (IOException ex) { p = false; } return p; } /** * schlie遲 die Pkw-Datei * * @return boolean, gibt true zur點k falls das Schlie遝n erfolgreich war */ boolean close() { boolean p = true; try { if (aWriter != null) { aWriter.close(); aWriter = null; } } catch (IOException ex) { p = false; } return p; }}/** nicht 鰂fentliche Klasse PkwLoadFile <br>Klasse : <b> PkwLoadFile </b>@autor Malte Blanken, Frank Thiesing, Svenja Wichelhaus, Jan Sch鋎lich, Hartmut Bakker@version 1.4 / 31.10.2005*/class PkwLoadFile { private String fileName; private BufferedReader aReader; /** * Konstruktor * * @param String * pathname, filename */ public PkwLoadFile(String pathname) { fileName = pathname; aReader = null; } /** * Funktion zum lesen des Headers * * @return String, gibt die gesammte HeaderZeile zur點k */ public String readHeader() // Lesen der Header-Zeile { String s = null; if (aReader == null) try { aReader = new BufferedReader(new InputStreamReader( new FileInputStream(fileName))); s = aReader.readLine(); } catch (IOException ex) { s = null; } return s; // Rueckgabe Header oder null } /** * Funktion zum lesen eines Pkw's * * @return Pkw */ public Pkw readPkw() { Pkw aPkw = null; int id,k,p; String s; //System.out.println(readStr); try { s=aReader.readLine(); String[] PkwStr = s.split("\\|"); id=Integer.parseInt(PkwStr[0]); String typString=PkwStr[1]; String herstellerString=PkwStr[2]; String farbeString=PkwStr[3]; k=Integer.parseInt(PkwStr[4]); p=Integer.parseInt(PkwStr[5]); aPkw = new Pkw(id,typString,herstellerString,farbeString,k,p); //System.out.println(aPkw.toString()); } catch (IOException ex) {aPkw = null;System.out.println("fehler!!!!!!!!"); } //System.out.println(aPkw.toString()); return aPkw; // Rueckgabe Pkw oder null }}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -