CSV erstelle -> Wie?

thehasso

Erfahrenes Mitglied
Hallo,

Ich hatte ein Programm in C geschrieben indem ich Umsätze für 2 Unternehmen einlese und dazu Mittelwert, Standardabweichung & Kleinster und größter Umsatz ausgebe.

Als nächste hatte ich die Aufgabe das ganze in C++ zuschreiben indem ich alle Funktionen in Methoden umwandle .. war ja kein problem..

ein Problem gibt aber.. sonst würd ich nicht schreiben :)
und zwar soll ich :

Zusätzlich soll eine weitere Methode: FileWrite entworfen werden, die alle während eines
Programmlaufes eingegebenen Daten und die Ergebnisse von Berechnungen in eine (neue) CSV –
Datei exportiert. Diese kann dann als Protokolldatei (logfile) betrachtet werden.
[Für die Dateiarbeit sollen letztlich in b.) die C++ - Möglichkeiten genutzt werden.]


Und ich hab echt NULL ahnung wie das funktionieren soll, zum einen weil die Aufgabe einwenig noch besprochen wird. Ich würd aber gern jetzt schon fertig stellen.
Bitte: Wie kann man den Code ganz einfach zusammenbasteln.

das Programm hat noch ein kleinen Fehler das man erst die Umsätze einlesen muss um die anderen Funktionen nutzen zu dürfen .. muss noch dran arbeiten..

Ich poste mal mein bisherigen CODE:

Code:
#include <iostream>
#include <conio.h>
#include <cstdlib>
#include <cstdio>
#include <math.h>

using namespace std;


class Business{

private:
	float umsatz_unternehmen[12][2];
	float summe_1, summe_2, mittelwert_1, mittelwert_2;
	float stdabw_1, stdabw_2;
	float min, max;
	char choice;
	int i;
	int j;

public:
	void eingabe();
	void ausgabe();
	void mittelwert();
	void standardabw();
	void MinMax_a();
	void MinMax_b();
	void filewrite();
	void start();
};

char first_use = 1;

void main(){

	class Business filiale;
	filiale.start();

return;
}

void Business::start(){



	do {
		printf("\n\t(E)ingabe der Umsaetze beider Filialen........... e"); 
		printf("\n\t(A)usgabe der Umsaetze beider Filialen........... a");
		printf("\n\t(M)ittelwert beider Filialen..................... m");
		printf("\n\t(S)tandardabweichung beider Filialen............. s");
		printf("\n\t(O)MinMax Filiale A.............................. o");
		printf("\n\t(P)MinMax Filiale B.............................. p");
		printf("\n\t(V)erlasse Programm.............................. v\n");
		printf("\n\tBitte Ihre Wahl : ");
		
		choice = getch();


		switch(choice)
		{
			case 'e':
			case 'E': eingabe(); first_use = 0;  break;

			case 'a':
			case 'A': ausgabe(); break;

			case 'm':
			case 'M': mittelwert(); break;

			case 's':
			case 'S': standardabw(); break;

			case 'o':
			case 'O': MinMax_a(); break;

			case 'p':
			case 'P': MinMax_a(); break;

			case 'v': 
			case 'V': printf("\n\n\tP R O G R A M M -/- V E R L A S S E N!\n\n"); break;

			default: printf("Fehler im Switch!");
		}

	}while (choice != 'v' && choice != 'V');
				
}


void Business::eingabe(){

char monate[12][12] = {"Januar", "Februar", "März", "April", "Mai", "Juni", 
                       "Juli", "August", "September", "Oktober", "November", "Dezember" }; 

 for(j=1;j<=1;j++) 
    { 
printf( "\nBitte geben Sie die Umsaetze fuer Unternehmen A ein:\n" ); 

        for(i=0;i<=11;i++) 
		{ 
            do{ 
					printf("Bitte %i -ten Umsatz fuer %s 2007\n",i+1,monate[i]); 
					printf("Eingabe:");fflush(stdin);

					cin >> umsatz_unternehmen[i][0]; 
              }  while(umsatz_unternehmen[i][0] < 0 );                          
		}

printf( "\nBitte geben Sie die Umsaetze fuer Unternehmen B ein:\n" ); 
  
      for(i=0;i<=11;i++) 
      { 
          do{ 
                printf("Bitte %i -ten Umsatz fuer %s 2007\n",i+1,monate[i]);   
                printf("Eingabe:");fflush(stdin);

				cin >> umsatz_unternehmen[i][1]; 
            } while(umsatz_unternehmen[i][1] < 0);                        
                                                                         
      }
   }
}


void Business::ausgabe(){  

char monate[12][12] = {"Januar", "Februar", "März", "April", "Mai", "Juni", 
                       "Juli", "August", "September", "Oktober", "November", "Dezember" };

printf("--------------------------------------------------------------------------------\n"); 
printf(":::::::::::::::::::::Filiale A:::::::::::::::::::Filiale B::::::::::::::::::::::\n");

for (i=0; i<=11; i++) 
    { 
  
        printf("%5i. %10s 2007 %10.2f EU",i+1 ,monate[i],umsatz_unternehmen[i][0]);  
        printf("%5i. %10s 2007 %10.2f EU",i+1 ,monate[i],umsatz_unternehmen[i][1]);  
        printf("\n");                                                             
    } 
printf("\n--------------------------------------------------------------------------------"); 


}

void Business::mittelwert(){

	summe_1 = 0, summe_2 = 0, mittelwert_1 = 0, mittelwert_2 = 0;

	for (i = 0; i <=11; i++) 
            { 
                    summe_1 +=  umsatz_unternehmen[i][0]; 
            } 

    mittelwert_1 = summe_1/=12; 
    
    for(i = 0; i < 11; i++) 
            { 
                    summe_2 +=umsatz_unternehmen[i][1]; 
            } 

    mittelwert_2 = summe_2/=12; 

    
   printf("\nMittelwert Filiale |A|:%.2f",mittelwert_1); 
   printf("\nMittelwert Filiale |B|:%.2f",mittelwert_2); 

}

void Business::standardabw(){

	summe_1 = 0, summe_2 = 0, mittelwert_1 = 0, mittelwert_2 = 0;
	stdabw_1 = 0, stdabw_2 = 0;
	
	for (i = 0; i <=11; i++) { 
            summe_1 +=  umsatz_unternehmen[i][0]; 
			} 

    mittelwert_1 = summe_1/=12; 
    

    for(i = 0; i < 11; i++){ 
            summe_2 +=umsatz_unternehmen[i][1]; 
            } 

    mittelwert_2 = summe_2/=12; 

	// Berechnung Standardabweichung Filiale A
    for(i = 0; i <=11; i++) 
                    { 
                        stdabw_1 += (umsatz_unternehmen[i][0] - mittelwert_1)*(umsatz_unternehmen[i][0] - mittelwert_1); 
                    } 

    stdabw_1 /= 12; 
    stdabw_1 = sqrt( stdabw_1 ); 


	// Berechnung Standardabweichung Filiale B
	for(i = 0; i <=11; i++){ 
                        stdabw_2 += (umsatz_unternehmen[i][1] - mittelwert_2)*(umsatz_unternehmen[i][1] - mittelwert_2); 
                    } 

    stdabw_2 /= 12; 
    stdabw_2  = sqrt( stdabw_2 ); 

	// Ausgabe Standardabweichungen A & B
                  printf("\nStandardabweichung der Umsaetze Filiale |A|:%.2f\n",stdabw_1);            
                  printf("\nStandardabweichung der Umsaetze Filiale |B|:%.2f\n",stdabw_2);


}

void Business::MinMax_a(){

	min = umsatz_unternehmen[i][0];             
    max = umsatz_unternehmen[i][0];                                            


        for(i = 0; i <=11; i++) 
                
                { 
                    if ( min > umsatz_unternehmen[i][0] )                      
                    min = umsatz_unternehmen[i][0];                              
                } 

        for (i = 0; i <=11; i++) 
                
                { 
                    if (umsatz_unternehmen[i][0] > max)                          
                    max = umsatz_unternehmen[i][0];                              
                } 

        printf("\t\nMinimal Umsatz Filiale |A|: %.2f ",min);  
        printf("\t\nMaximal Umsatz Filiale |A|: %.2f ",max);  
}

void Business::MinMax_b(){

	min = umsatz_unternehmen[i][1];                           
    max = umsatz_unternehmen[i][1];                            

        for (i = 0; i <= 11; i++) 
                
                { 
                    if ( min > umsatz_unternehmen[i][1] ) 
                    min = umsatz_unternehmen[i][1]; 
                } 
    
        for(i = 0; i <=11; i++) 
                
                { 
                    if (umsatz_unternehmen[i][1] > max) 
                    max = umsatz_unternehmen[i][1]; 
                } 
        
        printf("\t\nMinimal Umsatz Filiale |A|: %.2f ",min); 
        printf("\t\nMaximal Umsatz Filiale |B|: %.2f ",max); 

}

void Business::filewrite(){



}


gruß
 
Hallo,
du benutzt doch cin>> für Eingabe und printf() für Ausgabe.
Übrigens ist cin>> aus C++, printf() kommt aus C.

Du könntest doch fprintf() genauso gut für die Ausgabe nutzen.
Beispiel:
Code:
FILE* ptr_logfile = fopen("logfile.txt", "a");
if (ptr_logfile == 0) {
  printf("Kann Log-Datei nicht zum Ergänzen öffnen!");
  return;
}

float zahl, ergebnis;

printf ("Gib mir mal 'ne Zahl : ");
cin >> zahl;
cin.flush();
printf ("\n");

// Ausgabe in Logdatei
fprintf (ptr_logfile, "Neue Eingabe : %f\n", zahl);

// komplizierte Rechenaktionen ...
ergebnis = zahl * 2.1;

// ... und wieder loggen
fprintf (ptr_logfile, "Das Zwei-Komma-Einsfache der Zahl beträgt %f\n", ergebnis);

// wenn alles fertig ist, logfile schließen!
fclose (ptr_logfile);
 
Zuletzt bearbeitet:
Ich denke, gemeint ist, daß Du für die Ausgabe in die Datei cout verwendest mit allen seinen Möglichkeiten.
Du sollst Dich wahrscheinlich mit streams beschäftigen :-).
 
Zurück