begin process at 2012 02 12 01:01:30
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C

 > 

Divers

 > 

Débutant(e)

 > 

BESOIN D'AIDE


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

BESOIN D'AIDE

vendredi 2 mai 2008 à 15:43:53 | BESOIN D'AIDE

gersen

bonjour a vous
voila j'ai besoin d'aide j'ai un pt'it probleme avec mon programme
mon programme consiste a chercher d'abord un chemins entre 2 stations a et b ensuite chercher tous les chemins entre ces deux meme stations.
on a notre reseau d'arc qui est dans un fichiers d'arc qui contient notre reseau d'arc
voici le code


#include<stdio.h>

#include<stdlib.h>
#include<conio.h>
#include<string.h>
/*fonction creer station*/

typedefstructstationstation;
structstation{charnom[20];
intnum;
};

/*le type arc*/
typedefstructarcarc;
structarc
{stationstat_depart;
stationstat_arriv;
intindic;
};


/*fonction de creation de station*/
stationcreer_station(char*nom,intnum)
{stationnouv;
{
nouv.num=num;
strcpy(nouv.nom,nom);
}
}
/*fonctions de comparaison entre 2 stations*/
intmeme_station(stationa,stationb)
{
if(strcmp(a.nom,b.nom)==0&&a.num==b.num)return(1);
elsereturn(0);
}


/*fonctions de creation d'un arc*/

arccreer_ar(stationa,stationb,intindicateur)
{arcnouv;
{nouv.stat_depart=a;
nouv.stat_arriv=b;
nouv.indic=indicateur;
}
return(nouv);
}

/* appartenance*/
intappartient(stationa,arcc)
{
if((strcmp(c.stat_depart.nom,a.nom)==0)&&(c.stat_depart.num==a.num))return(1);
elseif((strcmp(c.stat_arriv.nom,a.nom)==0)&&(c.stat_arriv.num==a.num))return(1);
elsereturn(0);
}

/*comparaisons de 2 arc*/
intmemearc(arcc1,arcc2)
{
if((appartient(c1.stat_depart,c2)==1)&&(appartient(c1.stat_arriv,c2)==1))return(1);
elsereturn(0);

}

/*fonctions se suivent*/
intsesuivent(arcc1,arcc2)
{
if((memearc(c1,c2)==0)&&(strcmp(c1.stat_arriv.nom,c2.stat_depart.nom)!=0))return(1);

elsereturn(0);
}


/* PARTIE 3*/


FILE*creerReseau(intnbr)
{inti=1;arca;FILE*fich;
fich=fopen("tp2.dat","w");
if(fich==NULL){printf("erreur d'ouverture");exit(-1);}
while(i<=nbr)
{
printf("donner le nom de votre station de depart de l'arc Numero %d\n",i);
scanf("%s",&a.stat_depart.nom);
printf("donner le nom de votre station d'arrive de l'arc Numero %d\n",i);
scanf("%s",&a.stat_arriv.nom);
fwrite(&a,sizeof(arc),1,fich);
i++;
}
fclose(fich);
return(fich);
}



/*rechercher un arc*/

intrechercheArc(stationdepart,stationarrive,FILE*p)
{arca;
p=fopen("tp2.dat","r");
if(p==NULL){printf("erreur d'ouverture");exit(-1);}
while(!feof(p))
{fread(&a,sizeof(arc),1,p);
if((appartient(depart,a)==1)&&(appartient(arrive,a)==1))return(1);
}
return(0);
}
/*copier 2 arc*/
arccopier(arca)
{arcb;
strcpy(b.stat_depart.nom,a.stat_depart.nom);
b.stat_depart.num=a.stat_depart.num;
b.stat_arriv.num=a.stat_arriv.num;
strcpy(b.stat_arriv.nom,b.stat_arriv.nom);

}
/*suppression d'un ARC*/



/* rechercher l'existance d'un chemin*/

arc*recherche(stationa,stationb,FILE*p)
{arcc,save,tab[50];inttrouv=0,fin,i=0;
p=fopen("tp2.dat","r");
while((trouv==0)&&(!feof(p)))
{fread(&c,sizeof(arc),1,p);
if((appartient(a,c)==1)&&(strcmp(a.nom,c.stat_depart.nom)==0)){trouv=1;
save=c;
trouv=1;


rewind(p);
}

}
if(trouv==0){return(0);}



while((!feof(p))&&(appartient(b,c)==0))
{fread(&c,sizeof(arc),1,p);
if((memearc(c,save)==0)&&(sesuivent(save,c)==1)){save=c;
rewind(p);
tab[i]=save;
i++;
}
}
fclose(p);
return(tab);
}



main()
{intnbr,i;FILE*fichier;arc*s,d;stationdepart,arrive;

printf("DONNEZ LE NOMBRE D'ARC DU RESEAU \n");
scanf("%d",&nbr);
fichier=creerReseau(nbr);
printf("QUELLE SONT LES STATIONS QUE VOUS VOULEZ CHERCHER LE CHEMINS ENTRE ELLES\n");
printf("STATION DE DEPART:");
scanf("%s",&depart.nom);
printf("STATION D'ARRIVE:");
scanf("%s",&arrive.nom);
fclose(fichier);
s=recherche(depart,arrive,fichier);
i=0;
while(i<nbr)
{printf("%s %s \n",s[i].stat_depart.nom,s[i].stat_arriv.nom);
i++;
}
getch();
}



Cette discussion est classée dans : num, stat, depart, arc, arriv


Répondre à ce message

Sujets en rapport avec ce message

Appler une structure dans une fonction ... [ par eldered ] Salut !!Alors mon pb est le suivant :J'ai cré une fonction qui me permet un certain nombre de chose en autre trouver si un element appartient a un tab PB avec la gestion de fichier dans une de mes fonctions!!!! [ par kobee12 ] J'ai cree deux fonctions qui me permettent de charger et d'enregistrer dans un fichier selon l'ecriture dans le fichier de la maniere suivante : jour ou trouver sys/stat.h [ par jele ] j'ai besoin de cette bibliothèque pour un projet, et pas moyen de la trouver ou que ce soit, ni sur mon pc, ni sur les sites de borland ou microsoft, Prob de tri ds un fichier [ par RvSpeed ] Voila je boss sur un truc en ce moment et la j'arrive pas a faire fonctionner correctement le tri de mon fichier sur 2 cléesvoici la structure, ma fon Question sur l'heritage et classes [ par Darkneon ] Salut,J'aimerai savoir si c'est possible qu'un changement de donnee dans une classe de base affecte les 2 classes heritees?Par exemple :#include &lt Pb de copie de fichier/taille de structure [ par wannie ] Salut tt le monde. Quelqu'un pourrai tester mon prog est me dire si ça fonctionne. Moi je comprend pas j'ai une copie d'un caractère dans chaque ligne Allocation dynamique [ par cybermatthieu ] Bonjours,Je suis en train de construire une App qui comporte une class qui comprend 12 pointeur a Char et leur fonction. Le probleme est que j'inicial au secours, devoir maison! [ par Vladsmice ] Salut,J'ai un programme à faire et j'ai un problème.Je fais une gestion d'ordi, avec un tableau (tabo : Num, Nom, AdrIP, Etat, Nbpanne).Mon problème, recherche dans une liste chainée [ par sossouha ] salut, J'ai à faire le recherche d'un caractère dans une liste chainée en langage C. voici la structure que j'utilise typedef struct arc { char va appli dev C++ sous unix [ par darkbol ] Bonjour, Je débute en C++, c 'est pourquoi j'ai commencé (et fini) à développer sur dev C++.Le problème c que le code source doit en fait tourner sous


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,671 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales