mashen456

PA_03

Jan 10th, 2016
44
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 4.69 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. /*ISO-Normdatum aus 3 Zahlen: Jahr, Monat, Tag*/
  4. typedef int ISO8601_JJJJMMTT[3];
  5. /* Namen der Wochentage */
  6. const char Wochentage[][15] =
  7. {
  8.  "" /*Nr. 0*/, "Montag" /*Nr. 1*/, "Dienstag" /*Nr. 2*/, "Mittwoch" /*Nr. 3*/,
  9.  "Donnerstag" /*Nr. 4*/, "Freitag" /*Nr. 5*/, "Samstag" /*Nr. 6*/, "Sonntag" /*Nr. 7*/
  10. };
  11. /* Angebotskategorien des Mensa-Speiseplans */
  12. const char Angebot[][50] =
  13. {
  14.  "Salatbuffet/Salatteller" /*Nr. 0*/,
  15.  "Essen I" /*Nr. 1*/, "Essen II" /*Nr. 2*/, "Eintopf" /*Nr. 3*/,
  16.  "Dessertauswahl" /*Nr. 4*/, "Wok" /*Nr. 5*/,
  17.  "Dessert Mensen Preis 3" /*Nr. 6*/, "Aktionsstand" /*Nr. 7*/,
  18.  "Essen III" /*Nr. 8*/, "Gratin" /* Nr. 9*/, "Sonstiges" /* Nr. 10*/
  19. };
  20. /* Struktur für ein Mensa-Gericht */
  21. typedef struct {
  22.  int angebot_nr[100]; /* Nummer der Angebotskategorie */
  23.  char bezeichnung[100][100]; /* Bezeichnung des Gerichts, z.B. "Obstbecher */
  24.  /* Kennzeichnung ist eine Zeichenkette mit einem oder mehreren Buchstaben.
  25.  Gibt es keine Kennzeichnung dann ist die Zeichenkette leer "" */
  26.  char kennzeichnung[10][10]; /* z.B. "FA" für fleischlos mit Alkohol */
  27.  /* Max. 20 Angaben (Zahlen) für Zusatzstoffe. 0 bedeutet keine Angabe */
  28.  int zusatzstoffe_und_allergene[100][100]; /* alle nicht belegten Elemente müssen 0 sein! */
  29.  int centpreisStud[100]; /* Studierendenpreis in Euro-Cent */
  30.  int centpreisBed[100]; /* Bedienstetenpreis in Euro-Cent */
  31.  int centpreisGast[100]; /* Preis für Gäste in Euro-Cent */
  32. } Mensa_Essen;
  33. /* Hier enden die Typdefinitionen und die globalen Datenstrukturen */
  34. /*-----------------------------------------------------------------*/
  35. int main (void) {
  36.  
  37.  
  38. //preisstufe auslesen
  39.  
  40. char benein = getchar();
  41. //char benein = 'S';
  42.  
  43. if(benein == 'S' || benein == 'B' || benein == 'G')
  44. {}else{
  45.     printf("Ungueltige Benutzereingabe\n");
  46.     return 0;}
  47.  
  48.  
  49.  
  50. //max preis auslesen
  51.  
  52. printf("hoechster Preis fuer ein Gericht, den sie bezahlen wuerden ?\n");
  53.  
  54. double maxpreis;
  55. scanf("%lf", &maxpreis);
  56. maxpreis = maxpreis * 100;
  57.  
  58.  
  59.  
  60.  
  61.  
  62.  
  63.  
  64.  Mensa_Essen mein_essen =
  65.  {
  66. { 1 , 2 , 8 ,3,4},
  67.  
  68.  
  69.  {
  70. "Hacksteak griechische Art mit Frischkäsefüllung",
  71. "Makkaroni mit Erbsen und Champignons",
  72. "Reisgericht mit Schinken und Gemuese",
  73. "Rheinischer Schnippelbohneneintopf",
  74. "Verschiedene Dessertvariationen"},
  75.  
  76.  
  77.  {
  78. "R",
  79. "F",
  80. "S",
  81. "V",
  82. "Z"},
  83.  
  84.  
  85. {
  86. { 19, 20, 21,31,15 },
  87. { 19,15 },
  88. { 2,6,20,21,23,14 },
  89. { 11,22},
  90. { 0}},
  91.  
  92.  
  93. {100 ,120,295,110,75},
  94.  
  95. {280 ,270 ,435 ,240,90},
  96.  
  97. { 280,270,435,240,90},
  98.  
  99.  };
  100.  
  101.  ISO8601_JJJJMMTT datum_des_beispiels =
  102.  { 2016, 01, 11 };
  103.  
  104.  /* Hier enden die Variablen-Definitionen im Hauptprogramm */
  105.  /*--------------------------------------------------------*/
  106. //mein_essen.bezeichnung[1] = 'Hacksteak griechische Art mit Frischkäsefüllung';
  107.  
  108. printf("Mein Essen am %i.%i.%i, %s\ngehoert zur Angebotskategorie:\n\n",datum_des_beispiels[2], datum_des_beispiels[1], datum_des_beispiels[0]
  109.  ,Wochentage[1]);
  110.  
  111. int i;
  112. int tt;
  113.  
  114.  
  115. for (tt = 0; tt <= sizeof(mein_essen.angebot_nr[0]);tt++)
  116. {
  117.  
  118. if((benein == 'S') && (mein_essen.centpreisStud[tt] <=maxpreis) )
  119. {
  120.     printf("%s\"\nund heisst:\n\"%s\"\n",
  121.   Angebot[mein_essen.angebot_nr[tt]],
  122.  mein_essen.bezeichnung[tt]);
  123.  printf("Kennzeichnungen ueber Zusatzstoffe und Allergene: %s",
  124.          mein_essen.kennzeichnung[tt]);
  125. for (i = 0; i <= sizeof(mein_essen.zusatzstoffe_und_allergene[0][0]); i++)
  126. {
  127.     printf(" %i", mein_essen.zusatzstoffe_und_allergene[0][i]);
  128. }
  129. double zu_zahlen = mein_essen.centpreisStud[tt];
  130. zu_zahlen = zu_zahlen / 100;
  131. printf("\n zu zahlen: %2.2f\n\n", zu_zahlen);
  132. }
  133.  
  134.  
  135. if((benein == 'G') && (mein_essen.centpreisGast[tt] <=maxpreis) )
  136. {
  137.     printf("%s\"\nund heisst:\n\"%s\"\n",
  138.   Angebot[mein_essen.angebot_nr[tt]],
  139.  mein_essen.bezeichnung[tt]);
  140.  printf("Kennzeichnungen ueber Zusatzstoffe und Allergene: %s",
  141.          mein_essen.kennzeichnung[tt]);
  142. for (i = 0; i <= sizeof(mein_essen.zusatzstoffe_und_allergene[0][0]); i++)
  143. {
  144.     printf(" %i", mein_essen.zusatzstoffe_und_allergene[0][i]);
  145. }
  146. double zu_zahlen = mein_essen.centpreisGast[tt];
  147. zu_zahlen = zu_zahlen / 100;
  148. printf("\n zu zahlen: %2.2f\n\n", zu_zahlen);
  149. }
  150.  
  151.  
  152.  
  153. if((benein == 'B') && (mein_essen.centpreisBed[tt] <=maxpreis) )
  154. {
  155.     printf("%s\"\nund heisst:\n\"%s\"\n",
  156.   Angebot[mein_essen.angebot_nr[tt]],
  157.  mein_essen.bezeichnung[tt]);
  158.  printf("Kennzeichnungen ueber Zusatzstoffe und Allergene: %s",
  159.          mein_essen.kennzeichnung[tt]);
  160. for (i = 0; i <= sizeof(mein_essen.zusatzstoffe_und_allergene[0][0]); i++)
  161. {
  162.     printf(" %i", mein_essen.zusatzstoffe_und_allergene[0][i]);
  163. }
  164. double zu_zahlen = mein_essen.centpreisBed[tt];
  165. zu_zahlen = zu_zahlen / 100;
  166. printf("\n zu zahlen: %2.2f\n\n", zu_zahlen);
  167. }
  168.  
  169. }
  170.  return 0;
  171. }
Add Comment
Please, Sign In to add comment