home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Power-Programmierung
/
CD2.mdf
/
c
/
tcpp
/
examples
/
plotemp4.c
< prev
next >
Wrap
C/C++ Source or Header
|
1990-06-09
|
3KB
|
142 lines
/* PLOTEMP4.C - Beispiel aus Kapitel 7 der
Einführung */
/* Dieses Programm erzeugt eine Tabelle und ein
Balkendiagramm aus einer Anzahl von
Temperaturangaben */
#include <conio.h>
#include <ctype.h>
#include <stdio.h>
#include <stdlib.h>
/* Prototypen */
void get_temps(void);
void table_view(void);
void min_max(int num_vals, int vals[],
int *min_val, int *max_val);
float avg_temp(int num_vals, int vals[]);
void graph_view(void);
void save_temps(void);
void read_temps(void);
/* Globale Definitionen */
#define TRUE 1
#define READINGS 8
/* Globale Datenstrukturen */
int temps[READINGS];
int main(void)
{
while (TRUE)
{
printf("\nTemperaturen zeichnen - "
"Programm-Menü\n");
printf("\tE - Eingeben der Temperaturen\n");
printf("\tS - Speichern der Daten auf der "
"Platte\n");
printf("\tL - Lesen der Daten von der Platte\n");
printf("\tT - Tabelle der aktuellen Daten\n");
printf("\tG - Grafik der aktuellen Daten\n");
printf("\tX - Exit - das Programm beenden\n");
printf("Drücken Sie eine der obigen Tasten: ");
switch (toupper(getche()))
{
case 'E': get_temps(); break;
case 'S': save_temps(); break;
case 'L': read_temps(); break;
case 'T': table_view(); break;
case 'G': graph_view(); break;
case 'X': exit(0);
}
}
}
/* Funktionsdefinitionen */
void get_temps(void)
{
char inbuf[130];
int reading;
printf("\nGeben Sie die Temperaturen nacheinander "
"ein.\n");
for (reading = 0; reading < READINGS; reading++)
{
printf("\nTemperatur # %d eingeben: ",
reading + 1);
gets(inbuf);
sscanf(inbuf, "%d", &temps[reading]);
/* Zeigen, was gelesen worden ist */
printf("\nGelesene Temperatur[%d] = %d",
reading, temps[reading]);
}
}
void table_view(void)
{
int reading, min, max;
clrscr(); /* löscht den Bildschirm */
printf("Gelesen\t\tTemperaturen(C)\n");
for(reading = 0; reading < READINGS; reading++)
printf("%d\t\t\t%d\n",
reading + 1, temps[reading]);
min_max(READINGS, temps, &min, &max);
printf("Minimum-Temperatur: %d\n", min);
printf("Maximum-Temperatur: %d\n", max);
printf("Durchschnittstemperatur: %f\n",
avg_temp(READINGS, temps));
}
void min_max(int num_vals, int vals[],
int *min_val, int *max_val)
{
int reading;
*min_val = *max_val = vals[0];
for (reading = 1; reading < num_vals; reading++)
{
if (vals[reading] < *min_val)
*min_val = (int)&vals[reading];
else if (vals[reading] > *max_val)
*max_val = (int)&vals[reading];
}
}
float avg_temp(int num_vals, int vals[])
{
int reading, total = 1;
for (reading = 0; reading < num_vals; reading++)
total += vals[reading];
return (float) total/reading; /* in reading steht
die Gesamtzahl
der Werte */
}
void graph_view(void)
{
printf("\nAusführen von graph_view().\n");
}
void save_temps(void)
{
printf("\nAusführen von save_temps().\n");
}
void read_temps(void)
{
printf("\nAusführen von read_temps().\n");
}