int choisirMenu(const unsigned int maximum) { int choixJoueur; unsigned int compteurErreur; compteurErreur = 0; do { if(compteurErreur > 0) { printf("Veuillez entrer un nombre correct !\n"); viderBuffer(); } printf("> "); scanf("%d", &choixJoueur); ++compteurErreur; } while(choixJoueur < REVENIR_ARRIERE && choixJoueur > maximum); viderBuffer(); return choixJoueur; }
// Check the value entered by the user and return it double Affichage::saisieValeur(const double &valeurMin, const double &valeurMax) { double valeurDeRetour= valeurMin-1; while(true) { cout << " Give a value between " << valeurMin << " and " << valeurMax << ": "; cin >> valeurDeRetour; if(cin.eof() || cin.bad()) { cerr << " An internal error happened." << endl; if(cin.eof() || valeurDeRetour <= valeurMin || valeurDeRetour >=valeurMax) { break; } viderBuffer(); continue; } else if(cin.fail() || valeurDeRetour <= valeurMin ||valeurDeRetour >=valeurMax) { cerr << " ERROR, incorrect value." << endl; viderBuffer(); continue; } break; } return valeurDeRetour; }
unsigned int demanderConfirmation(const char *message, const unsigned int separation) { int choixJoueur; unsigned int compteurErreur; compteurErreur = 0; if(separation == OUI) separationTexte(); do { if(compteurErreur > 0) { printf("Veuillez entrer 0 pour refuser et 1 pour accepter !\n"); viderBuffer(); } printf("%s\n", message); printf("> "); scanf("%d", &choixJoueur); ++compteurErreur; } while(choixJoueur != NON && choixJoueur != OUI); viderBuffer(); return choixJoueur; }
unsigned int choisirMenuSansOperationPossible(const unsigned int maximum) { int choixJoueur; unsigned int compteurErreur; compteurErreur = 0; do { if(choixJoueur == REVENIR_ARRIERE || (choixJoueur == QUITTER && compteurErreur > 0)) { printf("Operation impossible !\n"); viderBuffer(); } else if(compteurErreur > 0) { printf("Veuillez entrer un nombre correct !\n"); viderBuffer(); } printf("> "); scanf("%d", &choixJoueur); ++compteurErreur; }while(choixJoueur < 1 || choixJoueur > maximum); viderBuffer(); return choixJoueur; }
int saisirEntier(void) { int nombre = -1; while(scanf("%d", &nombre) < 1) viderBuffer(); viderBuffer(); return nombre; }
void cheat() { int choix = 0; FctVideEcran(); printf("\n\n\tC'est pas bien de tricher !\n\n"); printf("Appuyez sur une touche pour continuer...\n\n"); viderBuffer(); char tempo = get_one_char(); FctVideEcran(); do { // Affichage de "CHEAT" en ASCII // printf(" ____ _ _\n / ___| |__ ___ __ _| |_\n | | | '_ \\ / _ \\/ _` | __|\n | |___| | | | __/ (_| | |_\n \\____|_| |_|\\___|\\__,_|\\__|\n\n"); printf("\tFaites votre choix :\n\n\n"); printf("\t1 - Chuck Norris\n"); printf("\t2 - Bitch Please\n"); printf("\t3 - God Mode\n"); printf("\t4 - Very Easy !\n"); // En fait Very Very 2HARD4U !!! printf("\t5 - Retour\n\n"); printf("\t Veuillez entrez votre choix : "); scanf("%i",&choix); switch(choix) { case 1: chucknorris(); break; case 2: bitchplease(); break; case 3: godmode(); break; case 4: veryeasy();break; case 5: break; default: FctVideEcran(); viderBuffer(); printf("Erreur: votre choix doit être compris entre 1 et 5\n"); char tempo = get_one_char(); FctVideEcran(); break; } FctVideEcran(); }while(choix != 5); }
void reset() { int choix; char reponse; do { FctVideEcran(); viderBuffer(); printf("\n\tÊtes vous sûr de vouloir effacer tous les (misérables) scores effectués jusqu'à ce jour ? Y/N \n\n"); reponse = get_one_char(); FctVideEcran(); if(reponse == 'y' || reponse == 'Y') { FILE *fichier; fichier = fopen("highscore.txt","w"); fclose(fichier); printf("\n\tTous vos scores ont bien été effacés. \n\n"); } else if(reponse == 'n' || reponse == 'N') { printf("\n\tLes scores n'ont pas été effacés. \n\n"); } else { printf("\n\tVeuillez entrez un 'y' (yes) ou un 'n' (no)\n\n"); } sleep(3); }while(reponse != 'y' && reponse != 'Y' && reponse != 'n' && reponse != 'N'); }
void menu_highscore() { int choix; FctVideEcran(); do { printf(" _ _ ___ ____ _ _ ____ ____ ___ ____ _____\n | | | |_ _/ ___| | | | / ___| / ___/ _ \\| _ \\| ____|\n | |_| || | | _| |_| | \\___ \\| | | | | | |_) | _|\n | _ || | |_| | _ | ___) | |__| |_| | _ <| |___\n |_| |_|___\\____|_| |_| |____/ \\____\\___/|_| \\_\\_____|\n\n"); printf("\tFaites votre choix :\n\n\n"); printf("\t1 - Afficher les High Score\n"); printf("\t2 - Reset\n"); printf("\t3 - Retour\n\n"); printf("\t Veuillez entrez votre choix : "); scanf("%i",&choix); switch(choix) { case 1: afficher_highscore(); break; case 2: reset(); break; case 3: break; default: FctVideEcran(); viderBuffer(); printf("Erreur: votre choix doit être compris entre 1 et 3\n"); char tempo = get_one_char(); FctVideEcran(); break; } FctVideEcran(); }while(choix != 3); }
int lire(char *chaine, int longueur){ char *positionEntree = NULL; if (fgets(chaine, longueur, stdin) != NULL){ positionEntree = strchr(chaine, '\n'); if (positionEntree != NULL){ *positionEntree = '\0'; } else{ viderBuffer(); } return 1; } else{ viderBuffer(); return 0; } }
void afficher_highscore() { int i = 1; char tempo; char chaine[TAILLE_MAX] = ""; FILE* fichier = NULL; fichier = fopen("highscore.txt","r"); if (fichier == NULL) { FctVideEcran(); printf("\n\n\tImpossible d'ouvrir le fichier highscore.txt\n\n"); printf("Appuyez sur une touche pour revenir aux options..."); viderBuffer(); tempo = get_one_char(); FctVideEcran(); } else { FctVideEcran(); printf(" _ _ ___ ____ _ _ ____ ____ ___ ____ _____\n | | | |_ _/ ___| | | | / ___| / ___/ _ \\| _ \\| ____|\n | |_| || | | _| |_| | \\___ \\| | | | | | |_) | _|\n | _ || | |_| | _ | ___) | |__| |_| | _ <| |___\n |_| |_|___\\____|_| |_| |____/ \\____\\___/|_| \\_\\_____|\n\n"); sleep(1); while (fgets(chaine, TAILLE_MAX, fichier) != NULL) { printf("\t%i\t--\t%s",i, chaine); i++; sleep(1); } printf("\n\nAppuyez sur une touche pour revenir aux options..."); viderBuffer(); tempo = get_one_char(); FctVideEcran(); } }
//on recupere le texte du clavier // 1 - OK // 0 - ERROR int lire(char *chaine, int longueur){ char *positionEntree = NULL; //s'il n'est pas nul on remplace le retour chariot if (fgets(chaine, (longueur+1), stdin) != NULL){ positionEntree = strchr(chaine, '\n'); if (positionEntree != NULL){ *positionEntree = '\0'; }else{ viderBuffer(); } //Si on a un caractere vide -> erreur if(*chaine==' '){ return 0; }else{ return 1; } //sinon on vide quand meme le buffer et on renvoi 0 pour signaler le probleme }else{ viderBuffer(); return 0; } }
//on demande a l'utilisateur de rentrer les faits qu'il veut pour //le mode test du moteur ST_CONTENT * chargerFaitDepuisConsole(){ ST_CONTENT *fait = NULL; long nbFait; long i = 0; char temp; // on demande le nombre de faits printf("\n\tVeuillez entrer le nombre de fait a enregistrer : "); viderBuffer(); nbFait = lireDouble(); //pour le nombre de faits on cree des ST_CONTENT de ces faits rentre par l'utilisateur for(i = 0;i<nbFait;i++){ printf("\nVeuillez entrer la lettre designant le fait n= %ld : ",i); temp = getc(stdin); viderBuffer(); newContent(temp,1,&fait); } printf("[INFO] Enregistrement reussi !\n"); //retour au menu printf("\t->Appuyer sur 'entree' pour revenir au menu"); getchar(); return fait; }
//On charge depuis le fichier "fait.txt" dans bin les fait pour //le mode test du moteur ST_CONTENT * chargerFaitDepuisFichier(){ ST_CONTENT *fait = NULL; FILE *fp; int temp = 0; char tp; int cp = 0; int nb = 0; //ouverture du fichier fp = fopen("faits.txt","r"); if (fp == NULL){ printf("Le fichier n'existe pas !Veuillez recommencer depuis le debut.\n"); return NULL; } //tant qu'on est pas à la fin du fichier do{ nb = 0; //si on est a la fin du fichier if(feof(fp)!=0){ break; } //on enregistre par ligne le fait temp = fgetc(fp); tp = temp; newContent(tp,1,&fait); //on va jusqu'a la fin de la ligne ou du fichier while (feof(fp)==0 && temp != '\n' && temp != ';'){ temp = fgetc(fp); nb++; } //si on est sur le ";" soit on saute la ligne soit c'est la fin du fichier if(temp == ';'){ //on avance jusqu'a la fin de ligne ou la fin de fichier while (feof(fp)==0 && temp != '\n'){ temp = fgetc(fp); } } cp++; //s'il y a encore une ligne }while(temp== '\n'); fclose(fp); printf("[INFO] Chargement de %d faits reussi !\n",cp); viderBuffer(); //retour au menu printf("\t->Appuyer sur 'entree' pour revenir au menu"); getchar(); return fait; }
//----------------------------------------------------------------------------- // Description : Modiffier le contenu de l'ecole // parametre : * sur struct ecole_t void ft_modifierEcole(ecole_t *ecole) { int choix; //Variable pour le choix du switch //Menu avec choix et test d'entrée valide do { ft_afficheEntete(*ecole); printf("\n\n"); printf("\t\t MODIFICATION DE L'ECOLE :\n"); printf("\t\t==========================="); printf("\n\n\t\t1 * Nom de l'ecole"); printf("\n\n\t\t2 * Nom du directeur"); printf("\n\n\t\t3 * Coordonnees de l'ecole"); printf("\n\n\n\t\t4 * Toutes les informations"); printf("\n\n\n\n\t\t0 * RETOUR\n\n\n\n\n\t\t >>"); scanf("%d",&choix); viderBuffer(); }while((choix>4) && (choix<0)); //Modification de ecole en fonction du choix de l'utilisateur switch(choix) { case 0: // Retour menu parent break; case 1: printf("\nVeuillez entrer le nom de l'ecole :"); lireChaine(ecole->nom, MAX_CHAR); break; case 2: printf("\nVeuillez entrer le nom du directeur :"); lireChaine(ecole->directeur, MAX_CHAR); break; case 3: ft_modifierCoord(&ecole->adresse); break; case 4: printf("\nVeuillez entrer le nom de l'ecole :"); lireChaine(ecole->nom, MAX_CHAR); printf("\nVeuillez entrer le nom du directeur :"); lireChaine(ecole->directeur, MAX_CHAR); ft_modifierCoord (&ecole->adresse); break; } }
void options() { int choix = 0; FctVideEcran(); do { // Affichage de "OPTIONS" en ASCII // printf(" _ _\n ___ _ __ | |_(_) ___ _ __ ___\n / _ \\| '_ \\| __| |/ _ \\| '_ \\/ __|\n | (_) | |_) | |_| | (_) | | | \\__ \\\n \\___/| .__/ \\__|_|\\___/|_| |_|___/\n |_|\n\n"); printf("\tFaites votre choix :\n\n\n"); printf("\t1 - High Score\n"); printf("\t2 - Credits\n"); printf("\t3 - Cheat Codes\n"); printf("\t4 - Retour\n\n"); printf("\t Veuillez entrez votre choix : "); scanf("%i",&choix); switch(choix) { case 1: menu_highscore(); break; case 2: credits(); break; case 3: cheat(); break; case 4: break; default: FctVideEcran(); viderBuffer(); printf("Erreur: votre choix doit être compris entre 1 et 4\n"); char tempo = get_one_char(); FctVideEcran(); break; } FctVideEcran(); }while(choix != 4); }
void ajouter_contact(struct Fiche *contact, int capacite) { char buff[256]; int i,j; for(i=0; i<capacite; i++) if(contact[i].id==0) { contact[i].id=i+1; break; } viderBuffer(); printf("Nom: "); contact[i].nom=longueur_chaine(get_str(buff,256)); for(j=0; contact[i].nom[j]; j++) { if(j==0) { contact[i].nom[j]=toupper(contact[i].nom[j]); } else { contact[i].nom[j]=tolower(contact[i].nom[j]); } } printf("Prenom: "); contact[i].prenom=longueur_chaine(get_str(buff,256)); printf("Sexe: "); contact[i].sexe=longueur_chaine(get_str(buff,256)); printf("Date de naissance JJ/MM/AAAA : "); contact[i].date_naissance=s_naissance(get_str(buff,256)); printf("Email: "); contact[i].email=longueur_chaine(get_str(buff,256)); printf("Telephone fixe: "); contact[i].numfix=longueur_chaine(get_str(buff,256)); printf("Telephone mobile: "); contact[i].nummobil=longueur_chaine(get_str(buff,256)); printf("Adresse: "); contact[i].adresse=longueur_chaine(get_str(buff,256)); }
void *connection_handler(void *socket_desc) { int debut=-1; char mesg[256]; int sock = *(int*)socket_desc; char pseudo[10]; int pseudoCorrect=0; //printf("Ecrivez votre message...\n"); while(1) { memset(mesg,0,sizeof(mesg)); fgets(mesg, 256, stdin); //Reinitialisation timer temps=0; //Déconnexion if(strcmp(mesg,"/q\n")==0) { printf("\nfin de la reception.\n"); close(socket_desc); //on libere la memoire free(socket_desc); exit(0); } //Message trop long if(strchr(mesg,'\n')==NULL) { viderBuffer(); printf("Message trop long !\n"); } else { //envoi des données au serveur if ((write(sock, mesg, strlen(mesg))) < 0) { perror("erreur : impossible d'ecrire le message destine au serveur."); exit(1); } } //printf("Ecrivez votre message...\n"); } return 0; }
int main(int argc, char *argv[]) { SDL_Init(SDL_INIT_VIDEO); TTF_Init(); SDL_Surface* ecran = NULL, *ecranSurface = NULL; //SDL_Surface *ecran2; //ecran = SDL_CreateRGBSurface(0,700,700,32,0xff000000,0x00ff0000,0x0000ff00,0x000000ff); SDL_Rect origine; origine.x = 0; origine.y = 0; /*TTF_Font *police = NULL; SDL_Color couleurNoire = {0, 0, 0}; police = TTF_OpenFont("annexes/Arial.ttf", 18); texte = TTF_RenderText_Blended(police, "Projet d'info !!!!!!!!!!!!!", couleurNoire); position.x = 10; position.y = 10; SDL_BlitSurface(texte, NULL, ecran, &position);*/ ecranSurface = SDL_CreateRGBSurface(SDL_HWSURFACE, 0, 0, 32, 0, 0, 0, 0); // On cre notre surface de dpart : un rectangle de taille nulle ! int i; char * nomImages[NB_IMAGES] = { "M", "M1", "M2", "M3","M3b", "M4", "M5", "M6", "M7", "M7b" ,"M8", "M9", "M10", "M11", "M12", "M13", "M14", "T1", "T2", "T3", "RA", "RB", "RC", "RD", "RE", "Val"}; /*char tmp[TAILLE_NOM] =""; SDL_Surface * tabImages[NB_IMAGES]; for ( i = 0 ; i < NB_IMAGES ; i++ ) { strcat(tmp,CHEMIN); strcat(tmp,nomImages[i]); strcat(tmp,".png"); printf("%s\n",tmp); tabImages[i] = IMG_Load(tmp); strcpy(tmp,""); } for ( i = 0 ; i < NB_IMAGES ; i++ ) { //position.x=30*i%610; //position.y=30*i/610; position.x=30*i; position.y=30*i; SDL_BlitSurfaceSecure(tabImages[i], NULL, ecran, &position); }*/ //tabImage[PIETON] int nbStation, numDep, numArr; char nomDep[TAILLE_NOM], nomArr[TAILLE_NOM]; char nom[] = "graphes/metro2012.csv"; Station * plan = NULL; puts("lecture ..."); plan = lecture(nom, &nbStation); ListeRes resultat = NULL; ListeChangement final = NULL; puts("Choix de la station de départ :"); fgets(nomDep,TAILLE_NOM,stdin); nomDep[strlen(nomDep)-1]='\0'; numDep = nomToNum(nomDep, plan, nbStation); viderBuffer(); puts("Choix de la station d'arrivée :"); fgets(nomArr,TAILLE_NOM,stdin); nomArr[strlen(nomArr)-1]='\0'; numArr = nomToNum(nomArr, plan, nbStation); puts("aStar ..."); resultat = aStar(numDep, numArr, plan); afficherRes(resultat); puts("Changement :"); final = traitementAffichage(resultat);
int main(int argc, char **argv) { int socket_descriptor, /* descripteur de socket */ *new_sock, longueur; /* longueur d'un buffer utilisé */ sockaddr_in adresse_locale; /* adresse de socket local */ hostent * ptr_host; /* info sur une machine hote */ servent * ptr_service; /* info sur service */ char buffer[280]; char * prog; /* nom du programme */ char * host; /* nom de la machine distante */ if (argc != 2) { perror("Usage : client <adresse-serveur>"); exit(1); } prog = argv[0]; host = argv[1]; printf("\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n"); printf("- Nom de l'executable : %s \n", prog); printf("- Adresse du serveur : %s \n", host); if ((ptr_host = gethostbyname(host)) == NULL) { perror("erreur : impossible de trouver le serveur a partir de son adresse."); exit(1); } /* copie caractere par caractere des infos de ptr_host vers adresse_locale */ bcopy((char*)ptr_host->h_addr, (char*)&adresse_locale.sin_addr, ptr_host->h_length); adresse_locale.sin_family = AF_INET; /* ou ptr_host->h_addrtype; */ /* 2 facons de definir le service que l'on va utiliser a distance */ /* (commenter l'une ou l'autre des solutions) */ /*-----------------------------------------------------------*/ /* SOLUTION 1 : utiliser un service existant, par ex. "irc" */ /* if ((ptr_service = getservbyname("irc","tcp")) == NULL) { perror("erreur : impossible de recuperer le numero de port du service desire."); exit(1); } adresse_locale.sin_port = htons(ptr_service->s_port); */ /*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/ /* SOLUTION 2 : utiliser un nouveau numero de port */ adresse_locale.sin_port = htons(5000); /*-----------------------------------------------------------*/ printf("- Numero de port pour la connexion au serveur : %d \n\n", ntohs(adresse_locale.sin_port)); /* creation de la socket */ if ((socket_descriptor = socket(AF_INET, SOCK_STREAM, 0)) < 0) { perror("erreur : impossible de creer la socket de connexion avec le serveur."); exit(1); } /* tentative de connexion au serveur dont les infos sont dans adresse_locale */ if ((connect(socket_descriptor, (sockaddr*)(&adresse_locale), sizeof(adresse_locale))) < 0) { perror("erreur : impossible de se connecter au serveur."); exit(1); } printf("Connexion etablie avec le serveur :) \n\n"); //Timer temps=0; //Thread timer pthread_t timer_thread; new_sock = malloc(1); *new_sock = socket_descriptor; if( pthread_create( &timer_thread, NULL, timer,(void *) new_sock) < 0) { perror("Impossible de creer le thread timer"); return 1; } int i; int pseudoLibre=0; char pseudo[10]; int pseudoCorrect=0; int debutRead=-1; printf("\n\n\n"); printf("-------------------------\n"); printf("| Bienvenue sur Tchaton |\n"); printf("-------------------------\n"); printf("\n\n\n"); if((longueur = read(socket_descriptor, buffer, sizeof(buffer))) > 0) { if(strcmp(buffer,"Serveur sature\n")==0) { printf("\nDeconnexion\n"); close(socket_descriptor); exit(0); } } while(debutRead==-1) { //Controle du pseudo (pas de caracteres spéciaux et pseudo différent de 'q' while(pseudoCorrect==0) { memset(pseudo,0,sizeof(pseudo)); memset(buffer,0,sizeof(buffer)); printf("Quel est votre pseudo ? (< 10 et sans espace) : "); fgets(pseudo, 10, stdin); //Reinitialisation timer temps=0; //Déconnexion if(strcmp(pseudo,"/q\n")==0) { printf("\nfin de la reception.\n"); close(socket_descriptor); exit(0); } else if(strchr(pseudo,'\n')==NULL) { viderBuffer(); printf("Pseudo trop long !\n"); } else { if(strcmp(pseudo,"q\n")==0 || strchr(pseudo,'/')!=NULL || strchr(pseudo,' ')!=NULL) { printf("Pseudo incorrect !\n"); } else pseudoCorrect=1; } } //Envoi pseudo if ((write(socket_descriptor, pseudo, strlen(pseudo))) < 0) { perror("erreur : impossible d'envoyer le pseudo au serveur."); exit(1); } //Retour serveur if((longueur = read(socket_descriptor, buffer, sizeof(buffer))) > 0) { write(1,buffer,longueur); if(strcmp(buffer,"Pseudo Ok.\n")==0) { printf("------------------------\n"); printf("Liste des connectés :\n"); debutRead=0; } } pseudoCorrect=0; } //Thread d'écriture pthread_t sniffer_thread; if( pthread_create( &sniffer_thread, NULL, connection_handler, (void*) new_sock) < 0) { perror("Impossible de creer le thread"); return 1; } while(1) { if((longueur = read(socket_descriptor, buffer, sizeof(buffer))) > 0) { write(1,buffer,longueur); memset(buffer,0,sizeof(buffer)); //printf("Ecrivez votre message...\n"); } } }
//----------------------------------------------------------------------------- // Description : Modiffier le contenu de struct ecole_t // appelle ft_viderListe // parametre : * sur struct ecole_t void ft_supprimerClasse(ecole_t *ecole) { int choix = 0; // Choix du menu int souxchoix = 0; // Choix sous menu //menu liste des classes //(pour le moment les 5 classes doivent etre existante sous peine d'erreur) do { ft_afficheEntete(*ecole); printf("\n\n"); printf("\t\tQuel classe souhaitez-vous Supprimer :\n\n"); printf("\t\t1 * CP\n\n"); printf("\t\t2 * CE1\n\n"); printf("\t\t3 * CE2\n\n"); printf("\t\t4 * CM1\n\n"); printf("\t\t5 * CM2\n\n"); printf("\t\t0 * Retour\n\n\n\n\n\t\t >>"); scanf("%d", &choix); viderBuffer(); } while ((choix<0) && (choix>5)); switch(choix) { case 1: if (ecole->tab_cp[0]!=NULL && ecole->tab_cp[1]!=NULL) { do { ft_afficheEntete(*ecole); printf("\n\n\t\tIl y a deux classe de CP\n"); printf("\t\tLaquelle voulez vous supprimer :\n\n"); printf("\t\t1 * CP_1\n\n"); printf("\t\t2 * CP_2\n\n\n\n"); printf("\t\t0 * Retour\n\n\n\n\n\t\t >>"); scanf("%d", &souxchoix); viderBuffer(); } while ((souxchoix<0) && (souxchoix>2)); if (souxchoix==1) ft_viderListe(&ecole->tab_cp[0]->ptr_eleve); if (souxchoix==2) ft_viderListe(&ecole->tab_cp[1]->ptr_eleve); } if (ecole->tab_cp[0]!=NULL && ecole->tab_cp[1]==NULL) ft_viderListe(&ecole->tab_cp[0]->ptr_eleve); if (ecole->tab_cp[0]==NULL && ecole->tab_cp[1]==NULL) printf("\n\n\t\tIl n'a pas de classe de CP\n\n"); break; case 2: if (ecole->tab_ce1[0]!=NULL && ecole->tab_ce1[1]!=NULL) { do { ft_afficheEntete(*ecole); printf("\n\n\t\tIl y a deux classe de CE1\n"); printf("\t\tLaquelle voulez vous supprimer :\n\n"); printf("\t\t1 * CE1_1\n\n"); printf("\t\t2 * CE1_2\n\n\n\n"); printf("\t\t0 * Retour\n\n\n\n\n\t\t >>"); scanf("%d", &souxchoix); viderBuffer(); } while ((souxchoix<0) && (souxchoix>2)); if (souxchoix==1) ft_viderListe(&ecole->tab_ce1[0]->ptr_eleve); if (souxchoix==2) ft_viderListe(&ecole->tab_ce1[1]->ptr_eleve); } if (ecole->tab_ce1[0]!=NULL && ecole->tab_ce1[1]==NULL) ft_viderListe(&ecole->tab_ce1[0]->ptr_eleve); if (ecole->tab_ce1[0]==NULL && ecole->tab_ce1[1]==NULL) printf("\n\n\t\tIl n'a pas de classe de CE1\n\n"); break; case 3: if (ecole->tab_ce2[0]!=NULL && ecole->tab_ce2[1]!=NULL) { do { ft_afficheEntete(*ecole); printf("\n\n\t\tIl y a deux classe de CE2\n"); printf("\t\tLaquelle voulez vous supprimer :\n\n"); printf("\t\t1 * CE2_1\n\n"); printf("\t\t2 * CE2_2\n\n\n\n"); printf("\t\t0 * Retour\n\n\n\n\n\t\t >>"); scanf("%d", &souxchoix); viderBuffer(); } while ((souxchoix<0) && (souxchoix>2)); if (souxchoix==1) ft_viderListe(&ecole->tab_ce2[0]->ptr_eleve); if (souxchoix==2) ft_viderListe(&ecole->tab_ce2[1]->ptr_eleve); } if (ecole->tab_ce2[0]!=NULL && ecole->tab_ce2[1]==NULL) ft_viderListe(&ecole->tab_ce2[0]->ptr_eleve); if (ecole->tab_cm2[0]==NULL && ecole->tab_cm2[1]==NULL) printf("\n\n\t\tIl n'a pas de classe de CE2\n\n"); break; case 4: if (ecole->tab_cm1[0]!=NULL && ecole->tab_cm1[1]!=NULL) { do { ft_afficheEntete(*ecole); printf("\n\n\t\tIl y a deux classe de CM1\n"); printf("\t\tLaquelle voulez vous supprimer :\n\n"); printf("\t\t1 * CM1_1\n\n"); printf("\t\t2 * CM1_2\n\n\n\n"); printf("\t\t0 * Retour\n\n\n\n\n\t\t >>"); scanf("%d", &souxchoix); viderBuffer(); } while ((souxchoix<0) && (souxchoix>2)); if (souxchoix==1) ft_viderListe(&ecole->tab_cm1[0]->ptr_eleve); if (souxchoix==2) ft_viderListe(&ecole->tab_cm1[1]->ptr_eleve); } if (ecole->tab_cm1[0]!=NULL && ecole->tab_cm1[1]==NULL) ft_viderListe(&ecole->tab_cm1[0]->ptr_eleve); if (ecole->tab_cm1[0]==NULL && ecole->tab_cm1[1]==NULL) printf("\n\n\t\tIl n'a pas de classe de CM1\n\n"); break; case 5: if (ecole->tab_cm2[0]!=NULL && ecole->tab_cm2[1]!=NULL) { do { ft_afficheEntete(*ecole); printf("\n\n\t\tIl y a deux classe de CM2\n"); printf("\t\tLaquelle voulez vous supprimer :\n\n"); printf("\t\t1 * CM2_1\n\n"); printf("\t\t2 * CM2_2\n\n\n\n"); printf("\t\t0 * Retour\n\n\n\n\n\t\t >>"); scanf("%d", &souxchoix); viderBuffer(); } while ((souxchoix<0) && (souxchoix>2)); if (souxchoix==1) ft_viderListe(&ecole->tab_cm2[0]->ptr_eleve); if (souxchoix==2) ft_viderListe(&ecole->tab_cm2[1]->ptr_eleve); } if (ecole->tab_cm2[0]!=NULL && ecole->tab_cm2[1]==NULL) ft_viderListe(&ecole->tab_cm2[0]->ptr_eleve); if (ecole->tab_cm2[0]==NULL && ecole->tab_cm2[1]==NULL) printf("\n\n\t\tIl n'a pas de classe de CM2\n\n"); break; default: printf("\n\n\t\tCe choix n'est pas valide, recommencez\n\n"); break; } }
///------------------------------------------------------------------------------------------------ /// Fonction : Permet de modifier une structure de type coordonnées /// paramètre en mise à jour : coord void ft_modifierCoord(coord_t *coord) { int choix; //Variable pour le choix du switch //Menu avec choix et test d'entrée valide do { printf("\n\n"); printf("\t\t MODIFICATION DES COORDONNES :"); printf("\n\t\t==============================="); printf("\n\n\t\t1 * Numero de voie"); printf("\n\n\t\t2 * Nom de voie"); printf("\n\n\t\t3 * Code postal"); printf("\n\n\t\t4 * Ville"); printf("\n\n\t\t5 * Numero de telephone"); printf("\n\n\n\t\t6 * Toutes les informations"); printf("\n\n\n\n\t\t0 * RETOUR\n\n\n\n\n\t\t >> "); scanf("%d",&choix); viderBuffer(); } while((choix>6) && (choix<0)); //Modification de A en fonction du choix de l'utilisateur switch(choix) { case 0: break; case 1: printf("\n\t=> veuillez entrer le numero de voie : "); lireChaine(coord->num,4); while (Controle_IntSaisie(coord->num,strlen(coord->num))==0) { printf("\n\t=> numero invalide, le ressaisir svp "); printf("\n\tnumero : "); lireChaine(coord->num,4); } break; case 2: printf("\n\t=> veuillez entrer le nom de la voie : "); lireChaine(coord->rue,MAX_CHAR); break; case 3: printf("\n\t=> veuillez entrer le code postal : "); lireChaine(coord->postal,6); while (Controle_IntSaisie(coord->postal,5)==0) { printf("\n\t=> code postal invalide, le ressaisir svp "); printf("\n\tcode postal : "); lireChaine(coord->postal,6); } break; case 4: printf("\n\t=> veuillez entrer le nom de la ville : "); lireChaine(coord->ville,MAX_CHAR); break; case 5: printf("\n\t=> veuillez saisir le numero de telephone (ex : 0626542110) : "); lireChaine(coord->tel,11); while (!Controle_Telephone(coord->tel)) { printf("\n\t=> numero de telephone invalide, le ressaisir svp "); printf("\n\tnumero de telephone des parents (ex : 0626542110) : "); lireChaine(coord->tel,11); } break; case 6: ft_saisirCoord(coord); break; } }
void modifier_contact(struct Fiche *contact,int i) { int choix,j; char buff[256]; i--; printf("Que souhaitez vous modifier: \n"); printf("1-Nom\n"); printf("2-Prenom\n"); printf("3-Sexe\n"); printf("4-Date de naissance\n"); printf("5-Email\n"); printf("6-Telephone fixe\n"); printf("7-Telephone mobile\n"); printf("8-Adresse\n"); printf("9-Annuler\n"); printf("Votre choix: "); scanf("%d",&choix); viderBuffer(); switch(choix) { case 1: printf("Nom: "); contact[i].nom=longueur_chaine(get_str(buff,256)); for(j=0; contact[i].nom[j]; j++) { if(j==0) { contact[i].nom[j]=toupper(contact[i].nom[j]); } else { contact[i].nom[j]=tolower(contact[i].nom[j]); } } break; case 2: printf("Prenom: "); contact[i].prenom=longueur_chaine(get_str(buff,256)); break; case 3: printf("Sexe: "); contact[i].sexe=longueur_chaine(get_str(buff,256)); break; case 4: printf("Date de naissance JJ/MM/AAAA : "); contact[i].date_naissance=s_naissance(get_str(buff,256)); break; case 5: printf("Email: "); contact[i].email=longueur_chaine(get_str(buff,256)); break; case 6: printf("Telephone fixe: "); contact[i].numfix=longueur_chaine(get_str(buff,256)); break; case 7: printf("Telephone mobile: "); contact[i].nummobil=longueur_chaine(get_str(buff,256)); break; case 8: printf("Adresse: "); contact[i].adresse=longueur_chaine(get_str(buff,256)); break; case 9: printf("Vous avez choisi de ne rien modifier\n"); break; default : printf("Ce choix n'existe pas\n"); break; } }