Brauche unbedingt hilfe !!!
-
Hallo Leute,brauche dringends eure hilfe da ich wirklich verzweifelt bin mit meinem programm!
Also fehlermeldung während der eingabe:
"ntdll.dll" wurde geladen. Es wurden keine entsprechenden Symbolinformationen gefunden.
"C:\WINDOWS\system32\kernel32.dll" wurde geladen. Es wurden keine entsprechenden Symbolinformationen gefunden.
"C:\WINDOWS\system32\user32.dll" wurde geladen. Es wurden keine entsprechenden Symbolinformationen gefunden.
"C:\WINDOWS\system32\gdi32.dll" wurde geladen. Es wurden keine entsprechenden Symbolinformationen gefunden.
"C:\Programme\Kaspersky Lab\Kaspersky Internet Security 6.0\adialhk.dll" wurde geladen. Es wurden keine entsprechenden Symbolinformationen gefunden.
"C:\WINDOWS\system32\advapi32.dll" wurde geladen. Es wurden keine entsprechenden Symbolinformationen gefunden.
"C:\WINDOWS\system32\rpcrt4.dll" wurde geladen. Es wurden keine entsprechenden Symbolinformationen gefunden.
"C:\WINDOWS\system32\msvcrt.dll" wurde geladen. Es wurden keine entsprechenden Symbolinformationen gefunden.
"C:\WINDOWS\system32\uxtheme.dll" wurde geladen. Es wurden keine entsprechenden Symbolinformationen gefunden.
"C:\WINDOWS\system32\msvcrt.dll" wurde geladen. Es wurden keine entsprechenden Symbolinformationen gefunden.
"C:\WINDOWS\system32\advapi32.dll" wurde geladen. Es wurden keine entsprechenden Symbolinformationen gefunden.
"C:\WINDOWS\system32\rpcrt4.dll" wurde geladen. Es wurden keine entsprechenden Symbolinformationen gefunden.
"C:\WINDOWS\system32\msctf.dll" wurde geladen. Es wurden keine entsprechenden Symbolinformationen gefunden.
"C:\Programme\Typhoon\Notebook Mouse\5.0\MOUDL32A.dll" wurde geladen. Es wurden keine entsprechenden Symbolinformationen gefunden.
Nicht abgefangene Ausnahme in projek1.exe: 0xC0000005: Access Violation.
Das Programm "C:\Studium\2.Semester\Programmieren C++\Übungen\Übung2\Debug\projek1.exe" wurde mit Code 0 (0x0) beendet.nun mein headerm.h:
#include <iostream> #ifndef HEADERM #define HEADERM using namespace std; const int n=15; const int breite=12; class CMedium { protected: // Vererbte klassen dürfen drauf zugreifen! int signatur; char typ[7]; char titel[15]; bool bstatus; public: void init(); void anzeigen(); void entleihen(); void rueckgabe(); int getsig(); }; class Buch:public CMedium{ int seitenzahl; public: void init(); void anzeigen(); }; class Video:public CMedium{ double spieldauer; public: void init(); void anzeigen(); }; #endif
main.cpp :
#include <iostream> #include <iomanip> #include <stdlib.h> #include "headerM.h" using namespace std; int main () { char wahl; CMedium *array_medium [n]={NULL}; Buch *array_buch [n]={NULL}; Video *array_video [n]={NULL}; int l=0; //zählvariable für die schleife int i=0,j=0,k=0; //counter für die klassen int sig_suche; cout << '\t' <<'\t' << "M E D I E N V E R W A L T U N G" ; while(1) { cout<< endl<<"\tm Hinzufuegen und Initialisieren eines neuen Mediums\n" <<"\tb Hinzufuegen und Initialisieren eines neuen Buchs\n" <<"\tv Hinzufuegen und Initialisieren eines neuen Videos\n" << "\tl Anzeige der Medieneigenschaften\n" << "\te Entleihen des zuletzt angelegten Mediums\n" << "\tr Rueckgabe des Zuletzt angelegten Mediums\n" << "\tq Programmende\n" << "\tEingabe: "; cin.sync(); //Eingabebuffer löschen cin >> wahl; switch (wahl) { case 'm': case 'M': if (i<n){ array_medium[i] = new CMedium; //Dereferenziert Speichplatz angefordert array_medium[i]->init(); i++; } else{ cout <<"Es steht kein Speicherplatz mehr zu Verfuegung"<<endl; } break; case 'b': case 'B': if (j<n){ array_buch[j] = new Buch; //Dereferenziert Speichplatz angefordert array_buch[j]->init(); j++; } else{ cout <<"Es steht kein Speicherplatz mehr zu Verfuegung"<<endl; } break; case 'v': case 'V': if (k<n){ array_video[k]= new Video; //Dereferenziert Speichplatz angefordert array_video[k]->init(); k++; } else{ cout <<"Es steht kein Speicherplatz mehr zu Verfuegung"<<endl; } break; case 'L': case 'l': if (array_medium==NULL && array_buch ==NULL && array_video==NULL){ cout<<"Bitte legen sie erst ein medium an"<<endl; break; } cout <<endl<<'\t'<< setw(breite) << left << "Titel" ; cout << setw(breite) << right << "Signatur" ; cout << setw(breite) << right << "Typ" ; cout << setw(breite) << right << "Seitenzahl"; cout << setw(breite) << right << "Spieldauer"; cout << setw(breite) << right << "Status"; cout <<'\t'<<"------------------------------------------------------------------------"<<endl; for(l=0; l < i; l++) { array_medium[l] -> anzeigen(); } for(l=0; l < j; l++) { array_buch[l] -> anzeigen(); } for(l=0; l < k; l++) { array_video[l] -> anzeigen(); } break; case 'e': case 'E':{ if (array_medium==NULL && array_buch ==NULL && array_video==NULL){ cout<<"Bitte legen sie erst ein medium an"<<endl; break; } cout <<"Bitte Signatur eingeben:"<<"\t"<<endl; cin >>sig_suche; for (l=0;l<i;i++){ int objektsig=array_medium[i]->getsig(); if (sig_suche==objektsig){ array_medium[i]->entleihen(); } } for (l=0;l<j;i++){ int objektsig=array_buch[j]->getsig(); if (sig_suche==objektsig){ array_buch[j]->entleihen(); } } for (l=0;l<k;i++){ int objektsig=array_video[k]->getsig(); if (sig_suche==objektsig){ array_video[k]->entleihen(); } } break; } case 'r': case 'R': if (array_medium==NULL && array_buch ==NULL && array_video==NULL){ cout<<"Bitte legen sie erst ein medium an"<<endl; break; } cout <<":::RUECKGABE:::"<<endl; cout <<"---------------"<<endl; cout <<"Bitte Signatur eingeben:"<<"\t"<<endl; cin >>sig_suche; int objektsig; int x; for (l=0;l<i;i++){ objektsig=array_medium[i]->getsig(); if (sig_suche==objektsig){ array_medium[i]->rueckgabe(); x=1; } } for (l=0;l<j;i++){ objektsig=array_buch[j]->getsig(); if (sig_suche==objektsig){ array_buch[j]->rueckgabe(); x=1; } } for (l=0;l<k;i++){ objektsig=array_video[k]->getsig(); if (sig_suche==objektsig){ array_video[k]->rueckgabe(); x=1; } } if (x==0){ cout <<"Sorry aber die Signatur wurde nicht gefunden"<<endl; } break; case 'q': case 'Q': for (l=0;l<i;l++){ delete array_medium[i]; } for (l=0;l<j;l++){ delete array_buch[j]; } for (l=0;l<k;l++){ delete array_video[k]; } return 0; default: cout<<"Geben sie bitte den passenden Buchstaben an"<<endl; }// ende switch }//gehört zu while return 0; }// ende main
und zu guter letzt klassen.cpp
#include <iostream> #include <iomanip> #include <stdlib.h> using namespace std; #include "headerm.h" void CMedium::init(){ bstatus = true; strncpy(typ,"Medium\0",7); cout<<'\t'<<"Bitte geben sie die Signature ein: "; cin>> signatur; cout<<'\t'<<"Bitte geben sie den Titel ein: "; cin>> titel; cout << endl << '\t' << "Daten erfolgreich aufgenommen." << endl; } void CMedium::anzeigen(){ if (bstatus==true){ cout << '\t' << setw(breite) << left << titel ; cout << setw(breite) << right << signatur ; cout << setw(breite) << right << "Medium"; cout << setw(breite) << right << ""; cout << setw(breite) << right << ""; cout << setw(breite) << right << "vorh." << endl; } else{ cout << '\t' << setw(breite) << left << titel ; cout << setw(breite) << right << signatur ; cout << setw(breite) << right << "Medium"; cout << setw(breite) << right << ""; cout << setw(breite) << right << ""; cout << setw(breite) << right << "entl." << endl; } } void CMedium::entleihen(){ if (bstatus){ bstatus = false; cout <<"Das Medium " << titel << " wurde entliehen\n"; } else{ cout <<"Das Medium ist bereits entliehen\n"; } } void CMedium::rueckgabe(){ if(!bstatus){ bstatus = true; cout <<"Danke"; } else{ cout<<"Rueckgabe nicht möglich da Buch nicht entliehen\n"; } } int CMedium::getsig(){ return signatur; } void Buch::init(){ bstatus=true; cout << '\t' <<"Bitte Buchdaten eingeben"<<endl; cout <<'\t' <<"-------------------------"<<endl; cout << '\t' <<"Signatur: "; cin >>signatur; cout << '\t' <<"Seitenzahl: "; cin >>seitenzahl; cout << '\t' <<"Titel: "; cin >>titel; cout << endl << '\t' << "Daten erfolgreich aufgenommen." << endl; } void Buch::anzeigen(){ if (bstatus==true) { cout << '\t' << setw(breite) << left << titel ; cout << setw(breite) << right << signatur ; cout << setw(breite) << right << "Buch"; cout << setw(breite) << right << seitenzahl; cout << setw(breite) << right << ""; cout << setw(breite) << right << "vorh." << endl; } else { cout << '\t' << setw(breite) << left << titel ; cout << setw(breite) << right << signatur ; cout << setw(breite) << right << "Buch"; cout << setw(breite) << right << seitenzahl; cout << setw(breite) << right << ""; cout << setw(breite) << right << "entl." << endl; } } void Video::init(){ bstatus=true; cout << '\t' <<"Bitte Videodaten eingeben"<<endl; cout <<'\t' <<"--------------------------"<<endl; cout << '\t' <<"Signatur: "; cin >>signatur; cout << '\t' <<"Spieldauer: "; cin >>spieldauer; cout << '\t' <<"Titel: "; cin >>titel; cout << endl << '\t' << "Daten erfolgreich aufgenommen." << endl; } void Video::anzeigen(){ if (bstatus==true) { cout << '\t' << setw(breite) << left << titel ; cout << setw(breite) << right << signatur ; cout << setw(breite) << right << "Video"; cout << setw(breite) << right << ""; cout << setw(breite) << right << spieldauer; cout << setw(breite) << right << "vorh." << endl; } else { cout << '\t' << setw(breite) << left << titel ; cout << setw(breite) << right << signatur ; cout << setw(breite) << right << "Video"; cout << setw(breite) << right << ""; cout << setw(breite) << right << spieldauer; cout << setw(breite) << right << "entl." << endl; } }
Nachm Abbruch zeigt mir auf diese stelle:
int CMedium::getsig(){
----> return signatur;
Ich danke euch im voraus!!!
-
Sonst wünsche ?
Nen Auto oder ne Villa in Südfrankreich ?
Nicht abgefangene Ausnahme in projek1.exe: 0xC0000005: Access Violation.
Also, Du hast irgendwo eine Zugriffsverletzung und bekamst hierfür eine Ausnahme geworfen, der Debugger ist Dein Freund :xmas2:
-
Hallo
Es wäre schon schön, wenn du das etwas eingrenzen könntest.
chrische
-
ToniM schrieb:
...brauche dringends ... hilfe ...
z.B. bei der sinnvollen Formulierung eines Threadtitels...
Gruß,
Simon2.
-
Du solltest dir an der betreffenden Stelle mal den Call Stack anschauen, um zu sehen, wo die Funktion getsig aufgerufen wird. Evtl. gibt es keine gültige Instanz.
Und dies
main.cpp:162: warning: 'x' might be used uninitialized in this function
solltest du auch noch mal überdenken.
ps:
Und was bereits gesagt wurde, verwende aussagekräftige Threadtitel!
-
kann mich auch nur anschließen -.-
kannst du dein problem etwas eingrenzen ?
-
erklär mal das:
for (l=0;l<i;i++){ int objektsig=array_medium[i]->getsig();