1. #1
    Avatar von aquastar
    Registriert seit
    08.11.2011
    Beiträge
    1.024
    Thanked 1.110 Times in 580 Posts

    Standard [Java]Aus einer Klasse, zwei machen

    Hallo ihr Freunde der Programmierung!

    Wir haben in der Schule so ein Aufgabenblatt bekommen, nichts besonderes, totaler Crap. Hier erstmal der Code:

    Spoiler:
    PHP-Code:
    import java.util.Scanner;

    public class 
    Klausur{
      public static 
    void main(String args[]){
      
    double Kilometer=0Minuten=0KostenTelekom=0KostenArcor=0KostenMobilcom=0Guenstig=0;
      
    String antwortanbieter="";
      
    Scanner eingabe = new Scanner(System.in);

        do{
      
    System.out.println("Geben sie die Entfernung zum Gesprächspartner (in Km) an:");
      
    Kilometer eingabe.nextDouble();
      }while(
    Kilometer <= || Kilometer 800 );

      
    System.out.println("Geben sie die Gesprächsdauer(in Minuten) an:");
      
    Minuten eingabe.nextDouble();

      if(
    Kilometer <= 20){
        
    KostenTelekom Minuten/3*0.12;
        
    KostenArcor Minuten/3*0.20;
        
    KostenMobilcom Minuten/3*0.25;
        
    Guenstig KostenTelekom;
        
    anbieter "Telekom";

      }else if(
    Kilometer >= 21 && Kilometer <= 50){
        
    KostenTelekom Minuten/3*0.36;
        
    KostenArcor Minuten/3*0.30;
        
    KostenMobilcom Minuten/3*0.40;
        
    Guenstig KostenArcor;
        
    anbieter "Arcor";

      }else if(
    Kilometer >= 50){
        
    KostenTelekom Minuten/3*0.60;
        
    KostenArcor Minuten/3*0.70;
        
    KostenMobilcom Minuten/3*0.50;
        
    Guenstig KostenMobilcom;
        
    anbieter "Mobilcom";
      }
      
    System.out.println("----------------------------------------------------------------------");
      
    System.out.println("Anbieter:         Gesprächskosten:         zu wählende Vorwahl:");
      
    System.out.println("----------------------------------------------------------------------");
      
    System.out.println(String.format("Telekom:          %s Euro                - keine-            ", (float)KostenTelekom));
      
    System.out.println(String.format("Arcor:            %s Euro                0 10 19            ", (float)KostenArcor));
      
    System.out.println(String.format("Mobilcom:         %s Euro                0 10 70            ", (float)KostenMobilcom));
      
    System.out.println("----------------------------------------------------------------------");
      
    System.out.println(String.format("Der günstigste Anbieter ist %s mit einem Preis von: %s Euro"anbieterGuenstig));

      
    System.out.println("----------------------------------------------------------------------");
      
    System.out.println("Möchten sie das Programm wiederholen? (y/n)");
      
    antwort eingabe.next();
      
    System.out.println(" ");
      if(
    antwort.equals("y") || antwort.equals("Y")){
        
    main(args);
        return;
      } else{
        
    System.out.println("Das Programm wird geschlossen");
      }
     }



    Naja, wie ihr im Topic lesen könnt, wollte ich fragen, wie ich diese Klasse nun in zwei spaltn kann. Es soll in der einen die Berechnung ausgeführt werden und in der Anderen die Ausgabe vom ganzen.

    Ich hab kein Plan, wie ich daran gehen soll, wär super, wenn mir das einer erklären könnte bzw. posten würde, wie ich das ganze anstelle.

    MfG,
    aquastar

  2. #2
    Avatar von uncopyable
    Registriert seit
    19.11.2011
    Beiträge
    282
    Thanked 235 Times in 120 Posts

    Standard AW: [Java]Aus einer Klasse, zwei machen

    Sodele hier mal mein Vorschlag

    Klasse Klausur
    PHP-Code:
    import java.util.Scanner;
    public class 
    Klausur {

        public static 
    void main(String args[]) {
            
    Worker worker = new Worker();  // Neue Worker Klasse erstellen
            
    double Kilometer 0Minuten 0;
            
    Scanner eingabe = new Scanner(System.in);
            
    String antwort;
            
    System.out.println("Geben sie die Entfernung zum Gesprächspartner (in Km) an:");
            
    Kilometer eingabe.nextDouble();
            
    System.out.println("Geben sie die Gesprächsdauer(in Minuten) an:");
            
    Minuten eingabe.nextDouble();
            
    worker.doWork(KilometerMinuten); // dem Worker die Daten übergeben

            
    while (true) {  // warten...

                
    if (worker.getStatus()) {  // wenn der Worker fertig ist...
                    
    System.out.println(worker.getAusgabe()); // holen wir uns die Ausgabe und geben sie aus.
                    
    System.out.println("Möchten sie das Programm wiederholen? (y/n)");
                    
    antwort eingabe.next();
                    if (
    antwort.equals("y") || antwort.equals("Y")) {
                        
    main(args);
                        return;
                    } else {
                        
    System.out.println("Das Programm wird geschlossen");
                    }
                    break;
                }


            }

        }


    Klasse Worker

    PHP-Code:
    public class Worker {

        private 
    StringBuilder ausgabe;
        private 
    boolean Completed false;
        private 
    double KilometerMinutenKostenTelekomKostenArcorKostenMobilcomGuenstig;
        private 
    String anbieter;

        public 
    Worker() {
            
    ausgabe = new StringBuilder();
            
    Completed false;
            
    Kilometer 0;
            
    Minuten 0;
            
    KostenTelekom 0;
            
    KostenArcor 0;
            
    KostenMobilcom 0;
            
    Guenstig 0;
            
    anbieter "";
        }

        public 
    String getAusgabe() {  // Ausgabe zurückgeben
            
    return ausgabe.toString();
        }

        public 
    boolean getStatus() { // Status zurückgeben
            
    return Completed;
        }

        public 
    void doWork(double Kilometerdouble Minuten) {  // arbeiten...
            
    if (Kilometer <= 20) {
                
    KostenTelekom Minuten 0.12;
                
    KostenArcor Minuten 0.20;
                
    KostenMobilcom Minuten 0.25;
                
    Guenstig KostenTelekom;
                
    anbieter "Telekom";

            } else if (
    Kilometer >= 21 && Kilometer <= 50) {
                
    KostenTelekom Minuten 0.36;
                
    KostenArcor Minuten 0.30;
                
    KostenMobilcom Minuten 0.40;
                
    Guenstig KostenArcor;
                
    anbieter "Arcor";

            } else if (
    Kilometer >= 50) {
                
    KostenTelekom Minuten 0.60;
                
    KostenArcor Minuten 0.70;
                
    KostenMobilcom Minuten 0.50;
                
    Guenstig KostenMobilcom;
                
    anbieter "Mobilcom";
            }



            
    ausgabe.append("----------------------------------------------------------------------\n");
            
    ausgabe.append("Anbieter:         Gesprächskosten:         zu wählende Vorwahl:\n");
            
    ausgabe.append("----------------------------------------------------------------------\n");
            
    ausgabe.append("Telekom:          ");
            
    ausgabe.append((float) KostenTelekom);
            
    ausgabe.append(" Euro                      - keine-            \n");
            
    ausgabe.append("Arcor:            ");
            
    ausgabe.append((float) KostenArcor);
            
    ausgabe.append(" Euro                0 10 19            \n");
            
    ausgabe.append("Mobilcom:         ");
            
    ausgabe.append((float) KostenMobilcom);
            
    ausgabe.append(" Euro                0 10 70            \n");
            
    ausgabe.append("----------------------------------------------------------------------\n");
            
    ausgabe.append("Der günstigste Anbieter ist ");
            
    ausgabe.append(anbieter);
            
    ausgabe.append(" mit einem Preis von: ");
            
    ausgabe.append(Guenstig);
            
    ausgabe.append(" Euro\n");
            
    ausgabe.append("----------------------------------------------------------------------\n");
            
    Completed true;

        }

    Hinweis: Ich hab Java nicht gelernt oder sonst was hab mir alles bisher selbst bei gebracht, daher könnte die Lösung schlecht sein!


    while( behappy() ) { code(); }

  3. The Following 2 Users Say Thank You to uncopyable For This Useful Post:

    DnL (11.05.2012), Starbucks (30.10.2018)

Ähnliche Themen

  1. Antworten: 8
    Letzter Beitrag: 02.12.2013, 23:41
  2. [Java] Kleine Klasse für Polynome
    Von Mr. White im Forum Java
    Antworten: 0
    Letzter Beitrag: 26.06.2013, 15:13
  3. Antworten: 11
    Letzter Beitrag: 19.04.2013, 21:26
Diese Seite nutzt Cookies, um das Nutzererlebnis zu verbessern. Klicken Sie hier, um das Cookie-Tracking zu deaktivieren.