010
18.12.2003, 16:26 Uhr
~haribobär
Gast
|
@ Windalf
Das ist unser main Programm
C++: |
#include "gui.h" #include "core.h"
int main() { menuesteuerung();
return 0;
}
|
Das ist unsere Menüsteuerung
C++: |
#include "gui.h" #include "core.h"
void menuesteuerung()
{
Menuitem menu[]={
{'+',"add","Klausurergebnisse hinzufügen",&add}, {'-',"loeschen","Klausurergebnisse entfernen",&loeschen}, {'m',"mean","Klausurdurchschnitt ausgeben",&mean}, {'q',"quota","Durchfallquote ausgeben","a}, {'t',"top","Auflisten der Studenten mit der besten Note",&top}, {'f',"fail","Auflisten der durchgefallenen Studenten",&fail}, {'l',"list","Auflisten aller Klausurergebnisse",&list} }; char zeichen; do{
cout << endl << endl << endl;
for (int i=0;i<7;i++) {
cout<<" "<<menu[i].shortcut<<" "<< menu[i].description<<endl;
} cout << endl << endl << endl;
cout << " Geben sie bitte eines der oben aufgefuehrten zeichen ein: "; cin >> zeichen;
bool check =false;
for (int i=0;i<7;i++) { if(zeichen == menu[i].shortcut) { menu[i].callback();
check = true; } }
if( check == false) { if(zeichen == 'e') { break; }
cout << " Sie haben ein ungültiges Zeichen eingegeben! " << endl; }
}while(zeichen != 'e');
}
|
Das ist unsrere Header-Datei zur menüsteuerung
C++: |
#ifndef _gui_H_INCLUDED_ #define _gui_H_INCLUDED_
#include <iostream> using namespace std;
//Funktionsdeklaration der einzelnen Menuepunkte
void menuesteuerung();
typedef void (*VOIDFCT)();
struct Menuitem { char shortcut; const char* menutext; const char* description; VOIDFCT callback; //void (*callback)(); };
|
Die Menüsteuerung funktioniert auch ohne probleme, aber jetzt haben wir probleme mit der funktion add und list. im folgenden text kommen die funktionen das problem ist ich kann die werte einlesen. Aber wenn ich auf list gehe zeigt er mir immer nur den zu letzt eingegeben wert an die anderen werte setzt er auf null. Die Anzahl von 64 muss so sein auch wenn das bei dem operator 'new' vielleicht keinen sinn macht.
hier unsere Header-Datei zu den menüpunkten
C++: |
#ifndef _core_H_INCLUDED_ #define _core_H_INCLUDED_
#include <iostream> using namespace std;
void add();
void loeschen ();
void mean();
void quota();
void top();
void fail();
void list();
int abfrage();
struct Klausurergebniss { char name[16]; int matrikelnummer; int note; };
#endif
|
Hier sind unsere menüfunktionen
C++: |
#include "core.h"
int anzahl=0; Klausurergebniss* daten;
void add() {
daten=new Klausurergebniss[64];
cout<<"name: "; cin>>daten[anzahl].name;
cout<<"mat: "; cin>>daten[anzahl].matrikelnummer;
cout<<"note: "; cin>>daten[anzahl].note;
anzahl++;
}
void loeschen () {
cout << "Sie haben - eingegeben ";
}
void mean() {
cout << "Sie haben m eingegeben ";
}
void quota() {
cout << "Sie haben q eingegeben ";
}
void top() {
cout << "Sie haben t eingegeben ";
}
void fail() {
cout << "Sie haben f eingegeben ";
}
void list() { for(int i =0;i<anzahl;i++) { cout<<daten[ i ].name<<"\t"<<daten[ i ].matrikelnummer<<"\t"<<daten[ i ].note<<endl; }
}
|
Wäre nett wenn du uns da weiterhelfen könntest. Vielen dank schon mal im voraus. |