// šbung 8 // Johann Gysin // 15.5.2001 #include // wegen scanf/printf #include // wegen Clearscreen (clrscr) // Konstanten #define max_artikel 5 #define laenge_artikelname 20 // Funktionen float SummeBerechnen(int anz_artikel); float RabattBerechnen(float bruttopreis); float ZuschlagBerechnen(int anz_artikel); float VersandkostenBerechnen(float nettopreis_ohne_vers); // Globale Variabeln char EingabeArtikel[laenge_artikelname][max_artikel]; int EingabeAnzahl[max_artikel]; float EingabePreis[max_artikel]; void main(void) { // Variabeln int i; // Allg. Laufvariabel int j; // Allg. Laufvariabel char artikelname[laenge_artikelname]; int anz_artikel; // Anzahl Artikel, welche der Kunde bestellen m”chte float summe_roh; float nettopreis_ohne_versand; float rabatt; float zuschlag; float versandkosten; float totalpreis; // Startbildschirm clrscr(); printf("Bestellschein erstellen\n"); printf("-----------------------\n"); printf("\n\n"); // Usereingaben do { printf("Wieviele Artikel m”chtest Du bestellen? (1..%d) ", max_artikel); scanf("%d", &anz_artikel); if ((anz_artikel<1) || (anz_artikel>max_artikel)) printf("\nUngltige Eingabe! (1..%d)\n", max_artikel); } while((anz_artikel<1) || (anz_artikel>max_artikel)); i = 0; do { printf("\nArtikel %d erfassen\n", (i+1)); printf("\nBezeichnung (nur ein Wort): "); scanf("%s", &artikelname); for (j = 0; j < (laenge_artikelname-1); j++) { EingabeArtikel[j][i] = artikelname[j]; } do { printf("Menge: "); scanf("%d", &EingabeAnzahl[i]); if (EingabeAnzahl[i]<1) printf("\nUngltige Eingabe! (Muss mindestens 1 sein)\n"); } while(EingabeAnzahl[i]<1); do { printf("Preis pro Stck: "); scanf("%f", &EingabePreis[i]); if (EingabePreis[i]<0.05) printf("\nUngltige Eingabe! Gratis gibts leider nix...\n"); } while(EingabePreis[i]<0.05); printf("\n\n"); i++; } while(i < anz_artikel); // Berechnungen summe_roh = SummeBerechnen(anz_artikel); rabatt = RabattBerechnen(summe_roh); zuschlag = ZuschlagBerechnen(anz_artikel); nettopreis_ohne_versand = summe_roh - rabatt + zuschlag; versandkosten = VersandkostenBerechnen(nettopreis_ohne_versand); totalpreis = nettopreis_ohne_versand + versandkosten; clrscr(); printf("Ausgabe\n"); printf("-------\n\n\n"); printf("Stck | Artikelname | Preis\n"); printf("------+----------------------+----------------\n"); printf(" | |"); for (i=0; i < (anz_artikel); i++) { for (j = 0; j < (laenge_artikelname-1); j++) { artikelname[j] = EingabeArtikel[j][i]; } printf("\n%5d | %20s | a Fr. %8.2f", EingabeAnzahl[i], &artikelname, EingabePreis[i]); } printf("\n\n\n\n Bruttopreis: Fr. %8.2f", summe_roh); printf("\n Rabatt: Fr. %8.2f", rabatt); printf("\n Zuschlag: Fr. %8.2f", zuschlag); printf("\n Versandkosten: Fr. %8.2f", versandkosten); printf("\n Totalpreis: Fr. %8.2f\n", totalpreis); // Ende printf("\n\nBye, bye...\n"); } //main float SummeBerechnen(int anz_artikel) { int i; float summe = 0; for (i=0; i<(anz_artikel); i++) { summe = summe + (EingabeAnzahl[i]*EingabePreis[i]); } return(summe); } float RabattBerechnen(float bruttopreis) { float rabatt = 0; if (bruttopreis > 100) { rabatt = bruttopreis * 0.03; } if (bruttopreis > 250) { rabatt = bruttopreis * 0.05; } return(rabatt); } float ZuschlagBerechnen(int anz_artikel) { int i; float zuschlag = 0; for (i=0; i