Bonsoir a tous,
voila je dois faire un dossier et j'aurais besoin d'aide pour des fonctions pour lesquels j'ai un peu de mal .
struct depots {
long NumDepot;
char NomDepot[20];
char Pays[20]; (->champ supplémentaire)
char Adresse[30];
int CodePostal;
char ville[30];
long CapaciteStock;
char Responsable[3];
char MatiereDangereuse;
};
//void EncodeDepot();
//void AfficheNumDepot();
//void AfficheDepot();
//void ConstructionData();
//void AfficheData();
;
int main()
{
struct depots ListeDepots[N]={
{603,"ARCELORMITTAL","LUXEMBOURG","5,Rue de la liberte",3000,"Luxembourg",10,"TT",'0'},
{200,"COCKERILL","BELGIQUE","1,Rue du Puit Marie",4100,"Seraing",50,"XA",'0'},
{300,"DUFERCO","FRANCE","4,Rue de l'acier",6000,"Florange",100,"GT",'1'},
{601,"ARCELORMITTAL","INDE","666,Rue de Lakshmi Mittal",9999,"Bombay",10," ",'1'},
{10,"TOUTPLASTIQUE","BELGIQUE","22,Rue du Vieux PVC",5000,"Liege",80," ",'1'},
{100,"COCKERILL","FRANCE","2,Rue du Puit Joseph",7000,"Dunkerque",100,"LP",'0'},
{602,"ARCELORMITTAL","FRANCE","2,Rue Victor Hugo",7100,"Fos-Sur-Mer",10,"RS",'1'}};
int NbDepot =7;
long NrDepot[N] ={10,100,200,300,601,602,603};
char data[N][40];
int index[N]={0};
return 0;
}
j'ai mis en commentaires les fonctions. J'aimerai savoir comment procédés pour les différents types de fonctions , par quoi commencé .
Merci a ceux qui prendront le temps de me lire et si possible répondre .
il faut passer le tableau en parametre de tes fonctions. (ainsi que sa taille)
Tu peux faire un truc dans le genre :
void afficher_num_depots(struct depots *liste, int taille_liste)
{
int n = taille_liste/sizeof(struct depots);
int i;
for(i = 0; i < n; i++)
{
printf("Numero : %i", liste[i].NumDepot);
}
}
etc..
Après tu fais la fonction pour afficher un depot, puis tu parcours ton tableau de depots comme en haut, et tu appelles la fonction :
void afficher_depot(struct depots dep)
{
printf("******************************\n");
printf("ID : %i \n", dep.NumDepot);
printf("Nom : %s\n", dep.NomDepot);
printf("Pays : %s\n", dep.Pays);
printf("Adresse : %s\n", dep.Adresse);
printf("Code postal : %i\n", dep.CodePostal);
printf("Ville : %s\n", dep.ville);
printf("Capacite : %i\n", dep.CapaciteStock);
printf("Resp : %s\n", dep.Responsable);
printf("Matiere dangereuse : %c\n", dep.MatiereDangereuse);
}
void afficher_depots(struct depots *liste, int s)
{
int n = s/sizeof(struct depots);
int i;
for(i = 0; i < n; i++) {
afficher_depot(liste[i]);
}
}
Merci godriek et Tripleplied pour avoir répondu si vite pour la fonction encodeDepot je ne sais pas comment faire car il faut faire 2 sous fonctions dans la fonction:
- RechercheNumDepot()
- InsertionNumDepot().
Elle doit faire quoi ta fonction encodeDepot() ? Et rechercheNumDepot je suppose qu'elle prend en argument un numéro, une liste de dépots et retourne le dépot correspondant ? ![]()
la fonction encodeDepot doit permettre d'encoder un dépôt, retourner 1 si l'encodage à lieu et dans le cas ou elle est interrompu en appuyant sur la touche ENTER retourner 0 quand on encode NumDepot.
Il faut verifier si le NumDepot n'est pas deja utiliser si oui l'inséré de manière trié dans le vecteur NrDepot. Il faut demandez à réencoder s'il est deja utiliser.
c'est un exemple du run comme le programme doit être
VOUS AVEZ DEJA 7 DEPOTS ENCODES QUE VOICI:
==================================================
DEPOT 1
ARCELORMITTAL [num=603]
Pays:LUXEMBOURG
Adresse:5,Rue de la liberte
3000 Luxembourg
Responsable:TT
Danger=> NON
Capacite de Stock:10
--------------------------------------------------
-------
DEPOT 2
COCKERILL [num=200]
Pays:BELGIQUE
Adresse:1,Rue du Puit Marie
4100 Seraing
Responsable:XA
Danger=> NON
Capacite de Stock:50
--------------------------------------------------
-------
DEPOT 3
DUFERCO [num=300]
Pays:FRANCE
Adresse:4,Rue de l'acier
6000 Florange
Responsable:GT
Danger=> OUI
Capacite de Stock:100
--------------------------------------------------
-------
DEPOT 4
ARCELORMITTAL [num=601]
Pays:INDE
Adresse:666,Rue de Lakshmi Mittal
9999 Bombay
Responsable:
Danger=> OUI
Capacite de Stock:10
--------------------------------------------------
-------
DEPOT 5
TOUTPLASTIQUE [num=10]
Pays:BELGIQUE
Adresse:22,Rue du Vieux PVC
5000 Liege
Responsable:
Danger=> OUI
Capacite de Stock:80
--------------------------------------------------
-------
DEPOT 6
COCKERILL [num=100]
Pays:FRANCE
Adresse:2,Rue du Puit Joseph
7000 Dunkerque
Responsable:LP
Danger=> NON
Capacite de Stock:100
--------------------------------------------------
-------
DEPOT 7
ARCELORMITTAL [num=602]
Pays:FRANCE
Adresse:2,Rue Victor Hugo
7100 Fos-Sur-Mer
Responsable:RS
Danger=> OUI
Capacite de Stock:10
--------------------------------------------------
-------
ENCODAGE SEQUENTIEL DES DEPOTS
================================
DEPOT 8
Entrez le NR de DEPOT,(TAPER ENTER pour arreter):RT56
Veuillez ne rentrez que des chiffres!!!
==>Recommencez (Tapez Enter pour stop):602
CE NR EXISTE DEJA !!! ==>RECOMMENCER...
Entrez le NR de DEPOT,(TAPER ENTER pour arreter):105
FIN Recherche et pas trouve...
FIN insertion
Entrez le NOM du Depot: ==>enter
ERREUR DE SAISIE,entrez au moins une lettre
==>Recommencer...ARCELORMITTAL
Entrez le PAYS du Depot:ALLEMAGNE
Entrez le Nr et la RUE du depot:7,Strasse Stahl
Entrez le CODE POSTAL du depot:
50
Entrez le CODE POSTAL du depot:
600
Entrez le CODE POSTAL du depot:
1200
Entrez la VILLE du depot:Dublin
Entrez la CAPACITE DE STOCK du depot:
80
Entrez le RESPONSABLE du depot:
Soit:XA, GT, LP, RS, TT ou NULL:
==>enter
Entrez le critere MATIERE DANGEREUSE:
1= PRODUIT DANGEREUX
0=PRODUIT NON DANGEREUX
Votre choix:...0
10
100
105
200
300
601
602
603
DEPOT 9
Entrez le NR de DEPOT,(TAPER ENTER pour arreter): ENTER
AFFICHAGE SEQUENTIEL COORDONNEES DES DEPOTS (Autre présentation)
===============================================
NumId NomDepot Pays capacite Stock Responsable Danger
++++++++++++++++++++++++++++++++++++++++++++++++++
+++++++++++++++++++++++++++
1: 603 ARCELORMITTAL LUXEMBOURG 10 TT NON
[5,Rue de la liberte 3000 Luxembourg]
--------------------------------------------------
---------------------------
2: 200 COCKERILL BELGIQUE 50 XA NON
[1,Rue du Puit Marie 4100 Seraing]
--------------------------------------------------
---------------------------
3: 300 DUFERCO FRANCE 100 GT OUI
[4,Rue de l'acier 6000 Florange]
--------------------------------------------------
---------------------------
4: 601 ARCELORMITTAL INDE 10 OUI
[666,Rue de Lakshmi Mittal 9999 Bombay]
--------------------------------------------------
---------------------------
5: 10 TOUTPLASTIQUE BELGIQUE 80 OUI
[22,Rue du Vieux PVC 5000 Liege]
--------------------------------------------------
---------------------------
6: 100 COCKERILL FRANCE 100 LP NON
[2,Rue du Puit Joseph 7000 Dunkerque]
--------------------------------------------------
---------------------------
7: 602 ARCELORMITTAL FRANCE 10 RS OUI
[2,Rue Victor Hugo 7100 Fos-Sur-Mer]
--------------------------------------------------
---------------------------
8: 105 ARCELORMITTAL ALLEMAGNE 80 NON
[7,Strasse Stahl 1200 Dublin]
--------------------------------------------------
---------------------------
Je pige pas la fonction encoder() ![]()
J'ai vraiment besoin d'aide sur ce programme je suis débutant en programmation les autres exercices que j'ai du faire avant ne me poser pas trop de problèmes mais celui la j'ai quand même du mal...
Je vous remercie vraiment pour l'aide que vous m'avez apporter jusque la et je vous en serez très reconnaissant si vous pouviez m'aider pour ce programme la.
EncodeDepot( ) : Cette fct permet d’encoder UN dépôt . Elle retourne 1 si l’encodage a eu lieu et 0 si l’encodage a été interrompu en appuyant sur la touche ENTER lors de l’encodage du NumDepot.
Pour le NumDepot, vérifiez s’il n’est déjà pas utilisé et dans ce cas, inséré le de manière triée dans le vecteur NrDepot.
S’il est déjà utilisé, demandez à l’utilisateur de le réencoder.
Il faudra écrire 2 sous fonctions : RechercheNumDepot() & InsertionNumDepot().
je sais pas si c'est spécialement plus claire comme ca ...
C'est à dire "Encoder un dépot" ?
oui en gros ![]()
Nan mais je voulais dire, qu'est ce que tu entends par "encoder" un dépôt je pige pas trop là.
![]()
Un exemple
"
DEPOT 8
Entrez le NR de DEPOT,(TAPER ENTER pour arreter):RT56
Veuillez ne rentrez que des chiffres!!!
==>Recommencez (Tapez Enter pour stop):602
CE NR EXISTE DEJA !!! ==>RECOMMENCER...
Entrez le NR de DEPOT,(TAPER ENTER pour arreter):105
FIN Recherche et pas trouve...
FIN insertion
Entrez le NOM du Depot: ==>enter
ERREUR DE SAISIE,entrez au moins une lettre
==>Recommencer...ARCELORMITTAL
Entrez le PAYS du Depot:ALLEMAGNE
Entrez le Nr et la RUE du depot:7,Strasse Stahl
Entrez le CODE POSTAL du depot:
50
Entrez le CODE POSTAL du depot:
600
Entrez le CODE POSTAL du depot:
1200
Entrez la VILLE du depot:Dublin
Entrez la CAPACITE DE STOCK du depot:
80
Entrez le RESPONSABLE du depot:
Soit:XA, GT, LP, RS, TT ou NULL:
==>enter
Entrez le critere MATIERE DANGEREUSE:
1= PRODUIT DANGEREUX
0=PRODUIT NON DANGEREUX
Votre choix:...0 "
Enfait tu veux juste ajouter un dépot manuellement mais te faut vérifier que le numéro existe pas déjà ? ![]()
Si t'as un grand tableau qui doit contenir tous les dépots faut que tu le réalloues dynamiquement après avoir créer le nouveau dépot.
Oui c'est ça . Mais le probème c'est que j'ai du mal comme je l'ai dit plus haut vue que je débute en programmation. Un coup de main pour ce programme ne sera pas de refus ![]()
J'ai ces 2 fonctions aussi a faire en dernier mais si tu sais m'aider pour les 3 premiers je te serai très reconnaissant déja.
Je dois le finir pour demain après midi et comme j'ai eu un petit nombre de problèmes avec codeblocks depuis 2 semaines pas possible de faire quelque chose de correcte...
je dois bientot y aller si sa te dérange pas de m'aider laisse des messages ici ou bien envoie moi ca sur mon hotmail: Ali_grozniy@hotmail.com
Merci beaucoup de prendre le temps de m'aider c'est vraiment sympa. bonne soirée
ConstructionData( ) : Cette fonction parcourt le vecteur ListeDepots et récupère dans chaque fiche les champs NomDepot et Pays pour les mémoriser dans le tableau data sous la forme : NOM‛espace’PAYS.
AfficheData( ) : Cette fonction affiche le contenu du tableau data.