Telefonkostenverwaltung



  • Telefonkostenverwaltung


  • Mod

    Wie viel ist dir das Bestehen denn wert? Dir wird kaum jemand einfach so freiwillig deine Hausaufgaben machen, bloß weil du bettelst. Zumal die Aufgabe recht umfangreich ist. Auch wenn ein erfahrener Programmierer das in ein paar Stunden locker runterschreiben kann, so braucht er eben dennoch ein paar Stunden, alleine für den Tippaufwand. Das solltest du beachten, wenn du dein Angebot machst: Du musst mehrere Arbeitsstunden eines gut ausgebildeten Arbeiters bezahlen.

    Da du offensichtlich nicht fähig oder interessiert bist, die Aufgabe selber zu lösen (dabei würde dir geholfen), verschiebe ich den Thread mal in das Unterforum für bezahlte Auftragsarbeiten.

    P.S.: Wird da in der "Hilfe"stellung ernsthaft float für Geldbeträge vorgeschlagen? 😮 Wenn der Aufgabensteller das für einen guten Rat hält, befürchte ich eine Reihe versteckter Stolperfallen, weil der Aufgabensteller offenbar keinen Plan hat und unfreiwillig unmögliche Anforderungen stellt.



  • Dieser Thread wurde von Moderator/in SeppJ aus dem Forum C (C89, C99 und C11) in das Forum Projekte verschoben.

    Im Zweifelsfall bitte auch folgende Hinweise beachten:
    C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?

    Dieses Posting wurde automatisch erzeugt.


  • Mod

    Ich melde mich dann auch als Interessent und sag dann mal 500 € als Verhandlungsbasis (aber viel geht da nicht nach unten). Die Aufgabe ist ja wirklich umfangreich, mehr noch als ich zu Anfang dachte. Da brauche ich mehrere Tage, bis das wirklich komplett und gut ist. In Sprachen mit umfangreicherer Standardbibliothek wäre das zwar - wie schon gesagt - eine Sache von wenigen Stunden. Aber da es C sein soll und wohl kaum Fremdbibliotheken benutzt werden sollen, muss man ja alles selber entwickeln. Die Container, die Datenstrukturen. Insbesondere Datum- und Uhrzeitverwaltung sind ein bekanntes Minenfeld, für das man erfahrungsgemäß große Mengen an unschönem Code benötigt.



  • Hi Sepp,

    ich kenne ja jetzt die Aufgabenstellung nicht , aber zu

    In Sprachen mit umfangreicherer Standardbibliothek wäre das zwar - wie schon gesagt - eine Sache von wenigen Stunden

    hätte ich eine Frage....
    C++ oder C# ... Was eignet sich dafür, oder generell zum "Einstieg" eine eine Sprache mit umfangreicher Bibliothek eher?


  • Mod

    C# bringt sicherlich schneller "Erfolge" in der Art, dass deine Programme dann hinterher so aussehen wie andere Windowsprogramme. Aber die Wahl C# vs. C++ würde ich nicht davon abhängig machen. Denn beide Sprachen sind sich an sich ähnlich, haben aber ganz andere Einsatzgebiete. Die Wahl sollte also davon abhängen, was du später eher machen möchtest. Ganz grob ausgedrückt:
    C++: Gut für Numbercrunching und Backends. Plattformunabhängig.
    C#: Gut für Anwendungssoftware. Eng verbunden mit .NET-Framework.
    Das sind natürlich keine absoluten Aussagen. Sehr viel Anwendungssoftware ist in C++ geschrieben. Und wenn man nicht gerade High-Performance Computing betreibt, kann man auch mit C# schnelle Rechnungen durchführen.

    Man sollte auch nicht vergessen, dass es auch noch andere Sprachen dieser Art gibt. Sogar andere Sprachen, die die C-Syntax benutzen. Java zum Beispiel, welches tendenziell irgendwo in der Mitte zwischen C++ und C# lebt.



  • hallo ich habe jetzt in etwa ein programm geschrieben
    ich komme allerdings mit einigen sachen nicht klar.
    unsere menuepunkte waren wie folgt:

    [1] Gespraech eingeben
    [2] Gespraechsliste anzeigen
    [3] Gespraech loeschen
    [4] Gespraeche eines Monats loeschen
    [5] Monatsrechnungen
    [6] Programm

    leider läuft es noch nicht so wie geplant kann mir herzu jemand hilfe leisten?

    Programm:

    #include<stdio.h>
    #include<string.h>
    int Puffer();
    int Ausgabe(int name);
    int Loeschen(int i);

    struct datum
    {
    int tag;
    int monat ;
    int Jahr;
    };

    struct telefonat
    {
    int Name;
    struct datum TAG ;
    int Anfangsstunde;
    int Minuten ;
    int Sekunden;
    int Entfernung;
    };

    int main(){
    int menue;
    int i;
    int k;
    int m;
    int j;

    FILE *dz;
    printf("Menue: \n [1] Gespraech eingeben \n [2] Gespraechsliste anzeigen \n [3] Gespraech loeschen \n [4] Gespraeche eines Monats loeschen \n [5] Monatsrechnungen \n [6] Programm\n");
    scanf("%i", &menue);
    struct telefonat gespraech[100];
    switch (menue)
    {
    case 1:

    printf("Bitte Name eingeben: \n [1] Sina \n [2] Frederik \n [3] Marie \n [4] Patrick \n [5] Svenja \n [6] Selda \n "); // Einlesen der Angaben
    scanf("%i", &gespraech[0].Name);
    Puffer();
    printf("Bitte Datum in der Form Tag/Monat/Jahr eingeben: \n");
    scanf("%i/%i/%i", &gespraech[0].TAG.tag, &gespraech[0].TAG.monat, &gespraech[0].TAG.Jahr);
    Puffer();
    printf("Bitte Anfangsstunde eingeben: \n");
    scanf("%i", &gespraech[0].Anfangsstunde);
    Puffer();
    printf("Bitte Anzahl voller Minuten eingeben: \n");
    scanf("%i", &gespraech[0].Minuten);
    Puffer();
    printf("Bitte Anzahl der Sekunden eingeben: \n");
    scanf("%i", &gespraech[0].Sekunden);
    Puffer();
    printf("Bitte Entfernung waehlen: \n [1] Ort \n [2] Fern \n [3] Ausland \n");
    scanf("%i", &gespraech[0].Entfernung);
    Puffer();

    dz = fopen("Datei.dat", "ab+");// hier gehts weiter
    fwrite(gespraech, sizeof(struct telefonat), 1, dz);
    fclose(dz);

    break;

    case 2:

    printf("Sina: | Datum | Anfangsstunde | Anzahl voller Minuten | Anzahl der Sekunden | Entfernung | Kenn-Nr. \n");
    Ausgabe(1);
    printf("Frederik: | Datum | Anfangsstunde | Anzahl voller Minuten | Anzahl der Sekunden | Entfernung | Kenn-Nr. \n");
    Ausgabe(2);
    printf("Marie: | Datum | Anfangsstunde | Anzahl voller Minuten | Anzahl der Sekunden | Entfernung | Kenn-Nr. \n");
    Ausgabe(3);
    printf("Patrick: | Datum | Anfangsstunde | Anzahl voller Minuten | Anzahl der Sekunden | Entfernung | Kenn-Nr. \n");
    Ausgabe(4);
    printf("Svenja: | Datum | Anfangsstunde | Anzahl voller Minuten | Anzahl der Sekunden | Entfernung | Kenn-Nr. \n");
    Ausgabe(5);
    printf("Selda: | Datum | Anfangsstunde | Anzahl voller Minuten | Anzahl der Sekunden | Entfernung | Kenn-Nr. \n");
    Ausgabe(6);
    break;

    case 3:

    printf("Kenn-Nr. des zu loeschenden Gespraechs eingeben: ");
    scanf("%i", &i);
    Loeschen(i);

    break;

    case 4:

    printf("Bitte geben sie das Datum des zu loeschenden Monats in der Form Monat/Jahr an: ");
    scanf("%i/%i", &m, &j);

    for(k=0; k<100; k++){
    if ( (gespraech[k].TAG.monat==m) && (gespraech[k].TAG.Jahr==j) )
    {
    Loeschen(k);
    }
    }

    break;

    case 5: break;
    case 6: break;
    default: printf("Bitte eine Zahl zwischen 1 - 6 eingeben");
    }

    return 0;
    }

    int Puffer(){
    char z;
    do{
    z=getchar();

    }while(z != 10);
    return 0;
    }

    int Ausgabe(int name)
    {
    struct telefonat gespraech[100];
    int k;
    for(k=0; k<100; k++)
    {
    gespraech[k].Name=0;
    gespraech[k].TAG.tag=0;
    gespraech[k].TAG.monat=0;
    gespraech[k].TAG.Jahr=0;
    gespraech[k].Anfangsstunde=0;
    gespraech[k].Minuten=0;
    gespraech[k].Sekunden=0;
    gespraech[k].Entfernung=0;
    }
    FILE* dz;
    dz = fopen("Datei.dat", "rb");
    if(dz!=NULL)
    {
    fread(gespraech, sizeof(struct telefonat), 100, dz);
    }
    fclose(dz);
    int i;
    int j = 0;
    for(i=0; i<100; i++){
    if (gespraech[i].Name==name){ // i Eintraege sind die Platzierungen auf dem Array
    j+=1;
    printf("%i. Gespraech: | ", j);
    printf("%i/%i/%i | ", gespraech[i].TAG.tag, gespraech[i].TAG.monat, gespraech[i].TAG.Jahr);
    printf("%i | " , gespraech[i].Anfangsstunde);
    printf("%i | " , gespraech[i].Minuten);
    printf("%i | " , gespraech[i].Sekunden);
    if (gespraech[i].Entfernung == 1 ){
    printf("Orts |");
    }
    if (gespraech[i].Entfernung == 2 ){
    printf("Fern |");
    }
    if (gespraech[i].Entfernung == 3 ){
    printf("Ausland |");
    }
    printf("%i \n " , i);
    }
    }
    return 0;
    }

    int Loeschen(int i){

    struct telefonat gespraech[100];
    int k;
    //int stop=0;
    FILE* dz;
    //gespraech[] Null setzen:
    for(k=0; k<100; k++)
    {
    gespraech[k].Name=0;
    gespraech[k].TAG.tag=0;
    gespraech[k].TAG.monat=0;
    gespraech[k].TAG.Jahr=0;
    gespraech[k].Anfangsstunde=0;
    gespraech[k].Minuten=0;
    gespraech[k].Sekunden=0;
    gespraech[k].Entfernung=0;
    }
    //gespraech[] aus Datei einlesen
    dz = fopen("Datei.dat", "rb");
    if(dz!=NULL)
    {
    fread(gespraech, sizeof(struct telefonat), 100, dz);
    }
    fclose(dz);
    //gespraech[i] loeschen
    dz = fopen("Datei.dat", "wb");

    for(k=i; k<100; k++)
    {
    printf("%i ", k);
    gespraech[k]=gespraech[k+1];
    if(gespraech[k].Name!=0)
    {
    // stop+=1;
    printf("name: %i ", gespraech[k].Name);
    }
    }
    //neues Arrey gespraech[] in Datei schreiben
    if(dz!=NULL)
    {
    fwrite(gespraech, sizeof(struct telefonat), 99, dz);
    }
    fclose(dz);

    return 0;

    }

    ich weiss nicht wie ich die gespraechsliste erscheinen lassen kann und wie das löschen genau funktionirt 😞


Log in to reply