[c] Ausgabe Hauptprogramm

thehasso

Erfahrenes Mitglied
Hallo zusammen,

Ich sollte ein Programm Programmieren die Aufgabenstellung war:
Plausibilitätsprüfung
Ein in der Form: TT.MM.JJJJ einzugebendes Datum soll auf Plausibilität geprüft werden.
Diese Prüfung soll solange für neu einzugebende Daten wiederholt werden, bis das zuletzt
eingegebene Datum plausibel ist.
Schaltjahre müssen in die Überprüfung mit einbezogen werden.
Die eigentliche Prüfung übernimmt ein Modul: pruefung.
Im Ergebnis der Prüfung soll dieses Prüfmodul informieren, welches Problem es gab
(z.B.: „Monat zu groß“, „keine 31 Tage im April“, …)
Die Textausgabe: "Datum ist plausibel!" soll allerdings im Hauptprogramm erfolgen.
Das Gesamtprogramm soll auf Wunsch wiederholt werden können.


War nicht schwer konnte es auch lösen nur bei einen Punkt weiß ich nicht wie ich das umsetzen soll.. und zwar "Das Datum ist Plausibel soll im Hauprprogramm erfolgen!"
Wüsste jemand wie man das machen kann?

Code:
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>


void pruefung(int tag, int monat, int jahr, int schaltjahr);



int main () {

int tag = 0, monat = 0, jahr = 0, schaltjahr = 0;

char weiter ='j'; 

while(weiter == 'j')  
{

pruefung (tag, monat, jahr, schaltjahr);
	

	// DATUM IST PLAUSIBEL MUSS HIER ERFOLGEN!
	
    printf("\n\nWollen Sie den den Prozess wiederholen \nDann taetigen Sie fuer Ja die Taste j und fuer Nein die Taste \n\n");
	weiter=getch();

	getchar();

} 

}


void pruefung(int tag, int monat, int jahr, int schaltjahr){


do
{ 

printf("\n Bitte geben Sie das Datum in der Form TT.MM.JJJJ ein!\n");


scanf( "%2u.%2u.%4u", &tag, &monat, &jahr );

schaltjahr = (!(jahr%4 && jahr %100 && jahr%400));


if( (monat ==01 && tag <=31)||   
(monat ==02 && tag <=28) ||
(monat ==03 && tag <=31) || 
(monat ==04 && tag <=30) ||
(monat ==05 && tag <=31) ||
(monat ==06 && tag <=30) ||
(monat ==07 && tag <=31) ||
(monat ==8 && tag <=31) ||
(monat ==9 && tag <=30) ||
(monat ==10 && tag <=31) ||
(monat ==11 && tag <=30) ||						
(monat ==12 && tag <=31) ||
((monat ==02) && (tag ==29)&& (schaltjahr)))
{
	printf("\n*************************************");
	printf("\nTag:%i Monat:%i Jahr:%i Schaltjahr:%i \n\tDATUM PLAUSIBEL",tag, monat, jahr, schaltjahr);
	printf("\n*************************************");
}

else 
{

	printf("\nBitte ueberpruefen Sie ihre Eingabe\nKeine %i. Tage in Monat %i. Jahr %i \n",tag,monat,jahr); 

}

} while( (monat ==01 && tag >31)||   
(monat ==02 && tag >29) || 
(monat ==02 && tag==29 && (!(schaltjahr)))||
(monat ==03 && tag >31) || 
(monat ==04 && tag >30) ||
(monat ==05 && tag >31) ||
(monat ==06 && tag >30) ||
(monat ==07 && tag >31) ||
(monat ==8 && tag >31) ||
(monat ==9 && tag >30) ||
(monat ==10 && tag >31) ||
(monat ==11 && tag >30) ||
(monat ==12 && tag >31) ||
(monat > 12));  

}


Danke im vorraus.
 
Code:
void pruefung(int tag, int monat, int jahr, int schaltjahr);
zu
Code:
int pruefung(int tag, int monat, int jahr, int schaltjahr);

und dann am Ender der pruefung Funktion ein

Code:
return 1; //für erfolgreich

return 0; //für nicht passendes datum

und dann das ganze abfragen

Code:
if( pruefung(tag, monat, jahr, schaltjahr) )
{
printf("kk, richtiges Datum");
//etc.
}
 
Zurück