Bonne lecture.
Piste: » tp2
Ceci est une ancienne révision du document! Cliquez sur le titre pour voir la dernière version.
-
Code donnée par la prof : <code c> #include <stdio.h> #include <conio.h> #include <string.h>
#define maxlog 1000 #define maxuser 50
typedef struct{
char nomUtilisateur[10]; char dateCnx[12]; char heureCnx[10]; char typeCnx; } stConnect;
typedef struct{
char nomUtilisateur[10]; int duree; } stDuree;
prototypes bool chargerTabConnect(char [],stConnect [],int*); void initTab(stDuree [],int *) ; int chercher_deconnexion(int,stConnect[],int); int calcul_duree(int,int,stConnect[],int); int prochaine_connexion (int,stConnect[],int); int chercher_utilisateur (int,stConnect[],int,stDuree[],int); stConnect tabConnect[maxlog]; stDuree tabDurees[maxuser]; int nbConnect,nbUser; main() { char nomFichier[10]; bool erreur; int i; printf (”nom du fichier a lire: “); scanf(”%10s”, nomFichier); erreur= chargerTabConnect(nomFichier,tabConnect,&nbConnect); if (!erreur) { initTab(tabDurees,&nbUser) ; for (i=0;i<nbUser;i++) printf(”%10s %d \n”,tabDurees[i].nomUtilisateur,tabDurees[i].duree); } a completer
getch();
}
bool chargerTabConnect(char nom[],stConnect tabCnx[],int *pn) {
// recuperation des donnees a partir d'un fichier FILE *Fconnect; bool err; stConnect elt;
- pn=0;
err=false;
Fconnect=fopen(nom,"r"); if (Fconnect==NULL) { printf("erreur ouverture\n"); err=true; } else { fread(&elt,sizeof(elt),1,Fconnect); while (!feof(Fconnect)) { *pn=*pn+1; tabCnx[*pn]=elt; fread(&elt,sizeof(elt),1,Fconnect); } } fclose(Fconnect); return err;
}
void initTab(stDuree tabDurees[],int *pn) {
int i, j; char nom[10]; bool trouve; *pn=0; for (i=1;i<=nbConnect;i++) { strcpy(nom,tabConnect[i].nomUtilisateur); j=0; trouve=false; while (j<nbUser && !trouve) { if (strcmp(nom,tabDurees[j].nomUtilisateur)==0) {trouve=true;} j++; } if (!trouve ){ strcpy(tabDurees[nbUser].nomUtilisateur,nom ); tabDurees[nbUser].duree=0; *pn=*pn+1; } }
}
int chercher_deconnexion(int i,stConnect tabConnect[maxlog] ,int nbConnect) {
// a completer
}
int calcul_duree(int i,int j,stConnect tabConnect[maxlog],int nbConnect) {
// a completer
}
int prochaine_connexion (int i,stConnect tabConnect[maxlog] ,int nbConnect) {
// a completer
}
int chercher_utilisateur (int i,stConnect tabConnect[maxlog] ,int nbConnect,
stDuree tabDurees[maxuser],int nbUser)
{
// a completer
}
</code c>