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>