mise à jour

master
Alexis LAURENT 2 years ago
parent f9901b923e
commit 297f8a23b4

@ -0,0 +1,2 @@
# SAE_Algo

@ -1,5 +1,6 @@
2 2
89
14 14
77
56 56
69
77
89

@ -1,212 +1,33 @@
#include "fonction.h" #include "SAE.h"
int chargementAdherent(int tabAdherent[], int tphys) void affichageInfo(int tabNumCarte[], int tabPoint[], int carte[], int jour, int mois, int annee,int taille)
{
int adhe, i =0;
FILE*flot;
flot = fopen("adherent.txt","r");
fscanf(flot,"%d",&adhe);
while(!feof(flot))
{
if(i >= tphys)
{
printf("tableau plein\n");
fclose(flot);
return i;
}
ajouter(tabAdherent,i,adhe,tphys);
i = i + 1;
fscanf(flot,"%d",&adhe);
}
fclose(flot);
return i;
}
int recherche(int tabTri[], int val, int nb, int *trouve) {
int i;
*trouve = 0;
for(i = 0 ; i < nb ; i++) {
if (val == tabTri[i]) {
*trouve = 1;
return i;
}
if (val < tabTri[i]) return i;
}
return nb;
}
void decalageDroite(int tabTri[], int nb, int pos) {
int j;
for (j = nb ; j > pos ; j--) tabTri[j] = tabTri[j-1];
}
void decalageGauche(int tabTri[], int nb, int pos) {
int j;
for(j = pos ; j < nb-1 ; j++) tabTri[j] = tabTri[j+1];
}
int ajouter(int tab[], int nb, int val, int tphys) {
int pos, trouve;
if (nb == tphys) {
printf("Impossible d'insérer un nouvel élément, le tableau est plein !\n");
return nb;
}
pos = recherche(tab, val, nb, &trouve);
if (trouve == 1) {
printf("Valeur déjà présente dans le tableau !\n");
return nb;
}
decalageDroite(tab, nb, pos);
tab[pos] = val;
nb += 1;
return nb;
}
int suppression(int tab[], int nb, int val) {
int pos, trouve;
if (nb == 0) {
printf("Aucun élément à supprimer dans le tableau !\n");
return nb;
}
pos = recherche(tab, val, nb, &trouve);
decalageGauche(tab, nb, pos);
nb -= 1;
return nb;
}
void affichageInfo(int tabNumCarte[], int tabPoint[], int carte[], int jour[], int mois[], int annee[],int taille)
{ {
int i, idnum, trouve; int i, idnum, trouve;
printf("Votre Numéro de Carte d'Adhérent :"); printf("Votre Numéro de Carte d'Adhérent :");
scanf("%d", &idnum); scanf("%d", idnum);
printf("Num Carte \t Points \t Date \n"); printf("Num Carte \t Points \t Date \n");
i = recherche(tabNumCarte, idnum, taille, &trouve); i = recherche(tabNumCarte, idnum, taille, &trouve);
if (trouve == 0) printf("numéro de carte %d n'est pas attribué.\n", idnum); if (trouve == 0)
else { {
print("numéro de carte %d n'est pas attribué.\n", idnum);
exit(1);
}
printf("Num Carte \t Points \t Etat Carte \t Date \n"); printf("Num Carte \t Points \t Etat Carte \t Date \n");
if (carte[i] == 0) if (carte[i] == 0)
printf("%d \t %d \t perdu \t %d/%d/%d \n", tabNumCarte[i],tabPoint[i], jour[i], mois[i], annee[i]); printf("%d \t %d \t perdu \t %d/%d/%d \n", tabNumCarte[i],tabPoint[i], int jour[i], int mois[i], int annee[i]);
if (carte[i] == 1) if (carte[i] == 1)
printf("%d \t %d \t actif \t %d/%d/%d \n", tabNumCarte[i],tabPoint[i], jour[i], mois[i], annee[i]); printf("%d \t %d \t actif \t %d/%d/%d \n", tabNumCarte[i],tabPoint[i], int jour[i], int mois[i], int annee[i]);
}
} }
void affichageTous(int tabNumCarte[], int tabPoint[], int carte[], int jour[], int mois[], int annee[],int taille) void affichageTous(int tabNumCarte[], int tabPoint[], int carte[], int jour, int mois, int annee,int taille)
{ {
int i; int i;
printf("Num Carte \t Points \t Date \n"); printf("Num Carte \t Points \t Date \n");
for (i = 0; i < taille; i++) for (i = 0; i < taille; i++)
{ {
if (carte[i] == 0) if (carte[i] == 0)
printf("%d \t %d \t perdu \t %d/%d/%d \n", tabNumCarte[i],tabPoint[i], jour[i], mois[i], annee[i]); printf("%d \t %d \t perdu \t %d/%d/%d \n", tabNumCarte[i],tabPoint[i], int jour[i], int mois[i], int annee[i]);
if (carte[i] == 1) if (carte[i] == 1)
printf("%d \t %d \t actif \t %d/%d/%d \n", tabNumCarte[i],tabPoint[i], jour[i], mois[i], annee[i]); printf("%d \t %d \t actif \t %d/%d/%d \n", tabNumCarte[i],tabPoint[i], int jour[i], int mois[i], int annee[i]);
}
}
void affichageTest(int tabAdhe[], int nb) {
int i;
printf("Numéro de carte\n");
for (i = 0 ; i < nb ; i++) {
printf("%d\n",tabAdhe[i]);
}
}
int chargementActivite(int tabPoint[],int tabNbEntree[], int tphys)
{
int num, point, nbEntree, i =0;
FILE*flot;
flot = fopen("activite.txt","r");
fscanf(flot,"%d %d %d",&num, &point, &nbEntree);
while(!feof(flot))
{
if(i < tphys)
{
printf("tableau plein\n");
fclose(flot);
return i;
}
tabPoint[num] = point;
tabNbEntree[num] = nbEntree;
i = i + 1;
fscanf(flot,"%d %d %d",&num, &point, &nbEntree);
}
fclose(flot);
return i;
}
void afficheNbEntreAct(int tabNbEntree[], int tabPoint[], int tphys)
{
int num;
printf("numero dactivité :");
scanf("%d",&num);
if (tabPoint[num] == 0 && tabNbEntree[num] == 0)
printf("Activité inexistante\n");
else
printf("Nombre dentrée : %d", tabNbEntree[num]);
}
void alimenterCarte (int tabAdherent[], int tabPoint[],int nb)
{
int num, trouve, i;
char formule;
printf("numero carte :");
scanf("%d",&num);
i = recherche(tabAdherent, num, nb, &trouve);
if (trouve == 1)
{
printf("Qu'elle formule :\n");
printf("A : 5€ -> 5 points\n");
printf("B : 10€ -> 12 point\n");
printf("C : 15€ -> 20 point\n");
printf("Choisir :");
scanf("%*c%c", &formule);
while (formule != 'A' || formule != 'B' || formule != 'C')
{
printf("Erreur récupération de donnée\n");
printf("A : 5€ -> 5 points\n");
printf("B : 10€ -> 12 point\n");
printf("C : 15€ -> 20 point\n");
printf("Choisir :");
scanf("%*c%c", &formule);
}
if (formule == 'A')
{
tabAdherent[i] = tabAdherent[i] + 5;
printf("accréditation de 5 points\n");
}
if (formule == 'B')
{
tabAdherent[i] = tabAdherent[i] + 12;
printf("accréditation de 12 points\n");
} }
if (formule == 'B')
{
tabAdherent[i] = tabAdherent[i] + 20;
printf("accréditation de 20 points\n");
}
}
if (trouve == 0)
printf("Erreur ! Numéro de carte absente de la base de donnée\n");
} }

@ -25,3 +25,6 @@ void affichageInfo(int tabNumCarte[], int tabPoint[], int carte[], int jour[], i
void affichageTous(int tabNumCarte[], int tabPoint[], int carte[], int jour[], int mois[], int annee[],int taille); void affichageTous(int tabNumCarte[], int tabPoint[], int carte[], int jour[], int mois[], int annee[],int taille);
void affichageTest(int tabAdhe[], int nb); void affichageTest(int tabAdhe[], int nb);
int SauvegardeAdherent(int tabAdherent[], int tailleL);

@ -3,12 +3,31 @@
int main(void) { int main(void) {
int tab[50], tailleL; int tab[50], tailleL, codeSauv, coderetour=-1;
tailleL=chargementAdherent(tab,50); tailleL=chargementAdherent(tab,50);
affichageTest(tab,tailleL); affichageTest(tab,tailleL);
tailleL=ajouter(tab,tailleL,69,50); tailleL=ajouter(tab,tailleL,69,50);
affichageTest(tab,tailleL); affichageTest(tab,tailleL);
tailleL=suppression(tab,tailleL,69); // tailleL=suppression(tab,tailleL,69);
affichageTest(tab,tailleL); // affichageTest(tab,tailleL);
printf("Sauvegarder ? (1 : Oui, 2 : Non)\n");
scanf("%d",&codeSauv);
if (codeSauv == 1) {
while(coderetour == -1) {
coderetour = SauvegardeAdherent(tab,tailleL);
if (coderetour == 0) {
printf("Sauvegarde réussie !\n");
break;
}
else {
printf("Sauvegarde échouée\n");
printf("Réessayer ?(1 : Oui, 2 : Non\n");
scanf("%d",&codeSauv);
if (codeSauv == 2) break;
}
}
}
return 0; return 0;
} }
Loading…
Cancel
Save