Witam mam problem z kodem na sortowanie "Telefonów": analfabetycznie, w ogóle nie wiem jak się do tego zabrać. Od nie dawna bawię się w BlueJ więc proszę o wyrozumiałość ;]
Tak wygląda mniej więcej program:
CLASS TELEFONY
import java.io.*;
public class telefony implements Serializable
{
//typ nazwa
private String Marka;
private String Model;
private int nrSeryjny;
//konstruktor
public void wypisz(){
System.out.println("@@@@@@@@" );
System.out.println( "Marka: "+Marka );
System.out.println("Model:" +Model );
System.out.println("nrSeryjny:" +nrSeryjny );
System.out.println("*********" );
}
public telefony() {
Model = "Gallus";
}
// new Student("Piotr", "M", 8487897)
public telefony(String Marka,
String Model ,
int nrSeryjny ){
//pole klasy = arg formalny
this.Marka = Marka ;
this.Model = Model;
this.nrSeryjny = nrSeryjny;
}//konstr
String getMarka(){
return this.Marka;
}
//stx.setMarka("Nokia");
void setMarka(String Mar ){
Marka = Mar;
}
String getModel(){
return this.Model;
}
//stx.setModel("model");
void setModel(String Mod ){
Model = Mod;
}
int getNrSeryjny(){
return nrSeryjny;
}
}
CLASS PĘTLA GŁÓWNA
import java.io.*;
public class GlownaPetla
{
static String plik = "Baza.obj";
static telefony[] baza = new telefony[20];
public static void main(String[] ar){
char w = 'a';
do{
System.out.println(" 1 - Baza Telefonów Komórkowych");
System.out.println(" 2 - Baza Pracowników");
w =Konsola.czytajText("Lista Wyboru ").charAt(0);
switch(w){
case '1':
telefony();
break;
case '2':
System.out.println("w trakcie pracy");
break;}//switch
w =Konsola.czytajText("Co wybierasz t-exit, cokolwiek-zostaje").charAt(0);
}//do
while(! (w=='t' || w=='T') );
}//main
public static void telefony(){
czytaj(plik);
char w = 'a';
do{
menu();
w =Konsola.czytajText("Co wybierasz? ").charAt(0);
switch(w){
case '1':
System.out.println("Dodaj Telefon do Bazy");
dodaj();
zapisz(plik);
break;
case '2':
System.out.println("Edycja Telefonów");
czytaj(plik);
wyswietl(baza);
w =Konsola.czytajText("Co zmieniasz rekordy? t-yes, n - no ").charAt(0);
if(w=='t'){
int nrr =Konsola.czytajInt("numer do edycji ");
if(baza[nrr]!=null){
w =Konsola.czytajText(" zmieniaszcały rekord w-yes, n - no ").charAt(0);
if(w=='w') edytuj(nrr);
else{
w =Konsola.czytajText("Co zmieniasz? p-producent m-model, n - numer ").charAt(0);
switch(w){
case 'p' :
String pr =Konsola.czytajText("podaj producenta marki: ");
baza[nrr].setMarka(pr);
zapisz(plik);
break;
}//switch wewn
}//else
}//nie null
else System.out.println( "pusty numer");
}
break;
case '3' :
System.out.println("Usuń");
int nrr =Konsola.czytajInt("numer do usunięcia ");
baza[nrr]=null;
zapisz(plik);
break;
default:
System.out.println("W trakcie pracy");
}
//pobiorę parametr
w =Konsola.czytajText("Co wybierasz t-exit, cokolwiek-zostaje").charAt(0);
}
while(! (w=='t' || w=='T') );
}//studenci
public static void menu(){
System.out.println("1 - dodaj Telefon");
System.out.println("2 - edytuj Telefon");
System.out.println("3 - usuń Telefon");
System.out.println("inny klawisz wyjscie - dodaj Telefon");
System.out.println("t - ponów");
}
public static void zapisz(String np){
File plik = new File(np);
try{
FileOutputStream fos = new FileOutputStream(plik);
BufferedOutputStream bufor =
new BufferedOutputStream(fos);
ObjectOutputStream oos =
new ObjectOutputStream(bufor);
oos.writeObject(baza);
oos.flush();
oos.close();
}
catch(IOException ioe){
//alter
System.err.println("błąd " + ioe.toString());
}
}//zapisz
public static void czytaj(String np){
File plik = new File(np);
try{
FileInputStream fos = new FileInputStream(plik);
BufferedInputStream bufor =
new BufferedInputStream(fos);
ObjectInputStream oos =
new ObjectInputStream(bufor);
baza = (telefony[] ) ( oos.readObject() );
oos.close();
}
catch(IOException ioe){
//alter
System.err.println("błąd " + ioe.toString());
}
catch(ClassNotFoundException ioe){
//alter
System.err.println("błąd - brak klasy xxx" + ioe.toString());
}
}//zapisz
public static void dodaj(){
String im = Konsola.czytajText("Podaj Markę: ");
String na = Konsola.czytajText("Podaj : Model");
int nr = Konsola.czytajInt("Podaj nr Seryjny: ");
telefony std = new telefony(im, na, nr);
dodaj(std);
}//dodaj()
public static void edytuj(int nr){
String im = Konsola.czytajText("Podaj nową Markę, było-"+baza[nr].getMarka()+" -:");
String na = Konsola.czytajText("Podaj : Model, było-"+baza[nr].getModel()+" -:");
int nrs = Konsola.czytajInt("Podaj nr Seryjny: , było-"+baza[nr].getNrSeryjny()+" -:");
baza[nr] = new telefony(im, na, nrs);
zapisz(plik);
}//edytuj()
public static void dodaj(telefony s){
for(int i=0 ; i<baza.length ; i++){
if(baza[i] == null){
baza[i] =s;
return;//pójdzie na koniec dodaj
}//if
}//for
System.out.println("nie udało się -Baza jest pełna");
}//koniec dodaj
public static void wyswietl(telefony[] tab){
for(int i = 0 ; i < tab.length ; i++){
if(tab[i] != null){
System.out.println("nr = "+i);
tab[i].wypisz();
}
}//for
}
}
CLASS CONSOLA
import java.io.*;
public class Konsola
{
public static double czytaj(String z){
double zwrot =0.0;
String st = czytajText(z );
Double d = new Double(st);
if ( d.isNaN() ){
System.out.println("Nie podałeś liczby we właściwym formacie");
}
else{
zwrot = d.doubleValue();
}
return zwrot;
}//czytaj double
public static int czytajInt(String z){
int zwrot =0;
String st = czytajText(z );
Integer d = new Integer(st);
Double d1 = new Double(st);
if ( d1.isNaN() ){
System.out.println("Nie podałeś liczby we właściwym formacie");
}
else{
zwrot = d.intValue();
}
return zwrot;
}//czytajInt
public static String czytajText(String zaj){
System.out.print(zaj + ": ");
InputStreamReader isr=
new InputStreamReader( System.in );
BufferedReader wej =
new BufferedReader(isr );
String zwrot = null;
try{
zwrot = wej.readLine();
}
catch(IOException ioe){
System.err.println("BŁĄD WEJŚCIA");
}
return zwrot;
}//czytajText
}
będa bardzo wdzięczny za pomoc.