SHARE
TWEET

Untitled

a guest Oct 18th, 2019 84 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. #include <stdio.h>
  2.  
  3.  
  4. /* Funktionsdeklarationer */
  5. void print_menu(double exchange_rate);
  6. int read_number(void);
  7. double f_read_number(void);
  8. void add_prices(double *sum);
  9. double give_price(void);
  10. float print_sum(void);
  11.  
  12. int main(void){
  13.   int local_exchange_rate = 1;
  14.   double exchange_rate = 1;
  15.   int choice;
  16.  
  17.   printf("\nYour shopping assistant\n");
  18.  
  19.   /* 1. Så länge användaren inte valt att avsluta programmet,
  20.         upprepa följande: */
  21.   do {
  22.     /* 1.1 Skriv ut menyn */
  23.     print_menu(exchange_rate);
  24.  
  25.     /* 1.2 Läs in val */
  26.     choice = read_number();
  27.  
  28.     /* 1.3 Om valet är att sätta valutakurs */
  29.     if(choice == 1){
  30.       /* 1.3.1 Efterfråga valutakurs */
  31.       printf("\nGive exchange rate: ");
  32.       /* 1.3.2 Sätt valutakurs */
  33.       exchange_rate = f_read_number();
  34.     }
  35.  
  36.     /* 1.4 Om valet är att konvertera priser */
  37.     else if(choice == 2){
  38.       double sum;
  39.       /* 1.4.1 Summera priser så länge användaren ej avbryter */
  40.         add_prices(double *sum);
  41.         /* 1.4.1.1 Efterfråga pris (eller klar med inmatning) */
  42.         /* 1.4.1.2 Uppdatera summan (om det är ett giltigt pris) */
  43.       /* 1.4.2 Skriv ut summan i lokal valuta och i svenska kronor */
  44.         print_sum();
  45.     }
  46.  
  47.     /* 1.5 Om valet är ogiltigt */
  48.     else if(choice != 3){
  49.       /* 1.5.1 Skriv ut att det var ett ogiltigt val */
  50.       printf("\nNot a valid choice!\n");
  51.     }
  52.   } while(choice != 3);
  53.  
  54.   /* 2 Avsluta programmet */
  55.   printf("\nEnd of program!\n");
  56.  
  57.   return 0;
  58. }
  59.  
  60. /* Funktionsdefinitioner */
  61.  
  62. /* Funktion:    print_menu
  63.  * Beskrivning: Skriver ut menyn.
  64.  * Input:       Växlingskursen.
  65.  * Output:      Returnerar inget. Skriver ut menyn.
  66.  */
  67.  
  68. void print_menu(double exchange_rate){
  69.   printf("\n1. Set exchange rate in SEK ");
  70.   printf("(current rate: %.2f)\n", exchange_rate);
  71.   printf("2. Convert prices from the foreign currency\n");
  72.   printf("3. End\n\n");
  73. }
  74.  
  75. /* Funktion:    read_number
  76.  * Beskrivning: Läser in ett heltal som returneras
  77.  * Input:       Inget.
  78.  * Output:      Returnerar det inlästa talet.
  79.  */
  80.  
  81. int read_number(void){
  82.    int number;
  83.  
  84.    printf("Give your choice (1 - 3): ");
  85.    scanf("%d", &number);
  86.  
  87.    return number;
  88. }
  89.  
  90. /* Funktion:    f_read_number
  91.  * Beskrivning: Läser in ett decimaltal som returneras
  92.  * Input:       Inget.
  93.  * Output:      Returnerar det inlästa talet.
  94.  */
  95.  
  96. double f_read_number(void){
  97.    double f_number;
  98.  
  99.    scanf("%lf", &f_number);
  100.  
  101.    return f_number;
  102. }
  103.  
  104. /* Funktion:    add_prices
  105.  * Beskrivning: Adderar angivna priser tills användaren vill avsluta
  106.  * Input:       Inget.
  107.  * Output:      Inget.
  108.  */
  109.  
  110. void add_prices(double *sum){
  111.   do {
  112.     double price = give_price();
  113.  
  114.     if(price >= 0){
  115.       &sum += price;
  116.     }
  117.   } while price >= 0);
  118. }
  119.  
  120. /* Funktion:    give_price
  121.  * Beskrivning: Läser in angivet pris
  122.  * Input:       Inget.
  123.  * Output:      Returnerar priset.
  124.  */
  125.  
  126. double give_price(void){
  127.   double price;
  128.  
  129.   printf("\nGive price (finish with < 0): ");
  130.   scanf("%lf", &price);
  131.  
  132.   return price;
  133. }
  134.  
  135. /* Funktion:    print_sum
  136.  * Beskrivning: Skriver ut summan i utlänsk och Svensk valuta
  137.  * Input:       Inget.
  138.  * Output:      inget.
  139.  */
  140.  
  141. void print_sum(void){
  142.   printf("\nSum in foreign currency: %.2f\n", &sum);
  143.   printf("Sum in SEK: %.2f\n", exchange_rate * &sum);
  144. }
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
 
Top