Mediathek, Bibliothek, c++



  • Hallo Leute,
    Ich brauche Hilfe, um einem Programm zu schreiben
    Programm ist sehr lang aber Ich kann euch sagen, was Ich machen muss...
    Ein Programm wo ein Benutzer bücher, cds Blu-ray und die Zeitungen ausleihen kann
    Benutzer und medien müssen in einem text Dokument gespeichert werden. Benutzer muss die Medien wieder zurück geben aber wenn er spät zurück gibt muss er strafe zahlen. Medien können nur 1 mal ausgeliehen werden. Es tut mir leid wegen mir Deutsch aber das ist nicht meine Muttersprache...
    Also
    Was ich bis jetzt habe ich, dass Ich 10 Benutzer machen kann und in kunde.txt speichern, und bücher ausleihen und in einem neuen dokument speichern aber ich weiss nicht wie ich die ausgeliehene medien wieder in Konsole ausgeben. also ich komme einfach nicht weiter...Bitte helfen.
    Programm was ich geschrieben habe:

    [code]#include <iostream>
    #include <string>
    #include <fstream>
    #include <iomanip>
    using namespace std;
    
    int menu();
    
    struct buch
    {
      string buchname;
      string zeitung;
      string cd;
      string blu;
      string date;
      int typ;
      buch *agla;
      int kundennummer;
    };
    struct costumer
    {
      int kundennummer; 
      string nachname;
     string vorname;
     string password;
     costumer *next;
     double fine;
    };
    int book(buch *we, costumer *co,int i);
    int kunde(costumer *co, costumer *l); 
    int log(costumer *co, costumer *l, buch *we);
    int ausleih(costumer *co, costumer *l, buch *we);
    int main()
    { 
      int counter = 0;
      buch *ku= new buch;
        buch *we;
         we = ku;
    costumer *l=new costumer;
    costumer *co;
    co=l;
      ku->agla=NULL;
      l->next=NULL;
      ofstream datei;
      ifstream demodat,hallo;
    
      string vn,nn;
      demodat.open("kunde.txt", ios::in);
      while (demodat.good())
      {
        getline(demodat,vn);
        getline(demodat,nn);
        l->next=new costumer;
        l=l->next;
        l->vorname=vn;
        l->nachname=nn;
        l->next=NULL;
      }
      l=co;
     while (l->next!=NULL)
    
      {
        l=l->next;
        cout << l->vorname << " " << l->nachname<< endl;
      }
      l=co;
     string bb;///Buchausleihe
      hallo.open("Hefts.txt", ios::in);
      while (hallo.good())
      {
        getline(hallo,bb);
        ku->buchname=bb;
        ku->agla=NULL;
      }
      ku=we;
      while(ku->agla!=NULL)
      {
        cout <<ku->buchname<<endl;}
      l=co;
     while (l->next!=NULL)
    
    for(int i=0;i<10;i++)
      {
        int ei = menu();
          if(ei==1)                  ///Neue Kunde
          kunde(co,l);
          if(ei==2)             ///Anmelden
    	log(co,l, we);
    
    	if(ei==3)
    	book(we,co,0);      ///Bücher Ausleihen
    
    	  if (ei==4)
    	  break;	
    }
    
          counter ++;
        cout<<setw(4)<<endl; cout<<counter<<" "<<"New Costumer(s)"<<endl;
    
     }
    
    int menu()
    {
      int ei;
    
     cout<<endl; printf ("\033[5;33m"); 
     cout <<"  "<<"..........................Welcome to the Library & Co.........................\n";printf ("\033[25;37m");
    			  cout<<"\n";
     cout <<"  "<<"1.Neue Kunde."<<endl<<
    	      "  "<<"2.Anmelden."<<endl<<
    	      "  "<<"3.Buch Ausleihen"<<endl<<
    	      "  "<<"4.Exit."<<endl;
    	      cout<<"Ihre Wahl: "<<"  ";
    	      cin>>ei;
    	      return ei;
    
    }
    int kunde(costumer *co,costumer *l)
    {
    
       int c;
       l->next=new costumer;
       l=l->next;
        ofstream datei;
        printf ("\033[5;33m"); cout <<"..............New Costumer..............\n";printf ("\033[25;37m");
      cout <<"Vorname Bitte:"<<endl;
    	cin>>l ->vorname;
      cout <<"Nachname Bitte:"<<endl;
    	cin>>l->nachname;
    	cout <<"Konto wurde erstellt.\n"<<endl;
    	l->next=NULL;      
    	datei.open("kunde.txt",ios::app); //Kunde in der Datei
    	datei<<l->vorname<<endl;
    	datei<<l->nachname<<endl;	
    	datei.close();
    }
    int book(buch *we, costumer *co, int i)
    {
    
      string t,kitab, paper, film, deck;
       int b;
    //     int date;
        int cd;
        string e,q,pass,passo,l ;
        ofstream datei, kapia;
        ifstream demodat, pen;
        if(i !=1)
        {
       bool weiter=false;
        costumer *hil=co;
        do {
       cout <<"Vorname und Nachname Bitte:\n";
       cin >>e>>q;
       while (co->next !=NULL)
       {
         co=co->next;
         //cout << "Gefunden: " << co->vorname << " " << co->nachname << endl;
         if (co->vorname==e && co->nachname==q)
         {
           cout << "Gefunden: " << co->vorname << " " << co->nachname << endl;
           weiter=true;
           break;
         }
       }
       if (!weiter)
         co=hil;
        }
        while (weiter==false);
     }
      cout <<"  "<<"Was wollen Sie den Ausleihen ?\n";
      cout <<"  "<<"Wenn sie ein Buch ausleihen wollen, dann druecken Sie die Taste '1'.\n";
      cout <<"  "<<"Wenn sie eine Zeitung ausleihen wollen, dann druecken Sie die Taste '2'.\n";
      cout <<"  "<<"Wenn sie eine CD/DVD/VCD ausleihen wollen, dann druecken Sie die Taste '3'.\n";
      cout <<"  "<<"Wenn sie eine Blu-Ray ausleihen wollen, dann druecken Sie die Taste '4'.\n";
      cout<<"\n";
      cout <<"  "<<"Ihre Wahl:"<<"  ";cin>>b;
    
        if(b==1)
        {    
          cout<<"Geben Sie Bitte den Titel ein:"<<endl;
          cin>>kitab;
          pen.open("books.txt",ios::in);
          pen>>we->buchname;
          while(pen.good())
          {
    	  if (kitab == we->buchname)
    	  {
    	    cout<<we->buchname<<endl;
    	    //pen>> we->buchname;
    	    kapia.open("Hefts.txt",ios::app);
    	    kapia <<co->vorname;
    	    kapia<<co->vorname<<" "<<co->nachname<<endl;
    	    kapia <<we->buchname<<endl;
    	    kapia<<"\n"<<endl;
    	    break;
    	    printf("\033[5;33m");cout <<"Nur fuer 1 Monat sonst 0.5 Strafe\n";printf("\033[25;37m");
    	  }
    	  else
    	    pen>>we->buchname;
    // 	  cout <<"Es gibt nicht.\n";
          }
        } 
    
        if(b==2)///Zeitung
        {
          cout<<"Geben Sie Bitte den Titel ein:"<<endl;
          cin>>kitab;
          pen.open("books.txt",ios::in);
          pen>>we->buchname;
          while(pen.good())
          {
    	  if (kitab == we->buchname)
    	  {
    	    cout<<we->buchname<<endl;
    	    //pen>> we->buchname;
    	    kapia.open("Hefts.txt",ios::app);
    	    kapia <<co->vorname;
    	    kapia<<" "<<co->nachname<<endl;
    	    kapia <<we->buchname<<endl;
    	    kapia<<"\n"<<endl;
    	    printf("\033[5;33m");cout <<"Nur fuer 7 Tage sonst 0.5 Strafe\n";printf("\033[25;37m");
    	    break;
    	  }
    	  else
    	    pen>>we->buchname;
    // 	  cout <<"Es gibt nicht.\n";
          }
    
        }
        if (b==3)///CD/DVD/VCD
        {
          cout<<"Geben Sie Bitte den Titel ein:"<<endl;
          cin>>kitab;
          pen.open("books.txt",ios::in);
          pen>>we->buchname;
          while(pen.good())
          {
    	  if (kitab == we->buchname)
    	  {
    	    cout<<we->buchname<<endl;
    	    //pen>> we->buchname;
    	    kapia.open("Hefts.txt",ios::app);
    	    kapia <<co->vorname;
    	    kapia<<" "<<co->nachname<<endl;
    	    kapia <<we->buchname<<endl;
    	    kapia<<"\n"<<endl;
    	    printf("\033[5;33m");cout <<"Nur fuer 7 Tage sonst 0.5 Strafe\n";printf("\033[25;37m");
    	    break;
    
    	  }
    	  else
    	    pen>>we->buchname;
    // 	  cout <<"Es gibt nicht.\n";
          }
    
        }
        if (b==4)///Blu-Ray
        {
          cout<<"Geben Sie Bitte den Titel ein:"<<endl;
          cin>>kitab;
          pen.open("books.txt",ios::in);
          pen>>we->buchname;
          while(pen.good())
          {
    	  if (kitab == we->buchname)
    	  {
    	    cout<<we->buchname<<endl;
    	    //pen>> we->buchname;
    	    kapia.open("Hefts.txt",ios::app);
    	    kapia <<co->vorname;
    	    kapia<<" "<<co->nachname<<endl;
    	    kapia <<we->buchname<<endl;
    	    kapia<<"\n"<<endl;
    	    printf("\033[5;33m");cout <<"Nur fuer 7 Tage sonst 0.5 Strafe\n";printf("\033[25;37m");
    	    break;
    	  }
    	  else
    	    pen>>we->buchname;
    // 	  cout <<"Es gibt nicht.\n";
          }
    
        }
    
    }
    int log(costumer *co, costumer *l, buch *we)
    {
       int b;
        int cd;
        string e,q,pass,passo;
        ofstream datei, kapia;
        ifstream demodat, pen,jd;    
        bool weiter=false;
        costumer *hil=co;
        do {
       cout <<"Vorname und Nachname Bitte:\n";
       cin >>e>>q;
       while (co->next !=NULL)
       {
         co=co->next;
         //cout << "Gefunden: " << co->vorname << " " << co->nachname << endl;
         if (co->vorname==e && co->nachname==q)
         {
           cout << "Gefunden: " << co->vorname << " " << co->nachname << endl;
           weiter=true;
           break;
         }
       }
       if (!weiter)
         co=hil;
        }
        while (weiter==false);
    
       int qo;
        cout <<"Wollen Sie etwas ausleihen?\n" <<
    		 "Wenn Ja dann Druecken sie ( 1 ) sonst ( 2 ) fuer Menu und ( 3 ) fuer Ausgeliehene Sachen .\n";
    	 cout <<"  "<<"Ihre Wahl:"<<"  "; cin >>  qo;
    	  if(qo==1)
    	  {
    	    book(we,co,1);
    	  }
    	  if (qo==2)
    	  {
    	    menu();
    	  }
    	  if (qo==3)
    	  {
           pen.open("Hefts.txt", ios::in);
    	    pen>>passo;
    	    while(pen.good())
    	    {
    
    		 cout <<co->vorname<<" "<<co->nachname<<endl;
    		      cout<<we->buchname<<endl;break;}
    		 pen>>passo;
    	  }
    }
    

    Bitte Helfen ich in einer woche fertig kriegen
    Danke!!!!!!!!!!!!!!!!



  • Poste den Code nochmals aber diesmal mit den C++-Tags.



  • Und mit Einrückungen ...



  • also lang ists für ein forum schon, aber für eine normale anwendung ists noch sehr kurz...

    @tags, einrückungen und erklärungen bitte posten...



  • Einrückungen verschwinden! Beispiel:
    Ein Text

    Ein Text
    


  • EOutOfResources schrieb:

    Einrückungen verschwinden! Beispiel:
    Ein Text

    Ein Text
    

    ? Er soll eben die Code tags + Einrückungen Verwenden -> 10x einfach zu lesen



  • Achso, hab verstanden was du meintest ^^



  • EDIT: OK



  • Ich war mal so frei, dem Eingangspost cpp-Tags zu verpassen.

    Aber ich habe auch keine Lust, mir diese 340 Zeilen aus C/C++-Gemisch durchzulesen auf der Suche nach möglichen Schwachstellen im Code.



  • Leute Ich weiss das kling komisch aber ich weiss nicht, was es meint...
    Könnt es Bitte genauer sagen was es meint.. Das wäre sehr hilfreich Danke sehr



  • sunny123 schrieb:

    Leute Ich weiss das kling komisch aber ich weiss nicht, was es meint...
    Könnt es Bitte genauer sagen was es meint.. Das wäre sehr hilfreich Danke sehr

    Eigentlich hat noch niemand etwas zu deinem Problem gesagt 😉 .



  • Du hast hier eine Frage gestellt und diese so schwammig formuliert, daß hier niemand etwas ernsthaftes zur Lösung beitragen kann. Wir raten hier immer noch herum, worum er dir eigentlich geht.
    (ich verzichte hier mal auf die Bemerkung mit der Kristallkugel :D)

    PS: Und die Menge an Code, die dort hingeworfen hast, schreckt auch viele Leute ab.



  • CStoll schrieb:

    PS: Und die Menge an Code, die dort hingeworfen hast, schreckt auch viele Leute ab.

    Das ist der springende Punkt!



  • Ich will, dass mein Programm ausgibt wer was geliehen hat also cd , Buch oder Zeitung..
    und ein Benutzer nicht die gleiche Medien ausleiht ,was von anderen ausgeliehen worden ist...
    Weil Ich habe alles probiert aber nicht funtioniert.......



  • Dafür solltest du erstmal davon wegkommen, die Verwaltungsstrukturen selber definieren zu wollen. Leg dir eine Klasse für Kunden und für Medien an, diese können dann in STL-Containern gelagert werden.
    Danach kannst du darüber nachdenken, wie du die Ausleihe umsetzt. Eine Möglichkeit wäre, daß der Kunde eine Liste der ausgeliehenen Medien verwaltet, eine Alternative wäre ein Verweis vom Medium auf den aktuellen Ausleiher.

    (in SQL hätte ich jetzt zwei Tabellen "Kunde" und "Medium" (mit Fremdschlüssel auf Kunde) angelegt, aber das ist eine andere Baustelle)



  • Ich verweise mal auf den Link in meiner Signatur. Stichwort "funktioniert nicht"...



  • Ich darf nur Strukturen anwenden..... 😞



  • sunny123 schrieb:

    Ich darf nur Strukturen anwenden..... 😞

    Ist das eine Frage ohne Fragezeichen oder ein falscher Aussagesatz?



  • Also Ich meine Ich darf Strukturen anwenden mit verkettete Listen und Stoff mit Klassen haben wir noch nicht durch gemacht.



  • Habt ihr denn wenigstens schon die Standard-Bibliothek von C++ angesprochen?
    Und was für eine Herangehensweise an C++ soll das überhaupt darstellen? Solche Basteleien sollte man eher angehen, wenn man den grundlegenden Umgang mit der Sprache (und dazu gehört auch die Standard-Bibliothek) kapiert hat.


Anmelden zum Antworten