programm schließt einfach
-
ich hab ein programm wo ich tiere zufügen kann und arbeitnehmer, weiterhin kann ich alle tiere bzw arbeitnehmer ausgeben, jetzt füg ich 2 tiere zu und das programm beendet sich. oder ich füg ein tier zu und will alle tiere ausgeben und das programm beendet sich auch, kurz gesagt bei jeder 2. auswahl beendet sich das programm.

es wär etwas viel wenn ich jetzt das komplette programm hierreinkopier (ausserdem isses auf holländisch :D)naja falls jmd ne ahnung hat wonach ich da suchen muss, wär ne antwort super ^^
-
mach nen cin zum schluss oder ähnliches.
was soll das arme programm aufbleiben, wenn du ihm sagst, ist ende?
-
Wirf mal einen Blick in die Konsolen-FAQ, dort ist das Problem das Top-Thema ("automatisches Schließen verhindern"). Wenn das nicht zutrifft, könntest du trotzdem eine gekürzte Version des Programms posten, damit andere sich ansehen können, wo du Mist gebaut hast.
(die eigentliche Programmstruktur dürfte eigentlich nicht darunter leiden, wenn wir die Menütexte nicht verstehen können ;))
-
ich sag ja nirgends das es sich beenden soll also hier ma nen auszug aus der main
// Main.cc #include <iostream> #include "Dierentuin.h" using namespace std; int main() { Dierentuin * artis = new Dierentuin("Artis"); char inBuf[100]; bool stoppen = false; while(! stoppen) { // system("clear"); cout << "\n\n\n\t\t\t\tKies Menuitem\n\n"; cout << "\t\t1\tdier toevoegen\n"; cout << "\t\t2\tdier verwijderen\n"; cout << "\t\t3\twerknemer toevoegen\n"; cout << "\t\t4\twerknemer verwijderen\n"; cout << "\t\t5\toverzicht dieren\n"; cout << "\t\t6\toverzicht werknemers\n"; cout << "\t\t7\tstoppen\n"; cout << "\n\t\tKies:"; cin.getline(inBuf, 100); cout.flush(); switch (inBuf[0]) { case '1': artis->dierToevoegen(); break; case '2': artis->dierVerwijderen(); break; case '3': artis->werknemerToevoegen(); break; case '4': artis->werknemerVerwijderen(); break; case '5': artis->overzichtDieren(); break; case '6': artis->overzichtWerknemers(); break; case '7': stoppen = true; break; default: cout << "\n\nOnjuiste keuze\n"; } } delete artis; return 0; }dann noch der "zoo" wo die tiere und arbeitnehmer zugefügt werden
// Dierentuin.cc #include <assert.h> #include "Dierentuin.h" #include "Dier.h" #include "Werknemer.h" Dierentuin::Dierentuin(string naam) { int hoogsteDierNummer = 0; } Dierentuin::~Dierentuin() { /*for(map<int,Dier*>::iterator iter=dieren->begin();iter!=dieren->end();++iter) delete iter->second; delete dieren; cout << "dtor van Dierentuin\n";*/ } string Dierentuin::getNaam() { return naam; } void Dierentuin::dierToevoegen() { // haal een diernummer op int dierNummer = getNieuwDierNummer(); string dierNaam; int dierLeeftijd; string dierSoort; cout << "\nGeef op een regel, gescheiden door spatie(s) de naam, " << " de leeftijd en de soort (aap, leeuw, etc.) van het dier op \n"; // lees de gegevens in cin >> dierNaam >> dierLeeftijd >> dierSoort; // skip de rest van de regel cin.ignore(100, '\n'); //---------------------22.02.07---------------------------------- // maak een nieuwe dier en stop hem/haar in de map van dieren // map<int, Dier *> * dieren; dieren->insert(make_pair(dierNummer, new Dier(dierNummer, dierNaam, dierSoort, dierLeeftijd))); cout << "dierNummer: " <<dierNummer << " hoogsteDiernummer: " << hoogsteDierNummer; //---------------------22.02.07end---------------------------------- } void Dierentuin::dierVerwijderen() { int dierNummer; cout << "\nGeef het nummer van het te verwijderen dier\n"; // lees diernummer cin >> dierNummer; // skip rest van de regel cin.ignore(100, '\n'); // ... } void Dierentuin::werknemerToevoegen() { int werknemerNummer; string werknemerNaam; int werknemerLeeftijd; cout << "\nGeef op een regel, gescheiden door spatie(s) de naam, " << " en de leeftijd van de werknemer op \n"; // lees de gegevens in cin >> werknemerNaam >> werknemerLeeftijd; // skip de rest van de regel cin.ignore(100, '\n'); //---------------------22.02.07---------------------------------- // map<int, Werknemer *> * werknemers; werknemers->insert(make_pair(werknemerNummer, new Werknemer(werknemerNummer, werknemerNaam, werknemerLeeftijd))); werknemerNummer++; //---------------------22.02.07end---------------------------------- } void Dierentuin::werknemerVerwijderen() { int werknemerNummer; cout << "\nGeef het nummer van de te verwijderen werknemer\n"; // lees werknemernummer cin >> werknemerNummer; // skip rest van de regel cin.ignore(100, '\n'); } void Dierentuin::overzichtDieren() { cout << "Lijst van alle dieren\n"; //---------------------23.02.07---------------------------------- for (map<int, Dier* >::iterator iter = dieren->begin(); iter!=dieren->end(); ++iter){ //dieren worden gesoorteerd op nummer afgedrukt //cout << iter->first; //iter->second->drukaf(); cout << "test " << iter->first; } //---------------------23.02.07end---------------------------------- } void Dierentuin::overzichtWerknemers() { cout << "Lijst van alle werknemers\n"; //---------------------26.02.07---------------------------------- /*for (map<int,Werknemer*>::iterator iter = werknemer -> begin(); iter != werknemer -> end(); ++iter) cout << iter->first; iter->second->drukaf(); }*/ //---------------------26.02.07end---------------------------------- } int Dierentuin::getNieuwDierNummer() { // als de vector met beschikbare diernummers niet leeg is // haal hiervan een nummer op // als de vector leeg is // bepaal een nieuwe diernummer int nr = ++hoogsteDierNummer; return nr; } int Dierentuin::getNieuwWerknemerNummer() { }und vllt noch die Tier datei
// Dier.cc #include "Dier.h" //---------------------13.02.07---------------------------------- Dier::Dier(int nummer, string naam, string diersoort, int dierLeeftijd) { this->nummer = nummer; this->naam = naam; this->diersoort = diersoort; this->dierLeeftijd = dierLeeftijd; cout << "New Dier gemaakt: " <<nummer; } int Dier::getNummer() { return nummer; } string Dier::getNaam() { return naam; } string Dier::getdiersoort() { return diersoort; } int Dier::getLeeftijd() { return dierLeeftijd; } void Dier::drukaf() { cout << nummer << "\t" << naam << "\t"<< diersoort << "\t" << dierLeeftijd << endl; //---------------------13.02.07end---------------------------------- }also ich füg ein tier zu mit menüpunkt nummer 1, das macht er auch, das seh ich an dem cout, und will dann alle tiere anzeigen lassen mit menüpunkt 5 nur dann komtm die ausgabe "lijst met alle dieren" praktisch "liste mit allen tieren" und dann springt er aus dem programm. siehe hier:
Kies Menuitem
1 dier toevoegen
2 dier verwijderen
3 werknemer toevoegen
4 werknemer verwijderen
5 overzicht dieren
6 overzicht werknemers
7 stoppenKies:1
Geef op een regel, gescheiden door spatie(s) de naam, de leeftijd en de soort
aap, leeuw, etc.) van het dier op
name 23 sorte
New Dier gemaakt: 1dierNummer: 1 hoogsteDiernummer: 1Kies Menuitem
1 dier toevoegen
2 dier verwijderen
3 werknemer toevoegen
4 werknemer verwijderen
5 overzicht dieren
6 overzicht werknemers
7 stoppenKies:5
Lijst van alle dierenF:\Hausaufgaben\Enschede\Semester 4\CPP - Programmeren in C++\eclipse\Direntui
containers>
-
Mal eine Randfrage: Bist du zufällig von Java auf C++ umgestiegen? (dieses Hantieren mit Zeigern ist in C++ eher unüblich und lästig - versuch' mal die ganzen Zeiger loszuwerden und stattdessen normale Objekte wie
Dierentuin artis("Artis");bzw.map<int, Dier> dieren;zu verwenden)PS: was bedeutet eigentlich "leeftijd" auf Deutsch?
-
leeftijd = alter ^^
warum?