home *** CD-ROM | disk | FTP | other *** search
/ C Programming Starter Kit 2.0 / SamsPublishing-CProgrammingStarterKit-v2.0-Win31.iso / tyc / list14_7.c < prev    next >
C/C++ Source or Header  |  1993-10-16  |  2KB  |  94 lines

  1.  /* Demonstrates a function key driven menu. */
  2.  
  3.  #include <stdio.h>
  4.  #include <conio.h>
  5.  #include <time.h>
  6.  
  7.  int fnc_key(void);
  8.  int menu(void);
  9.  
  10.  main()
  11.  {
  12.      /* Set up infinite loop. */
  13.  
  14.      while (1)
  15.      {
  16.          /* Switch based on return value of menu(). */
  17.  
  18.          switch  (menu())
  19.          {
  20.              case _KB_F1:
  21.                  puts("Task 1");
  22.                  break;
  23.              case _KB_F2:
  24.                  puts("Task 2");
  25.                  break;
  26.              case _KB_F3:
  27.                  puts("Task 3");
  28.                  break;
  29.              case _KB_F4:
  30.                 puts("Task 4");
  31.                 break;
  32.              case _KB_F5:
  33.                  puts("Task 5");
  34.                  break;
  35.              case _KB_F6:
  36.                  puts("Task 6");
  37.                  break;
  38.              case _KB_F7:
  39.                  puts("Task 7");
  40.                  break;
  41.              case _KB_F8:
  42.                  puts("Task 8");
  43.                  break;
  44.              case _KB_F9:
  45.                  puts("Task 9");
  46.                  break;
  47.              case _KB_F10:
  48.                  puts("Exiting program...");
  49.                  exit(0);
  50.          }
  51.      }
  52.  }
  53.  
  54.  int menu(void)
  55.  {
  56.      /* Display menu choices. */
  57.  
  58.      puts("\nF1 -> task 1");
  59.      puts("F2 -> task 2");
  60.      puts("F3 -> task 3");
  61.      puts("F4 -> task 4");
  62.      puts("F5 -> task 5");
  63.      puts("F6 -> task 6");
  64.      puts("F7 -> task 7");
  65.      puts("F8 -> task 8");
  66.      puts("F9 -> task 9");
  67.      puts("F10 -> exit\n");
  68.  
  69.      /* Get a function key press. */
  70.  
  71.      return (fnc_key());
  72.  }
  73.  
  74.  int fnc_key(void)
  75.  {
  76.      int ch;
  77.  
  78.      while (1)
  79.      {
  80.          /* Wait until a zero byte comes in. */
  81.  
  82.          while ((ch = getch()) != 0)
  83.              ;
  84.          /* Get the next character. */
  85.  
  86.          ch = getch();
  87.  
  88.          /* Is it a function key? */
  89.  
  90.          if ( ch >= _KB_F1 && ch <= _KB_F10 )
  91.              return ch;
  92.      }
  93.  }
  94.