Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (ANSI-Standard) » frage zu dynamischen Objekten

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: [ 1 ] [ 2 ] > 3 <
020
18.12.2003, 20:59 Uhr
Windalf
Der wo fast so viele Posts wie FloSoft...
(Operator)


ja hab dein neues bekommen (hat ne weile gedauert weil die mail noch nen weiterleitungsumweg über den uniserver genommen hat....)
ich gucks mir gleich mal an....

[Edit]
man was für ein Hick Hack durch das ich mich da quälen musste. Schuld waren wie immer die Globals.... Ich hasse globale Variable...
--
...fleißig wie zwei Weißbrote

Dieser Post wurde am 18.12.2003 um 21:19 Uhr von Windalf editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
021
18.12.2003, 21:54 Uhr
Windalf
Der wo fast so viele Posts wie FloSoft...
(Operator)


so hier ist die von mir vorgeschlagene Lösung ohne vector...

C++:
#include <iostream>
using namespace std;

typedef struct{char name[16];int matrikelnummer;int note;}Klausurergebniss;

class KlausurergebnisDB{

    int anzahl;
    int reserviert;
    Klausurergebniss* daten;

public:
    KlausurergebnisDB();
    ~KlausurergebnisDB();

    void add();
    void list();
};

KlausurergebnisDB::KlausurergebnisDB(){
    anzahl=0;
    reserviert=10;
    daten=new Klausurergebniss[reserviert];
}

KlausurergebnisDB::~KlausurergebnisDB(){
    delete [] daten;

}
void KlausurergebnisDB::add(){
    
    Klausurergebniss *temp;int i;
    if(anzahl>=reserviert){    //wenn der speicherplatz nicht mehr ausreicht neuen speicher allokieren
        reserviert+=10;
        temp=new Klausurergebniss[reserviert];
        for(i=0;i<anzahl;++i)
            temp[ i ]=daten[ i ];
    delete [] daten;
    daten=temp;
    }

    std::cout<<"name: ";
    std::cin>>daten[anzahl].name;
    std::cout<<"mat: ";
    std::cin>>daten[anzahl].matrikelnummer;
    std::cout<<"note: ";
    std::cin>>daten[anzahl].note;

    anzahl++;
}


void KlausurergebnisDB::list(){
    for(int i =0;i<anzahl;i++)
        cout<<daten[ i ].name<<"\t"<<daten[ i ].matrikelnummer<<"\t"<<daten[ i ].note<<endl;
}

int main(){

KlausurergebnisDB myDB;

int end=0;
char wahl;
while(!end){
    std::cout<<"(1) Datensatz hinzufuegen\n";
    std::cout<<"(2) Liste anzeigen\n";
    std::cout<<"(3) Ende\n";
    std::cout<<"Ihre Wahl: ";
    std::cin>>wahl;
    
    if(wahl=='1') myDB.add();
    if(wahl=='2') myDB.list();
    if(wahl=='3') end=1;

}

return 0;
}


--
...fleißig wie zwei Weißbrote
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
022
18.12.2003, 22:30 Uhr
~haribobär
Gast


@Windalf

Danke erst mal für das Programm was du mir geschickt hast.

Jetzt hätte ich da noch eine Frage
Warum hast du in der core.h dieses extern davorgeschrieben?
Was hat das extern für eine Funktion?



C++:
#ifndef _core_H_INCLUDED_        
#define _core_H_INCLUDED_

#include <iostream>
using namespace std;

struct Klausurergebniss{char name[16];int matrikelnummer;int note;};

extern int anzahl;
extern Klausurergebniss *daten;

void add();
void loeschen ();
void mean();
void quota();
void top();
void fail();
void list();
void quit();

#endif








Gruss Haribo
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
023
18.12.2003, 22:43 Uhr
Windalf
Der wo fast so viele Posts wie FloSoft...
(Operator)


das ist diese scheisse mit den globalen variablen.
anzahl und daten muss ja in core und in gui bekannt sein an sonsten beschwert sich der linker. mit extern kannst du diese Variable deklarieren und den linker quasi beschwichtigen...

aber um nochmal zu dem Thema was zu sagen: Verwende Globale Variablen nur wenn es nicht anderes geht... und es geht fast immer anders
--
...fleißig wie zwei Weißbrote

Dieser Post wurde am 18.12.2003 um 22:43 Uhr von Windalf editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
024
18.12.2003, 23:50 Uhr
Windalf
Der wo fast so viele Posts wie FloSoft...
(Operator)



Zitat:

Du hast gestern gesagt du findest globale Variabeln net gut.
Kann man die Variabeln vielleicht auch in der main Funktion anlegen
und durch Pointerübergabe in die entsprechenden Funktionen übergeben.


das ist z.b. schon mal eine ganz gute Idee wenn man das schon nicht mit der klasse machen will....
--
...fleißig wie zwei Weißbrote
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
025
20.12.2003, 12:49 Uhr
~haribobär
Gast


@ Windalf

Hallo Windalf.
Ich hab mein Programm jetzt soweit fertig.
Aber ich bekomme noch eine Fehlermeldung.
Könntest du das vielleicht mal anschauen.
Wäre echt nett.

Sag bescheid,dann schicke ich es dir zu.
Danke.

Gruss Haribo
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
026
20.12.2003, 13:22 Uhr
Windalf
Der wo fast so viele Posts wie FloSoft...
(Operator)


bescheid
--
...fleißig wie zwei Weißbrote
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
027
20.12.2003, 13:48 Uhr
~haribobär
Gast


Habs dir geschickt.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: [ 1 ] [ 2 ] > 3 <     [ C / C++ (ANSI-Standard) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: