Profit Calculator
Was only a exercise!!! This program calculates income and expenditure in German! First you must create two files with the 1 and 6 And it has an error in 8 because the array is not released and the old results will be counted.
#include <stdio.h> #include <string.h> #include <conio.h> #include <stdlib.h> #include <iostream.h> #include <windows.h> int a = 0; int x = 1; int Einnahmen[365][12]; int ausgaben [365][12]; int summe=0; float durchschnitt = 0.0; float steuer = 0.0; char Text[600]; char wahl, wahl2, wahl3; static char monat[12][10] = {"Januar", "Februar", "Maerz", "April", "Mai", "Juni", "Juli", "August", "September", "November", "Dezember" }; int tag = 0; float tmp = 0, tmp1 = 0, tmp2 = 0; int t = 0, mon = 0, zeile=0,Buffer =0, Buffer2 = 0; FILE *fp; void main() { SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 15); fp = fopen("text.txt","r+"); if (fp==NULL) { printf("Fehler beim Oeffnen! Bitte ueberpruefe deinen Pfad!\n"); fp = fopen("text.txt","w+"); } while ( fgets(Text, sizeof(Text), fp) !=0 ) { zeile = zeile +1; } fclose(fp); while (wahl != 9) { SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 12); printf("\t\tEinnahmenverarbeitungsprogramm version 1.0.1.0\n\n"); SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 9); printf("\tSie haben folgende Optionen:\n\t--------------------------------" "-------------\n\n\t(1) Einnahmen eingeben und speichern\n\t" "(2) Einnahmen aus Datei einlesen \n\t(3) Gesamteinnahmen ausgeben\n" "\t(4) Steuerabzuege\n \t(5) Monatseinnahmen\n \t(6) Ausgaben eingeben und speichern\n" "\t(7) Ausgaben aus Datei laden\n \t(8) Gewinn und Verlustrechnung\n \t(9) Beenden\n"); SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 12); printf("\n\n\t\tEs gibt bereits Einnahmen von %i Tagen in der Datei:\n", zeile); SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 9); printf ("\n\tBitte treffen Sie Ihre Wahl: "); scanf("%i", &wahl); switch (wahl) { case 1: { SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 12); system ("cls"); printf ("\t\t----------------------------------------\n"); printf ("\t\t| Einnahmen eingeben und speichern |\n"); printf ("\t\t----------------------------------------\n\n"); SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 9); zeile = 0; fp = fopen ("text.txt", "r+"); if (fp==NULL) printf("Fehler die Angegebene Datei wurde nicht gefunden!\n"); while (fscanf (fp, "%i",&Einnahmen[zeile][a]) != EOF) { zeile = zeile +1; if (zeile > 0 && zeile <= 31) mon = 0; else if (zeile > 31 && zeile <= 59) mon = 1; else if (zeile > 59 && zeile <= 90) mon = 2; else if (zeile > 90 && zeile <= 120) mon = 3; else if (zeile > 120 && zeile <= 151) mon = 4; else if (zeile > 151 && zeile <= 181) mon = 5; else if (zeile > 181 && zeile <= 212) mon = 6; else if (zeile > 212 && zeile <= 242) mon = 7; else if (zeile > 242 && zeile <= 273) mon = 8; else if (zeile > 273 && zeile <= 303) mon = 9; else if (zeile > 303 && zeile <= 334) mon = 10; else if (zeile > 334 && zeile <= 364) mon = 11; } printf ("Es gibt Einnahmen von %i Tagen und der aktuelle Monat ist: %s\n", zeile, monat[mon]); printf ("______________________________________________________________\n\n"); fclose (fp); SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 12); printf ("Wieviele Tage moechten Sie eingeben?\n"); printf ("=====================================\n"); SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 9); scanf("%i", &t); for (x = zeile; x < t+zeile; x++) { printf("Bitte die Einnahmen des %i Tages eingeben:\n",x+1); scanf("%i", &Einnahmen[x][a]); } fp = fopen("text.txt", "a+"); for (x=zeile; x < t+zeile; x++) fprintf( fp, "%i\n", Einnahmen[x][a]); fclose (fp); break; } case 2: { system ("cls"); SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 12); printf ("\t\t----------------------------------------\n"); printf ("\t\t| Einnahmen aus Datei einladen |\n"); printf ("\t\t----------------------------------------\n\n"); SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 9); zeile = 0; fp = fopen ("text.txt", "r+"); if (fp==NULL) { printf("Fehler die Angegebene Datei wurde nicht gefunden!\n"); } while (fscanf (fp, "%i",&Einnahmen[zeile][a]) != EOF) //Hier habe ich das geändert!!! { if (zeile > 0 && zeile <= 30) mon = 0; else if (zeile > 30 && zeile <= 58) mon = 1; else if (zeile > 58 && zeile <= 89) mon = 2; else if (zeile > 89 && zeile <= 119) mon = 3; else if (zeile > 119 && zeile <= 150) mon = 4; else if (zeile > 151 && zeile <= 181) mon = 5; else if (zeile > 181 && zeile <= 212) mon = 6; else if (zeile > 212 && zeile <= 242) mon = 7; else if (zeile > 242 && zeile <= 273) mon = 8; else if (zeile > 273 && zeile <= 303) mon = 9; else if (zeile > 303 && zeile <= 334) mon = 10; else if (zeile > 334 && zeile <= 364) mon = 11; printf("Am Tag:%i Einnahmen:%i Monat:%s\n", zeile+1, Einnahmen[zeile][a], monat[mon]); zeile++; } printf("Sie haben bereits Einnahmen von %i Tagen in der Datei:\n", zeile); //für mich zum Test als Stichprobe fclose (fp); break; } case 3: { system ("cls"); SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 12); printf ("\t\t----------------------------------------\n"); printf ("\t\t| Gesamteinnahmen bis heute |\n"); printf ("\t\t----------------------------------------\n\n"); SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 9); tmp=0; zeile = 0; fp = fopen("text.txt", "a+"); while (fscanf (fp, "%i",&Einnahmen[zeile][a]) != EOF) { zeile = zeile +1; } for(x=0; x < zeile; x++) tmp += Einnahmen[x][a]; printf("Die gesamten Einnahmen betragen momentan:\t"); SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 12); printf (" %.2lf Euro.\n",tmp); printf (" \t==============\n"); SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 9); fclose (fp); break; } case 4: { system ("cls"); SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 12); printf ("\t\t----------------------------------------\n"); printf ("\t\t| Steuerzahlung bis heute |\n"); printf ("\t\t----------------------------------------\n\n"); SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 9); tmp1=0; zeile = 0; fp = fopen("text.txt", "a+"); while (fscanf (fp, "%i",&Einnahmen[zeile][a]) != EOF) { zeile = zeile +1; } for(x=0; x < zeile; x++) tmp1+=Einnahmen[x][a]; printf("Die gesamten Steuerabzuege betragen momentan:\t"); SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 12); printf (" %.2lf Euro. \n", tmp1 / 100 * 20); printf (" \t============="); SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 9); fclose (fp); break; } case 5: { SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 12); system ("cls"); printf ("\t\t----------------------------------------\n"); printf ("\t\t| Einnahmen fuer jeden Monat ausgeben |\n"); printf ("\t\t----------------------------------------\n\n"); SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 9); tmp2 = 0; zeile = 0; printf ("Bitte waehlen Sie den Monat den Sie berechnen wollen!\n"); printf ("Optionen: 1 - 12 fuer Januar - Dezember:\n"); scanf ("%i", &wahl2); switch (wahl2) { case 1: { x = 0; tmp2 = 0; zeile = 0; printf ("Sie haben sich fuer den Monat Januar entschieden!\n"); fp = fopen ("text.txt", "a+"); while (fscanf (fp, "%i", &Einnahmen[zeile][a]) != EOF) { zeile = zeile + 1; } for (x > 0; x <= 30; x++) tmp2 += Einnahmen[x][a]; printf("Die gesamten Einnahmen betragen momentan:\t"); SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 12); printf (" %.2lf Euro. \n", tmp2); printf (" \t============\n"); SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 9); fclose (fp); break; } case 2: { x = 30; tmp2 = 0; zeile = 0; printf ("Sie haben sich fuer den Monat Februar entschieden!\n"); fp = fopen ("text.txt", "a+"); while (fscanf (fp, "%i", &Einnahmen[zeile][a]) != EOF) { zeile = zeile + 1; } for (x > 30; x <= 58; x++) tmp2 += Einnahmen[x][a]; printf("Die gesamten Einnahmen betragen momentan:\t"); SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 12); printf (" %.2lf Euro. \n\n", tmp2); printf (" \t==============\n"); SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 9); fclose (fp); break; } case 3: { x = 58; tmp2 = 0; zeile = 0; printf ("Sie haben sich fuer den Monat Maerz entschieden!\n"); fp = fopen ("text.txt", "a+"); while (fscanf (fp, "%i", &Einnahmen[zeile][a]) != EOF) { zeile = zeile + 1; } for (x > 58; x <= 89; x++) tmp2 += Einnahmen[x][a]; printf("Die gesamten Einnahmen betragen momentan:\t"); SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 12); printf (" %.2lf Euro. \n", tmp2); printf (" \t==============\n"); SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 9); fclose (fp); break; } case 4: { x = 89; tmp2 = 0; zeile = 0; printf ("Sie haben sich fuer den Monat April entschieden!\n"); fp = fopen ("text.txt", "a+"); while (fscanf (fp, "%i", &Einnahmen[zeile][a]) != EOF) { zeile = zeile + 1; } for (x > 89; x <= 119; x++) tmp2 += Einnahmen[x][a]; printf("Die gesamten Einnahmen betragen momentan:\t"); SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 12); printf (" %.2lf Euro. \n", tmp2); printf (" \t==============\n"); SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 9); fclose (fp); break; } case 5: { x = 119; tmp2 = 0; zeile = 0; printf ("Sie haben sich fuer den Monat Mai entschieden!\n"); fp = fopen ("text.txt", "a+"); while (fscanf (fp, "%i", &Einnahmen[zeile][a]) != EOF) { zeile = zeile + 1; } for (x > 119; x <= 150; x++) tmp2 += Einnahmen[x][a]; printf("Die gesamten Einnahmen betragen momentan:\t"); SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 12); printf (" %.2lf Euro. \n", tmp2); printf (" \t==============\n"); SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 9); fclose (fp); break; } case 6: { x = 150; tmp2 = 0; zeile = 0; printf ("Sie haben sich fuer den Monat Juni entschieden!\n"); fp = fopen ("text.txt", "a+"); while (fscanf (fp, "%i", &Einnahmen[zeile][a]) != EOF) { zeile = zeile + 1; } for (x > 150; x <= 181; x++) tmp2 += Einnahmen[x][a]; printf("Die gesamten Einnahmen betragen momentan:\t"); SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 12); printf (" %.2lf Euro. \n", tmp2); printf (" \t==============\n"); SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 9); fclose (fp); break; } case 7: { x = 181; tmp2 = 0; zeile = 0; printf ("Sie haben sich fuer den Monat Juli entschieden!\n"); fp = fopen ("text.txt", "a+"); while (fscanf (fp, "%i", &Einnahmen[zeile][a]) != EOF) { zeile = zeile + 1; } for (x > 181; x <= 212; x++) tmp2 += Einnahmen[x][a]; printf("Die gesamten Einnahmen betragen momentan:\t"); SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 12); printf (" %.2lf Euro. \n", tmp2); printf (" \t==============\n"); SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 9); fclose (fp); break; } case 8: { x = 212; tmp2 = 0; zeile = 0; printf ("Sie haben sich fuer den Monat August entschieden!\n"); fp = fopen ("text.txt", "a+"); while (fscanf (fp, "%i", &Einnahmen[zeile][a]) != EOF) { zeile = zeile + 1; } for (x > 212; x <= 242; x++) tmp2 += Einnahmen[x][a]; printf("Die gesamten Einnahmen betragen momentan:\t"); SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 12); printf (" %.2lf Euro. \n", tmp2); printf (" \t==============\n"); SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 9); fclose (fp); break; } case 9: { x = 242; tmp2 = 0; zeile = 0; printf ("Sie haben sich fuer den Monat September entschieden!\n"); fp = fopen ("text.txt", "a+"); while (fscanf (fp, "%i", &Einnahmen[zeile][a]) != EOF) { zeile = zeile + 1; } for (x > 242; x <= 273; x++) tmp2 += Einnahmen[x][a]; printf("Die gesamten Einnahmen betragen momentan:\t"); SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 12); printf (" %.2lf Euro. \n", tmp2); printf (" \t==============\n"); SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 9); fclose (fp); break; } case 10: { x = 273; tmp2 = 0; zeile = 0; printf ("Sie haben sich fuer den Monat Oktober entschieden!\n"); fp = fopen ("text.txt", "a+"); while (fscanf (fp, "%i", &Einnahmen[zeile][a]) != EOF) { zeile = zeile + 1; } for (x > 273; x <= 303; x++) tmp2 += Einnahmen[x][a]; printf("Die gesamten Einnahmen betragen momentan:\t"); SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 12); printf (" %.2lf Euro. \n", tmp2); printf (" \t==============\n"); SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 9); fclose (fp); break; } case 11: { x = 303; tmp2 = 0; zeile = 0; printf ("Sie haben sich fuer den Monat November entschieden!\n"); fp = fopen ("text.txt", "a+"); while (fscanf (fp, "%i", &Einnahmen[zeile][a]) != EOF) { zeile = zeile + 1; } for (x > 303; x <= 334; x++) tmp2 += Einnahmen[x][a]; printf("Die gesamten Einnahmen betragen momentan:\t"); SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 12); printf (" %.2lf Euro. \n", tmp2); printf (" \t==============\n"); SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 9); fclose (fp); break; } case 12: { x = 334; tmp2 = 0; zeile = 0; printf ("Sie haben sich fuer den Monat Dezember entschieden!\n"); fp = fopen ("text.txt", "a+"); while (fscanf (fp, "%i", &Einnahmen[zeile][a]) != EOF) { zeile = zeile + 1; } for (x > 334; x <= 364; x++) tmp2 += Einnahmen[x][a]; printf("Die gesamten Einnahmen betragen momentan:\t"); SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 12); printf (" %.2lf Euro. \n", tmp2); printf (" \t==============\n"); SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 9); fclose (fp); break; } } break; case 6: { SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 12); system ("cls"); printf ("\t\t----------------------------------------\n"); printf ("\t\t| Ausgaben eingeben und speichern |\n"); printf ("\t\t----------------------------------------\n\n"); SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 9); zeile = 0; fp = fopen ("textausgaben.txt", "r+"); if (fp==NULL) { printf("Fehler die Angegebene Datei wurde nicht gefunden!\n"); fp = fopen ("textausgaben.txt", "w+"); } while (fscanf (fp, "%i",&ausgaben[zeile][a]) != EOF) { zeile = zeile +1; if (zeile > 0 && zeile <= 31) mon = 0; else if (zeile > 31 && zeile <= 59) mon = 1; else if (zeile > 59 && zeile <= 90) mon = 2; else if (zeile > 90 && zeile <= 120) mon = 3; else if (zeile > 120 && zeile <= 151) mon = 4; else if (zeile > 151 && zeile <= 181) mon = 5; else if (zeile > 181 && zeile <= 212) mon = 6; else if (zeile > 212 && zeile <= 242) mon = 7; else if (zeile > 242 && zeile <= 273) mon = 8; else if (zeile > 273 && zeile <= 303) mon = 9; else if (zeile > 303 && zeile <= 334) mon = 10; else if (zeile > 334 && zeile <= 364) mon = 11; } printf ("Es gibt Ausgaben von %i Tagen und der aktuelle Monat ist: %s\n", zeile, monat[mon]); printf ("______________________________________________________________\n\n"); fclose (fp); SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 12); printf ("Wieviele Tage moechten Sie eingeben?\n"); printf ("=====================================\n"); SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 9); scanf("%i", &t); for (x = zeile; x < t+zeile; x++) { printf("Bitte die Ausgaben des %i Tages eingeben:\n",x+1); scanf("%i", &ausgaben[x][a]); } fp = fopen("textausgaben.txt", "a+"); for (x=zeile; x < t+zeile; x++) fprintf( fp, "%i\n", ausgaben[x][a]); fclose (fp); break; } case 7: { system ("cls"); SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 12); printf ("\t\t----------------------------------------\n"); printf ("\t\t| Ausgaben aus Datei einladen |\n"); printf ("\t\t----------------------------------------\n\n"); SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 9); zeile = 0; fp = fopen ("textausgaben.txt", "r+"); if (fp==NULL) { printf ("Fehler die Angegebene Datei wurde nicht gefunden!\n"); printf ("Sie müüsen erst eine Ausgabendatei mit option 6 anlegen!\n"); } while (fscanf (fp, "%i",&ausgaben[zeile][a]) != EOF) //Hier habe ich das geändert!!! { if (zeile > 0 && zeile <= 30) mon = 0; else if (zeile > 30 && zeile <= 58) mon = 1; else if (zeile > 58 && zeile <= 89) mon = 2; else if (zeile > 89 && zeile <= 119) mon = 3; else if (zeile > 119 && zeile <= 150) mon = 4; else if (zeile > 151 && zeile <= 181) mon = 5; else if (zeile > 181 && zeile <= 212) mon = 6; else if (zeile > 212 && zeile <= 242) mon = 7; else if (zeile > 242 && zeile <= 273) mon = 8; else if (zeile > 273 && zeile <= 303) mon = 9; else if (zeile > 303 && zeile <= 334) mon = 10; else if (zeile > 334 && zeile <= 364) mon = 11; printf("Tag:%i Ausgaben:%i im Monat:%s\n", zeile+1, ausgaben[zeile][a], monat[mon]); zeile++; } printf("Sie haben bereits Ausgaben von %i Tagen in der Datei:\n", zeile); //für mich zum Test als Stichprobe fclose (fp); break; } case 8: { zeile = 0; fp = fopen ("text.txt", "r+"); if (fp==NULL) { printf("Fehler die Angegebene Datei wurde nicht gefunden!\n"); printf ("Sie müüsen erst eine Einnahmendatei mit option 1 anlegen!\n"); } while (fscanf (fp, "%i",&Einnahmen[zeile][a]) != EOF) { zeile = zeile + 1; } for (x = 0; x < zeile; x++) Buffer += Einnahmen[x][a]; printf ("Einnahmen sind gesamt:"); SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 12); printf (" %i\n", Buffer); SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 9); fclose (fp); zeile = 0; fp = fopen ("textausgaben.txt", "r+"); if (fp==NULL) { printf ("Fehler die Angegebene Datei wurde nicht gefunden!\n"); printf ("Sie muessen erst eine Ausgabendatei mit option 6 anlegen!\n"); } while (fscanf (fp, "%i",&ausgaben[zeile][a]) != EOF) { zeile = zeile + 1; } for (x = 0; x < zeile; x++) Buffer2 += ausgaben[x][a]; printf ("Ausgaben sind gesamt:"); SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 12); printf (" %i\n", Buffer2); SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 9); fclose (fp); summe = Buffer - Buffer2; printf ("Die GuV belaeuft sich auf:"); SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 12); printf (" %i Euro.\n", summe); SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 9); } break; } } system("pause"); system("cls"); } }

This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License.
Download this code in plain text format here