home *** CD-ROM | disk | FTP | other *** search
/ Sams Teach Yourself C in 21 Days (6th Edition) / STYC216E.ISO / mac / Examples / Day13 / menu.c < prev    next >
C/C++ Source or Header  |  2002-05-04  |  2KB  |  80 lines

  1. /* Demonstrates using an infinite loop to implement */
  2. /* a menu system. */
  3. #include <stdio.h>
  4. #define DELAY  15000000       /* Used in delay loop. */
  5.  
  6. int menu(void);
  7. void delay(void);
  8.  
  9. int main( void )
  10. {
  11.    int choice;
  12.  
  13.    while (1)
  14.    {
  15.  
  16.     /* Get the user's selection. */
  17.  
  18.     choice = menu();
  19.  
  20.     /* Branch based on the input. */
  21.  
  22.     if (choice == 1)
  23.     {
  24.         puts("\nExecuting task A.");
  25.         delay();
  26.     }
  27.     else if (choice == 2)
  28.          {
  29.              puts("\nExecuting task B.");
  30.              delay();
  31.          }
  32.     else if (choice == 3)
  33.          {
  34.              puts("\nExecuting task C.");
  35.              delay();
  36.          }
  37.     else if (choice == 4)
  38.          {
  39.              puts("\nExecuting task D.");
  40.              delay();
  41.          }
  42.     else if (choice == 5)       /* Exit program. */
  43.          {
  44.              puts("\nExiting program now...\n");
  45.              delay();
  46.              break;
  47.          }
  48.          else
  49.          {
  50.              puts("\nInvalid choice, try again.");
  51.              delay();
  52.          }
  53.    }
  54.    return 0;
  55. }
  56.  
  57. /* Displays a menu and inputs user's selection. */
  58. int menu(void)
  59. {
  60.     int reply;
  61.  
  62.     puts("\nEnter 1 for task A.");
  63.     puts("Enter 2 for task B.");
  64.     puts("Enter 3 for task C.");
  65.     puts("Enter 4 for task D.");
  66.     puts("Enter 5 to exit program.");
  67.  
  68.     scanf("%d", &reply);
  69.  
  70.     return reply;
  71. }
  72.  
  73. void delay( void )
  74. {
  75.     long x;
  76.     for ( x = 0; x < DELAY; x++ )
  77.         ;
  78. }
  79.  
  80.