brauche hilfe bei einem Programm



  • Es soll eine unternehmensinterne Telefonverwaltung realisiert werden. Die folgenden Elemente sind mindestens Bestandteil eines Eintrags:
    ·Name
    ·Vorname
    ·Abteilung
    ·Durchwahl

    Das System soll die folgende Funktionalität bieten:
    ·Anlegen neuer Einträge, also Erfassung der Daten
    ·Suchen nach Einträgen (anhand des Namens) mit der Möglichkeit, den Eintrag zu löschen
    ·Die komplette Liste der Telefonbucheinträge soll sortiert angezeigt werden; die Sortierung erfolgt dabei zuerstnach dem Kriterium Abteilung und im zweiten Schritt nach dem Namen.

    -Die Datensätze sind in Form einer dynamischen Liste im Speicher zu halten

    Die auf der Festplatte abgelegten Daten sind mit einem Passwort zu verschlüsseln, das beim Einlesen bzw. auch beim Speichern der Datensätze abgefragt wird. Für die Verschlüsselung wird Ihnen eine Programmier- Schnittstelle zur Verfügung gestellt, welche die Verschlüsselung mit AES realisiert. AES ist eine blockorientierte, symmetrische Verschlüsselungsmethode, wobei sich die Länge der Komponenten der einzelnen Datensätze nicht verändern.

    usw.

    ich werd das wohl 100 % nicht bis montag alleine schaffen



  • System und Zielbetriebssystem wären keine schlechten Infos. Falls es nur in der Konsole ablaufen kann ist es auch alleine schaffbar, soll allerdings die Sache auch noch mit Features geschmückt werden und tolle Fenster haben, wirds ein bisschen länger dauern.

    MfG SideWinder



  • ja soll nur in der console ablaufen. keine fenster. ich komm mit C noch net ganz klar!



  • Hey, dann würd ich doch mal vorschlagen, Du arbeitest ein Konzept aus und stellst uns das vor. Wenn dabei Probleme auftauchen, dann meldste Dich, anschließend versuchste Dein Programm umzusetzen, wenn dabei Probleme auftauchen... Du weißt schon.

    Ich glaub kaum, daß Dir hier jemand die Aufgaben macht. Aber wenn Du was vorlegst und wir helfen mit bzw. geben ein paar Tips, dann sollte das locker klappen. Setz Dich mal nen Nachmittag hin, dann wirste sehen so schlimm isses garnich.



  • hy

    frage muss das reines c sein oder ist damit auch c++ gemeint ? darf darin auch die STL verwendet werden für die datenhaltung oder muss diese selber geschrieben werden?

    so wies ausseiht sollte das zu schaffen sein

    gruss termite



  • Hallo

    verwende den Borland Builder 6 und du hast dein Programm
    in ca. 15 min. (mit Install / und nicht in der Konsole) geschrieben und es funktioniert.

    MfG
    Klaus



  • hi, super für eure angebotene hilfe Jungs. JA es muss reines C sein. Ich hab Visual C++ 6.0. ICh fang einfach mal an mit dem Programm und wenn ich net weiter weiss, dann poste ich es hier! Prima, danke euch jetzt schon.

    gruß
    rebel



  • argh!

    ich bekomm hier nix aufs "papier" 😞



  • falls dir garnicht einfällt, wie du beginnen könntest, dann überleg dir mal folgende sachen:
    - realisierung einer verkettenten liste (einfach sollte genügen) -> siehe faqs / google
    - Menüführung (auf scanf / printf basis, sollte nicht so schwer sein)
    letzetere orientiert sich an deinen anforderungen, also ein punkt für neu erstellen, ein punkt für suchen, einer für sortieren
    z.b.:

    printf("(1) Neuer Eintrag\n");
    printf("(2) Eintrag Suchen\n");
    printf("(3) Liste sortiert ausgeben\n");
    scanf("%i", &auswahl);
    

    du könntest dir den sortier algo sparen, in dem du gleich beim auslesen der daten und dann im schreiben in die linked list auf sortierung achtest!



  • hi,
    ich hab da noch eine Sparfachverwaltung aus alten Turbo C++ und Schulzeiten gefunden.. ist zwar fast schon peinlich wenn ich mir den genauer anschaue, Einrückungen waren mir da auchnoch ziemlcih fremd und wenn es reines C sein soll musu dir noch was mit dem cout und cin einfallen lassen etc aber vieleicht ein Ansatz:

    #include <dos.h>
    #include <conio.h>
    #include <iostream.h>
    #include <stdlib.h>
    #include <stdio.h>
    #include <fstream.h>
    
    char datum[10];
    
    float preis = 3;
    float strafe = 0.3;
    void einstellungen(void)
    {
      cout << "Preis pro Monat:";
      cin >> preis;
      cout << endl << "Strafgeld:";
      cin >> strafe;
    }
    
    struct Adresse
    {
    char vorname[30];
    char name[30];
    char plz[30];
    char snr[30];
    float kontostand;
    float leinz;
    };
    struct Adresse adressdaten[100];
    
    //int anzahl=0;
    float strafgelder=0;
    
    loeschen(int counter)
    {
    int losch =0;
    
    cout<<"\n Welchen Datensatz l”schen? (1-"<<counter<<") 0 fr abbrechen";
    cin>>losch;
    if (losch==0)goto abbrechen;
    if(losch <= counter && losch >0)
    {
    while(losch<=counter)
    {
    adressdaten[losch]=adressdaten[losch+1];
    losch++;
    }
    counter=counter-1;
    
    }
    abbrechen:
    return counter;
    }
    
    float gesamt(int counter)
    {
    float gesamtstand=0;
    
    while(counter>=1)
    {
    gesamtstand=gesamtstand+adressdaten[counter].kontostand;
    counter=counter-1;
    }
    
    return gesamtstand;
    }
    
    statistiken(int counter){
    clrscr();
    cout<<"\n\n\n";
    cout<<"\t\t GESAMTSTATISTIKEN \n\n";
    cout<<"\t\t Anzahl Mitglieder:"<<counter<<"\n";
    cout<<"\t\t letzte Sparfachleerung:"<< adressdaten[1].plz      <<"\n";
    cout<<"\t\t gesamter Kontostand:"<<gesamt(counter)+strafgelder<<" DM \n";
    cout<<"\t\t Davon Strafgelder: "<<strafgelder<<" DM \n";
    cout<<"\t\t Davon Mitgliedsgelder"<<gesamt(counter)<<" DM \n";
    getch();
    return counter;}
    
    void neueinz(int counter)
    {
    int cbackup,pruefer;
    char sgeld;
    //float einzahlung;
    clrscr();
    cout<<"fr welches Datum gilt die Leerung?";
    cin>>datum;
    cbackup=counter;
    counter=1;
    
    while(counter<=cbackup)
    {
    clrscr();
    cout<<"\n\n\n\n";
    cout<<"\t \t Kassenleerung vom " <<datum <<"\n \n \n";
    cout<<"\t Neue Einzahlungen Person"<<counter<<": \n";
    cout<<"\n \t SparfachNr:";
    cout<<adressdaten[counter].snr;
    cout<<"\n \t Vorname:";
    cout<<adressdaten[counter].vorname;
    cout<<"\n \t Name:";
    cout<<adressdaten[counter].name;
    cout<<"\n \n \t Einzahlung in DM (. statt ,): ";
    cin>>adressdaten[counter].leinz;
    
    int i=0;
    while (i<=29)
    {
    adressdaten[counter].plz[i]=datum[i];
    i++;
    }
    adressdaten[counter].kontostand=adressdaten[counter].kontostand+adressdaten[counter].leinz;
    
    cout<<"Strafgeld(j/n)?";
    weiter:
    sgeld=getche();
    if (sgeld=='j'){strafgelder=strafgelder+0.5;adressdaten[counter].kontostand=adressdaten[counter].kontostand-0.5;goto endeeingabe;}
    if (sgeld=='n')goto endeeingabe;
    
    goto weiter;
    endeeingabe:
    
    counter++;
    }
    
    clrscr();
    }
    
    eingeben(int counter)
    {
    clrscr();
    counter++;
    cout<<"Eingeben von Datensatz" <<counter <<"\n";
    
    cout<<"\n Sparfachnummer:";
    cin>>adressdaten[counter].snr;
    
    cout<<"\n Vorname:";
    cin>>adressdaten[counter].vorname;
    
    cout<<"\n Name:";
    cin>>adressdaten[counter].name;
    
    cout<<"\n derz. Kontostand in DM (. statt ,):";
    cin>>adressdaten[counter].kontostand;
    
    adressdaten[counter].plz[0]='n';
    adressdaten[counter].plz[1]='i';
    adressdaten[counter].plz[2]='e';
    adressdaten[counter].leinz=0;
    
    return counter;
    }
    
    change(int counter)
    {
    int nr;
    clrscr();
    cout<<"Welche Datensatznummer?";
    cin>>nr;
    if(nr<=counter&&nr>0){eingeben(nr-1);return 0;}
    cout<<"Datensatz existiert leider nicht!!";
    getch();
    return 0;
    }
    /*
    void adr_ein()
    {
    cout << "name:";
    cin >> name[0];
    }
    */
    
    void anzeigen(int counter)
    {
    int countbackup;
    countbackup=counter;
    counter=1;
    while (counter<=countbackup)
    {
    clrscr();
    cout<<"Datensatz Nr:" << counter <<"\n";
    
    cout<<"\n SparfachNr:";
    cout<<adressdaten[counter].snr;
    
    cout<<"\n Vorname:";
    cout<<adressdaten[counter].vorname;
    
    cout<<"\n Name:";
    cout<<adressdaten[counter].name;
    
    cout<<"\n Letzte Einzahlung Datum:";
    cout<<adressdaten[counter].plz;
    
    cout<<"\n Letzte Einzahlung Betrag:";
    cout<<adressdaten[counter].leinz;
    
    cout<<"\n Kontostand:";
    cout<<adressdaten[counter].kontostand;
    
    getch();
    counter++;
    }
    counter=countbackup;
    }
    
    void namenanzeigen(int counter)
    {
    clrscr();
    int countbackup;
    countbackup=counter;
    counter=1;
    
    cout<<"\n Einzelstatistiken: \n \n";
    
    while (counter<=countbackup)
    {
    cout<<"Datensatz Nr:" << counter <<"\t";
    cout<<adressdaten[counter].snr;
    cout<<"\t Name:";
    cout<<adressdaten[counter].name;
    cout<<"\t Kontostand:";
    cout<<adressdaten[counter].kontostand;
    cout<<"\n";
    
    counter++;
    if(counter%20==0){getch();clrscr();}
    }
    getch();
    counter=countbackup;
    }
    
    int laden()
    {
    int counter;
    int cstart=1;
    //int puffer;
    fstream datei;
    
    datei.open("sfach.dat",ios::in);
    //datei>>datum;
    datei>>strafgelder;
    datei>>counter;       //zuvor gesicherten counter(anzahl der Datens„tze) lesen
    datei>>strafe;
    datei>>preis;
    
    while(cstart<=counter)
    {
    datei>>adressdaten[cstart].vorname;
    datei>>adressdaten[cstart].name;
    datei>>adressdaten[cstart].plz;
    datei>>adressdaten[cstart].snr;
    datei>>adressdaten[cstart].kontostand;
    datei>>adressdaten[cstart].leinz;
    cstart++;
    }
    datei.close();
    return counter;
    }
    
    void speichern (int counter)
    {
    int cstart=1;
    fstream datei;
    
    datei.open("sfach.dat",ios::out);
    //datei<<datum<<endl;
    datei<<strafgelder<<endl;
    datei<<counter<<endl;       //Anzahl der vorhandenen datens„tze speichern
    datei<<strafe<<endl;
    datei<<preis<<endl;
    while(cstart<=counter)
    {
    datei<<adressdaten[cstart].vorname<< endl;
    datei<<adressdaten[cstart].name<< endl;
    datei<<adressdaten[cstart].plz<< endl;
    datei<<adressdaten[cstart].snr<< endl;
    datei<<adressdaten[cstart].kontostand<< endl;
    datei<<adressdaten[cstart].leinz<< endl;
    cstart++;
    }
    datei.close();
    }
    
    void lein(int counter)
    {
    clrscr();
    int countbackup;
    countbackup=counter;
    counter=1;
    
    cout<<"\n Letzte Eizahlungen: \n \n";
    
    while (counter<=countbackup)
    {
    cout<<" Sparfachnr:";
    cout<<adressdaten[counter].snr;
    cout<<"\t Name:";
    cout<<adressdaten[counter].name;
    cout<<"\t letze Einz am:";
    cout<<adressdaten[counter].plz;
    cout<<"\t l. Einz. Betrag:";
    cout<<adressdaten[counter].leinz;
    cout<<"\n";
    
    counter++;
    if(counter%25==0){getch();clrscr();}
    }
    getch();
    counter=countbackup;
    }
    
    void main()
    {
    char task;//char da auch bstaben verwendet werden
    char best;
    int counter=0,counttest,losch;
    //counter = lesen();
    anfang:
    clrscr();
    cout<<"\n\n\n\n";delay(10);
    cout<<"\t \t Sparfachverwaltung V 1.0     by Torsten Lders \n \n \n";delay(10);
    cout<<"\t \t1. Person hinzufgen \n";delay(10);
    cout<<"\t \t2. Personendetails anzeigen \n";delay(10);
    cout<<"\t \t3. Person l”schen \n";delay(10);
    cout<<"\t \t4. Neue Sparfachleerung\n";delay(10);
    cout<<"\t \t------------------------ \n";delay(10);
    cout<<"\t \t5. Einzel Statistiken \n";delay(10);
    cout<<"\t \t6. Gesamt Statistiken \n";delay(10);
    cout<<"\t \t7. Statistiken letzte Einzahlung\n";delay(10);
    cout<<"\t \t------------------------ \n";delay(10);
    cout<<"\t \to. Einstellungen\n";delay(10);
    cout<<"\t \t------------------------ \n";delay(10);
    cout<<"\t \tl. laden \t \t \n ";delay(10);
    cout<<"\t \ts. speichern \t \t \n ";delay(10);
    cout<<"\t \tq. Beenden \t \t \n ";delay(10);
    cout<<"\t \t------------------------ \n";delay(10);
    cout<<"\t \t#. Datenbank l”schen \n\n\n";delay(10);
    
    task=getch();
    if(task=='1'){sound(150);delay(50);nosound();counter=eingeben(counter);}
    if(task=='2'){sound(150);delay(50);nosound();anzeigen(counter);}
    if(task=='3'){sound(150);delay(60);nosound();counter=loeschen(counter);}
    if(task=='4'){sound(150);delay(50);nosound();neueinz(counter);}
    if(task=='5'){sound(150);delay(50);nosound();namenanzeigen(counter);}
    if(task=='6'){sound(150);delay(50);nosound();statistiken(counter);}
    if(task=='7'){sound(150);delay(50);nosound();lein(counter);}
    if(task=='s'){sound(150);delay(50);nosound();speichern(counter);}
    if(task=='l'){sound(150);delay(50);nosound();counter =laden();}
    if(task=='o'){sound(150);delay(50);nosound();einstellungen();}
    
    if(task=='#'){
    neu:
    sound(200);delay(300);nosound();
    cout<<"\n ACHTUNG, HIERMIT WIRD DIE GESAMTE DATENBANK GEL™SCHT!!! sicher?(j,n)";
    best=getch();
    
    if (best=='j'){counter=0;strafgelder=0;
    cout<<"\n \n Datenbank gel”scht !!!";getch();/*speichern(counter);*/goto anfang;}
    
    if (best=='n'){goto anfang;}
    goto neu;
    }
    
    if(task=='q'){exit(0);}
    //if(task=='7')suchen(counter);
    
    goto anfang;
    }
    

Anmelden zum Antworten