Intégrer une fonction à mon programme
Fermé
pépereF
Messages postés
36
Date d'inscription
dimanche 11 décembre 2005
Statut
Membre
Dernière intervention
25 janvier 2008
-
6 juil. 2007 à 08:34
pépereF Messages postés 36 Date d'inscription dimanche 11 décembre 2005 Statut Membre Dernière intervention 25 janvier 2008 - 9 juil. 2007 à 23:05
pépereF Messages postés 36 Date d'inscription dimanche 11 décembre 2005 Statut Membre Dernière intervention 25 janvier 2008 - 9 juil. 2007 à 23:05
A voir également:
- Intégrer une fonction à mon programme
- Ce programme est écrit en python. il construit un mot secret dans une variable mais il ne l'affiche pas. modifiez-le pour qu'il affiche le mot secret. exécutez-le. quel est ce mot secret ? ✓ - Forum Python
- Frequence programme national ✓ - Forum Messagerie
- Programme demarrage windows 10 - Guide
- Fonction si et - Guide
- Programme démarrage windows 10 - Guide
1 réponse
pépereF
Messages postés
36
Date d'inscription
dimanche 11 décembre 2005
Statut
Membre
Dernière intervention
25 janvier 2008
2
9 juil. 2007 à 23:05
9 juil. 2007 à 23:05
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
FILE *fd;/*Declaration d'une variable fd de type fichier formaté*/
struct enreg/*Structure de type struct enreg*/
{
char *nom;/*déclaration de la variable nom qui pointe sur un char*/
char *tel;/*déclaration de la variable tel qui pointe sur un char*/
};
/*Affiche une question et attend la saisie O ou N*/
int question(char *texte)/*Fonction question de type int ayant pour
arguement texte qui pointe sur un char*/
{
char reponse=' ';/*Déclaration de la variable reponse de type char
auquel on affecte ' '*/
while (reponse!='o' && reponse!='n')/*tant que reponse est different de 'o'
et reponse est different de 'n'*/
{
printf("%s",texte);/*affichage de la saisie*/
reponse = getch();/*Attente d'un caractére au clavier*/
printf("\n");
/*convertion des majuscules en minuscules*/
if (reponse=='O') reponse='o';
if (reponse=='N') reponse='n';
if (reponse!='o' && reponse!='n')
printf("!!!repondre par O ou N!!!\n");
}
if (reponse=='o')
return 1; /*1 c'est vrai*/
else
return 0; /*0 c'est faux*/
}
/*création d'une nouvelle fiche*/
void creation()
{
/*déclaration des variable locales auquel on affecte de la mémoire dynamique*/
struct enreg *fiche = malloc(sizeof(struct enreg));
fiche->nom = malloc(30 * sizeof(char));
fiche->tel = malloc(10 * sizeof(char));
int reponse;
/*demande du nom et du numero de téléphone*/
printf("...Creation d'une fiche...\n");
printf("Nom ? ");
scanf("%s",fiche->nom);
printf("Numero de telephone ? ");
scanf("%s",fiche->tel);
/*Demande confirmation d'enregistrement*/
reponse = question("Enregistrer la fiche (O/N) ?");
/*si NON, on sort directement*/
if(reponse)/*si 1 on enregistre, voir la fonction question, sinon on va..*/
{
/*se placer à la fin du fichier*/
fseek(fd,0,2);
/*sinon on enregistre à la fin du fichier*/
fprintf(fd,"%s %s\n",fiche->nom,fiche->tel);
printf("Fiche enregistrée\n");/*pour dire que c'est enregisté*/
}
/*libération de la mémoire*/
free(fiche->nom);
free(fiche->tel);
free(fiche);
}
void rechercher()
{
/*déclaration des variable locales*/
struct enreg *fiche = malloc(sizeof(struct enreg));/*pour pouvoir...*/
fiche->nom = malloc(30 * sizeof(char));/*lire notre fichier...*/
fiche->tel = malloc(10 * sizeof(char));/*et y placer nos variables pour
les comparer...*/
char *nom = malloc(30*sizeof(char));/*à notre chaine allouer dynamiquement*/
int err;
int reponse;
/*demande le nom à rechercher*/
printf("...rechercher une fiche...\n");
printf("nom a chercher ? ");
scanf("%s",nom);
/*positionnement au début du fichier*/
fseek(fd,0,0);
/*lecture d'une fiche*/
err = fscanf(fd,"%s%s",fiche->nom,fiche->tel);
/*si fin du fichier ou erreur*/
while (err > 0)
{
/*si la fiche correspond*/
if (strcmp(nom, fiche->nom) == 0)
printf("nom:%s telephone:%s\n",fiche->nom,fiche->tel);
/*on lit une autre fiche*/
err=fscanf(fd,"%s%s",fiche->nom,fiche->tel);
}
/*Libération de la mémoire*/
free(fiche->nom);
free(fiche->tel);
free(fiche);
free(nom);
reponse = question("continuer la recherche (O/N)?");
if (reponse)
rechercher();/*on retourne dans la fonction*/
}
/*Affichage du menu générale et attend l'entrée d'un choix*/
int menu()
{
int choix=0;
while (choix<1 || choix>3)
{
printf("menu : \n");
printf("1 - creation d'une nouvelle fiche\n");
printf("2 - recherche d'une fiche\n");
printf("3 - quitter\n");
printf("votre choix ? ");
scanf("%d",&choix);
if (choix<1 || choix>3)
printf("!!!entrez 1, 2 ou 3 !!!\n");
}
return choix;
}
/*programme principale*/
int main()
{
int choix=0;
fd=fopen("rep.dat","a+");
printf("...REPERTOIRE TELEPHONIQUE...\n");
while (choix!=3)
{
choix=menu();
switch (choix)/*suivant le choix*/
{
case 1 : creation();/*Cas 1, accéder àla fonction création*/
break;
case 2 : rechercher();/*cas 2, accéder à la fonction rechercher*/
break;
default : break;/*quitter (ne rien faire)*/
}
}
fclose(fd);/*Fermeture du fichier*/
printf("Merci, et au revoir\n");
scanf("%s");
return 0;
}
aidez-moi svp