Case-Alternative mit Memberfunktion lösen
-
Wie kann ich im folgenden die Case-Alternativen mit Memberfunktionen lösen?
Brauche DRINGEND HILFE !!!!!
# include <iostream> # include <fstream> using namespace std; class schueler { public: char vname[20]; char name[25]; int alter; }; void main (void) { int anzahl,i, auswahl; schueler datbank[20]; ofstream datei("datei.txt", ios_base::app); do { cout << "----------------------- Schueler - DB ----------------------------------- \n"; cout << "-------------------------------------------------------------------------\n\n"; cout << "--------------------------- Menue ---------------------------------------\n"; cout << "(1) Datensatz eingeben\n"; cout << "(2) Datensatz ausgeben\n"; cout << "(3) Beenden\n"; cin >> auswahl; system ("cls"); switch (auswahl) { case 1: cout << "Bitte geben Sie die Anzahl der Datensätze ein, die Sie eingeben moechten: "; cin >> anzahl; system ("cls"); for (i=0;i<anzahl;i++) { cout << "Eingabe des " <<i+1<<". Datensatz:\n"; cout << "Wie lautet der Vorname?\n"; cin >> datbank[i].vname; datei << datbank[i].vname << endl; cout << "Wie lautet der Nachname?\n"; cin >> datbank[i].name; datei << datbank[i].name << endl; cout << "Wie lautet das Alter?\n"; cin >> datbank[i].alter; datei << datbank[i].alter << endl; system ("cls"); } break; case 2: ifstream in("datei.txt"); do { char ch; ch=in.get(); cout<<ch; } while (!in.eof()); cout<<endl; system ("pause"); system ("cls"); break; } } while(auswahl!=3); datei.close(); }
-
sieht schwer nach einer aufgabe (hausausgabe, klausur) aus. deswegen etwas eigeninitative http://www.newty.de/fpt/index.html
void main() ist net
http://fara.cs.uni-potsdam.de/~kaufmann/?page=GenCppFaqs&faq=main#Answ
-
Also ich bekomme es soweit hin, eine Funktion innerhalb der Klasse Schueler aufzurufen.....nur halt nicht den Teil der Case-Alternative!
Habe das Programm nun um eine "Dummy"-Memberfunktion erweitert.....dies funktioniert aber irgendwie nicht mit dem Case-Alternative-Teil

# include <iostream> # include <fstream> using namespace std; class schueler { public: char vname[20]; char name[25]; int alter; void einlesen(); }; void einlesen () { cout << "Hallo"; } void main (void) { int anzahl,i, auswahl; schueler datbank[20]; ofstream datei("datei.txt", ios_base::app); do { cout << "----------------------- Schueler - DB ----------------------------------- \n"; cout << "-------------------------------------------------------------------------\n\n"; cout << "--------------------------- Menue ---------------------------------------\n"; cout << "(1) Datensatz eingeben\n"; cout << "(2) Datensatz ausgeben\n"; cout << "(3) Beenden\n"; cin >> auswahl; system ("cls"); switch (auswahl) { case 1: einlesen(); cout << "Bitte geben Sie die Anzahl der Datensätze ein, die Sie eingeben moechten: "; cin >> anzahl; system ("cls"); for (i=0;i<anzahl;i++) { cout << "Eingabe des " <<i+1<<". Datensatz:\n"; cout << "Wie lautet der Vorname?\n"; cin >> datbank[i].vname; datei << datbank[i].vname << endl; cout << "Wie lautet der Nachname?\n"; cin >> datbank[i].name; datei << datbank[i].name << endl; cout << "Wie lautet das Alter?\n"; cin >> datbank[i].alter; datei << datbank[i].alter << endl; system ("cls"); } break; case 2: ifstream in("datei.txt"); do { char ch; ch=in.get(); cout<<ch; } while (!in.eof()); cout<<endl; system ("pause"); system ("cls"); break; } } while(auswahl!=3); datei.close(); }
-
du erstellst einfach für die klasse schueler zwei elementfunktionen eingeben() und ausgeben(). dann klatscht du alles, was unter case 1 steht in die funktion eingeben() und alles was unter case 2 steht in die funktion ausgeben().
anschließend erstetzt du den code unter case 1 durch einen aufruf von eingeben() und den code unter case 2 durch einen aufruf von ausgeben().
fertig. bei der hausaufgabe mußt du wirklich nicht mehr tun als ein bißchen cut&paste.