2016-04-10 12 views
-3

Der Code funktioniert nicht richtig Das Programm läuft sowohl if Anweisungen und die Summe kommt nie richtig. Ich kann nicht herausfinden, was falsch ist. Welche Veränderungen muss ich machen, damit dies funktioniert? Die Richtungen sind unten.Wenn/sonst wird die falsche Anweisung // Methode nicht ausschließen?

Die Kosten, um ein Mitglied eines Fitness-Center werden wie folgt: (a) der Senior Bürger Rabatt beträgt 30%; (b) wenn die Mitgliedschaft für 12 oder weitere Monate im Voraus gekauft und bezahlt wird, beträgt der Rabatt 15%; oder (c) wenn mehr als 5 persönliche Trainingseinheiten gekauft werden, beträgt der Rabatt für jede Sitzung 20%. Schreiben Sie ein menügesteuertes Programm, das die Kosten einer neuen Mitgliedschaft bestimmt. Ihr Programm muss eine Methode enthalten, die allgemeine Informationen über Fitness-Center und seine Gebühren, eine Methode, um alle notwendigen Informationen , um die Mitgliedschaft Kosten zu ermitteln, und eine Methode zur Bestimmung der Mitgliedschaft Kosten. Verwenden Sie geeignete Parameter, um Informationen innerhalb und außerhalb einer Methode zu übergeben.

Welche Methoden sollte ich verwenden?

double grossdiscount1,grossdiscount2,grossdiscount3; 
    double grossprice1,grossprice2,grossprice3; 

    //end result of box calculation 
    double answerbox1,answerbox2,answerbox3; 
    double answerbox1b,answerbox2b,answerbox3b; 
    //Jtext inputs 
    double box1,box2,box3; 

    double discount1 = 0.30 ; 
    double discount2 = 0.20 ; 
    double discount3 = 0.15 ; 
    // prices PT=personal training MT=montly price 
    double pricePT =50.00; 
    double priceMT =100.00; 






    box1 = Double.parseDouble(jTextField1.getText()); 
    box2 = Double.parseDouble(jTextField2.getText()); 
    box3 = Double.parseDouble(jTextField3.getText()); 
// i brought these out of the if statement because the program won't run without 
// them being stated 
answerbox1b=box1*100; 
grossdiscount1=(box1*priceMT)*discount3;// the amount saved 
grossprice1=(box1*priceMT); 
answerbox1=(grossprice1-grossdiscount1); 
answerbox2b=(box2*pricePT); 
grossdiscount2=(box2*pricePT)*discount2;// the amount saved 
grossprice2=(box2*pricePT); 
answerbox2=(grossprice2-grossdiscount2); 

double total = answerbox1+answerbox2+answerbox1b+answerbox2b; 
grossdiscount3=(total*discount3);// the amount saved 
grossprice3=total; 
answerbox3=(grossprice3-grossdiscount3); 




    if(box1<11) 
    { 
    answerbox1b=box1*100; 
    } 
     else if(box1>12) 
     { 
     grossdiscount1=(box1*priceMT)*discount3;// the amount saved 
     grossprice1=(box1*priceMT); 
     answerbox1=(grossprice1-grossdiscount1); 
     } 

    if(box2<5) 
    { 
    answerbox2b=(box2*pricePT); 
    } 
     else if(box2>=5) 
     { 
     grossdiscount2=(box2*pricePT)*discount2;// the amount saved 
     grossprice2=(box2*pricePT); 
     answerbox2=(grossprice2-grossdiscount2); 
     } 

    if(box3==1) 
    { 
    grossdiscount3=(total*discount3);// the amount saved 
     grossprice3=total; 
     answerbox3=(grossprice3-grossdiscount3); 
    } 
     else if(box3==0); 
     { 

     } 


    jTextField4.setText(String.valueOf(total));  
+3

'else if (box1> 12) zu vergleichen Doppel in Java verwandten einen des Threads zu überprüfen;' - entfernen Sie die ';' – Eran

+0

Die 'if' Anweisung nicht‚hängen oben'. Es tut nichts, was auflegen könnte, außer eine Bedingung auszuwerten, die blockieren könnte, und dann null oder eine von einer oder zwei Anweisungen auszuführen, von denen jede blockieren könnte. – EJP

+0

aber die Programmierung funktioniert immer noch nicht Ich habe den Kern aber etwas falsch Ich fiel wie es sowohl das if als auch das else zur gleichen Zeit mit der endgültigen Ausgabe thats, was ich brauche Hilfe mit – mikeg4523

Antwort

1

Die else if -Anweisungen werden nicht korrekt geschrieben. Entferne das ; für einen korrekten Fluss.

Und ich empfehle Sie auch

+0

Also sagst du, dass es die Doppelgänger sind, die das verursachen? – mikeg4523

+0

Das Hauptproblem, das ich sehe, ist, dass diese Aussage sonst nicht korrekt ist, wenn (box1> 12); Das bedeutet, dass die nächsten Anweisungen in Klammern ebenfalls ausgeführt werden. entferne das ;. Beachten Sie auch, dass das Vergleichen von Doubles in Java (und anderen primitiven Typen) zu unerwarteten Ausgaben führen kann – Jorge

+0

bedeutet das, dass ich floats oder die einfache else-Anweisung verwenden soll – mikeg4523

Verwandte Themen