Hilfe beim Programmausbau



  • Hi, kann vllt. jemand mein Prog weiter ausbauen? Ich komme einfach nicht klar... unser Lehrer hilft uns auch nicht!

    /*Erstellen Sie ein Programm zur Verwaltung von Musik-cd's! Die CD's sollen dabei in Form von 
    Objekten erfasst werden! Entwerfen Sie die Klasse(n) und programmieren sie eine Routine, um eine 
    vom User definierte Anzahl von CDs zu erfassen (dynamische Instanzierung)! Erstellen Sie die 
    Möglichkeit die Daten in einer Datei zu speichern!*/
    #include <iostream.h>
    #include <string.h>
    #include <conio.h>
    
    class cd
    {
    private:
            int cd1;
            int hallo;
            double datum;
            string titel;
            string interpret;
            string genre;
    
    public:
            void menu();
            void eingabe();
            void speichern();
            void umschreiben();
            void ausgabe();
    
             cd();
             cd(double, string, string, string, int);
            ~cd();
    };
    
    cd::cd()
    {}
    
    cd::cd(double D, string T, string I, string G,int C)
    {
            datum     =  D;
            titel     =  T;
            interpret =  I;
            genre     =  G;
            cd1       =  C;
    } 
    
    cd::~cd()
    {
    }
    
    void cd::menu()
    {
    cout<<"----------------------------------------------------"<<endl;
    cout<<"******************* Auswahlmenü*********************"<<endl;
    cout<<"*                                                  *"<<endl;
    cout<<"*                                                  *"<<endl;
    cout<<"*       1 CD Eingabe                               *"<<endl;
    cout<<"*                                                  *"<<endl;
    cout<<"*       2 CD-Liste speichern                       *"<<endl;
    cout<<"*                                                  *"<<endl;           
    cout<<"*       3 CD-Liste überschreiben                   *"<<endl;
    cout<<"*                                                  *"<<endl;
    cout<<"*                                                  *"<<endl;
    cout<<"****************************************************"<<endl;
    
    cout<<"Eingabe:";
         cin >> hallo; 
         clrscr(); 
         switch (hallo) 
         { 
         case 1  : eingabe();                            
                   break; 
         case 2  : speichern(); 
                   break;          
         case 3  : umschreiben(); 
                   break;          
         case 4  : exit(1);                    
                   break;
         default  : cout << "Fehler";            
         } 
    }
    
    void cd::eingabe()
    {
    cout << "Bitte geben sie das Datum der CD ein ?"<<endl;
    cout << "Datum: "<<endl<<endl; 
    
    cout << "Bitte geben sie den Titel der CD ein ?"<<endl;
    cout << "Titel: "<<endl<<endl;
    
    cout << "Bitte geben sie den Interpret der CD ein ?"<<endl;
    cout << "Interpret: "<<endl<<endl;
    
    cout << "Bitte geben sie den Genre der CD ein ?"<<endl;
    cout << "Genre: "<<endl<<endl;
    }
    
    void cd::speichern()
    {
    }
    
    void cd::umschreiben()
    {
    }
    
    int main()
    {
      cd cd;
    /*  cd1.menu();   Buch Seite 112, Funktionen sind nicht definiert
      cd1.eingabe(); 
      cd1.speichern();
      cd1.umschreiben();
      cd1.ausgabe();*/
    
      getchar();
      return 0;
    }
    


  • Supabrein schrieb:

    /*Erstellen Sie ein Programm zur Verwaltung von Musik-cd's! Die CD's sollen dabei in Form von 
    Objekten erfasst werden! Entwerfen Sie die Klasse(n) und programmieren sie eine Routine, um eine 
    vom User definierte Anzahl von CDs zu erfassen (dynamische Instanzierung)! Erstellen Sie die 
    Möglichkeit die Daten in einer Datei zu speichern!*/
    #include <iostream.h>              //nur <iostream>
    #include <string.h>                 //ohne .h
    #include <conio.h>
    
    class cd
    {
    private:
            int cd1;
            int hallo;
            double datum;
            string titel;
            string interpret;
            string genre;
           
    public:
            void menu();
            void eingabe();
            void speichern();
            void umschreiben();
            void ausgabe();
                                   //hier fehlen die getter und setter....
             cd();
             cd(double, string, string, string, int);
            ~cd();
    };
    
    cd::cd()                            //bitte in einer eigenen header.
                                        //default werte fehlen...
    {}
    
    cd::cd(double D, string T, string I, string G,int C)
    {
            datum     =  D;
            titel     =  T;
            interpret =  I;
            genre     =  G;
            cd1       =  C;
    } 
    
    cd::~cd()
    {                              //????
    }
    
    void cd::menu()
    {
    cout<<"----------------------------------------------------"<<endl;
    cout<<"******************* Auswahlmenü*********************"<<endl;
    cout<<"*                                                  *"<<endl;
    cout<<"*                                                  *"<<endl;
    cout<<"*       1 CD Eingabe                               *"<<endl;
    cout<<"*                                                  *"<<endl;
    cout<<"*       2 CD-Liste speichern                       *"<<endl;
    cout<<"*                                                  *"<<endl;           
    cout<<"*       3 CD-Liste überschreiben                   *"<<endl;
    cout<<"*                                                  *"<<endl; // 4 Exit
    cout<<"*                                                  *"<<endl;
    cout<<"****************************************************"<<endl;
    
    cout<<"Eingabe:";
         cin >> hallo; 
         clrscr(); 
         switch (hallo) 
         { 
         case 1  : eingabe();                                       
                   break; 
         case 2  : speichern(); 
                   break;          
         case 3  : umschreiben(); 
                   break;          
         case 4  : exit(1);                                             //s.o.        
                   break;
         default  : cout << "Fehler";            
         } 
    }
     
    void cd::eingabe()                        
    {
    cout << "Bitte geben sie das Datum der CD ein ?"<<endl;
    cout << "Datum: "<<endl<<endl;                            //hier fehlen die cins
    
    cout << "Bitte geben sie den Titel der CD ein ?"<<endl;
    cout << "Titel: "<<endl<<endl;
    
    cout << "Bitte geben sie den Interpret der CD ein ?"<<endl;
    cout << "Interpret: "<<endl<<endl;
    
    cout << "Bitte geben sie den Genre der CD ein ?"<<endl;
    cout << "Genre: "<<endl<<endl;
    }
    
    void cd::speichern()
    {                                     //musst ne datei anlegen und dann die werte der cd in die datei schreiben, 
                                          //wenn du nicht weißt, wie das geht, dann guck doch mal in 
                                          //ein tutorial oder in dein buch(falls vorhanden)
    }
    
    void cd::umschreiben()
    {
    }
    
    int main()
    {
      cd cd;
    /*  cd1.menu();   Buch Seite 112, Funktionen sind nicht definiert
      cd1.eingabe(); 
      cd1.speichern();
      cd1.umschreiben();
      cd1.ausgabe();*/
      
      getchar();            //lieber: cin.get();
      return 0;
    }
    

    P.S.: Wo ist denn new und delete? es soll doch was dynamisch gemacht werden?
    Keine Ahnung von new oder delete? ➡ Tutorial oder Buch



    1. Du solltest anzeigen, das das Programm mit 4 beendet werden kann
    2. Bei cd Eingabe solltest du die strings einlesen, bei titel und Interpret per getline (cin, EinString), damit die gesamte Eingabezeile gelesen wird.
    3. Das Datum sollte nicht als double, sondern als eigene Klasse oder als drei int (TT, MM, JJJJ o.ä.) gespeichert werden. Dazu musst du bei der Eingabe den Datum-String parsen und die Teile extrahieren, die den Tag, den Monat und das Jahr beschreiben, und per itoa () in eine Zahl umwandeln und speichern.
    4. Die cd-Klasse sollte nur die cd-Relevanten Daten und nicht menu oder so enthalten.
    5. Speichern kannst du die in einer std::list, std::vector oder einer ähnlichen Datenstruktur
    6. Das Speichern in eine Datei kannst du per ofstream bzw. allgemein per fstream erledigen, schau dir die benutzung derjenigen an und hacks rein 😉
      Wenn es für den User lesbar sein soll, speichere per Ascii, falls nur für das Programm binär (also unlesbar, bis auf die Namen vielleicht).


  • ich habe noch nicht die große erfahrung und wollte fragen ob ihr mir mal etwas
    dazu programmieren könntet 😕



  • das wäre echt nett 🙂



  • ich nöö, nicht schon wieder so ein lesefauler..

    du hast doch das weekend 😉
    versuch es, wennste nicht weiterkommst, zeig, wo du nicht weiterkommst.



  • das hilft dir leider nicht, deshalb solltest du dich bemühen es alleine auf die Beine zu stellen. Wenn du diese Aufgabe bekommen hast und einiges noch nicht weißt ist es wohl Teil dessen, dir das Wissen anzueignen.
    Versuchs erstmal selber und wenn du noch fragen hast, kannst du fragen.

    Übrigens:

    cd cd;
    

    Das geht nicht, da der Name cd bereits als Typ belegt ist. Nenne es anders.



  • das habe ich ja versucht und bin soweit gekommen wie das was ihr da seht aber ich komme nicht weiter ich raffe das nicht 😕



  • Satzzeichen sind was sinnvolles, probier's aus! 😉

    Dann stell deine Frage konkret und sag, was du nicht verstehst.



  • Alles ?



  • Genauer.



  • so ziemlich alles nicht.
    es wäre nett etwas zu programmieren und das noch aus zu kommentieren.



  • wenn es nicht zu viel mühe kostet



  • Wenn du nicht programmieren kannst, warum willst du das dann machen?
    Kauf dir ein Buch oder lies ein Tutorial.



  • weil ich das lehrnen muss und will,
    aber es erklärt mir keiner so richtig. 🙂



  • dann quäl den lehrer, der muss es dir beibringen.

    und wirklich, besorg dir ein tutorial.
    http://www.cplusplus.com/doc/tutorial/index.html

    du lernst es nicht, wenn du nen fertigen text bekommst. arbeite verschiedene tutorials durch und probiere dich an kleinen testprogrammen, aber auf keinem fall schon an der schulaufgabe. wenn du _problemlos_ ne klasse schreiben kannst und mit new/delete umzugehen gelernt hast, dann kannst du die aufgabe langsam angehen.



  • kannich ma wer das ganze prog bauen?



  • gftrrt5465tg schrieb:

    kannich ma wer das ganze prog bauen?

    Das wird hier keiner für dich machen (ausser gegen Geld, dann gehört dieser Thread aber in das Projekte-Forum). Dies hat vor allem 2 Gründe:

    1. Keiner hier hat bock deine Hausaufgaben zu machen.

    2. Auch wenn es sich altbacken und abgedroschen anhört, so nützt es dir nichts wenn jemand anderst für dich ein Programm schreibt, du lernst dabei nichts und kommst im Studium, in deiner Ausbildung oder in der Schule weiter ins Hintertreffen und spätestens bei der nächsten Aufgabe stehst du wieder vor dem selben Problem. Ausserdem musst du das ganze auch am Ende deiner Ausbildung/Schule/Studium selber können und kannst nicht auf das Wissen anderer zurückgreifen.

    Gruß Wolle



  • schade



  • könnte nicht jemand das mal machen in kurtzformat 😃


Anmelden zum Antworten