Announcement

Collapse
No announcement yet.

Klasse wird beim manuellem compilieren nicht gefunden

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Klasse wird beim manuellem compilieren nicht gefunden

    Hallo ich habe da mal eine Frage

    ich habe die aufgabe einen Gedautomaten nach folgendem Standard zu schreiben, nach folgender Aufgabe.
    ----------------------------------------------------------------------------------------------------------------------------------------------------------------
    Schreiben Sie ein Programm, welches einen Geldautomaten emuliert. Realisieren Sie hierfür
    folgende Aufgaben (Details sind weiter unten beschrieben):
    a) 10-stellige Kontonummer und 5-stellige PIN eingeben und überprüfen
    b) Menü
    Kontodaten abfragen (k)
    Geld abheben (a)
    Geld einzahlen (e)
    Dispokredit abfragen (d)
    Sitzung beenden(b)
    c) Nach Beenden einer Sitzung nach weiterem Kunden fragen.
    d) Nach dem letzten Kunden angeben, wieviele Kunden den Geldautomat genutzt haben.
    Erklärungen:
    a) Entgegen der Praxis, aber der Einfachheit halber gilt eine PIN gilt als richtig, wenn die
    ersten 5 Ziffern der 10-stelligen Kontonummer mit der PIN übereinstimmen.
    b) Der Kontostand soll zu Beginn einer Sitzung für jeden Kunden auf 100 Euro gesetzt werden.
    Des weiteren bekommt jeder Kunde einen Dispokredit von 1000 Euro eingeräumt.
    • Kontodaten abfragen bedeutet, Anzeige des Namens der Bank ("Bremer Bank"), der
    Kontonummer und des aktuellen Kontostandes.
    • Wenn der Kunde versucht, zuviel Geld abzuheben – also den Dispo zu überschreiten –
    dann soll zunächst eine Warnung und anschließend das Menü erneut ausgegeben
    werden.
    • Wenn der Kunde Geld abhebt oder einzahlt, soll danach automatisch der neue
    Kontostand angezeigt werden.
    c) Immer wenn ein Kunde keine weiteren Aktionen mehr tätigen möchte und die Sitzung
    beendet hat, soll nach einem weiteren Kunden gefragt werden.
    d) Wenn kein weiterer Kunde mehr den Geldautomaten nutzen möchte, soll ausgegeben
    werden, wieviele Kunden insgesamt an diesem Tag den Automaten genutzt haben. Dies soll
    NICHT über eine Schleife realisiert werden.
    ------------------------------
    Realisieren Sie das Programm mit den drei Klassen "Geldautomat.java", "GeldautomatLauf.java"
    und "EinAusgabe.java". Letztere wird Ihnen komplett zur Verfügung gestellt.
    Legen Sie die Quelldateien in folgenden Verzeichnissen ab:
    c:\Quellen\bank
    c:\Quellen\einaus
    Geldautomat.java, GeldautomatLauf.java
    EinAusgabe.java
    Die class-Dateien sollen entsprechend des Aufbaus des Quellen-Baums in einen Klassen-Baum
    abgelegt werden.
    c:\Klassen\bank
    c:\Klassen\einaus
    Geldautomat.class, GeldautomatLauf.class
    Einausgabe.class
    Arbeiten Sie dementsprechend mit Paketen (s. Übung)
    Beim Kompilieren und Ausführen der Dateien sollte Ihr Standort immer das Verzeichnis c:\Quellen
    sein.
    ------------------------------
    Überlegen Sie sich zunächst genau, welche Eigenschaften und Fähigkeiten (Attribute und
    Methoden) die Klasse "Geldautomat" haben sollte und insbesondere, welche Teile als Klassen- und
    welche als Objektelemente realisiert werden sollten.
    Die Klasse "GeldautomatLauf" soll keine weiteren Methoden außer main() enthalten und die Klasse
    Geldautomat verwenden. Die Klasse "EinAusgabe" kann von beiden Klassen verwendet werden.
    -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
    Mein Problem ist es, dass wir ein Packet EinAusgabe verwenden sollen, ich schrieben die Mettoden zum Einlesen immer selber.
    Meine Frage ist in dem Folgenden Code:

    Meine Main Methode:
    package bank;

    import einaus.*;
    //import java.io.*;

    public class Geldautomatenlauf
    {
    public static void main(String [] args)
    {
    long kontonummer;
    long pin;
    char auswahl = 'n' ;

    do
    {
    System.out.print("Nächster Kunde? (j)a oder (n)ein");
    auswahl = einaus.liesChar(); Hier ist er am meckern, warum???????

    }while(auswahl == 'j' || auswahl == 'J');

    und dann das EinAus - Ding

    package einaus;

    import java.io.*;

    public class EinAusgabe{

    // Eingabe-Methoden

    public static byte liesByte()
    {
    BufferedReader eingabe = new BufferedReader(new InputStreamReader(System.in));
    String eingabezeile="0";

    try { eingabezeile = eingabe.readLine(); }
    catch (java.io.IOException e) {}

    return Byte.parseByte(eingabezeile);
    }

    public static int liesInt()
    {
    BufferedReader eingabe = new BufferedReader(new InputStreamReader(System.in));
    String eingabezeile="0";

    try { eingabezeile = eingabe.readLine(); }
    catch (java.io.IOException e) {}

    return Integer.parseInt(eingabezeile);
    }

    public static long liesLong()
    {
    BufferedReader eingabe = new BufferedReader(new InputStreamReader(System.in));
    String eingabezeile="0";

    try { eingabezeile = eingabe.readLine(); }
    catch (java.io.IOException e) {}

    return Long.parseLong(eingabezeile);
    }

    public static float liesFloat()
    {
    BufferedReader eingabe = new BufferedReader(new InputStreamReader(System.in));
    String eingabezeile="0";

    try { eingabezeile = eingabe.readLine(); }
    catch (java.io.IOException e) {}

    return Float.parseFloat(eingabezeile);
    }

    public static double liesDouble()
    {
    BufferedReader eingabe = new BufferedReader(new InputStreamReader(System.in));
    String eingabezeile="0";

    try { eingabezeile = eingabe.readLine(); }
    catch (java.io.IOException e) {}

    return Double.parseDouble(eingabezeile);
    }

    public static char liesChar()
    {
    BufferedReader eingabe = new BufferedReader(new InputStreamReader(System.in));
    String eingabezeile="0";

    try { eingabezeile = eingabe.readLine(); }
    catch (java.io.IOException e) {}

    return eingabezeile.charAt(0);
    }

    public static String liesString()
    {
    BufferedReader eingabe = new BufferedReader(new InputStreamReader(System.in));
    String eingabezeile="Fehler";

    try { eingabezeile = eingabe.readLine(); }
    catch (java.io.IOException e) {}

    return eingabezeile;
    }

    // Ausgabe-Methoden

    public static void p(Object ob) {System.out.print(ob);}
    public static void pln(Object ob) { System.out.println(ob); }
    public static void pln() {System.out.println();}
    }

    Wie bekomme ich jetzt die Methode "liesChar()" aus dem Paket "einAus" in die Methode Main importiert??
    Habe ich was falsch gemacht??

    mfg und wäre nett wenn Ihr mir Helfen könntet.

    Normalerweise
    ist es ja zum Bespiel:
    import java.io.*;
    aber wie mache ich das mit dem selbstgeschrieben, wenn
    import einaus.*; nicht geht????

    Die .java dateien sind in dem Verzeichnis /media/OS/Java 1.Semester/JavaLabor/aufgabe3/Quellen/Bank für die HauptMethode und die Nebenmethode (Geldautomatenlauf und Geldautomat) sowie die Datei EinAusgabe in dem gleichen Verzeichnis nur anstelle von Bank EinAus

    die .class Dateien habe ich per Befehl erzeugt und in das Verzeichnis /media/OS/Java 1.Semester/JavaLabor/aufgabe3/Klassen und der compiler hat dann die Ordner einaus und bank erstellt.

    Aber er findet das einaus nicht.

    Danke
    Zuletzt editiert von Finchen961988; 07.11.2012, 13:36.

  • #2
    Nutze eine IDE für die Programmierung
    Christian

    Comment


    • #3
      Nutze eine IDE für die ProgrammierungJavaApplication104.zip
      Christian

      Comment


      • #4
        was ist denn eine IDE? Dummerweise sollen wir das nur Textbasiert machen und ich programmiere unter Linux weil wir da auch nur Linux haben, damit ich mich dran gewöhne.

        Danke

        Comment


        • #5
          was ist denn eine IDE?
          Hast du Internet?

          Kennst du Wikipedia?

          http://de.wikipedia.org/wiki/Integri...klungsumgebung

          Dummerweise sollen wir das nur Textbasiert machen und ich programmiere unter Linux weil wir da auch nur Linux haben, damit ich mich dran gewöhne.
          Ja, das ist dann textbasiert

          http://netbeans.org/

          http://netbeans.org/downloads/

          Ich weiss nicht wer und wo dir das etwas beibringen will, aber du solltest dir eine Alternative überlegen. Das ist kompletter Unsinn. Glaubt da jemand prof, Entwiclung läufr mit rumgefrickel auf der Kommadozeile ab?
          Christian

          Comment


          • #6
            also den Fehler mit dem import habe ich gefunden.

            aber mal nee andere Frage

            ich habe die Klasse Geldautomatenlauf,java di nur meine main methode haben soll und keine anderen da habe ich einen aufruf der anderen klasse geldautomat.java wo auch das menu wie oben beschrieben drinn steht, wie bekomme ich das hin das angezeigt wird wie viele Kunden den Automat benutzt haben.

            Und ich weiß nu was nee IDE ( hätte da Eclipse oder Netbeans gestanden dann hätte ich das verstanden), sorry für die lange leitung.

            Ja ich verstehe das mit den Textbasiert auch nicht, weil mit nem IDE wäre das einfacher sprich Codehighlights und so.

            danke.

            Comment


            • #7
              Die Frage verstehe ich nicht.

              a) das einzige Menü was ich sehe ist Nächster Kunde? (j)a oder (n)ein
              b) warum sollte das nun doppelt vorhanden sein
              Christian

              Comment


              • #8
                es kommt noch eine abfrage über
                Kontodaten abfragen (k)
                Geld abheben (a)
                Geld einzahlen (e)
                Dispokredit abfragen (d)
                Sitzung beenden(b)
                kann man die in der nebenklasse geldautomat mitzählen??

                Comment


                • #9
                  Wird schon gehen, ich habe aber keinen Überblick über deinen Code

                  M.E. bist du allerdings nach der Aufgabenstellung bisher nicht richtig vorgegangen:


                  [highlight=java]
                  public class Geldautomatenlauf
                  {
                  private static ArrayList<Kunde> Kunden=new ArrayList<>();

                  public static void main(String[] args)
                  {
                  Geldautomat geldautomat=new Geldautomat();
                  //Ein paar Kunden anlegen
                  geldautomat.getKunden().add(new Kunde("Kunde A","1234567890"));
                  geldautomat.getKunden().add(new Kunde("Kunde B","4711471147"));
                  geldautomat.getKunden().add(new Kunde("Kunde C","1111111111"));
                  geldautomat.getKunden().add(new Kunde("Kunde D","2222222222"));
                  //Geldautomaten starten
                  geldautomat.start();
                  }

                  }


                  [/highlight]


                  [highlight=java]
                  public class Geldautomat
                  {
                  private int anzahlBenutzer=0;
                  private char unterAuswahl;
                  private Kunde aktuellerKunde;
                  private static int PINLAENGE=4;
                  private ArrayList<Kunde> kunden=new ArrayList<>();

                  public void start()
                  {
                  char hauptAuswahl;
                  do
                  {
                  System.out.println("Nächster Kunde? (j)a oder (n)ein");
                  hauptAuswahl=EinAusgabe.liesChar();
                  if(hauptAuswahl=='j'||hauptAuswahl=='J')
                  {
                  aktuellerKunde=null;
                  do
                  {
                  System.out.println("Kontodaten abfragen (k)");
                  System.out.println("Geld abheben (a)");
                  System.out.println("Geld einzahlen (e)");
                  System.out.println("Dispokredit abfragen (d)");
                  System.out.println("Sitzung beenden(b)");
                  unterAuswahl=EinAusgabe.liesChar();
                  if(unterAuswahl!='b'&&unterAuswahl!='B')
                  {
                  loginUndCeckKunde();
                  }
                  }
                  while(unterAuswahl!='b'&&unterAuswahl!='B');
                  anzahlBenutzer++;
                  }
                  }
                  while(hauptAuswahl=='j'||hauptAuswahl=='J');
                  System.out.println("Benutzer des Systems:"+anzahlBenutzer);
                  }

                  private void loginUndCeckKunde()
                  {
                  String pin;
                  do
                  {
                  System.out.println("PIN eingeben");
                  pin=EinAusgabe.liesString();
                  if(pin.length()!=PINLAENGE)
                  {
                  System.out.println("PIN muss "+PINLAENGE+" stellig sein");
                  }
                  }
                  while(pin.length()!=PINLAENGE);
                  for(Kunde k:kunden)
                  {
                  if(k.getKontonummer().startsWith(pin))
                  {
                  aktuellerKunde=k;
                  break;
                  }
                  }
                  if(aktuellerKunde==null)
                  {
                  unterAuswahl='b';
                  System.out.println("Kein bekannter Kunde");
                  return;
                  }
                  System.out.println("Hallo "+aktuellerKunde.getName());
                  //Verzweige in die Methoden zur Bearbeitung der Geschäftsvorfälle
                  }

                  public ArrayList<Kunde> getKunden()
                  {
                  return kunden;
                  }

                  }


                  [/highlight]


                  [highlight=java]
                  public class Kunde
                  {
                  private String name;
                  private int kontostand=100;
                  private int dispo=1000;
                  private String kontonummer;

                  public Kunde(String name,String kontonummer)
                  {
                  this.name=name;
                  this.kontonummer=kontonummer;
                  }

                  public int getKontostand()
                  {
                  return kontostand;
                  }

                  public void setKontostand(int kontostand)
                  {
                  this.kontostand=kontostand;
                  }

                  public int getDispo()
                  {
                  return dispo;
                  }

                  public void setDispo(int dispo)
                  {
                  this.dispo=dispo;
                  }

                  public String getKontonummer()
                  {
                  return kontonummer;
                  }

                  public void setKontonummer(String kontonummer)
                  {
                  this.kontonummer=kontonummer;
                  }

                  public String getName()
                  {
                  return name;
                  }

                  public void setName(String name)
                  {
                  this.name=name;
                  }

                  }



                  [/highlight]


                  Wäre mein Ausgangspunkt, um diese Bedingung zu erfüllen

                  Die Klasse "GeldautomatLauf" soll keine weiteren Methoden außer main() enthalten und die Klasse
                  Geldautomat verwenden. Die Klasse "EinAusgabe" kann von beiden Klassen verwendet werden.
                  Zuletzt editiert von Christian Marquardt; 11.11.2012, 17:49.
                  Christian

                  Comment


                  • #10
                    cool
                    ja das sieht gut aus
                    so weit bin ich nu:

                    Geldautomatenlauf:

                    import java.io.*;

                    public class Geldautomatenlauf
                    {

                    public static void main(String [] args)
                    {
                    long kontonummer, pin, ktohilfe;
                    boolean bedienP=true;
                    char auswahl = 'n';
                    char amenue,neunutzer;
                    int nutzer = 0;


                    Geldautomatenlauf gal = new Geldautomatenlauf();

                    while(bedienP == true)
                    {
                    System.out.print("Bitte geben Sie Ihre Kontonummer ein (10 Stellig): ");
                    kontonummer = gal.liesLong();


                    ktohilfe = kontonummer / 100000;

                    do
                    {
                    System.out.print("Bitte geben Sie ihre Pinnummer ein (5 Stellen): ");
                    pin = gal.liesLong();


                    if(ktohilfe != pin)
                    {
                    System.out.print("Pin ist ungültig. Bitte nochmal");
                    }
                    }while(ktohilfe != pin);

                    do
                    {
                    System.out.println("Kontodaten abfragen\t(k)");
                    System.out.println("Geld abheben\t\t(a)");
                    System.out.println("Geld einzahlen\t\t(e)");
                    System.out.println("Dispokredit abfragen\t(d)");
                    System.out.println("Sitzung beenden\t\t(b)");
                    System.out.print("Ihre Wahl? " );
                    amenue = gal.liesChar();

                    switch(amenue)
                    {
                    case 'k':
                    case 'K':

                    break;
                    case 'a':
                    case 'A':

                    break;
                    case 'e':
                    case 'E':

                    break;
                    case 'd':
                    case 'D':

                    break;
                    default:
                    System.out.println("Abbruch");
                    }

                    }while(amenue != 'b');

                    nutzer++;

                    System.out.print("Erneutes Nutzen ? j/n ");
                    neunutzer = gal.liesChar();
                    if (neunutzer =='n')
                    {
                    bedienP =false;
                    }
                    System.out.println ("Heute waren " + nutzer + " Person(en)an diesem Automaten");

                    }



                    }

                    static char liesChar()
                    {
                    BufferedReader eingabe = new BufferedReader(new
                    InputStreamReader(System.in));
                    String eingabezeile="0";
                    try
                    {
                    eingabezeile = eingabe.readLine();
                    }
                    catch (java.io.IOException ex) {}
                    return eingabezeile.charAt(0);
                    }

                    static long liesLong()
                    {
                    BufferedReader eingabe = new BufferedReader(new
                    InputStreamReader(System.in));
                    String eingabezeile="0";
                    try
                    {
                    eingabezeile = eingabe.readLine();
                    }
                    catch (java.io.IOException e) {}
                    return Long.parseLong(eingabezeile);
                    }
                    }

                    Geldautomat

                    public class Geldautomat
                    {
                    long betrag;
                    long dispo;
                    long Kontobetr;
                    int Kd;
                    Geldautomat g = new Geldautomat();

                    public long setzeKonto()
                    {
                    betrag = 100;
                    return betrag;
                    }
                    public void Konto(long betrag)
                    {
                    Kontobetr = betrag;

                    }
                    public long setzeDispo()
                    {
                    dispo = 1000;
                    return dispo;
                    }

                    public void GeldEin()
                    {
                    System.out.print("Bitte den Betrag eingeben: ");


                    }
                    public long GeldAb()
                    {
                    return 0;
                    }

                    }

                    Nu will ich von Geldautomatenlauf die Kontonummer übergeben an die Klasse Geldautomat.
                    In der Switch/case die methoden der Klasse Geldautomat aufrufen, da ahbe ich noch ein Problem wie mache ich das ganze????

                    Comment


                    • #11
                      Der Code sieht nicht sehr gut aus.

                      Im Konstruktor der Klasse Geldautomat legst du eine Instanz eben dieser Klasse an? Wozu?
                      Betrag, dispo usw. gehören nicht in den Automaten, sondern zu einem Kunden; der Automat verwaltet die Kunden(konten).
                      Offenbar ist die EinAusgabeklasse in der Geldautomatenlauf gelandet-> die sollte lt. Aufgabenstellung importiert werden
                      Die Logik vom Geldautomatenlauf gehört in den Geldautomaten. Der bestimmt den Ablauf (Geschäftslogik)
                      Dein Geldautomatenlauf benutzt die Klasse Geldautomat überhaupt nicht, wenn ich das richtig sehe
                      Die Aufgabe war sicher nicht so gemeint, alles in die MAIN-Methode zu stopfen

                      Für deine Übergabe und dem switch/case musst du in der Klasse Geldautomatenlauf eine Instanz der Klasse Geldautomat erzeugen, mit der du arbeitest. In der Klasse Geldautomat schreibst du dann eine Methode setKontonummer die du dann aufrufen kannst


                      Benutze für deine Codeteile bitte


                      HTML Code:
                      [highlight=java]
                      ...Dein Javacode
                      [/highlight] 
                      Dann ist das besser lesbar
                      Zuletzt editiert von Christian Marquardt; 11.11.2012, 18:53.
                      Christian

                      Comment


                      • #12
                        Mit diesen Änderungen sollte die Aufgabe erfüllt sein

                        [highlight=java]
                        public class Geldautomat
                        {
                        private int anzahlBenutzer=0;
                        private char unterAuswahl;
                        private Kunde aktuellerKunde;
                        private static int PINLAENGE=4;

                        public void start()
                        {
                        char hauptAuswahl;
                        do
                        {
                        System.out.println("Nächster Kunde? (j)a oder (n)ein");
                        hauptAuswahl=EinAusgabe.liesChar();
                        if(hauptAuswahl=='j'||hauptAuswahl=='J')
                        {
                        aktuellerKunde=null;
                        do
                        {
                        System.out.println("Kontodaten abfragen (k)");
                        System.out.println("Geld abheben (a)");
                        System.out.println("Geld einzahlen (e)");
                        System.out.println("Dispokredit abfragen (d)");
                        System.out.println("Sitzung beenden(b)");
                        unterAuswahl=EinAusgabe.liesChar();
                        if(unterAuswahl!='b'&&unterAuswahl!='B')
                        {
                        if(aktuellerKunde==null)
                        {
                        loginUndCeckKunde();
                        }
                        else
                        {
                        checkUntermenue();
                        }
                        }
                        }
                        while(unterAuswahl!='b'&&unterAuswahl!='B');
                        anzahlBenutzer++;
                        }
                        }
                        while(hauptAuswahl=='j'||hauptAuswahl=='J');
                        System.out.println("Benutzer des Systems:"+anzahlBenutzer);
                        }

                        private void loginUndCeckKunde()
                        {
                        String pin;
                        do
                        {
                        System.out.println("PIN eingeben");
                        pin=EinAusgabe.liesString();
                        if(pin.length()!=PINLAENGE)
                        {
                        System.out.println("PIN muss "+PINLAENGE+" stellig sein");
                        }
                        }
                        while(pin.length()!=PINLAENGE);
                        for(Kunde k:Geldautomatenlauf.getKunden())
                        {
                        if(k.getKontonummer().startsWith(pin))
                        {
                        aktuellerKunde=k;
                        break;
                        }
                        }
                        if(aktuellerKunde==null)
                        {
                        unterAuswahl='b';
                        System.out.println("Kein bekannter Kunde");
                        return;
                        }
                        System.out.println("Hallo "+aktuellerKunde.getName());
                        checkUntermenue();
                        }

                        private void checkUntermenue()
                        {
                        switch(unterAuswahl)
                        {
                        case 'k':
                        case 'K':
                        showKontodaten();
                        break;
                        case 'e':
                        case 'E':
                        einzahlenGeld();
                        break;
                        case 'a':
                        case 'A':
                        abhebenGeld();
                        break;
                        case 'd':
                        case 'D':
                        showDispo();
                        break;
                        }
                        }

                        private void showKontodaten()
                        {
                        System.out.println("Bank: Bremer Bank");
                        System.out.println("Kontonummer: "+aktuellerKunde.getKontonummer());
                        showKontostand(false);
                        showDispo();
                        }

                        private void showKontostand(boolean showLeerzeile)
                        {
                        System.out.println("Kontostand: "+aktuellerKunde.getKontostand());
                        if(showLeerzeile)
                        {
                        System.out.println(" ");
                        }
                        }

                        private void showDispo()
                        {
                        System.out.println("Dispo: "+aktuellerKunde.getDispo());
                        System.out.println(" ");
                        }

                        private void einzahlenGeld()
                        {
                        System.out.println("Einzahlung");
                        System.out.println("wieviel?");
                        int einzahlung=EinAusgabe.liesInt();
                        if(einzahlung>0)
                        {
                        aktuellerKunde.setKontostand(aktuellerKunde.getKon tostand()+einzahlung);
                        }
                        showKontostand(true);
                        }

                        private void abhebenGeld()
                        {
                        System.out.println("Auszahlung");
                        System.out.println("wieviel?");
                        int auszahlung=EinAusgabe.liesInt();
                        if(auszahlung>(aktuellerKunde.getKontostand()+aktu ellerKunde.getDispo()))
                        {
                        System.out.println("Dieser Betrag steht nicht zur Verfügung");
                        }
                        else
                        {
                        aktuellerKunde.setKontostand(aktuellerKunde.getKon tostand()+auszahlung);
                        }
                        showKontostand(true);
                        }

                        }


                        [/highlight]
                        Christian

                        Comment


                        • #13
                          Hallo danke für die Antwort,

                          der Code ist echt gut!!
                          Ich habe einige Ideen verwendet, nu ist die main methode vll 12 Zeilen oder so lang.

                          Comment

                          Working...
                          X