Après avoir vu votre code source, je vous conseille de l'étude C++ une fois de plus, pour combler les lacunes de votre savoir. Pour cela, je devrais normalement vous au tutoriel de ce site Point, mais je ne suis pas sûr à quel point votre anglais est. Mon français n'est pas bon non plus, vu que je suis en utilisant Google Translate pour écrire ceci.
Au lieu d'essayer de corriger le code source, je vais vous donner un nouveau départ. Je vais passer du temps à expliquer ce que je fais et j'espère donc que vous allez passer du temps à essayer de comprendre.
Votre tâche est de mettre en œuvre un ADT de sac dans le langage C++.
Pour ce faire, vous devrez écrire comme un modèle de classe.
Une classe contient des données et des fonctions en tant que membres.
Les données de notre sac contient seront les éléments, et combien d'éléments il existe.
Les fonctions de notre sac contient sera responsable de:
- Taille dire
- Recherche d'un élément
- L'ajout d'un nouvel élément
- Suppression d'un élément
- Intersection de deux sacs
- Deux unifier sacs
Le code source ci-dessous utiliser l'anglais. Vous êtes libre de le modifier.
1 2 3 4 5
|
class Bag
{
int elements[500];
int size;
};
|
Ci-dessus est un commencement brut.
Les éléments seront stockés dans le dossier
elements array.
Combien d'éléments sont là seront stockées dans le
size entier.
Notez qu'il ya une limite de taille de 500 éléments.
Maintenant, nous ajoutons quelques fonctions.
1 2 3 4 5 6 7 8 9 10
|
class Bag
{
int elements[500];
int size;
int bag_size();
bool search(int e);
void add(int e);
void remove(int e);
};
|
A ce stade, nous avons un problème. Dans une classe C++, chaque membre est privé par défaut. Cela signifie que nous ne sommes pas autorisés à accéder aux données, ou les fonctions.
Pour cela nous ajoutons les balises
private: et
public:. Maintenant, nous pouvons accéder aux fonctions.
En ce qui concerne les fonctions d'intersection et d'union, nous écrirons en tant qu'opérateurs.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
|
class Bag
{
private:
int elements[500];
int size;
public:
int bag_size();
bool search(int e);
void add(int e);
void remove(int e);
Bag operator + (Bag b);
Bag operator ^ (Bag b);
};
|
Pouvez-vous continuer à partir de là?