Réponse acceptée !
Bon voici une ossature qui doit correspondre à ce que tu cherche...
c'est pas très beau et pas complet mais je vais pas faire le boulot a ta place quand même ;)...
En gros il te faut creer :
Une structure
Une liste chainée.
des fonctions de lecture de liste...
Je vais pas t'écrire le code mais voici des pistes...
<code>
#...
les includes qui vont bien ....
// une petite structure, une liste chainée, manipuler les pointers et les fonction de base cin cout ou mieux utiliser les flux;
struct Sprov
{
int index; // de la chaine
int numero; // numero du produit
string produit; // Pour dire ce que c'est
string type; // kg, Littre ...
int quantité; //
float prix;
struc Sproc *pSuivant; // pointeur qui pointe vers l'element suivant
}
// on défini un pointer de tete et le pointeur Nouveau
struct Sproc *pNouveau; // pointe sur le nouvel element
struct Sproc *ptete; // pointe sur la tête de la liste...
ptete=NULL; // on initialise la liste
// Cette fonction créer un nouvel element à ta liste;
// Après cette fonction, pNouveau (défini en global) pointe sur le nouvel element. de ta liste;
void NouvelleEntree(void)
{
struct Liste * pCourant; // on creer un nouveau pointer
if (ptete != NULL) {
pCourant = ptete;
while (pCourant->pSuivant != NULL) pCourant = pCourant->pSuivant; // on parcour la liste
}
pNouveau = (Sprov*)malloc(sizeof(struct Sprov)) // ou avec new: pNouveau =new Sprov c'est mieux
pCourant->pSuivant = pNouveau;
pNouveau->pSuivant = NULL;
// fonction de remplissage...
// ici
}
//
// fonction de relecture de toute la liste;tu peux par exemple n'affiche que les produit en Kg...
//
void Affiche(void)
{
if (tete != NULL) {
while (pCourant->pSuivant != NULL)
{
if(!pCourant->type.compare("Kg"))
{
cout<<pCourant->numero;
cout<<pCourant->produit; //etc.. à toi de le formater à ta guise utilise un string par exemple...
...
}
pCourant = pCourant->pSuivant; // on parcour la liste
}
}
// Dans le main
int main(....)
{
// On creer le premier element;
pNouveau = (Sprov*)malloc(sizeof(struct Sprov)); // on alloue la mémoire pour un nouvelle element ici encore c'est plus joli avec new mais bon ... ex: Nouveau = new Sprov...
pNouveau->pSuivant = stete; // tu dis que pNouveau c'est la tête de liste
pNouveau=stete; // le nouveau maillon devient la tête de la chaine
// ici tu rejoute ta fonction qui rempli le premier element liste pNouveau->numero = ...
...
// Ajoute un element
NouvelleEntree();
//
Affiche();
}
c'est pas un code complet et c'est très loin d'être bien ecrit mais ca peut te donner des pistes...
Bon courage.
-= FKING =-