You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

159 lines
3.9 KiB

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

#include "fonction.h"
int chargementAdherent(int tabAdherent[], int tphys)
{
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;
printf("Votre Numéro de Carte d'Adhérent :");
scanf("%d", &idnum);
printf("Num Carte \t Points \t Date \n");
i = recherche(tabNumCarte, idnum, taille, &trouve);
if (trouve == 0) printf("numéro de carte %d n'est pas attribué.\n", idnum);
else {
printf("Num Carte \t Points \t Etat Carte \t Date \n");
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]);
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]);
}
}
void affichageTous(int tabNumCarte[], int tabPoint[], int carte[], int jour[], int mois[], int annee[],int taille)
{
int i;
printf("Num Carte \t Points \t Date \n");
for (i = 0; i < taille; i++)
{
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]);
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]);
}
}
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]);
}