Aufgabe Rechnung erstellen in C
-
Hallo,
ich soll eine Rechnung erstellen, dazu muß ich diese Datei einlesen:Ernestine Musterfrau;Gebirgsallee 8a;14534 Bergdorf/Franken;//Rechnungsempfänger:Name;Strasse;Ort+plz
Gehaeuse;102.24;1; //Rechnungsdaten: Artikel;Preis;Menge
Netzteil;55.24;1;
Mainbord;45.24;1;
CPU;61.24;2;
Mein Problem ist, dass ich nicht weiß wie ich die Daten zur Berechnung aufgreifen soll. Wie das Einlesen funktioniert weiß ich.
Die Daten sind als char definiert. Ich denke, dass ich diese zuerst in float umwandeln und dann irgendwie als array aufrufen und berechnen muß?Bin für jeden Tipp dankbar.
-
Ja, fang doch mal mit der Erfassung der Daten an und poste den Code, ab wo Du nicht mehr weiterkommst.
-
#include <stdio.h>
#include <stdlib.h>
#include <string.h>void leerzeileDrucken(void)
{
printf("* *\n") ;
} ;void sternzeileDrucken(void)
{
printf("***********************************\n") ;
}void nameDrucken(char name[])
{
printf("* %s", name) ;
int laenge = strlen(name) ;
int lz = 35 - 5 - 1 - laenge ;
for (int i=0 ; i<lz ; i++)
{
printf(" ") ;
} ;
printf("*\n") ;
} ;void strasseDrucken(char strasse[])
{
printf("* %s *\n", strasse) ;
} ;void ortDrucken(char ort[])
{
printf("* %s *\n", ort) ;
} ;void visitenkarteDrucken(char name[],
char strasse[],
char ort[])
{
sternzeileDrucken() ;
leerzeileDrucken() ;
nameDrucken(name) ;
leerzeileDrucken() ;
strasseDrucken(strasse) ;
leerzeileDrucken() ;
ortDrucken(ort) ;
leerzeileDrucken() ;
sternzeileDrucken() ;
}
#include <stdlib.h>
#include <stdio.h>int main(int argc, char* args[])
{
{visitenkarteDrucken("Horst Hansen",
"Karl-Marx-Allee 111",
"10111 Berlin") ;
}FILE* in = fopen("Rechnungsdaten00.txt", "r");
if (in == NULL)
{
printf("Eingabedatei \"%s\" konnte nicht geöffnet werden!\n", "Rechnungsdaten00.txt");
return EXIT_FAILURE ;
} ;
char dieZeile[256] = { '\0' };
do
{
fgets(dieZeile, 255, in);
printf("%s", dieZeile);
} while(dieZeile[0] != ';');
fclose(in);return EXIT_SUCCESS ;
}Die Datei "Rechnungsdaten00.txt" sieht so aus:
Ernestine Musterfrau;Gebirgsallee 8a;14534 Bergdorf/Franken;
Gehaeuse;102.24;1;
Netzteil;55.24;1;
Mainbord;45.24;1;
CPU;61.24;2;
Kuehler;19.99;2;
RAM;42.34;4;
Grafikkarte;101.24;1;
Tastatur;10.00;1;
Maus;11.11;1;
Festplatten;89.22;3;
;
-
Also, ab überall oda watt?
-
Regel Nummer eins: Bitte, bitte, in C/C++- Tags fassen.
#include <stdio.h> #include <stdlib.h> #include <string.h> void leerzeileDrucken(void) { printf("* *\n") ; } ; void sternzeileDrucken(void) { printf("***********************************\n") ; } void nameDrucken(char name[]) { printf("* %s", name) ; int laenge = strlen(name) ; int lz = 35 - 5 - 1 - laenge ; for (int i=0 ; i<lz ; i++) { printf(" ") ; } ; printf("*\n") ; } ; void strasseDrucken(char strasse[]) { printf("* %s *\n", strasse) ; } ; void ortDrucken(char ort[]) { printf("* %s *\n", ort) ; } ; void visitenkarteDrucken(char name[], char strasse[], char ort[]) { sternzeileDrucken() ; leerzeileDrucken() ; nameDrucken(name) ; leerzeileDrucken() ; strasseDrucken(strasse) ; leerzeileDrucken() ; ortDrucken(ort) ; leerzeileDrucken() ; sternzeileDrucken() ; } #include <stdlib.h> #include <stdio.h> int main(int argc, char* args[]) { {visitenkarteDrucken("Horst Hansen", "Karl-Marx-Allee 111", "10111 Berlin") ; } FILE* in = fopen("Rechnungsdaten00.txt", "r"); if (in == NULL) { printf("Eingabedatei \"%s\" konnte nicht geöffnet werden!\n", "Rechnungsdaten00.txt"); return EXIT_FAILURE ; } ; char dieZeile[256] = { '\0' }; do { fgets(dieZeile, 255, in); printf("%s", dieZeile); } while(dieZeile[0] != ';'); fclose(in); return EXIT_SUCCESS ; }
Gibt's das auch mit Einrückungen?
Und dann bitte ganz genau die Aufgabenstellung ... so langsam könnten wir uns nähern