Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- /* Funktionsdeklarationer */
- void print_menu(double exchange_rate);
- int read_number(void);
- double read_exchange_rate(void);
- double sum_prices(void);
- double give_price(void);
- void print_sum(double exchange_rate, double sum);
- int main(void){
- double exchange_rate = 1;
- int choice;
- printf("\nYour shopping assistant\n");
- /* 1. Så länge användaren inte valt att avsluta programmet,
- upprepa följande: */
- do {
- /* 1.1 Skriv ut menyn */
- print_menu(exchange_rate);
- /* 1.2 Läs in val */
- choice = read_number();
- /* 1.3 Om valet är att sätta valutakurs */
- if(choice == 1){
- /* 1.3.1 Efterfråga valutakurs */
- /* 1.3.2 Sätt valutakurs */
- exchange_rate = read_exchange_rate();
- }
- /* 1.4 Om valet är att konvertera priser */
- else if(choice == 2){
- double sum;
- int local_exchange_rate = 1;
- /* 1.4.1 Summera priser så länge användaren ej avbryter */
- /* 1.4.1.1 Efterfråga pris (eller klar med inmatning) */
- /* 1.4.1.2 Uppdatera summan (om det är ett giltigt pris) */
- sum = sum_prices();
- /* 1.4.2 Skriv ut summan i lokal valuta och i svenska kronor */
- print_sum(local_exchange_rate, sum);
- }
- /* 1.5 Om valet är ogiltigt */
- else if(choice != 3){
- /* 1.5.1 Skriv ut att det var ett ogiltigt val */
- printf("Not a valid choice!\n");
- }
- } while(choice != 3);
- /* 2 Avsluta programmet */
- printf("End of program!\n");
- return 0;
- }
- /* Funktionsdefinitioner */
- /* Funktion: print_menu
- * Beskrivning: Skriver ut menyn.
- * Input: Växlingskursen.
- * Output: Returnerar inget. Skriver ut menyn.
- */
- void print_menu(double exchange_rate){
- printf("\n1. Set exchange rate in SEK ");
- printf("(current rate: %.2f)\n", exchange_rate);
- printf("2. Convert prices from the foreign currency\n");
- printf("3. End\n\n");
- }
- /* Funktion: read_number
- * Beskrivning: Läser in ett heltal som returneras
- * Input: Inget.
- * Output: Returnerar det inlästa talet.
- */
- int read_number(void){
- int number;
- printf("Give your choice (1 - 3): ");
- scanf("%d", &number);
- printf("\n");
- return number;
- }
- /* Funktion: f_read_number
- * Beskrivning: Läser in ett decimaltal som returneras
- * Input: Inget.
- * Output: Returnerar det inlästa talet.
- */
- double read_exchange_rate(void){
- double f_number;
- printf("Give exchange rate: ");
- scanf("%lf", &f_number);
- return f_number;
- }
- /* Funktion: sum_prices
- * Beskrivning: Adderar angivna priser tills användaren vill avsluta
- * Input: Inget.
- * Output: Inget.
- */
- double sum_prices(void){
- double price;
- double sum;
- do {
- price = give_price();
- if (price >= 0){
- sum += price;
- }
- } while(price >= 0);
- return sum;
- }
- /* Funktion: give_price
- * Beskrivning: Läser in angivet pris
- * Input: Inget.
- * Output: Returnerar priset.
- */
- double give_price(void){
- double price;
- printf("Give price (finish with < 0): ");
- scanf("%lf", &price);
- return price;
- }
- /* Funktion: print_sum
- * Beskrivning: Skriver ut summan i utlänsk och Svensk valuta
- * Input: Inget.
- * Output: inget.
- */
- void print_sum(double exchange_rate, double sum){
- printf("\nSum in foreign currency: %.2f\n", sum);
- printf("Sum in SEK: %.2f\n", exchange_rate * sum);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement