0/5 (1 avis)
Snippet vu 7 702 fois - Téléchargée 36 fois
#include<stdio.h> #include<dos.h> #include<stdlib.h> #include<string.h> #include<conio.h> #define true 32000 #define false -31000 int jour,mois,annee,maxday,c; char j[10],m[10],a[10]; int convertitEntier(char nb); //fonction convertissant une chaine de caractere en entier int estJour(int day); //fonction verifiant qu un entier est un jour valide int estMois(int month); //fonction verifiant qu un entier est un mois valide int estAnnee(int year); //fonction verifiant qu un entier est une annee valide int estDateValide(int day,int month,int year); //fonction verifiant que 3 entier forme une date valide void dateSuivante(int day,int month,int year); //fonction calculant la date du lendemain d'un jour void lecture(void); //fonction permettant la lecture des donnees en entree void animation(); //***************************************************************************************** int convertitEntier(char *nb) { char str[25]; double num; int sig = 5; /* significant digits */ if(strlen(nb)==0) { puts("La valeur saisie n' est pas entiere.\n"); return false; } else { gcvt(atoi(nb), sig, str); if(strlen(nb) != strlen(str)) { puts("La valeur saisie n'est pas entiere.\n"); return false; } else { //printf("\nla valeur convertie est %d",atoi(nb)); return (atoi(nb)); } } } //****************************************************************************** int estJour(int day) { if((day<1)||(day>31)) { puts("\nLes jours vont du 1er au 31 en general. Recommencer svp"); return false; } else { //printf("\nla valeur du jour est %d",day); return (day); } } //****************************************************************************** int estMois(int month) { if((month<1)||(month>12)) { puts("\nLes mois vont du 1er au 12. Recommencer svp"); return false; } else { //printf("\nla valeur du mois est %d",month); return (month); } } //******************************************************************************* int estAnnee(int year) { if((year<1980)||(year>2050)) { puts("\nLes annees varient entre 1980 et 2050. Recommencer svp"); return false; } else { //printf("\nla valeur annuelle est %d",year); return (year); } } //******************************************************************************* int estDateValide(int day,int month,int year) { if((month == 4) || (month == 6) || (month == 9) || (month == 11)) maxday=30; else { if((month == 1) || (month == 3) || (month == 5) || (month == 7) || (month == 8) || (month == 11) || (month == 12)) maxday=31; else maxday=27; } if(year % 4 == 0) if(month == 2) maxday=28; if((day > maxday)) return (false); else return (true); } //********************************************************************************** void dateSuivante(int day,int month,int year) { int d,m,y; d=day; m=month; y=year; if(day < maxday) day+=1; else { day=1; if(month < 12) month+=1; else { month=1; year+=1; } } printf("\nle lendemain du %d-%d-%d est le %d-%d-%d",d,m,y,day,month,year); } //******************************************************************************************** void lecture(void) { do { clrscr(); puts("Ce programme affiche la date du lendemain d'un jour.\n"); printf("\nTaper les information requises : "); flushall(); printf("\nJour : "); gets(j); flushall(); printf("Mois : "); gets(m); flushall(); printf("Annee : "); gets(a); flushall(); if(((jour = convertitEntier(j)) == false )| ((mois = convertitEntier(m)) == false ) | ((annee = convertitEntier(a)) == false )) printf("\n precision 1 '%d-%d-%d' ",jour,mois,annee); else { if((( estJour(jour)) == false) || (( estMois(mois)) == false) || (( estAnnee(annee)) == false)) printf("\nLes bornes sont les suivantes en general : \n 1<jour<31\n 1<mois<12\n 1980<annee<2050"); else { if(estDateValide(jour,mois,annee) == false) printf("\n '%d-%d-%d' n'est pas une date valide. Recommencer svp",jour,mois,annee); else dateSuivante(jour,mois,annee); } } puts("\n\n\n Echap pour arreter, sinon n'importe quelle touche."); }while((c=getch()) != 27); animation(); } void animation() { for(int i=0;i<75;i++) { gotoxy(i,wherey()); delline(); printf("Sniper."); delay(30); } delay(500); } //******************************************************************************* int main() { clrscr(); lecture(); return 0; }
30 oct. 2004 à 01:55
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.