Code donnée par la prof :

#include <stdio.h>
#include <stdafx.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;
 
void 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
}