Aide sur un projet en C

kamroucha Messages postés 31 Date d'inscription   Statut Membre Dernière intervention   -  
Pi_Xi Messages postés 2244 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour, j'ai un projet tres important en C je cherche une personne qui m'aide pour la solution je bloque et j'arrive meme pas a commencer alors SVP si quelqu'un peut m'aider ou si il y a un site qui propose les correction gratuit merci beaucoup

22 réponses

nico3fr Messages postés 34 Date d'inscription   Statut Membre Dernière intervention   5
 
ah merde... J'ai bien un bac + 5 mais pour la recherche, j'ai pas du tout entouré mes 4 mots clés avec des guillemets...

J'ai donc du rater une de mes années d'après bac... ;)
0
sahlie1985 Messages postés 4 Date d'inscription   Statut Membre Dernière intervention  
 
dans le cadre de mes etudes d'inginieur(1er anné). on nous a demander de realiser un mini proger en utilisant seulement le langage C.alors j'ai donc fais un repertoire telephonique en suivant tous les regnes de langage C. Comme suit:
/******************************************************************
Programme de gestion d'un repertoire telephonique

********************************************************************/



/* --------------- Déclaration ---------------------- */

#include <stdio.h>
#include <conio.h>
#include <alloc.h>
#include <string.h>
#include <windows.h>

typedef struct {
char nom[30];
char prenom[30];
int tel;
}contact;

typedef struct cell {
contact info;
cell *suiv;
}cellule;

typedef cellule *liste;

/* ----------------- Fonction enregistrement liste contact ----------------------- */
void enregistrement_liste_contact(liste P)
{
liste parcours;
FILE *F;
F=fopen("repertoire2","wb");
if (F==NULL)
{printf("Erreur de lecture de fichier");}
else
{
for (parcours=P;parcours!=NULL;parcours=parcours->suiv)
{
fwrite(&parcours->info,sizeof(contact),1,F);
}
}
fclose(F);
}
/* ----------------- Fonction lecture liste contacte du fichier----------------------- */
liste lecture_liste_contact()
{
FILE *F;
int i=0;
liste Q;
liste P=NULL;
liste parcours;
Q=(liste)malloc(sizeof(cellule));
F=fopen("repertoire2","rb");
if (F==NULL)
{printf("Erreur de lecture de fiche contact"); Sleep(3000);}
else
{
while(fread(&Q->info,sizeof(contact),1,F))
{
Q->suiv=NULL;
if (i==0)
{P=Q;
parcours=P; i++;}
else
{
parcours->suiv=Q;
parcours=Q;
}
Q=(liste)malloc(sizeof(cellule));
}
}
fclose(F);
return(P);
}
/* ----------------- Fonction crèation contact----------------------- */
void creation_contact(contact *c)
{
printf("Noms:"); fflush(stdin); gets(c->nom);
printf("Prenom:"); gets(c->prenom);
printf("Telephone:");scanf("%d",&c->tel);
}
/* ----------------- Fonction comparaison entre deux noms----------------------- */

int test (char A[],char B[])
{
int i=0;
if (strcmp(A,B)<0) i=1;
return i;
}
/* ----------------- Fonction ajout contact dans liste----------------------- */
liste ajout_contact(liste P)
{
liste parcours,precedant,Q;
Q=(liste)malloc(sizeof(cellule));

creation_contact(&Q->info);

if (P==NULL||test(P->info.nom,Q->info.nom)==0) { Q->suiv=P; P=Q; ; }
else
{
precedant=P;
parcours=P->suiv;
while (parcours!=NULL && test(parcours->info.nom,Q->info.nom)==1)
{
parcours=parcours->suiv;
precedant=precedant->suiv;
}
Q->suiv=parcours;
precedant->suiv=Q;
}




return P;
}

/* ----------------- Fonction Affichage liste----------------------- */


void affichage (liste P)
{
liste par;
int i;
printf ("\t\t\t\tLISTE CONTACT\n");
for(i=0;i<80;i++)
{
printf("-");
}
printf("\n\n\n");


/* si le repertoire est vide .... */
if(P == 0) {
printf("\n\tRepertoire vide !!\n");
return;
}

printf("\n\t-----------NOM-------------------PRENOM-------------TELEPHONE-----\n");

/* pour chaque Personne (chaque case du Repertoire) */
for( par=P;par!=NULL;par=par->suiv) {
/* imprimer le nom */
printf("\t| %-20s\t",par->info.nom);
/* puis le prenom */
printf("| %-20s\t",par->info.prenom);
/* et enfin le tel avant de changer de ligne */
printf("| %-10d |\n", par->info.tel);
}
printf("\t------------------------------------------------------------------\n");

}

/* ----------------- Fonction Suppression d'un contact----------------------- */

liste suppression (liste P)
{
char X[30]; char tape;
liste precedant ,parcours ;
printf ("saisir le contact");
fflush (stdin);
gets (X);
printf ("vous confirmez votre choix: (O/N)");
scanf ("%c",&tape);
if(tape=='N') return (P);
else {
if (P==NULL) return (P);
if (strcmp(P->info.nom,X)==0)
{
parcours=P;
P=P->suiv;
free (parcours);
}
else {
parcours =P->suiv;
precedant=P;
while (strcmp(parcours->info.nom,X)!=0&&parcours!=NULL)
{
precedant=precedant->suiv;
parcours=parcours->suiv;
}
if (parcours!=NULL)
{
precedant->suiv=parcours->suiv;
free(parcours);
}
}
}
return P;
}

/* ----------------- Fonction recherche d'un contact----------------------- */
void recherche (liste P)
{
liste parcours;
char X[30];
printf ("saisir le nom rechercher:\n");
fflush (stdin);
scanf("%s",X);
parcours=P;
while (strcmp(parcours->info.nom,X)!=0&&parcours!=NULL)
{
parcours=parcours->suiv;
}
if (parcours==NULL) printf("n'existe pas");

else printf (" %s %d",parcours->info.prenom,parcours->info.tel);

}



/* ---------------------Fonction Option Repertoire----------------------- */
void option_rep ()
{


printf("\t******************************************************************\n");
printf("\tChoisissez une option:\n");
printf("\t******************************************************************\n");
printf("\n\n\t\t\t 1.Numero de Service:");
Sleep (300);
printf("\n\n\t\t\t 2.Etat repertoire:");
Sleep (300);
printf("\n\n\t\t\t 3.Formater Repertoire:");
Sleep(300);
printf("\n\n\t\t\t 4.Quitter Option:");
Sleep(300);
}

void numero_service()
{
int i;
char tape;
clrscr();
Sleep (1000);
printf ("\t\t\tNumero de Service\n");
for(i=0;i<80;i++)
{
printf("-");
}
printf("\n\n\n");
printf("\n\t-----------NOM--------------------------------TELEPHONE-----\n");

/* pour chaque Personne (chaque case du Repertoire) */

/* imprimer le nom */
printf("\t\t\t| Police\t");
/* et enfin le tel avant de changer de ligne */
printf("| \t\t\t198 |\n");

printf("\t------------------------------------------------------------------\n");
fflush(stdin);
scanf("%c",tape);
}


/* ---------------------Fonction Option Repertoire----------------------- */
void option (liste P)
{
int tape,i;
char tape1;
clrscr();
Sleep (1000);
printf ("\t\t\tOption Repertoire\n");
for(i=0;i<80;i++)
{
printf("-");
}
printf("\n\n\n");
do {

option_rep ();
printf("\nSaisiser vote choix :");
fflush(stdin);
scanf ("%d",&tape);
switch (tape)
{
case 1: numero_service();
break;
case 2:
break;
case 3:
break;
case 4: break;
}
} while(tape==4);
scanf("%c",&tape1);
}


/* ----------------- Fonction Menu----------------------- */

void menu ()
{
int i;
clrscr ();
printf ("\t\t\t\tMENU REPERTOIRE\n");
for(i=0;i<80;i++)
{
printf("-");
}
printf("\n\n\n");
Sleep(500);
printf("\t******************************************************************\n");
printf("\tChoisissez une option:\n");
printf("\t******************************************************************\n");
printf("\n\n\t\t\t 1.ajouter contact:");
Sleep (300);
printf("\n\n\t\t\t 2.supprimer contact:");
Sleep (300);
printf("\n\n\t\t\t 3.liste de contact:");
Sleep(300);
printf("\n\n\t\t\t 4.rechercher contact:");
Sleep(300);
printf("\n\n\t\t\t 5.Option Repertoire:");
Sleep(300);
printf("\n\n\t\t\t 6.Quitter :\n\n\n\n");
Sleep(300);

}
















/* ----------------- Fonction Principale----------------------- */
void main ()
{ liste P;

int tape,i;
char tape1;
Sleep (2000);
printf("\n\n\n\n\n\n\n");
printf("\t");printf("%c",201);
for (i=1;i<55;i++)
{
printf("%c",205);
}
printf ("%c\n",187);
printf("\t"); printf("\t\tRepetoire telephonique\n") ;
printf("\t"); printf("%c",200);
for (i=1;i<55;i++)
{
printf("%c",205);
}
printf ("%c\n",188);

Sleep (2000);
P=lecture_liste_contact();
do {
menu ();
printf("Saisiser vote choix :");
scanf ("%d",&tape);

switch (tape)
{
case 1 : {
clrscr();
Sleep (1000);
printf ("\t\t\tAjouter contact\n");
for(i=0;i<80;i++)
{
printf("-");
}
printf("\n\n\n");
do{


clrscr();
printf ("\t\t\t\tAJOUT CONTACT\n");
for(i=0;i<80;i++)
{
printf("-");
}
printf("\n\n\n");
P=ajout_contact(P);
printf("\t\t\t\tCONTACT AJOUTER");
Sleep (1500);
clrscr();
printf ("\t\t\t\tAJOUT CONTACT\n");
for(i=0;i<80;i++)
{
printf("-");
}
printf("\n\n\n");
printf (" voulez vous ajpoutés un autre contact:(o/n)\n");
fflush(stdin);
scanf("%c",&tape1);
clrscr();
}while (tape1=='o');
break;
}
case 2 : {
Sleep(1000);
clrscr ();
printf ("\t\t\t\tSUPPRESSION CONTACT\n");
for(i=0;i<80;i++)
{
printf("-");
}
printf("\n\n\n");

P=suppression (P);
printf ("\t\t\t\tSUPPRESSION CONTACT\n");
for(i=0;i<80;i++)
{
printf("-");
}
printf("\n\n\n");
printf ("\t\t\t\tCONTACT SUPPRIMER");
Sleep (2000);
break;
}
case 3 : {
clrscr();
Sleep (1000);
affichage (P);
fflush(stdin);
scanf("%c",&tape1);
break;
}
case 4 : {
clrscr();
printf ("\t\t\t\tRECHERCHE CONTACT\n");
for(i=0;i<80;i++)
{
printf("-");
}
printf("\n\n\n");
recherche(P);
fflush(stdin);
scanf("%c",&tape1);
break;
}
case 5 : {
option(P);
break;
}
case 6 : {
enregistrement_liste_contact(P);
break;
}
}
}
while (tape!=6);
puts ("merci");
getch ();
}





j'aimerai que personne m'aide pour ameliorer ce programme (avoir plus d'option)et surtous au niveau de presentationsur l'ecran (ajouter des cadre) et j'aimerai savoir comment utiliser la commande gotoxy(i,j) dans mon programme.

et merci de m'aider.et si vous voulais m'envoiyer sur wajdi.hassen@gmail.com
0
Pi_Xi Messages postés 2244 Date d'inscription   Statut Membre Dernière intervention   149
 
Bonjour,

ça me rappelle des souvenirs, c'est un excellent exercice type ;o)

Pour utiliser la fonction gotoxy(), il faut ajouter:
#include <conio.h>
Un détail, au lieu de:
case 2:
break;
case 3:
break;
case 4: break; 
tu peux écrire:
case 2: case 3: case 4: break; 
Amuse-toi bien ^^
0