2016-04-07 7 views
-1

Ich arbeite an einem Programm. Das versuche ich zu erreichen; Das Programm sollte ein Menü von Tarifen anzeigen, aus denen Sie wählen können. Verwenden Sie einen Schalter, um den Tarif auszuwählen. Der Beginn eines Laufs sollte ungefähr so ​​aussehen: enter image description hereC-Code, was fehlt mir für dieses Steueranweisungsprogramm?

Wenn die Optionen 1 bis 4 ausgewählt sind, sollte das Programm die geleisteten Arbeitsstunden anfordern. Das Programm sollte recyceln, bis 5 eingegeben wird. Wenn etwas anderes als die Auswahlmöglichkeiten 1 bis 5 eingegeben wird, sollte das Programm den Benutzer daran erinnern, was die richtigen Entscheidungen sind, und dann recyceln. Verwenden Sie #definierte Konstanten für die verschiedenen Einkommens- und Steuersätze.

Das ist der Code den ich bisher habe, was fehlt mir ?;

#include <stdio.h> 
#include <stdlib.h> 

int main() 
{ 
int choice, hour; 
float taxe, total; 

printf("****************************************************************\n"); 
printf("\nEnter the number corresponding to the desired pay rate or action"); 
printf("\n1)$8.75/hr"); 
printf("\n2)$9.33/hr"); 
printf("\n3)$10.00/hr"); 
printf("\n4)$11.20hr"); 
printf("\n5)Quit"); 
printf("**********************************************************\n"); 

scanf("%d", &choice); 

printf("Please enter number of hours: "); 
scanf("%d", &hour); 

switch(choice){ 
case 1: 
    total = 8.75* hour; 
    break; 
case 2: 
    total = 9.33*hour; 
    break; 
case 3: 
    total = 10.00*hour; 
    break; 
case 4: 
    total = 11.20*hour; 
    break; 
case 5: 
    break; 
return 0; 
} 
} 
+0

Diese wie Hausaufgaben klingt für mich, oder? – anderas

+0

@KlasLindbäck danke, das macht Sinn. Muss ich nur "While" -Schleife verwenden, oder muss es eine "Do While" -Schleife sein? – user3247128

Antwort

2

was bin ich dabei?

Was fehlt, ist die tatsächliche Iteration.

Das Programm sollte recyceln, bis 5 eingegeben wird.

Das bedeutet, dass Sie alle Ihre Arbeit in einer Schleife zu tun haben, die jedes Mal überprüft, ob der gelesene Wert 5 ist, die Sie benötigen, um das Iterieren zu stoppen. Sie können eine der folgenden Möglichkeiten:

  1. while-Schleife:

    scanf("%d", &choice); 
    while (choice != 5) 
    { 
        .... 
        switch(choice){ 
         .... 
        } 
        .... 
    scanf("%d", &choice); 
    } 
    
  2. for-Schleife:

    for (scanf("%d", &choice); choice != 5; scanf("%d", &choice);) 
    { 
        .... 
        switch(choice){ 
         .... 
        } 
        .... 
    } 
    
  3. do-while-Schleife:

    do{ 
        scanf("%d", &choice); 
        .... 
        switch(choice){ 
         .... 
        } 
        .... 
    }while(choice != 5); 
    
+0

das ist erstaunlich, danke! – user3247128

+0

@ user3247128 Ich bin froh, dass es geholfen hat :) – Marievi

2

Sie haben keine Schleife verwendet. Es kann nicht recycelt werden, bis 5 eingegeben wurde.

Nach der Auswahl nehmen, legen eine while-Schleife:

while(choice != 5){ 

und Prozess normalerweise Switch, der 5-Wert ignoriert, das Hinzufügen einer „default“ Fall, wenn ein anderer Wert eingegeben wird.

Wenn das gesamte Programm wiederverwendet werden soll, verwenden Sie do {} while(); Beginnend auf Ihrem Printf, endend nach dem Switch.

+0

Kommt immer auf den Anwendungsfall an. Befolgen Sie diese Fragen, um zu wissen, welche Schleife zu verwenden ist. Nach dem Anwendungsfall wissen Sie, wo Sie es hinstellen müssen. Wissen Sie, wie viele Schleifen das Programm zu tun hat? => for loop Muss das Programm einmal oder mehrmals in der Schleife gehen? => tun while-Schleife Sonst, while-Schleife. Mit der while kann das Programm nur brechen, wenn die Aussage nicht wahr ist. Mit while muss das Programm die Anweisung einmal machen, oder mehr, die Aussage ist wahr. – Aeldred

+0

Sie sind so hilfreich, danke nett :) – user3247128

1

Sie yo Gebrauch haben zu tun, während Schleife hier wie unter

do 
{ 
    clrscr(); 
    printf("****************************************************************\n"); 
    printf("\nEnter the number corresponding to the desired pay rate or action"); 
    printf("\n1)$8.75/hr"); 
    printf("\n2)$9.33/hr"); 
    printf("\n3)$10.00/hr"); 
    printf("\n4)$11.20hr"); 
    printf("\n5)Quit"); 
    printf("**********************************************************\n"); 

    scanf("%d", &choice); 

    printf("Please enter number of hours: "); 
    scanf("%d", &hour); 

    switch(choice){ 
    case 1: 
     total = 8.75* hour; 
     break; 
    case 2: 
     total = 9.33*hour; 
     break; 
    case 3: 
     total = 10.00*hour; 
     break; 
    case 4: 
     total = 11.20*hour; 
     break; 
    case 5: 
     break; 
    default : 
     printf("\n please enter proper choice"); 
     getch(); 
    } 
}while(choice !=5); 
Verwandte Themen