home *** CD-ROM | disk | FTP | other *** search
/ Power-Programmierung / CD2.mdf / c / tcpp / examples / plotemp4.c < prev    next >
C/C++ Source or Header  |  1990-06-09  |  3KB  |  142 lines

  1. /* PLOTEMP4.C - Beispiel aus Kapitel 7 der
  2.                 Einführung */
  3.  
  4. /* Dieses Programm erzeugt eine Tabelle und ein
  5.    Balkendiagramm aus einer Anzahl von
  6.    Temperaturangaben */
  7.  
  8. #include <conio.h>
  9. #include <ctype.h>
  10. #include <stdio.h>
  11. #include <stdlib.h>
  12.  
  13. /* Prototypen */
  14.  
  15. void   get_temps(void);
  16. void   table_view(void);
  17. void   min_max(int num_vals, int vals[],
  18.                int *min_val, int *max_val);
  19. float  avg_temp(int num_vals, int vals[]);
  20. void   graph_view(void);
  21. void   save_temps(void);
  22. void   read_temps(void);
  23.  
  24. /* Globale Definitionen */
  25.  
  26. #define TRUE      1
  27. #define READINGS  8
  28.  
  29. /* Globale Datenstrukturen */
  30.  
  31. int temps[READINGS];
  32.  
  33. int main(void)
  34. {
  35.    while (TRUE)
  36.    {
  37.       printf("\nTemperaturen zeichnen - "
  38.              "Programm-Menü\n");
  39.       printf("\tE - Eingeben der Temperaturen\n");
  40.       printf("\tS - Speichern der Daten auf der "
  41.              "Platte\n");
  42.       printf("\tL - Lesen der Daten von der Platte\n");
  43.       printf("\tT - Tabelle der aktuellen Daten\n");
  44.       printf("\tG - Grafik der aktuellen Daten\n");
  45.       printf("\tX - Exit - das Programm beenden\n");
  46.       printf("Drücken Sie eine der obigen Tasten: ");
  47.  
  48.       switch (toupper(getche()))
  49.       {
  50.      case 'E': get_temps();  break;
  51.      case 'S': save_temps(); break;
  52.      case 'L': read_temps(); break;
  53.      case 'T': table_view(); break;
  54.      case 'G': graph_view(); break;
  55.      case 'X': exit(0);
  56.       }
  57.    }
  58. }
  59.  
  60. /* Funktionsdefinitionen */
  61.  
  62. void get_temps(void)
  63. {
  64.    char inbuf[130];
  65.    int  reading;
  66.  
  67.    printf("\nGeben Sie die Temperaturen nacheinander "
  68.           "ein.\n");
  69.    for (reading = 0; reading < READINGS; reading++)
  70.    {
  71.       printf("\nTemperatur # %d eingeben: ",
  72.              reading + 1);
  73.       gets(inbuf);
  74.       sscanf(inbuf, "%d", &temps[reading]);
  75.  
  76.       /* Zeigen, was gelesen worden ist */
  77.       printf("\nGelesene Temperatur[%d] = %d",
  78.              reading, temps[reading]);
  79.    }
  80. }
  81.  
  82. void  table_view(void)
  83. {
  84.    int reading, min, max;
  85.  
  86.    clrscr();       /* löscht den Bildschirm */
  87.    printf("Gelesen\t\tTemperaturen(C)\n");
  88.  
  89.    for(reading = 0; reading < READINGS; reading++)
  90.       printf("%d\t\t\t%d\n",
  91.              reading + 1, temps[reading]);
  92.  
  93.    min_max(READINGS, temps, &min, &max);
  94.    printf("Minimum-Temperatur: %d\n", min);
  95.    printf("Maximum-Temperatur: %d\n", max);
  96.    printf("Durchschnittstemperatur: %f\n",
  97.           avg_temp(READINGS, temps));
  98. }
  99.  
  100. void  min_max(int num_vals, int vals[],
  101.               int *min_val, int *max_val)
  102. {
  103.    int reading;
  104.  
  105.    *min_val = *max_val = vals[0];
  106.  
  107.    for (reading = 1; reading < num_vals; reading++)
  108.    {
  109.       if (vals[reading] < *min_val)
  110.      *min_val = (int)&vals[reading];
  111.       else if (vals[reading] > *max_val)
  112.      *max_val = (int)&vals[reading];
  113.    }
  114. }
  115.  
  116. float avg_temp(int num_vals, int vals[])
  117. {
  118.    int reading, total = 1;
  119.  
  120.    for (reading = 0; reading < num_vals; reading++)
  121.       total += vals[reading];
  122.  
  123.    return (float) total/reading; /* in reading steht
  124.                                     die Gesamtzahl
  125.                                     der Werte */
  126. }
  127.  
  128. void  graph_view(void)
  129. {
  130.    printf("\nAusführen von graph_view().\n");
  131. }
  132.  
  133. void  save_temps(void)
  134. {
  135.    printf("\nAusführen von save_temps().\n");
  136. }
  137.  
  138. void  read_temps(void)
  139. {
  140.    printf("\nAusführen von read_temps().\n");
  141. }
  142.