Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : BESOIN D'AIDE [ Divers / Débutant(e) ] (gersen)

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é 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...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Téléchargements

Logiciels à télécharger sur le même thème :

Comparez les prix Nouvelle version


LG KP501

Entre 9€ et 159€


Photothèque Nouveau !



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
Temps d'éxécution de la page : 24,430 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.