Sortier Fuktion in Datenbank



  • Hallo,
    ich habe eine kleine Datenbank geschrieben!
    nun will ich bei der Ausgabe die Daten sotieren, wie geht das am besten??
    mit einem dummy??

    #include "F:\c++\help.h"
    
    	struct personendaten
    	{
    		char vn [20];
    		char nn [20];
    		char plz[6];
    		char ort[10];
    		char str[20];
    		int nr;
    		int al;
    	};
    
    personendaten person[100];
    char name[9]="Vorname:";
    char name2[10]="Nachname:";
    char name3[7]="Alter:";
    char name4[5]="Ort:";
    char name5[5]="plz:";
    char name6[9]="Strasse:";
    char name7[12]="Hausnummer:";
    int i,anzahl;
    int wahl3,wahl4;
    
     // Hauptprogramm Datenbank
    void eingabe()
    
    {
    
    	printf ("Anzahl der zu erfassenden Personen: "); cin >> anzahl;
    	for (i=0;i<anzahl;i++)
    	{
    	printf ("Vorname : ");
    		cin >> person[i].vn;
    		printf ("Nachname : ");
    		cin >> person[i].nn;
    		printf ("Alter : ");
    		cin >> person[i].al;
    	printf ("Strasse: ");
    	cin >> person[i].str;
    printf ("Hausnummer: ");
    cin >> person[i].nr;
    	printf ("Ort: ");
    		cin >> person[i].ort;
    	printf ("PLZ : ");
    		cin >> person[i].plz;
    		clear();
    	}
    }
    
    	// Daten Anzeigen
    	void anzeigen()
    	{
    	for (i=0;i<anzahl;++i)
    	{
    cout <<" Vorname: "<< person[i].vn<<endl;
    cout <<" Nachname: "<<person[i].nn<<endl;
    cout <<" Alter: "<<person[i].al<<endl;
    cout <<" Strasse: "<<person[i].str<<endl;
    cout <<" Strasse: "<<person[i].nr<<endl;
    cout <<" Ort: "<<person[i].ort<<endl;
    cout <<" PLZ: "<<person[i].plz<<endl;
    
    warte();
    getch();
    	}
    	}
    
    // Speichern 
    	void save()
    	{
    
    clear();
    
    ofstream out("datei.txt"); 
    for(i=0;i<anzahl;i++) 
    out << name << " " <<  person[i].vn << " " << name2 << " " << person[i].nn << " " << name3 << " " << person[i].al <<" " <<name6 << " " << person[i].str << " " << name7 << " " << person[i].nr << " "<< name4 << " " << person[i].ort << " " << name5 << " "<< person[i].plz <<endl;
    cout << " Daten Gespeichert " <<endl;
    getch();
    
    	}
    
    // Laden
    	void laden()
    	{
    
    	clear();
    ifstream in("datei.txt"); 
    if(in.is_open()) 
    { 
         string str; 
         while(getline(in, str)) 
              cout << str << endl; 
    } 
    
    getch();
    }
    
    void main ()
    {
    gruss();
    
    warte();
    passw();
    printf (" ************************************************************************************");
    printf ("\n ************************Datenbank****************************************************************");
    
    printf ("\n waehle 1= Daten Eingeben");
    printf ("\n\n waehle 2= Daten Laden");
    
    cin >> wahl3;
    
    if (wahl3==1)
    {
    eingabe();
    clear();
    printf ("\n waehle 1= Daten Anzeigen");
    printf ("\n waehle 2= Daten Daten Speichern");
    cin >> wahl4;
    if (wahl4==1){
    
    anzeigen();
    }
    else
    {
    save();
    }
    }
    
    else if (wahl3==2)
    {
    	laden();
    }
    
    }
    


  • Das oder sowas ähnliches wurde schon oft gefragt. Such mal danach.

    Grundsätzliche vorgehensweise bei den paar datansätzen:

    lese datensätze in den speicher
    sortiere das array mit einem sortieralgorithmus deiner wahl
    schreibe das sortierte array in die datei

    sofar



  • Wenn ich noch einen kleinen Rat geben darf, wenn du das nächste Mal deinen Code postest, dann hol die überflüssigen Leerzeilen raus und achte ein bischen auf die Einrückung. Das macht den Code viel lesefreundlicher. 😉

    P.S. Die größten C++ Lügen


Anmelden zum Antworten