IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

 C Discussion :

Projet de gestion d'une agence de voyage ( suite )


Sujet :

C

  1. #1
    Candidat au Club
    Femme Profil pro
    Lycéen
    Inscrit en
    Mars 2011
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Mars 2011
    Messages : 6
    Points : 4
    Points
    4
    Par défaut Projet de gestion d'une agence de voyage ( suite )
    C'est encore moi ! Bonsoir !
    Dans notre mini-projet on nous a demandés de assurer "La sécurité des accès à l’aide de mots de passe".
    On a inclu les fonctions suivantes dans notre code:





    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    	//************************************Ajouter un administrateur*********************************
    void ajouteradmin(elt  x)
                             {
                             admin *p = (admin *)malloc(sizeof(admin));
                             p==NULL;
                             p->loginpasswd=x;
                             p->suivantadmin=ptr;
                             ptr=p;
                             }
    //*************************************Afficher ******************************************
    void afficher()
                   {
                   admin* p=ptr;
    	           while(p!=NULL)
    	           {printf("\n login: %s \t\t passwd est %s",p->loginpasswd.login,p->loginpasswd.passwd);
    	           p=p->suivantadmin;
    	           }
    	           getch();
                  }
     
    //*********************************saisir**********************************************
     
    void saisie(elt *x){
     
    	  printf("Entrez un login : ");
    	  gets(x->login);
    	  fflush(stdin);
    	  printf("\nEntrez un passwd : ");
    	  gets(x->passwd);
    	  fflush(stdin);
    	  getch();
    	  }
    //************************************quitter******************************************
     
     
    void quitter(){
    	  system("cls");
    	  printf("Merci,a bientot");
    	  getch();
    	  exit(0);
    	  }
     
    //**************************************charger des administrateurs*********************
    admin* charger(){
     
    	  FILE *f;
    	  struct elt x;
    	  f=fopen("comptes.txt","r");
    	  if(f!=NULL){
    	  while(!feof(f)){fflush(stdin);
     
     
    							while(1){
    											fscanf(f,"\n%s",x.login);
    											fscanf(f,"\n%s",x.passwd);
    											if(!feof(f))
    											{
    											ajouteradmin(x);}
                                                fflush(stdin);
                                                break;
                                         }
     
     
                         }
         };
         fclose(f);
    	  return(ptr);
         }
    //**************************************sauvegarder***********************************************
    void sauvegarde()
    {
    admin* p;
    p=ptr;
    	FILE *f;
    	f=fopen("comptes.txt","w");
    	if(ptr==NULL)
    	{
    		fclose(f);
    	}
    	fflush(stdin);
    while(p!=NULL)
    	{
    		fprintf(f,"%s\n",p->loginpasswd.login);
            fprintf(f,"%s\n",p->loginpasswd.passwd);
            fflush(stdin);
            printf("\n login: %s \t\t passwd est %s",p->loginpasswd.login,p->loginpasswd.passwd);
            fflush(stdin);
    		p=p->suivantadmin;
    	};
    	fflush(stdin);
    	fclose(f);
    	getch();
    }
     
    //****************************************ouvrir session*****************************************
    int ouvrir_session(char l[20],char p[20])
      {
        FILE* f;
        f=fopen("comptes.txt","r");
         admin* q;
         q=charger();
         ptr=q;
         printf("Entrer votre login ");
         gets(l);
         fflush(stdin);
         printf("\n\nEntrer votre passwd ");
         gets(p);
         fflush(stdin);
         while(q!=NULL &&( strcmp(l,q->loginpasswd.login)|| strcmp(p,q->loginpasswd.passwd)))
                  {
     
                  q=q->suivantadmin;
                  }
              if(q==NULL){
                         printf("\n\nLOGIN OU MOT DE PASSE ERRONE\n");
                         getch();
                         return 0;
                         }
              else{
                   printf("session ouverte");
                   return 1;
                  }
        getch();
      }

    Comment faire l'appel de ces fonctions dans le main dans l'ordre :
    saisie
    ajouteradmin
    afficher

    Et merci beaucoup pour le temps passé sur mon code!
    Bonne soirée

  2. #2
    Expert éminent sénior
    Avatar de diogene
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Juin 2005
    Messages
    5 761
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 761
    Points : 13 926
    Points
    13 926
    Par défaut
    1- Un minimum d'effort de ta part augmentera tes chances d'avoir des réponses : La remarque t'a déjà été faite que le code devait être correctement indenté (et placé entre balises [code]) pour faciliter la lecture. Il y a quelques styles classiques pour le faire auxquels les lecteurs sont habitués et il faut s'y plier.

    2- Que dire sans même avoir les définitions des types elt ou admin ? C'est comme si tu livrais un appareil sans donner le mode d'emploi.

    3- sans même s'occuper de ce que le code est censé faire, quelques remarques tout de même :

    * ajouteradmin() :
    -La fonction ne sert à rien d'autre que faire une fuite mémoire : on ne récupère pas l'adresse de la zone allouée.
    -Ce code ne sert à rien
    -Qu'est-ce que c'est que ptr ? même question dans afficher(). Est-ce encore une de ces horribles variables globales ?

    * saisie() :
    - fflush() ne doit pas être utilisé pour des flux d'entrée mais uniquement sur des flux de sortie (comme stdout). Pour vider un buffer d'entrée, consulter la faq :
    Pourquoi ne faut-il pas utiliser fflush(stdin) pour vider le buffer clavier ?
    Comment vider le buffer clavier ?
    -gets() est une fonction qu'il ne faut plus utiliser. Utiliser à la place fgets()

    * charger() :
    - feof() ne doit pas être utilisé de cette façon : voir la faq
    A quoi sert la "fonction" feof ?

  3. #3
    Candidat au Club
    Femme Profil pro
    Lycéen
    Inscrit en
    Mars 2011
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Mars 2011
    Messages : 6
    Points : 4
    Points
    4
    Par défaut
    Excusez moi j'ai pas compris comment faire pour les balises au début !
    Voici les structures elt et admin :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    typedef struct elt
                        {
                        char login[20];
                        char passwd[20];
                        }elt;
    //**********************
    typedef struct admin {
                       elt loginpasswd;
                      struct admin *suivantadmin;
                      }admin;
    admin* ptr;
    typedef admin *list;
    Merci encore et excusez moi

Discussions similaires

  1. Réponses: 3
    Dernier message: 03/07/2014, 17h03
  2. Projet : gestion d'une agence de voyage
    Par charliemoun dans le forum Débuter
    Réponses: 5
    Dernier message: 29/03/2011, 23h10
  3. gestion d'une agence bancaire
    Par haydaradimach9i dans le forum Schéma
    Réponses: 2
    Dernier message: 12/01/2009, 09h21
  4. Gestion d'une agence de tourisme
    Par crazy_inf dans le forum Gestion de projet
    Réponses: 10
    Dernier message: 18/12/2008, 14h55

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo