Izdavanje računa

Autor zadatka: Rade Radišić <radisic.rade@uns.ac.rs>

Napisati program koji omogućuje izdavanje računa. Radnik unosi ime i prezime kupca (string od maksimalno 30 karaktera), kao i broj kupljenih artikala. Nakon toga, za svaki artikal potrebno je upisati šifru artikla (string od maksimalno 8 karaktera), kao i njegovu cenu. Ukoliko šifra artikla počinje sa karakterom 'P', to označava da je proizvod trenutno na popustu i da njegovu cenu treba umanjiti za 10%. Nakon unetih artikala ispisati ukupnu cenu koju kupac treba da plati sa obračunatim PDV-om, koji predstavlja dodatnih 20% na ukupnu cenu. Uraditi validaciju unosa za broj artikala, kao i za cenu. Program treba da vrati na ponovni unos korisnika ukoliko je uneo vrednost manju ili jednaku od nule u oba slučaja.

Primer rada programa:

Unesite ime i prezime kupca: Pera Peric
Unesite broj kupljenih artikala: 3
Sifra artikla 1: TR1054
Cena artikla 1: 249.99
Sifra artikla 2: QU4308
Cena artikla 2: 57.99
Sifra artikla 3: PG2058
Cena artikla 3: 163.99
Ostvaren popust na artikal, cena PG2058: 147.59

Ukupno: 455.57
Ukupno (sa PDV-om): 546.69

Primer rešenja

 1#include <stdio.h>
 2#include <string.h>
 3
 4#define MAX_KUPAC 31
 5#define MAX_SIFRA 9
 6
 7int main() {
 8    char kupac[MAX_KUPAC], sifra[MAX_SIFRA];
 9    int i, broj_artikala;
10    double cena_artikla, ukupno = 0.0;
11
12    printf("Unesite ime i prezime kupca: ");
13    fgets(kupac, MAX_KUPAC, stdin);
14    kupac[strlen(kupac) - 1] = '\0';
15
16    do {
17        printf("Unesite broj kupljenih artikala: ");
18        scanf("%d", &broj_artikala);
19    } while(broj_artikala <= 0);
20
21    for(i = 1;i <= broj_artikala;i++) {
22        printf("Sifra artikla %d: ", i);
23        scanf("%s", sifra);
24
25        do {
26            printf("Cena artikla %d: ", i);
27            scanf("%lf", &cena_artikla);
28        } while(cena_artikla <= 0);
29
30        if(sifra[0] == 'P') {
31            cena_artikla -= cena_artikla * 0.1;
32            printf("Ostvaren popust na artikal, cena %s: %.2lf\n", sifra, cena_artikla);
33        }
34
35        ukupno += cena_artikla;
36    }
37
38    printf("\nUkupno: %.2lf\n", ukupno);
39    printf("Ukupno (sa PDV-om): %.2lf\n", ukupno * 1.20);
40
41    return 0;
42}