Exercice c++

Fermé
lawrenz23 Messages postés 33 Date d'inscription mardi 17 mai 2011 Statut Membre Dernière intervention 1 août 2013 - 21 oct. 2013 à 08:58
 Utilisateur anonyme - 21 oct. 2013 à 11:00
Bonjour,
Débutant en c++, je souhaite avoir de l'aide sur cette exercice:

Un fichier ASCII contient une liste d'aliments :
* Le nom.
* L'indication fruit, légume ou viande.
* La couleur dominante.
* Un intervalle usuel de poids (par exemple [10 ;100] pour dire que le poids est habituellement compris entre 10 g et 100 g)
* Le nombre de calories au kilo.
* Vous pouvez supposer la structure que vous voudrez pour ce fichier à condition de l'expliciter.

1) Ecrire une classe ALIMENT permettant de stocker ces données, ainsi que les méthodes qui vous paraissent nécessaires (Les données sont obligatoirement privées).
2) Ecrire une fonction permettant de lire le fichier et de remplir un vecteur de
ALIMENT.
3) Ecrire une fonction permettant de trier ce vecteur suivant l'ordre alphabétique
des noms (Tri à bulles par exemple) puis de l'afficher.
4) Ecrire une fonction permettant d'afficher tous les aliments dont le nom commence
par une lettre donnée.
5) Ecrire une fonction permettant de supprimer tous les aliments dont le nombre de calories au kilo dépasse un certain seuil.
6) Ecrire une fonction permettant de supprimer tous les aliments que vous n'aimez pas.
7) (Vous imaginerez une façon de renseigner ce critère).
8) Ecrire une fonction permettant de sauvegarder le vecteur d'ALIMENT modifié.
9) Ecrire un programme de test avec un menu.

Ce que j'ai fait jusqu'à maintenant:

#include <iostream>
#include <vector>
#include <ostream>
#include <string>


using namespace std;

class aliment {
private:
string nom, indication, couleur_aliment;
float nbcalories, poids;

public:

aliment(string nom, string indication, string couleur_aliment, float nbcalories, float poids)
{
this->nom = nom;
this->indication = indication;
this->couleur_aliment = couleur_aliment;
this->nbcalories = nbcalories;
this->poids = poids;
}
void insert_aliment ()
{

cout << "Saisir le nom de l'aliment:" << nom << endl;
cin >> nom;
cout << "Saisir la couleur de l'aliment: "<< couleur_aliment << endl;
cin >> couleur_aliment;
cout << "Saisir le nombre de calories: ";
cin >> nbcalories;
while (indication != "viande" && indication != "fruits" && indication != "légumes")
{
cout << "Saisir l'indication : ";
cin >> indication;
}

while(10 < poids < 100)
{
cout << "Saisir le poids de l'aliment";
cin >> poids;
}
}

};

int main()
{
std::vector<aliment> aliments;
int choix;
string nom; string indication; string couleur_aliment; float nbcalories; float poids;
aliment a( nom, indication, couleur_aliment, nbcalories, poids);
bool menu = true;
while (menu != false)
{
cout<<"1. Inserer un aliment"<<endl;
cout<<"2. Supprimer un aliment que tu n'aime pas"<<endl;
cout<<"3. Supprimer un aliment en fonction du calories"<<endl;
cout<<"4. Quitter"<<endl;
cout << "Entrer votre choix :"<< endl;
cin >> choix;

switch(choix)
{
case 1:
a.insert_aliment();
aliments.push_back(a);
break;
}
}
return 0;
}


Merci d'avance pour votre aide.

1 réponse

Utilisateur anonyme
21 oct. 2013 à 09:55
salut,

Bon dans un premier temps je tiens à dire qu'on est pas là pour faire tes exercices mais pour t'aider dans un problème précis ou t'aider à corriger/améliorer un algo déjà écris .

Ceci étant dit, c'est donc à toi de faire l'exercice et trouver comment faire tel ou tel chose, et, dans le cas où tu aurai une erreur que tu n'arrive pas à résoudre, nous demander (si tous les étudiant postaient leurs exercices on s'y retrouverai plus et on aurai une quantité phénoménal de diplomés qui ne sauraient pas aligner 2 lignes de codes =p).


Ce que je peux te dire c'est que ta classe est fausse dans le sens où elle représente l'objet "aliment" mais que à fais une méthodes pour ajouter un aliment (à une liste par exemple).


Donc première chose : faire la différence entre ton entité et ta liste d'entité : ta classe aliment doit représenter un aliment unique ( je pense qu'une structure serai mieux adapté), et tu aura une classe, qu'on pourrai nommer "Panier", qui contiendra une liste (un tableau donc) de ces aliments. Cette dernière permettrai donc de gérer le contenu (les différents aliments). Et ca sera elle qui permettra d'ajouter ou retirer un/plusieurs aliment(s).

Fais déjà ca, essaye d'avancer, et si tu bloque sur quelque chose de précis, reviens pour demander.

naga
0
lawrenz23 Messages postés 33 Date d'inscription mardi 17 mai 2011 Statut Membre Dernière intervention 1 août 2013 6
21 oct. 2013 à 10:55
Merci, mais je demande pas qu'on me fasse mon exercice mais j'ai posté mon exercice pour que vous puissiez comparer si ce que je fais est cohérent.
0
peu être mais d'une part tu ne dis pas ou tu as un problème, simplement l'énoncé de ton exercice et un code, et d'autre part, j'ai répondu vis à vis de la cohérence de ton code dans mon post, donc, au vu de ta réponse, tu n'as pas lu la réponse si ce n'est le premier paragraphe ...
0