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

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