Welcome! Anonymous


[LANGAGE C] repertoire

Tout concernant le langage C et C++

Messagede totocam » Lun 2 Mar 2009 19:02

je t'oublie pas c'est juste que j'ai pas franchement eu le temps de le faire ce week end
Avatar de l’utilisateur
totocam
Co-administrateur
Co-administrateur
 
Messages: 177
Inscription: Jeu 31 Jan 2008 13:11
Tchup`s - points: 80.00
Localisation: AUSSONNE

Publicité

Messagede alton » Mar 3 Mar 2009 10:03

[color="DarkGreen"]Salut,
Bon, je vais m'en meler un peu aussi (mais au niveau temps, c'est pas mieux que totocam :confused: )
Euh...déjà, avec interface graphique ou non?[/color]
Ceux qui disent que c'est compliqué de se mettre à linux n'ont jamais essayé de comprendre une fille.
Avatar de l’utilisateur
alton
Co-administrateur
Co-administrateur
 
Messages: 664
Inscription: Ven 1 Fév 2008 11:57
Tchup`s - points: 180.00

Messagede levoyageur » Mar 3 Mar 2009 18:13

hello :)
non aucune interface graphique
:jap:

:)
Avatar de l’utilisateur
levoyageur
Tchupa - Trial
Tchupa - Trial
 
Messages: 18
Inscription: Lun 23 Fév 2009 13:20
Tchup`s - points: 0.00

Messagede alton » Mer 4 Mar 2009 09:39

Bon j'ai preparé un petit quelque chose,
Code: Tout sélectionner
#include <stdio.h>
#include<stdlib.h>

typedef char String[30];
typedef struct{ String nom ; int numero; } Contact; // on definit un type Contact contenant une chaine de caractères et un entier
typedef Contact TContact[150]; // on definit un type tableau de contacts


// fonction qui compare 2 chaines de caractères
int egale(String str1,String str2)
        {
                int i=0;
                while(str1[i]!='\0' &amp;&amp; str2[i]!='\0')
                        {
                                if (str1[i] != str2[i]) return 0;
                                 i++;
                        }
                if( str1[i] == '\0' &amp;&amp; str2[i] == '\0') return 1;
                return 1;
        }


// fonction d'ajout d'un contact
void ajouterContact( String nomFichier )
        {
                Contact c;

                // on demande le nom et le numero
                printf("\n\nAjout d'un contact:\n");
                printf("Nom du contact:");
                scanf("%s",&amp;c.nom);
                printf("\nNumero :");
                scanf("%d",&amp;c.numero);

                // on ouvre le fichier en ajout ("a")
                FILE* fichier = fopen(nomFichier,"a");

                // on ajoute un contact à la fin du fichier
                fprintf(fichier,"%s , %d\n",c.nom,c.numero);

                // on refereme le fichier
                fclose( fichier);
        }



// fonction affichant le repertoire
void afficherRepertoire( String nomFichier )
        {
                Contact c;

                FILE * fichier = fopen( nomFichier , "r"); // on ouvre le fichier en lecture ("r")
                while( !feof( fichier )) // tant que l'on atteint pas la fin du fichier
                        {
                                // on recupere chaque contact en parcourans le fichier
                                fscanf( fichier,"%s , %d\n",&amp;c.nom,&amp;c.numero);

                                // et on l'affiche
                                printf("%s : %d\n",c.nom,c.numero);
                        }
                fclose( fichier );
        }



// fonction qui recherche un contact et l'affiche
void rechercheContact( String nomFichier )
        {
                Contact c;
                String nomCherche;
                int trouve = 0;
                FILE* fichier;

                //on demande le nom a chercher
                printf("Rechercher quel contact: ");
                scanf("%s",&amp;nomCherche);

                fichier = fopen( nomFichier , "r");
                while( !feof( fichier) &amp;&amp; trouve == 0 )// tant qu'on a pas atteint la fin du fichier et que l'on a pas trouvé le contact
                        {
                                // on recupere chaque contact en parcourant le fichier
                                fscanf( fichier,"%s , %d\n",&amp;c.nom,&amp;c.numero);

                                if( egale( c.nom , nomCherche ) == 1 )
                                        {       // si on trouve le contact,
                                                printf("%s : %d\n",c.nom,c.numero);//on l'affiche
                                                trouve = 1;//et on quitte la boucle
                                        }
                        }// fin du while
                fclose( fichier);
        }



// fonction qui modifie un contact dans la base
void modifierContact( String nomFichier )
        {
                TContact tablC;
                int i,nbC = 0;
                String nomCherche;
                int numeroModif;

                FILE*fichier = fopen( nomFichier , "r"); // on ouvre le fichier en lecture("r")
                while(!feof( fichier )) // on parcours le fichier jusqu'à la fin
                        {
                                fscanf(fichier,"%s , %d\n",&amp;tablC[nbC].nom,&amp;tablC[nbC].numero); // on recupere les valeurs dans un tableau
                                nbC++;
                        }
                fclose( fichier );//on ferme le fichier

                // on demande le nom du contact a modifier
                printf("Nom du contact a modifier: ");
                scanf("%s",&amp;nomCherche);
                // et le nouveau numero
                printf("\nNouveau numero: ");
                scanf("%d",&amp;numeroModif);

                // on ouvre le fichier en ecriture("w")
                fichier = fopen( nomFichier , "w");
                for( i=0 ; i<nbC ; i++) // on parcours le tableau
                        {
                                // si on trouve le contact,
                                if( egale( nomCherche, tablC[i].nom ) == 1) fprintf(fichier,"%s , %d\n",tablC[i].nom,numeroModif); //on enregistre le nouveau numero
                                        else fprintf(fichier,"%s , %d\n",tablC[i].nom,tablC[i].numero); //sinon on ecrit le contact normalement
                        }
                fclose( fichier );// on ferme le fichier
        }



// fonction qui supprime un contact dans la base
void supprimerContact( String nomFichier )
        {
                TContact tablC;
                int i,nbC = 0;
                String nomCherche;
                int numeroModif;

                FILE*fichier = fopen( nomFichier , "r"); // on ouvre le fichier en lecture("r")
                while(!feof( fichier )) // on parcours le fichier jusqu'à la fin
                        {
                                fscanf(fichier,"%s , %d\n",&amp;tablC[nbC].nom,&amp;tablC[nbC].numero); // on recupere les valeurs dans un tableau
                                nbC++;
                        }
                fclose( fichier );//on ferme le fichier

                // on demande le nom du contact a supprimer
                printf("Nom du contact a supprimer: ");
                scanf("%s",&amp;nomCherche);

                // on ouvre le fichier en ecriture("w")
                fichier = fopen( nomFichier , "w");
                for( i=0 ; i<nbC ; i++) // on parcours le tableau
                        {
                                // si le nom recherché est different du nom du contact
                                if( egale( nomCherche, tablC[i].nom ) == 0) fprintf(fichier,"%s , %d\n",tablC[i].nom,tablC[i].numero); //on ajoute le contact au fichier
                                // sinon, on ne fait rien
                        }
                fclose( fichier );// on ferme le fichier
        }



int main()
        {
                String nomFichier = "repertoire.txt"; //nom du fichier où l'on stock les contacts
                int choix = 0;
               
                while( choix != 6) //tant que l'utilisateur ne choisis pas de quitter
                        {
                                // on affiche le menu principal
                                printf("Repertoire\n");
                                printf("======================\n");
                                printf("1) Ajouter un contact\n");
                                printf("2) Afficher le repertoire\n");
                                printf("3) Rechercher un contact\n");
                                printf("4) Modifier un contact\n");
                                printf("5) Supprimer un contact\n");
                                printf("6) Quitter\n");
                                printf("-->");
                                scanf("%d",&amp;choix);

                                // en fonction de la valeur choix,
                                switch( choix )
                                        {      
                                                // on ajoute un contact
                                                case 1:
                                                        ajouterContact( nomFichier );
                                                break;

                                                // ou on affiche le contenu du repertoire
                                                case 2:
                                                        afficherRepertoire( nomFichier );
                                                break;

                                                // ou on recherche un contact
                                                case 3:
                                                        rechercheContact( nomFichier );
                                                break;

                                                // ou on modifie un contact
                                                case 4:
                                                        modifierContact( nomFichier );
                                                break;

                                                //ou on supprime un contact
                                                case 5:
                                                        supprimerContact( nomFichier );
                                                break;

                                                // ou bien enfin, on quitte
                                                case 6:
                                                        printf("bye :)\n");
                                                break;
                                               
                                                //parfois on dis que l'utilisateur ne sait pas lire
                                                default:
                                                        printf("Action inconnue\n\n\n");
                                                break;
                                        }// fin du switch
                        }//fin du while
        }// fin du main
 


[color="DarkGreen"]Voila, si t'as des questions, n'hésite pas[/color] :)
Ceux qui disent que c'est compliqué de se mettre à linux n'ont jamais essayé de comprendre une fille.
Avatar de l’utilisateur
alton
Co-administrateur
Co-administrateur
 
Messages: 664
Inscription: Ven 1 Fév 2008 11:57
Tchup`s - points: 180.00

Messagede totocam » Mer 4 Mar 2009 12:13

jolie ! visiblement t'as su mieux gérer ton temps que moi
Avatar de l’utilisateur
totocam
Co-administrateur
Co-administrateur
 
Messages: 177
Inscription: Jeu 31 Jan 2008 13:11
Tchup`s - points: 80.00
Localisation: AUSSONNE

Messagede alton » Mer 4 Mar 2009 12:17

[color="DarkGreen"]stage en mairie ftw[/color] :happy:
Ceux qui disent que c'est compliqué de se mettre à linux n'ont jamais essayé de comprendre une fille.
Avatar de l’utilisateur
alton
Co-administrateur
Co-administrateur
 
Messages: 664
Inscription: Ven 1 Fév 2008 11:57
Tchup`s - points: 180.00

Messagede levoyageur » Mer 4 Mar 2009 12:43

KIKOu merci :)
oui petite question
Code: Tout sélectionner

int main()
        {
                String nomFichier = "repertoire.txt"; //nom du fichier où l'on stock les contacts
                int choix = 0;


pourqoui tu initialise a ZERO ?
Avatar de l’utilisateur
levoyageur
Tchupa - Trial
Tchupa - Trial
 
Messages: 18
Inscription: Lun 23 Fév 2009 13:20
Tchup`s - points: 0.00

Messagede alton » Mer 4 Mar 2009 13:01

[color="DarkGreen"]Parce que choix va être testé juste après dans le while, du coup je préfère l'initialiser , mais tu peux mettre ce que tu veux à la place de zéro, à part six sinon on entre pas dans le while[/color]
Ceux qui disent que c'est compliqué de se mettre à linux n'ont jamais essayé de comprendre une fille.
Avatar de l’utilisateur
alton
Co-administrateur
Co-administrateur
 
Messages: 664
Inscription: Ven 1 Fév 2008 11:57
Tchup`s - points: 180.00

Précédente

Retourner vers Langage C et C++

Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités