// jan.cpp : Definiert den Einstiegspunkt für die Konsolenanwendung. // #include "stdafx.h" #include #include #include #include #include #include struct time{ int minuten; double sekunden; }; int main(void) { FILE *eingabe; //Pointer an den der Dateiname zugewiesen wird FILE *ausgabe ; //Pointer für Textausgabe FILE *error; double trennzahl; double fuel1,fuel2; struct time drucktime1; struct time drucktime2; char *zeiger, i; //Zeiger zum Stringauslesen char name_eingabe[10]; //Dateiname der Eingegeben wird char * zeile; int zaehler=0; int rpm1,rpm2,temp1,temp2,speed1,speed2; int richtig=0; //Zähler für Maschine 1 zählt die Richtigkeit der einzelnen Datensätze und überprüft int richtig1=0; //Zähler für Maschine 2 zählt die Richtigkeit der einzelnen Datensätze und überprüft int wurdegedruckt=0; //Zähler um den Überschriftendruck nach 20 Zeilen zu wiederholen; //Aufruf aller Funktionen! int inumber(char temparray[]); // Inumber überprüfung int pnumber(char temparray[]); // Pnumber überprüfung double rpm (double trennzahl); // RPM beider maschinen double speedm2 (double trennzahl); //speed maschine 2 double fuelm2 (double trennzahl); // fuel maschine 2 double tempm2 (double trennzahl); // temp maschine 2 time timem1 (double trennzahl); // time maschine 1 time timem2 (double trennzahl); // time maschine 2 void druck1(time drucktime1,int rpm1, int speed1, double fuel1, int temp1); //Druck Funktion Maschine 1 void druck2(time drucktime2, int rpm2 ,int speed2,double fuel2,int temp2); //Druck Funktion Maschine 2 void druckstern(); // Fehler Print printf ("Uebungsaufgabe 3: Datenfilter by Jan Knobloch SS 2005"); printf ("\n\n"); /* Abfrage des Dateinamens*/ printf ("Geben den Dateinamen der zu oeffnenden Datei ein:"); gets (name_eingabe); /*Öffnen der Dateien*/ eingabe=fopen(name_eingabe, "r"); ausgabe=fopen("errors.txt", "w"); error=fopen("errors.txt", "w"); printf("%s",eingabe); if (eingabe==NULL) { printf ("Datei ist leer/und oder nicht vorhanden!"); getch(); return 0; } printf ("Datei wurde erfolgreich eingelesen vielen Dank!\n\n"); getch(); //----------------------------------------------DRUCKEN DER KOPFZEILE DER AUSGABE---------------- printf (" Zeit Umdrehungen Geschwindigkeit Verbrauch Temperatur\n"); printf (" [m:s] [1/s] [km/h] [l/100km] [Grad C]\n"); //----------------------------------------------------------------------------------------------- char trennzeichen; while (!feof(eingabe)) { fgets (zeile,100,eingabe); for(i=0; i= 60) //Wenn Trennzahl über 60 Sekunden { drucktime.minuten=(int)(trennzahl/60); //Abschneiden des nachkomma teils und Umrechnen in Minuten drucktime.sekunden=int(((trennzahl/60)-drucktime.minuten)*100); //Zahl - vorkomma = nachkomma *100 wegen 0.xxx } else{ drucktime.minuten=00; drucktime.sekunden=int(trennzahl); } return drucktime; } //-----------------------------------------------------RPM UMRECHNUNG 1 und 2--------------------------- double rpm (double trennzahl) { trennzahl=(trennzahl/60); // RPM / 60 = RP/S return trennzahl; } //------------------------------------------------------------------------------------------------------ //-----------------------------------------------------SPEED UMRECHNUNG2---------------------------------- double speedm2 (double trennzahl) { trennzahl=(trennzahl *3.6); // Umrechnung in KM/H pro STD return trennzahl; } //------------------------------------------------------------------------------------------------------ //-----------------------------------------------------FUEL UMRECHNUNG2----------------------------------//!!! double fuelm2 (double trennzahl) { trennzahl=((trennzahl*60)/1000)/100; // * 60 = ML / 1000 = LITER /100 = LITER/KM return trennzahl; } //------------------------------------------------------------------------------------------------------ //-----------------------------------------------------TEMP UMRECHNUNG2---------------------------------- double tempm2 (double trennzahl) { trennzahl=(trennzahl-273); // Umrechnen in Grad Celsius return trennzahl; } //------------------------------------------------------------------------------------------------------ //---------------------------------------------------DRUCK M1------------------------------------------- void druck1(time drucktime1,int rpm1, int speed1, double fuel1, int temp1) { printf (" %.2d:%0.0lf %13d %16d %11.2lf %13d\n",drucktime1.minuten,drucktime1.sekunden,rpm1,speed1,fuel1,temp1); } //------------------------------------------------------------------------------------------------------ //---------------------------------------------------DRUCK M2------------------------------------------- void druck2( time drucktime2, int rpm2 ,int speed2,double fuel2,int temp2) { printf (" %.2d:%0.0lf %13d %16d %11.2lf %13d\n",drucktime2.minuten,drucktime2.sekunden,rpm2,speed2,fuel2,temp2); } //------------------------------------------------------------------------------------------------------ //---------------------------------------------------FEHLERAUSGABE-------------------------------------- void druckstern() { printf (" ***********************Fehler in Zeile*************************\n"); } //------------------------------------------------------------------------------------------------------