first push with elements lola

master
Lola CHALMIN 3 years ago
commit 32e2ddaae5

45
sae.c

@ -0,0 +1,45 @@
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include "sae.h"
char Card(void)//demande si client a la carte
{
char bCard;
printf("Avez-vous votre numéro de carte adhérent avec vous ?(O/N)\n");
scanf("%c", &bCard);
return bCard;
}
void Name( char *nom, char *prenom)//demande nom et prénom
{
printf("Bienvenue ! Quel est votre nom ?\n");
scanf("%s%*c", nom);
printf("Et votre prénom ?\n");
scanf("%s%*c", prenom);
}
int Fillvar(FILE *f, int *numAd, char *fnom, char *fprenom, int *age, int *state, int *acti, int *passeoupas, int *ptsbought, int *ptsbonus, char *categ)//lis le fichier et met les valeurs dans les variables
{
if (feof(f))
{
return -1;
}
fscanf(f, "%6d\n", numAd);
fscanf(f, "%s", fnom);
fscanf(f, "%s", fprenom);
fscanf(f, "%2d", age);
fscanf(f, "%d", state);
fscanf(f, "%d", acti);
fscanf(f, "%d", passeoupas);
fscanf(f, "%2d", ptsbought);
fscanf(f, "%2d%*c", ptsbonus);
fscanf(f, "%c", categ);
}

@ -0,0 +1,3 @@
void Name( char *nom, char *prenom);
char Card(void);
int Fillvar(FILE *f, int *numAd, char *fnom, char *fprenom, int *age, int *state, int *acti, int *passeoupas, int *ptsbought, int *ptsbonus, char *categ);

@ -0,0 +1,82 @@
#include <stdio.h>
#include <string.h>
#include "sae.h"
void main(void)
{
char nom[15], prenom[15], fnom[15], fprenom[15], bCard, member, categ, recharge;
int erreur, numAd, age, state, acti, passeoupas, ptsbought,ptsbonus, numCard, avoiravecevann, testnom, testpnom;
FILE *f;
f = fopen("donneeClient.don","r");
if (f==NULL){printf("Erreur ouverture fichier clients"); fclose(f); return;}
Name(nom, prenom);
printf("Bonjour %s! Avez-vous déjà un compte chez nous ou souhaitez-vous vous enregistrer ? Créer (C) ou Membre (M)\n", prenom);
scanf("%c%*c", &member);
bCard = Card();
erreur = Fillvar(f, &numAd, fnom, fprenom, &age, &state, &acti, &passeoupas, &ptsbought, &ptsbonus, &categ);
if (member == 'C')//si client veut créer nouveau compte
{
/*creationCompte(int avoiravecevann);*/
avoiravecevann = 2;
}
if (bCard == 'N')//si client n'a pas la carte
{
puts("Ok nous allons donc rechercher votre numéro de 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 (testnom!=0 && testpnom!=0 && erreur != -1)// tant que les 2 différents
{
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)
{
printf("Il semble que vous n'aviez pas de compte chez nous...");//si le client n'est au final pas enregistré
return;
}
printf("Vous disposez de %d points, souhaitez-vous recharger votre carte ? (O/N) \n", ptsbought);//infos sur ses points + recharge ?
scanf("%c%*c", &recharge);
}
if (bCard == 'O')//si client a la carte
{
printf("Quel est donc le numéro ?\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
}
printf("Vous disposez de %d points, souhaitez-vous recharger votre carte ? (O/N) \n", ptsbought);//nombre de points qu'il a + recharger ?
scanf("%c", &recharge);
//Fillvar(&numAd, fnom, fprenom, &age, &state, &acti, &passeoupas, &ptsbought, &ptsbonus, &categ);
return;
}
}
Loading…
Cancel
Save