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.


Anmelden zum Antworten