home *** CD-ROM | disk | FTP | other *** search
/ Sams Teach Yourself C in 21 Days (6th Edition) / STYC216E.ISO / mac / Examples / Day13 / menu2c.c < prev    next >
C/C++ Source or Header  |  2002-05-04  |  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.  
  14.    while (1)
  15.    {
  16.          /* Get user's selection and branch based on the input. */
  17.  
  18.          switch(menu())
  19.          {
  20.             case 1:
  21.                 {
  22.                   puts("\nExecuting task A.");
  23.                   delay();
  24.                   break;
  25.                 }
  26.             case 2:
  27.                 {
  28.                   puts("\nExecuting task B.");
  29.                   delay();
  30.                   break;
  31.                 }
  32.             case 3:
  33.                 {
  34.                   puts("\nExecuting task C.");
  35.                   delay();
  36.                   break;
  37.                 }
  38.             case 4:
  39.                 {
  40.                   puts("\nExecuting task D.");
  41.                   delay();
  42.                   break;
  43.                 }
  44.             case 5:     /* Exit program. */
  45.                 {
  46.                   puts("\nExiting program now...\n");
  47.                   delay();
  48.                   exit(0);
  49.                 }
  50.             default:
  51.                 {
  52.                   puts("\nInvalid choice, try again.");
  53.                   delay();
  54.                 }
  55.          }  /* End of switch */
  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.