#include #include #include "saelo.h" void main(void) { char nom[15], prenom[15], fnom[15], fprenom[15], bCard, member, categ, recharge, acti1[15], acti2[15], acti3[15]; int erreur, numAd, age, state, acti, passeoupas, ptsbought,ptsbonus, numCard, avoiravecevann, testnom, testpnom, found = 0, ptrecharge, nbacti, numacti, s1, s2, s3, m1, m2, m3, f1, f2, f3, b1, b2, b3, z1, z2, z3; FILE *f; f = fopen("donneeClient.don","r"); if (f==NULL){printf("Erreur ouverture fichier clients"); fclose(f); return;} //accueil printf("Bienvenue ! Déjà membre ou création de compte ? Créer (C) ou Membre (M)\n"); scanf("%c%*c", &member); bCard = Card(); erreur = Fillvar(f, &numAd, fnom, fprenom, &age, &state, &acti, &passeoupas, &ptsbought, &ptsbonus, &categ); //si nouveau client / créer nouveau compte if (member == 'C') { /*creationCompte(int avoiravecevann);*/ avoiravecevann = 2; } //demander nom & prénom Name(nom, prenom); //si client n'a pas son numéro de carte if (bCard == 'N') { puts("Recherche de la carte !"); testnom = strcmp(fnom, nom);//comparer nom du fichier et nom donné testpnom = strcmp(fprenom, prenom);//comparer prénom du fichier et prénom donné while (erreur != -1 && found == 0)// tant que pas d'erreur ou pas trouvé { if (testnom == 0) { if (testpnom == 0) found = 1; break; } erreur = Fillvar(f, &numAd, fnom, fprenom, &age, &state, &acti, &passeoupas, &ptsbought, &ptsbonus, &categ);//rescan testnom = strcmp(fnom, nom);//recomparaison nom testpnom = strcmp(fprenom, prenom);//recomparaison prénom } if(erreur == -1 || found == 0)//si pas trouvé ou fin de fichier { printf("Recherche non aboutie : numéro non enregistré...\n");//si le client n'est au final pas enregistré return; } if (found == 1)//si trouvé { if (passeoupas == 1)//si client déjà passé { printf("Déjà passé, nombre possible de passage dans une journée : 1...\n"); return; } printf("La carte dispose de %d points, rechargement de carte souhaité ? (O/N) \n", ptsbought);//infos sur ses points + recharge ? scanf("%c%*c", &recharge); if (recharge == 'O')//si client souhaite recharger carte { printf("De combien de dizaine de points souhaitez vous recharger ?\n"); scanf("%d%*c", &ptrecharge); printf("%d", ptrecharge); } } } if (bCard == 'O')//si client a la carte { printf("Veuillez entrer numéro de carte ?\n"); scanf("%d%*c", &numCard); while (numCard < 100000 || numCard > 999999)//vérifier numéro carte correct (6 chiffres) { printf("Veuillez saisir un numéro de carte correct\n"); scanf("%d%*c", &numCard); } erreur = Fillvar(f, &numAd, fnom, fprenom, &age, &state, &acti, &passeoupas, &ptsbought, &ptsbonus, &categ);//scanner le document et récupérer les variables while (numCard != numAd && erreur == 0)//tant que numéro de carte donné différent de celui du fichier { erreur = Fillvar(f, &numAd, fnom, fprenom, &age, &state, &acti, &passeoupas, &ptsbought, &ptsbonus, &categ);//rescan } if (passeoupas == 1) { printf("Déjà passé, nombre possible de passage dans une journée : 1..."); return; } printf("La carte dispose de %d points, rechargement de carte souhaité ? (O/N) \n", ptsbought);//nombre de points qu'il a + recharger ou non scanf("%c", &recharge); } printf("Combien d'activités souhaitées aujourd'hui ? (max 3)\n"); scanf("%d%*c", &nbacti); while (nbacti > 3 || nbacti <= 0) { printf("Nombre d'activités incorrect, veuillez re-saisir (max 3)\n"); scanf("%d%*c", &nbacti); } //si il n'y a qu'un activité if (nbacti == 1) { printf("Quelle est-elle ?(zumba/badminton/musculation/football/squash)\n"); scanf("%s", acti1); z1 = strcmp(acti1, "zumba"); b1 = strcmp(acti1, "badminton"); printf("%d", b1); m1 = strcmp(acti1, "musculation"); s1 = strcmp(acti1, "squash"); f1 = strcmp(acti1, "football"); while(z1 != 0 && b1 != 0 && m1 != 0 && s1 != 0 && f1 != 0) { printf("Veuillez saisir une activité correcte \n"); scanf("%s", acti1); } if (z1 == 0) { numacti = 5; if (ptsbought < 5) { printf("Pas assez de points disponibles sur la carte, rechargement souhaité ? (O/N)\n"); scanf("%c%*c", &recharge); if (recharge == 'N') { return; } else { //RELOAD AND CONTINUE return; } } ptsbought -= 5; ptsbonus += 5; if (ptsbonus >= 100) { ptsbought += 15; ptsbonus -= 100; } } if (b1 == 0) { numacti = 1; if (ptsbought < 8) printf("Pas assez de points disponibles sur la carte, rechargement souhaité ? (O/N)\n"); scanf("%c%*c", &recharge); if (recharge == 'N') { return; } else { //RELOAD AND CONTINUE return; } ptsbought -= 8; ptsbonus += 8; if (ptsbonus >= 100) { ptsbought += 15; ptsbonus -= 100; } } if (s1 == 0) { numacti = 4; if (ptsbought < 10) printf("Pas assez de points disponibles sur la carte, rechargement souhaité ? (O/N)\n"); scanf("%c%*c", &recharge); if (recharge == 'N') { return; } else { //RELOAD AND CONTINUE return; } ptsbought -= 10; ptsbonus += 10; if (ptsbonus >= 100) { ptsbought += 15; ptsbonus -= 100; } } if (f1 == 0) { numacti = 3; if (ptsbought < 5) printf("Pas assez de points disponibles sur la carte, rechargement souhaité ? (O/N)\n"); scanf("%c%*c", &recharge); if (recharge == 'N') { return; } else { //RELOAD AND CONTINUE return; } ptsbought -= 5; ptsbonus += 5; if (ptsbonus >= 100) { ptsbought += 15; ptsbonus -= 100; } } if (m1 == 0) { numacti = 2; if (ptsbought < 15) printf("Pas assez de points disponibles sur la carte, rechargement souhaité ? (O/N)\n"); scanf("%c%*c", &recharge); if (recharge == 'N') { return; } else { //RELOAD AND CONTINUE return; } ptsbought -= 15; ptsbonus += 15; if (ptsbonus >= 100) { ptsbought += 15; ptsbonus -= 100; } } } //si il y a 2 activités if (nbacti == 2) { printf("Quelles sont-elles ?(zumba/badminton/musculation/football/squash)\n"); scanf("%s%*c", acti1); scanf("%s%*c", acti2); z1 = strcmp(acti1, "zumba"); b1 = strcmp(acti1, "badminton"); m1 = strcmp(acti1, "musculation"); s1 = strcmp(acti1, "squash"); f1 = strcmp(acti1, "football"); while(z1 != 0 && b1 != 0 && m1 != 0 && s1 != 0 && f1 != 0) { printf("Veuillez saisir une activité correcte \n"); scanf("%s", acti1); } z2 = strcmp(acti2, "zumba"); b2 = strcmp(acti2, "badminton"); m2 = strcmp(acti2, "musculation"); s2 = strcmp(acti2, "squash"); f2 = strcmp(acti2, "football"); while(z2 != 0 && b2 != 0 && m2 != 0 && s2 != 0 && f2 != 0) { printf("Veuillez saisir une activité correcte \n"); scanf("%s", acti2); } //première activité if (z1 == 0) { numacti = 5; if (ptsbought < 5) { printf("Pas assez de points disponibles sur la carte, rechargement souhaité ? (O/N)\n"); scanf("%c%*c", &recharge); if (recharge == 'N') { return; } else { //RELOAD AND CONTINUE return; } } ptsbought -= 5; ptsbonus += 5; if (ptsbonus >= 100) { ptsbought += 15; ptsbonus -= 100; } } if (b1 == 0) { numacti = 1; if (ptsbought < 8) printf("Pas assez de points disponibles sur la carte, rechargement souhaité ? (O/N)\n"); scanf("%c%*c", &recharge); if (recharge == 'N') { return; } else { //RELOAD AND CONTINUE return; } ptsbought -= 8; ptsbonus += 8; if (ptsbonus >= 100) { ptsbought += 15; ptsbonus -= 100; } } if (s1 == 0) { numacti = 4; if (ptsbought < 10) printf("Pas assez de points disponibles sur la carte, rechargement souhaité ? (O/N)\n"); scanf("%c%*c", &recharge); if (recharge == 'N') { return; } else { //RELOAD AND CONTINUE return; } ptsbought -= 10; ptsbonus += 10; if (ptsbonus >= 100) { ptsbought += 15; ptsbonus -= 100; } } if (f1 == 0) { numacti = 3; if (ptsbought < 5) printf("Pas assez de points disponibles sur la carte, rechargement souhaité ? (O/N)\n"); scanf("%c%*c", &recharge); if (recharge == 'N') { return; } else { //RELOAD AND CONTINUE return; } ptsbought -= 5; ptsbonus += 5; if (ptsbonus >= 100) { ptsbought += 15; ptsbonus -= 100; } } if (m1 == 0) { numacti = 2; if (ptsbought < 15) printf("Pas assez de points disponibles sur la carte, rechargement souhaité ? (O/N)\n"); scanf("%c%*c", &recharge); if (recharge == 'N') { return; } else { //RELOAD AND CONTINUE return; } ptsbought -= 15; ptsbonus += 15; if (ptsbonus >= 100) { ptsbought += 15; ptsbonus -= 100; } } //deuxième activité if (z2 == 0) { numacti += 5*10; if (ptsbought < 5) { printf("Pas assez de points disponibles sur la carte, rechargement souhaité ? (O/N)\n"); scanf("%c%*c", &recharge); if (recharge == 'N') { return; } else { //RELOAD AND CONTINUE return; } } ptsbought -= 5; ptsbonus += 5; if (ptsbonus >= 100) { ptsbought += 15; ptsbonus -= 100; } } if (b2 == 0) { numacti += 1*10; if (ptsbought < 8) printf("Pas assez de points disponibles sur la carte, rechargement souhaité ? (O/N)\n"); scanf("%c%*c", &recharge); if (recharge == 'N') { return; } else { //RELOAD AND CONTINUE return; } ptsbought -= 8; ptsbonus += 8; if (ptsbonus >= 100) { ptsbought += 15; ptsbonus -= 100; } } if (s2 == 0) { numacti += 4*10; if (ptsbought < 10) printf("Pas assez de points disponibles sur la carte, rechargement souhaité ? (O/N)\n"); scanf("%c%*c", &recharge); if (recharge == 'N') { return; } else { //RELOAD AND CONTINUE return; } ptsbought -= 10; ptsbonus += 10; if (ptsbonus >= 100) { ptsbought += 15; ptsbonus -= 100; } } if (f2 == 0) { numacti += 3*10; if (ptsbought < 5) printf("Pas assez de points disponibles sur la carte, rechargement souhaité ? (O/N)\n"); scanf("%c%*c", &recharge); if (recharge == 'N') { return; } else { //RELOAD AND CONTINUE return; } ptsbought -= 5; ptsbonus += 5; if (ptsbonus >= 100) { ptsbought += 15; ptsbonus -= 100; } } if (m2 == 0) { numacti += 2*10; if (ptsbought < 15) printf("Pas assez de points disponibles sur la carte, rechargement souhaité ? (O/N)\n"); scanf("%c%*c", &recharge); if (recharge == 'N') { return; } else { //RELOAD AND CONTINUE return; } ptsbought -= 15; ptsbonus += 15; if (ptsbonus >= 100) { ptsbought += 15; ptsbonus -= 100; } } } if (nbacti == 3) { printf("Quelles sont-elles ?(zumba/badminton/musculation/football/squash)\n"); scanf("%s", acti1); scanf("%s", acti2); scanf("%s", acti3); z1 = strcmp(acti1, "zumba"); b1 = strcmp(acti1, "badminton"); m1 = strcmp(acti1, "musculation"); s1 = strcmp(acti1, "squash"); f1 = strcmp(acti1, "football"); while(z1 != 0 && b1 != 0 && m1 != 0 && s1 != 0 && f1 != 0) { printf("Veuillez saisir une activité correcte \n"); scanf("%s", acti1); } z2 = strcmp(acti2, "zumba"); b2 = strcmp(acti2, "badminton"); m2 = strcmp(acti2, "musculation"); s2 = strcmp(acti2, "squash"); f2 = strcmp(acti2, "football"); while(z2 != 0 && b2 != 0 && m2 != 0 && s2 != 0 && f2 != 0) { printf("Veuillez saisir une activité correcte \n"); scanf("%s", acti2); } z3 = strcmp(acti3, "zumba"); b3 = strcmp(acti3, "badminton"); m3 = strcmp(acti3, "musculation"); s3 = strcmp(acti3, "squash"); f3 = strcmp(acti3, "football"); while(z3 != 0 && b3 != 0 && m3 != 0 && s3 != 0 && f3 != 0) { printf("Veuillez saisir une activité correcte \n"); scanf("%s", acti3); } //première activité if (z1 == 0) { numacti = 5; if (ptsbought < 5) { printf("Pas assez de points disponibles sur la carte, rechargement souhaité ? (O/N)\n"); scanf("%c%*c", &recharge); if (recharge == 'N') { return; } else { //RELOAD AND CONTINUE return; } } ptsbought -= 5; ptsbonus += 5; if (ptsbonus >= 100) { ptsbought += 15; ptsbonus -= 100; } } if (b1 == 0) { numacti = 1; if (ptsbought < 8) printf("Pas assez de points disponibles sur la carte, rechargement souhaité ? (O/N)\n"); scanf("%c%*c", &recharge); if (recharge == 'N') { return; } else { //RELOAD AND CONTINUE return; } ptsbought -= 8; ptsbonus += 8; if (ptsbonus >= 100) { ptsbought += 15; ptsbonus -= 100; } } if (s1 == 0) { numacti = 4; if (ptsbought < 10) printf("Pas assez de points disponibles sur la carte, rechargement souhaité ? (O/N)\n"); scanf("%c%*c", &recharge); if (recharge == 'N') { return; } else { //RELOAD AND CONTINUE return; } ptsbought -= 10; ptsbonus += 10; if (ptsbonus >= 100) { ptsbought += 15; ptsbonus -= 100; } } if (f1 == 0) { numacti = 3; if (ptsbought < 5) printf("Pas assez de points disponibles sur la carte, rechargement souhaité ? (O/N)\n"); scanf("%c%*c", &recharge); if (recharge == 'N') { return; } else { //RELOAD AND CONTINUE return; } ptsbought -= 5; ptsbonus += 5; if (ptsbonus >= 100) { ptsbought += 15; ptsbonus -= 100; } } if (m1 == 0) { numacti = 2; if (ptsbought < 15) printf("Pas assez de points disponibles sur la carte, rechargement souhaité ? (O/N)\n"); scanf("%c%*c", &recharge); if (recharge == 'N') { return; } else { //RELOAD AND CONTINUE return; } ptsbought -= 15; ptsbonus += 15; if (ptsbonus >= 100) { ptsbought += 15; ptsbonus -= 100; } } printf("%d", numacti); //deuxième activité if (z2 == 0) { numacti += 5*10; if (ptsbought < 5) { printf("Pas assez de points disponibles sur la carte, rechargement souhaité ? (O/N)\n"); scanf("%c%*c", &recharge); if (recharge == 'N') { return; } else { //RELOAD AND CONTINUE return; } } ptsbought -= 5; ptsbonus += 5; if (ptsbonus >= 100) { ptsbought += 15; ptsbonus -= 100; } } if (b2 == 0) { numacti += 1*10; if (ptsbought < 8) printf("Pas assez de points disponibles sur la carte, rechargement souhaité ? (O/N)\n"); scanf("%c%*c", &recharge); if (recharge == 'N') { return; } else { //RELOAD AND CONTINUE return; } ptsbought -= 8; ptsbonus += 8; if (ptsbonus >= 100) { ptsbought += 15; ptsbonus -= 100; } } if (s2 == 0) { numacti += 4*10; if (ptsbought < 10) printf("Pas assez de points disponibles sur la carte, rechargement souhaité ? (O/N)\n"); scanf("%c%*c", &recharge); if (recharge == 'N') { return; } else { //RELOAD AND CONTINUE return; } ptsbought -= 10; ptsbonus += 10; if (ptsbonus >= 100) { ptsbought += 15; ptsbonus -= 100; } } if (f2 == 0) { numacti += 3*10; if (ptsbought < 5) printf("Pas assez de points disponibles sur la carte, rechargement souhaité ? (O/N)\n"); scanf("%c%*c", &recharge); if (recharge == 'N') { return; } else { //RELOAD AND CONTINUE return; } ptsbought -= 5; ptsbonus += 5; if (ptsbonus >= 100) { ptsbought += 15; ptsbonus -= 100; } } if (m2 == 0) { numacti += 2*10; if (ptsbought < 15) printf("Pas assez de points disponibles sur la carte, rechargement souhaité ? (O/N)\n"); scanf("%c%*c", &recharge); if (recharge == 'N') { return; } else { //RELOAD AND CONTINUE return; } ptsbought -= 15; ptsbonus += 15; if (ptsbonus >= 100) { ptsbought += 15; ptsbonus -= 100; } } printf("%d", numacti); //troisième activité if (z3 == 0) { numacti += 5*100; if (ptsbought < 5) { printf("Pas assez de points disponibles sur la carte, rechargement souhaité ? (O/N)\n"); scanf("%c%*c", &recharge); if (recharge == 'N') { return; } else { //RELOAD AND CONTINUE return; } } ptsbought -= 5; ptsbonus += 5; if (ptsbonus >= 100) { ptsbought += 15; ptsbonus -= 100; } } if (b3 == 0) { numacti += 1*100; if (ptsbought < 8) printf("Pas assez de points disponibles sur la carte, rechargement souhaité ? (O/N)\n"); scanf("%c%*c", &recharge); if (recharge == 'N') { return; } else { //RELOAD AND CONTINUE return; } ptsbought -= 8; ptsbonus += 8; if (ptsbonus >= 100) { ptsbought += 15; ptsbonus -= 100; } } if (s3 == 0) { numacti += 4*100; if (ptsbought < 10) printf("Pas assez de points disponibles sur la carte, rechargement souhaité ? (O/N)\n"); scanf("%c%*c", &recharge); if (recharge == 'N') { return; } else { //RELOAD AND CONTINUE return; } ptsbought -= 10; ptsbonus += 10; if (ptsbonus >= 100) { ptsbought += 15; ptsbonus -= 100; } } if (f3 == 0) { numacti += 3*100; if (ptsbought < 5) printf("Pas assez de points disponibles sur la carte, rechargement souhaité ? (O/N)\n"); scanf("%c%*c", &recharge); if (recharge == 'N') { return; } else { //RELOAD AND CONTINUE return; } ptsbought -= 5; ptsbonus += 5; if (ptsbonus >= 100) { ptsbought += 15; ptsbonus -= 100; } } if (m3 == 0) { numacti += 2*100; if (ptsbought < 15) printf("Pas assez de points disponibles sur la carte, rechargement souhaité ? (O/N)\n"); scanf("%c%*c", &recharge); if (recharge == 'N') { return; } else { //RELOAD AND CONTINUE return; } ptsbought -= 15; ptsbonus += 15; if (ptsbonus >= 100) { ptsbought += 15; ptsbonus -= 100; } } } printf("%d", numacti); return; }