Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (ANSI-Standard) » Problem mit Programm zur Bearbeitung von Meßreihen

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 <
000
20.06.2005, 22:25 Uhr
Geeignetab18



Hi also ich hab von einem Freund die Aufgabenstellung zu einem Testat bekommen und sitze nun selbst ratlos davor.
Es handelt sich um ein Programm bei dem Meßreihen eingegeben werden sollen,danach in einer Datei gespeichert werden soll und wieder abgerufen werden müssen.
Und noch einige andere Sachen.

Aber seht selbst und gebt mal bitte euren Senf dazu ab

C++:
#include <stdlib.h>
#include <stdio.h>
#include <conio.h>
#include <time.h>
#include <fstream.h>
#include <iostream.h>



struct element {
    char name[50];
    char wert[20];

};
struct tm *newtime;
time_t aclock;
char katalog[50];
int menu (int modus);
int filewahl (char fname[]);
void kausgabe (char fname[]);
void deingabe (char fname[]);
void dausgabe (char fname[]);
void mausgabe (char fname[]);
void schreiben (void);

int main () {

    char fname[50];
    int wahl,modus,err;

    modus=0;
    do{
        wahl=menu(modus);
        switch(wahl){

        case 1: err=filewahl(fname);
                if(err==0) modus=1;
                break;

        case 2: kausgabe(fname);
                break;
            
        case 3:    dausgabe(fname);
                break;

        case 4: mausgabe(fname);
                break;

        case 5: deingabe(fname);
                break;
        }
    }while(wahl>0);
    return 0;
}

int menu (int modus){
    int wahl,err,maxfn;

    do{
        time(&aclock);                
        newtime=localtime(&aclock);
        printf("%s", asctime(newtime));
        err=0;
        maxfn=3;
        printf("0 Programmende\n");
        printf("1 Messreihe erzeugen oder erweitern\n");
        printf("2 Ausgabe des Katalogfiles\n");
        printf("3 Ausgabe der Messreihen\n");
        if(modus==1){
            maxfn=5;
            printf("4 Ausgabe des Mittelwertes und Standardabweichung\n");
            printf("5 Eingabe der Messreihen\n");
            
        }
        scanf("%d",&wahl);
        if(wahl<0 || wahl>maxfn){
            err=1;
        }    
    }while(err>0);
    return wahl;
}
int filewahl (char fname[]){
    FILE*fp;
    int err;
    char antw[10];
    fflush(stdin);
    printf("Messreihe: ");
    gets(fname);
    fp=fopen(fname,"rb");
    if(fp!=NULL){
        fclose(fp);
        printf("Messreihe erweitern (j/n)?\n");
        gets(antw);
        if(antw[0]=='j')
        {err=0;}
        else{err=1;}
    }
    else{
        printf("Messreihe erzeugen (j/n)?\n");
        gets(antw);
        if(antw[0]=='j'){
            fp=fopen(fname,"wb");
            fclose(fp);
            err=0;
        }
        else{err=1;}        
    }
    return err;
}

void kausgabe (char fname[]){
    FILE*fp;
    struct element dsatz;
    int snr,sz,err;
    fp=fopen(fname,"rb");
    snr=0;
    sz=0;
    while(!feof(fp)){
        err=fread(&dsatz,sizeof(dsatz),1,fp);
        if(err>0){
            snr++;
            sz++;
            printf("%s\n",dsatz.name);
                if(sz==10){
                    printf("Weiter mit Enter");
                    getchar();
                    sz=0;
                }
        }
    }
    return;
}

void mausgabe (char fname[]){
    FILE*fp;
    struct element dsatz;
    int anz,i,err;
    fp=fopen(fname,"rb");
    anz=0;
    while(!feof(fp)){
        err=fread(&dsatz,sizeof(dsatz),1,fp);
        if(err>0){
            anz++;
            printf("%s\n",dsatz.wert);
        schreiben();    
        }
    }
    
    return;
}



void deingabe (char fname[]){
    FILE*fp;
    struct element dsatz;
    int snr,n,i;
    char antw[10];

    fp=fopen(fname,"ab");
    snr=0;

    do{
        printf("Wieviel Messwerte sollen eingelesen werden: ");
        scanf("%d",&n);
        fflush(stdin);
        for(i=1;i<=n;i++){
            printf("%d. Messwert: ",i);
            gets(dsatz.wert);
        
        fwrite(&dsatz,sizeof(dsatz),1,fp);
        snr++;
        }
        printf("weiteren Datensatz eingeben (j/n)?: ");
        gets(antw);
    }while(antw[0]=='j');
    fclose(fp);
    printf("%d neue Messwerte\n",snr);
    return;
}

void dausgabe (char fname[]){
    FILE*fp;
    struct element dsatz;
    int snr,sz,err;
    fflush(stdin);
    printf("Welche Messreihe soll angezeigt werden?: ");
    gets(fname);
    fp=fopen(fname,"rb");
    snr=0;
    sz=0;
    while(!feof(fp)){
        err=fread(&dsatz,sizeof(dsatz),1,fp);
        if(err>0){
            snr++;
            sz++;
            printf("%s \n",dsatz.wert);
                if(sz==10){
                    printf("Weiter mit Enter");
                    getchar();
                    sz=0;
                }
        }
    }
    printf("%d Messwerte\n",snr);
    fclose(fp);
    return;
}

//Routine zum Schreiben in eine Datei
void schreiben()
{
  ofstream out("C:\\test_output.txt"); //Befehl und Dateiname
  out<<"Hallo das ist ein Test-Text"; //Testtext
}




Und ich komm jetzt nicht weiter und bekomme einige Sachen einfach nich hin!


P.S.: es ist schon lauffähig
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
21.06.2005, 08:33 Uhr
ao

(Operator)


Schreib doch mal die fehlerhaften Teile um, so dass sie richtig sind. Und wenn noch was fehlt, ergänzt du es einfach.
Dieser Post wurde am 21.06.2005 um 08:38 Uhr von ao editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
21.06.2005, 13:41 Uhr
Windalf
Der wo fast so viele Posts wie FloSoft...
(Operator)


@ao

Zitat:

Schreib doch mal die fehlerhaften Teile um, so dass sie richtig sind. Und wenn noch was fehlt, ergänzt du es einfach.


gut das ich mir gestern Nacht ne Antwort verkniffen habe sonst wäre mir deine Antwort entgangen
--
...fleißig wie zwei Weißbrote

Dieser Post wurde am 21.06.2005 um 13:42 Uhr von Windalf editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ 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: