Thema: Auswahlkontrolle

Hi!

habe 2 Klassen:

Auftrag.java:

/** Auftrag.java
*    Klasse dient zur Erfassung einzelner Aufträge
*    @author Henrik Hohoff (henrik@hohoff-projekt.de)
*    10.01.2004
*/


    public class Auftrag{

    // Variablen werden deklariert
    private int auftragsnummer;
    private String auftraggeber;
    private int auftragsbeginn;
    private int auftragsende;
    private String auftragsstatus;
    private long gesamtpreis;
    private double rabatt;


        // Konstruktor wird definiert
        public Auftrag(int auftragsnummer, String auftraggeber, int auftragsbeginn,
                        int auftragsende, String auftragsstatus, long gesamtpreis, double rabatt){

        this.auftragsnummer = auftragsnummer;
        this.auftraggeber = auftraggeber;
        this.auftragsbeginn = auftragsbeginn;
        this.auftragsende = auftragsende;
        this.auftragsstatus = auftragsstatus;
        this.gesamtpreis = gesamtpreis;
        this.rabatt = rabatt;

        }

        // Methoden nehmen die Auftragsdaten auf *****************************

        public void setAuftragsnummer(int auftr_nr){
            auftragsnummer = auftr_nr;
        }

        public void setAuftraggeber(String auftr_geber){
            auftraggeber = auftr_geber;
        }

        public void setAuftragsbeginn(int auftr_beginn){
            auftragsbeginn = auftr_beginn;
        }

        public void setAuftragsende(int auftr_ende){
            auftragsende = auftr_ende;
        }

        public void setAuftragsstatus(String auftr_status){
            auftragsstatus = auftr_status;
        }

        public  void setGesamtpreis(long auftr_preis){
            gesamtpreis = auftr_preis;
        }

        public void setRabatt(double auftr_rabatt){
            rabatt = auftr_rabatt;
        }

        // Ende **************************************************************


        // Methoden berechnen die Auftragsdaten  *****************************

        public int getAuftragsnummer(){

            return(auftragsnummer);
        }


        public String getAuftraggeber(){

        return(auftraggeber);
        }


        public int getAuftragsbeginn(){

        return(auftragsbeginn);
        }


        public int getAuftragsende(){

        return(auftragsende);
        }


        public String getAuftragsstatus(){

        return(auftragsstatus);
        }


        public long getGesamtpreis(){
            long rabatt_in_DM = (long) ((gesamtpreis/100) *rabatt);
            long gesamtpreis_mit_Rabatt = gesamtpreis - rabatt_in_DM;
        return(gesamtpreis_mit_Rabatt);
        }




        public double getRabatt(){

        return(rabatt);
        }


        public int getRestlicheLaufzeit(int aktuelleKW){

        return(0);
        }


        public void alleDatenAusgeben(){
            System.out.println("Auftragsnummer: "+auftragsnummer+"");
            System.out.println("Auftraggeber: "+auftraggeber+"");
            System.out.println("Auftragsbeginn: "+auftragsbeginn+"");
            System.out.println("Auftragsende: "+auftragsende+"");
            System.out.println("Auftragsstatus: "+auftragsstatus+"");
            System.out.println("Gesamtpreis: "+gesamtpreis+"");
            System.out.println("Rabatt: "+rabatt+"");
        }

        // Ende  ***********************************************************

    }

und Auftragsverwaltung.java:

/** Auftragsverwaltung.java
*    Klasse dient zum testen der Klasse Auftrag.
*    @author Henrik Hohoff (henrik@hohoff-projekt.de)
*    10.01.2004
*/


    public class Auftragsverwaltung {

        Auftrag auftrag1 = new Auftrag(200401,"Mueller", 25, 31, "nicht angefangen", 300, 5.0);
        Auftrag auftrag2 = new Auftrag(200402,"Meier", 30, 37, "nicht angefangen", 500, 6.0);
        Auftrag auftrag3 = new Auftrag(200403,"Schuster", 27, 35, "nicht angefangen", 400, 8.0);


        public static void main (String[] args) throws java.io.IOException {

        java.io.BufferedReader in = new java.io.BufferedReader(new java.io.InputStreamReader(System.in));

        Auftragsverwaltung av = new Auftragsverwaltung();


        // Programmkopf

            for(int i=1; i<50; i++){
                System.out.print("*");
            }

            System.out.print("n");
            System.out.println("Auftragsverwaltung Henrik Hohoff Enterprises");
            for(int i=1; i<50; i++){
                System.out.print("*");
            }
            System.out.print("n");
        // Programmkopf Ende

        // Menuefuehrung

            System.out.print("Was moechten Sie tun? n");
            System.out.print("1. Einnahmen berechnenn");
            System.out.print("2. Rabatt erhoehenn");
            System.out.print("3. Alle Auftraege ausgebenn");
            System.out.print("4. einzelnen Auftrag zeigenn");
            for(int i=1; i<50; i++){
                System.out.print("*");
            }
            System.out.print("n");
            System.out.print("5. Programm beendennn");

            int wasTunEingabe = Integer.parseInt(in.readLine());
        // Menuefuehrung Ende


        // Auswahlkontrolle
            switch (wasTunEingabe){

                case 1 : av.berechneEinnahmen(); break;
                case 2 : av.aendereRabatt(); break;
                case 3 : av.alleAuftraegeAusgeben(); break;
                case 4 : av.alleAuftraegeAusgeben(); break;
                case 5 : System.out.println("n Danke und bis zum Naechsten Mal!nn");
                           System.exit(0);
                default: break;

            }// Auswahlkontrolle Ende

        // Programmkopf Ende


        } // public static void main (String[]args)


        // gibt alle Auftraege aus
        public void alleAuftraegeAusgeben(){
                auftrag1.alleDatenAusgeben();
                System.out.print("n");
                auftrag2.alleDatenAusgeben();
                System.out.print("n");
                auftrag3.alleDatenAusgeben();
        }// gibt alle Auftraege aus Ende


        // die gesamten Einnahmen werden berechnet
        public long berechneEinnahmen(){
            long einnahmen1 = auftrag1.getGesamtpreis();
            long einnahmen2 = auftrag2.getGesamtpreis();
            long einnahmen3 = auftrag3.getGesamtpreis();

            long endPreis = einnahmen1 + einnahmen2 + einnahmen3;
            System.out.println("die Einnahmen betragen:" + endPreis + "n");
            return endPreis;
        }

        public double aendereRabatt() throws java.io.IOException{

            java.io.BufferedReader in = new java.io.BufferedReader(new java.io.InputStreamReader(System.in));
            System.out.print("Um wieviel soll der Rabatt erhoeht werden? n");

            double neuerRabattEingabe = Double.parseDouble(in.readLine());

            double rabatt1 = auftrag1.getRabatt();
            double rabatt2 = auftrag2.getRabatt();
            double rabatt3 = auftrag3.getRabatt();

            rabatt1 = rabatt1 + neuerRabattEingabe;
            rabatt2 = rabatt2 + neuerRabattEingabe;
            rabatt3 = rabatt3 + neuerRabattEingabe;


            return neuerRabattEingabe;
        }


    }

ist ein wenig lang... smile
Hier geht es um drei vordefinierte Aufträge und Möglichkeiten sich verschiedene daten ausgeben zu lassen.
mein Problem ist, dass die Menueführung, also der Programmkopf nach Abarbeitung des Eingabe-befehls wieder die Menueführung anbieten soll.
Die Menueführung muss also in einer eigenen Methode definiert sein, die nach Abschluss der Ausgabe wieder aufgerufen werden soll...
kann mir da jmd helfen?

schöne Grüße

Re: Auswahlkontrolle

Mönsch...alles muss man selbst machen smile

import vfh.prog1.bib.Konsole;

/**
*    Dateiname: Auftragsverwaltung.java
*    Beschreibung: Klasse dient zum testen der Klasse Auftrag
*    @author  Henrik Hohoff, (henrik@hohoff-projekt.de)
*    @version  1.0  19.01.04
*
*/


public class Auftragsverwaltung {

    // Objekte werden erstellt
    Auftrag auftrag1 = new Auftrag(200401,"Mueller", 25, 31, "nicht angefangen", 300, 5.0);
    Auftrag auftrag2 = new Auftrag(200402,"Meier", 30, 37, "nicht angefangen", 500, 6.0);
    Auftrag auftrag3 = new Auftrag(200403,"Schuster", 27, 35, "nicht angefangen", 400, 8.0);


    public static void main(String[] args) throws java.io.IOException {

        // Variablen werden deklariert
        int auswahl;
        char wiederholung;

        // Ein neues Objekt der Klasse Geschenkpapier wird erzeugt
        Auftragsverwaltung av = new Auftragsverwaltung();


        // Ausgabe der Programmueberschrift
        for(int i=1; i<50; i++){
            System.out.print("*");
        }
        System.out.println("");
        System.out.println(" Programm zur Verwaltung von Auftraegen");
        for(int i=1; i<50; i++){
            System.out.print("*");
        }
        System.out.println("");

        // Menue stellt Programmauswahl bereit
        do{
            System.out.print("n");
            System.out.print("1. Einnahmen berechnenn");
            System.out.print("2. Rabatt erhoehenn");
            System.out.print("3. Alle Auftraege ausgebenn");
            System.out.print("4. einzelnen Auftrag zeigenn");
                for(int i=1; i<50; i++){
                    System.out.print("*");
                }
            System.out.print("n");
            System.out.print("5. Programm beendennn");

            auswahl = Konsole.getInputInt("Was moechten Sie als naechstes tun (1-5)?");

        // if-Abfrage steuert die Auswahl
            if (auswahl==1){
                av.berechneEinnahmen();
            }
            if (auswahl==2){
                av.erhoeheRabatt();
            }
            if (auswahl==3){
                av.alleAuftraegeAusgeben();
            }
            if (auswahl==4){
                av.einzelnenAuftragAusgeben();
            }
            if (auswahl==5){
                System.out.print("Danke und auf Wiedersehen!");
                System.exit(0);
            }
            // Zusatz für Programmwiederholung
            wiederholung = Konsole.getInputChar("Moechten Sie mit dem Programm weiterarbeiten (j/n)?");
        }
        // wenn 'j' dann Wiederholung, bei 'n' Abbruch
        while (wiederholung == 'j');

    } // Main Ende


    // Methode berechnet die gesamten Einnahmen abzüglich Rabatt
    public long berechneEinnahmen(){
        long einnahmen1 = auftrag1.getGesamtpreis();
        long einnahmen2 = auftrag2.getGesamtpreis();
        long einnahmen3 = auftrag3.getGesamtpreis();

        long endPreis = einnahmen1 + einnahmen2 + einnahmen3;
        System.out.println("die gesamten Einnahmen betragen: " + endPreis + "n");
        return endPreis;
    }


    // Methode ermittelt den neuen Rabatt
    public void erhoeheRabatt() throws java.io.IOException {
        java.io.BufferedReader in = new java.io.BufferedReader(new java.io.InputStreamReader(System.in));
        System.out.print("Um wieviel soll der Rabatt erhoeht werden? n");

        double neuerRabattEingabe = Double.parseDouble(in.readLine());

        double rabatt1 = auftrag1.getRabatt();
        double rabatt2 = auftrag2.getRabatt();
        double rabatt3 = auftrag3.getRabatt();

        rabatt1 = rabatt1 + neuerRabattEingabe;
        rabatt2 = rabatt2 + neuerRabattEingabe;
        rabatt3 = rabatt3 + neuerRabattEingabe;

        auftrag1.setRabatt(rabatt1);
        auftrag2.setRabatt(rabatt2);
        auftrag3.setRabatt(rabatt3);

        double neuerRabatt1 = auftrag1.getRabatt();
        double neuerRabatt2 = auftrag2.getRabatt();
        double neuerRabatt3 = auftrag3.getRabatt();

        System.out.println("Der neue Rabatt fuer Auftrag 1 ist: " + neuerRabatt1);
        System.out.println("Der neue Rabatt fuer Auftrag 2 ist: " + neuerRabatt2);
        System.out.println("Der neue Rabatt fuer Auftrag 3 ist: " + neuerRabatt3);

    }


    // Methode gibt alle Aufträge aus
    public void alleAuftraegeAusgeben(){

        auftrag1.alleDatenAusgeben();
        System.out.print("n");
        auftrag2.alleDatenAusgeben();
        System.out.print("n");
        auftrag3.alleDatenAusgeben();
    }


    // Methode gibt nach Eingabeaufforderung einzelnen Auftrag aus
    public void einzelnenAuftragAusgeben() throws java.io.IOException {

        java.io.BufferedReader in = new java.io.BufferedReader(new java.io.InputStreamReader(System.in));

        System.out.println("Bitte geben Sie die Auftragsnummer ein: ");

        int eingabe = Integer.parseInt(in.readLine());

        if(eingabe == auftrag1.getAuftragsnummer()){
            auftrag1.alleDatenAusgeben();
        }
        if(eingabe == auftrag2.getAuftragsnummer()){
            auftrag2.alleDatenAusgeben();
        }
        if(eingabe == auftrag3.getAuftragsnummer()){
            auftrag3.alleDatenAusgeben();
        }


    }


}

die Menueführung muss gar nicht in eine eigene Methode (da lag wohl auch mein denkfehler!?)... do/while in der Main-Methode und es läuft!!

schöne Grüße

3

Re: Auswahlkontrolle

Ich bin z.Zt. leider etwas von Java weg .. ;o) Aber Du hast es ja hin gekommen.

_______________________________________________________________

/-/annes (j|g) ... http://www.jg-webdesign.de

Re: Auswahlkontrolle

beim nächsten mal  :mrgreen:   big_smile