also beim msvc++ kannste nix "zusammenklicken" ...
naja egal..
also datenbank am beispiel eines adressprogramms:
(nicht getestet!!)
#include <iostream>
#include <fstream>
using namespace std;
class adressen // klasse definieren, bsp "adressen"
{
public:
void lesen(daten*); // um von einer datei datensätze auszulesen
void schreiben(daten*); // um in eine datei datensätze zu schreiben
void ausgabe(nr); // zum ausgeben der datensätze
void eingabe(nr); // zum eingeben der datensätze
private:
char name[256][256]; // 2d-charfelder für variablenund datensatznummer als index
char tel[256][256]; // ...
char ort[256][256]; // ...
};
void adressen::lesen() // funktion zum lesen aus der datei
{
ifstream fin("Adressen.dat", ios::binary); // fin wird zum öffnen von "adressen.dat" deklariert .. das ganze binär!
if(!fin) // falls ein fehler auftritt, oder die datei nicht vorhanden ist..etc
cout<<"Fehler bei dateizugriff!!";
else
{
fin.read((char*)daten,sizeof *daten); // dateiinhalt wird ausgelesen.
fin.close(); // datei wird geschlossen.
}
}
void adressen::schreiben() // funktion zum schreiben in eine datei
{
ofstream fout("Adressen.dat", ios::binary); // fout wird zum schreiben von "adressen.dat" deklariert .. das ganze binär!
if(!fin) // falls ein fehler auftritt, die datei nicht vorhanden ist..etc
cout<<"Fehler bei dateizugriff!!";
else
{
fout.write((char*)daten,sizeof *daten); // komplette datensätze werden in datei geschrieben.
fout.close(); // datei wird geschlossen.
}
}
void adressen::ausgabe() // funktion zum ausgeben von datensätzen
{
cout<<"name: "<<name[nr]<<endl; // der name der datensatznummer wird ausgegeben.
cout<<"wohnort: "<<ort[nr]<<endl; // der ort ausgegeben.
cout<<"telefonnummer: "<<tel[nr]<<endl; // die tel.nummer wird ausgegeben.
}
void adressen::eingabe() // funktion zum eingeben von datensätzen
{
// eingabe kram.. is denke ich mal alles klar......
cout<<"name eingeben: ";
cin.ignore(1,'\n');
cin.getline(name[nr], 256,'\n');
cout<<"wohnort eingeben: ";
cin.getline(ort[nr], 256,'\n');
cout<<"telefonnummer eingeben: ";
cin.getline(tel[nr], 256,'\n');
}
class adressen daten;
void main()
{
int menu, nr = 0; // menu zur auswahl, nr = datensatznummer.
do // solange bis 0 eingegeben wird (oder ein buchstabe.. lol)
{
cout<<"1 - datensatz eingeben.\n";
cout<<"2 - datensatz ausgeben.\n";
cout<<"3 - datensatz in datei speichern.\n";
cout<<"4 - datensatz aus datei laden.\n";
cout<<"0 - ende.\n";
cin>>menu;
switch(menu)
{
case 1:
cout<<"datensatznummer eingeben(1 - 100): ";
cin>>nr;
daten.eingabe(nr-1); // funktion eingabe wird die datensatznummer übergeben
break;
case 2:
cout<<"datensatznummer eingeben(1 - 100): ";
cin>>nr;
daten.ausgabe(nr-1); // funktion ausgabe wird die datensatznummer übergeben
break;
case 3:
cout<<"\ndatensatz wird gespeichert\n";
daten.speichern(*daten); // funktion speichern wird der komplette datensatz übergeben
cout<<"\ndatensatz ist gespeichert\n";
break;
case 4:
cout<<"\ndatei wird geöffnet\n";
daten.lesen(*daten); // funktion lesen wird übergeben. kann probleme geben... habe aber keine lust mehr.. morgen vielleicht
cout<<"\nsie können nun mit auswahl 2 ihre daten abrufen!\n";
break;
case 0:
break;
default:
cout<<"\nfalsche eingabe!\n";
}
}while(menu != 0);
}
// dat wars
[/code]
und schon haste eine kleine datenbank in c++ ;-)
wie gesagt, ich habe es nicht getestet... aber so der ansatz dürfte klar sein denke ich.
bye
ps: schafft euch mal einen [i]syntax-highlightning-ubb[/i] an