home *** CD-ROM | disk | FTP | other *** search
/ Collection of Education / collectionofeducationcarat1997.iso / SCIENCE / STAGES12.ZIP / MENUS1.C < prev    next >
Text File  |  1991-04-14  |  18KB  |  595 lines

  1. #include "header.h"
  2. #include "file.h"
  3.  
  4. #if PC
  5. #define TAB1    4    /* pos of 1st col of menu items on pc screen */
  6. #define TAB2    35    /* pos of 2nd col of menu items on pc screen */
  7. #endif
  8.  
  9. /*************************************************************************/
  10. /**    menu functions                                   **/
  11. /*************************************************************************/
  12. /* all menus return int value:
  13.     0 = successful input, continue program
  14.  
  15.    menus listed herein:
  16.         generalmenu
  17.         helpmenu
  18.         animalmenu
  19. */
  20. /********************************/
  21. /*     function: generalmenu    */
  22. /********************************/
  23. /* prints out the general menu */
  24. generalmenu (opfil)
  25.   char *opfil;        /* might be set in file options screen */
  26. {
  27.   char input[MAXLEN];    /* user menu choice */
  28.   char c;
  29. #if PC
  30.   int val;        /* return val of getusrstr */
  31.   int i;
  32. #endif
  33.  
  34.   while (TRUE) {
  35.   /* endless loop; have to exit via one of the returns in the loop */
  36. #if PC
  37.     topline(" General Menu ");
  38.     clrscr1(1);
  39.     normvideo();
  40.     i = 2;
  41.     gotoxy(TAB2, i++);
  42.     cprintf("H:  Stages Program Overview");
  43.     gotoxy(TAB2, i++);
  44.     cprintf("I:  Input Syntax Description");
  45.     gotoxy(TAB2, i++);
  46.     cprintf("J:  Output Table Explanation");
  47.     gotoxy(TAB2, i++);
  48.     cprintf("K:  Printer and File Options");
  49.     i = 2;
  50.     gotoxy(TAB1, i++);
  51.     cprintf("A:  (...");
  52.     highvideo();
  53.     cprintf("General Menu");
  54.     normvideo();
  55.     cprintf("...)");
  56.     gotoxy(TAB1, i++);
  57.     cprintf("B:  Go to Help Menu");
  58.     gotoxy(TAB1, i++);
  59.     cprintf("C:  Go to Animal Menu");
  60.     gotoxy(TAB1, i++);
  61.     cprintf("D:  Go to Cycle Length Menu");
  62.     gotoxy(TAB1, i++);
  63.     cprintf("E:  Go to Display Menu");
  64.     gotoxy(TAB1, i++);
  65.     cprintf("F:  Go to Cell Input Menu");
  66.     gotoxy(TAB1, i++);
  67.     cprintf("G:  Go to Days Input Menu");
  68.     i++;
  69.     gotoxy(TAB1, i++);
  70.     cprintf("X:  Exit Program");
  71.     if (HARDCOPY) {
  72.       togglepr();
  73.       fprintf(stdprn, "\n\n\t\t    General Menu\n\n");
  74.       fprintf(stdprn, "\tA:  (...General Menu...)\n");
  75.       fprintf(stdprn, "\tB:  Go to Help Menu\n");
  76.       fprintf(stdprn, "\tC:  Go to Animal Menu\n");
  77.       fprintf(stdprn, "\tD:  Go to Cycle Length Menu\n");
  78.       fprintf(stdprn, "\tE:  Go to Display Menu\n");
  79.       fprintf(stdprn, "\tF:  Go to Cell Input Menu\n");
  80.       fprintf(stdprn, "\tG:  Go to Days Input Menu\n\n");
  81.       fprintf(stdprn, "\tH:  Stages Program Overview\n");
  82.       fprintf(stdprn, "\tI:  Input Syntax Description\n");
  83.       fprintf(stdprn, "\tJ:  Output Table Explanation\n");
  84.       fprintf(stdprn, "\tK:  Printer and File Options\n\n");
  85.       fprintf(stdprn, "\tX:  Exit Program\n");
  86.     }
  87. #else
  88.     printf("\n\n\t\t    General Menu\n\n");
  89.     printf("\tA:  (...General Menu...)\n");
  90.     printf("\tB:  Go to Help Menu\n");
  91.     printf("\tC:  Go to Animal Menu\n");
  92.     printf("\tD:  Go to Cycle Length Menu\n");
  93.     printf("\tE:  Go to Display Menu\n");
  94.     printf("\tF:  Go to Cell Input Menu\n");
  95.     printf("\tG:  Go to Days Input Menu\n\n");
  96.     printf("\tH:  Stages Program Overview\n");
  97.     printf("\tI:  Input Syntax Description\n");
  98.     printf("\tJ:  Output Table Explanation\n");
  99.     printf("\tK:  Printer and File Options\n\n");
  100.     printf("\tX:  Exit Program\n");
  101. #endif
  102.     if (FILEq && FILECOPY) {
  103.       fprintf(fpout, "\n\n\t\t    General Menu\n\n");
  104.       fprintf(fpout, "\tA:  (...General Menu...)\n");
  105.       fprintf(fpout, "\tB:  Go to Help Menu\n");
  106.       fprintf(fpout, "\tC:  Go to Animal Menu\n");
  107.       fprintf(fpout, "\tD:  Go to Cycle Length Menu\n");
  108.       fprintf(fpout, "\tE:  Go to Display Menu\n");
  109.       fprintf(fpout, "\tF:  Go to Cell Input Menu\n");
  110.       fprintf(fpout, "\tG:  Go to Days Input Menu\n\n");
  111.       fprintf(fpout, "\tH:  Stages Program Overview\n");
  112.       fprintf(fpout, "\tI:  Input Syntax Description\n");
  113.       fprintf(fpout, "\tJ:  Output Table Explanation\n");
  114.       fprintf(fpout, "\tK:  Printer and File Options\n\n");
  115.       fprintf(fpout, "\tX:  Exit Program\n");
  116.     }
  117.  
  118.  
  119. #if PC
  120.     clrscr1(2);
  121.     cprintf("%sPlease enter your menu choice:", tab);
  122.     gotoxy(1, 2);
  123.     highvideo();
  124.     cprintf("%s%c%c%c ", tab2, HBAR, HBAR, RTRI);
  125.     normvideo();
  126.     val = getusrstr(input);
  127.     if (HARDCOPY) {
  128.       fprintf(stdprn, "\n\tPlease enter your menu choice:\n");
  129.       fprintf(stdprn, "\t\t==> %s", input);
  130.     }
  131. #else
  132.     printf("\n\tPlease enter your menu choice:\n");
  133.     printf("\t\t==> ");
  134.     getusrstr(input);
  135. #endif
  136.     if (FILEq && FILECOPY) {
  137.       fprintf(fpout, "\n\tPlease enter your menu choice:\n");
  138.       fprintf(fpout, "\t\t==> %s", input);
  139.     }
  140.  
  141. #if PC
  142.     if (val)
  143.       return(val);
  144.     else {
  145.       clrscr1(3);
  146. #endif
  147.       c = input[0];
  148.       switch (toupper1(c)) {
  149.       case 'A':        /* stay here at general menu */
  150.     break;
  151.       case 'B':        /* goto help menu */
  152.     return(102);
  153.       case 'C':        /* goto animalmenu */
  154.     return(103);
  155.       case 'D':        /* goto cycle length menu */
  156.     return(104);
  157.       case 'E':        /* goto display menu */
  158.     return(114);
  159.       case 'F':        /* goto cell input menu */
  160.     return(105);
  161.       case 'G':        /* goto days input menu */
  162.     return(106);
  163.       case 'H':
  164.     helpoverview();
  165.     break;
  166.       case 'I':
  167.     helpipsyntax();
  168.     break;
  169.       case 'J':
  170.     helpoptable();
  171.     break;
  172.       case 'K':
  173.     helpoptions(opfil);
  174.     break;
  175.       case 'X':        /* Done */
  176.     printexit(30);
  177.       default:
  178. #if PC
  179.     printf("%s%sInvalid choice:  <%c>.\n", tab, ERRSTR, input[0]);
  180.     if (HARDCOPY)
  181.       fprintf(stdprn, "\t%sInvalid choice:  <%c>.", ERRSTR, input[0]);
  182. #else
  183.     printf("\t%sInvalid choice:  <%c>.\n", ERRSTR, input[0]);
  184. #endif
  185.     if (FILEq && FILECOPY)
  186.       fprintf(fpout, "\t%sInvalid choice:  <%c>.\n", ERRSTR, input[0]);
  187.       } /* switch */
  188. #if PC
  189.     } /* if ! val */
  190. #endif
  191.   } /* while */
  192. } /* generalmenu */
  193.  
  194. /********************************/
  195. /*     function: helpmenu    */
  196. /********************************/
  197. /* prints out the help menu, deals with user input to the menu */
  198. helpmenu ()
  199. {
  200.   char input[MAXLEN];    /* user menu choice */
  201.   char c;
  202. #if PC
  203.   int val;        /* return val of getusrstr */
  204.   int i;
  205. #endif
  206.  
  207.   while (TRUE) {
  208. #if PC
  209.     topline(" Help Menu ");
  210.     clrscr1(1);
  211.     normvideo();
  212.     i = 2;
  213.     gotoxy(TAB1, i++);
  214.     cprintf("A:  Go to General Menu");
  215.     gotoxy(TAB1, i++);
  216.     cprintf("B:  (...");
  217.     highvideo();
  218.     cprintf("Help Menu");
  219.     normvideo();
  220.     cprintf("...)");
  221.     gotoxy(TAB1, i++);
  222.     cprintf("C:  Go to Animal Menu");
  223.     gotoxy(TAB1, i++);
  224.     cprintf("D:  Go to Cycle Length Menu");
  225.     gotoxy(TAB1, i++);
  226.     cprintf("E:  Go to Display Menu");
  227.     gotoxy(TAB1, i++);
  228.     cprintf("F:  Go to Cell Input Menu");
  229.     gotoxy(TAB1, i++);
  230.     cprintf("G:  Go to Days Input Menu");
  231.     i = 2;
  232.     gotoxy(TAB2, i++);
  233.     cprintf("H:  Help!: Changing the Cycle Length");
  234.     gotoxy(TAB2, i++);
  235.     cprintf("I:  Help!: Entering Cell Input Data");
  236.     gotoxy(TAB2, i++);
  237.     cprintf("J:  Help!: Entering Days Input Data");
  238.     gotoxy(TAB2, i++);
  239.     cprintf("K:  Help!: Saving Output to a File");
  240.     gotoxy(TAB2, i++);
  241.     cprintf("L:  Help!: Sending Output to a Printer");
  242.     gotoxy(TAB2, i++);
  243.     cprintf("M:  Help!: Using the F1-F10 Keys");
  244.     gotoxy(TAB2, i++);
  245.     cprintf("N:  Help!: Batch Processing Using Stages");
  246.     i++;
  247.     gotoxy(TAB1, i++);
  248.     cprintf("X:  Exit Program");
  249.     if (HARDCOPY) {
  250.       togglepr();
  251.       fprintf(stdprn, "\n\n\t\t    Help Menu\n\n");
  252.       fprintf(stdprn, "\tA:  Go to General Menu\n");
  253.       fprintf(stdprn, "\tB:  (...Help Menu...)\n");
  254.       fprintf(stdprn, "\tC:  Go to Animal Menu\n");
  255.       fprintf(stdprn, "\tD:  Go to Cycle Length Menu\n");
  256.       fprintf(stdprn, "\tE:  Go to Display Menu\n");
  257.       fprintf(stdprn, "\tF:  Go to Cell Input Menu\n");
  258.       fprintf(stdprn, "\tG:  Go to Days Input Menu\n\n");
  259.       fprintf(stdprn, "\tH:  Help!: Changing the Cycle Length\n");
  260.       fprintf(stdprn, "\tI:  Help!: Entering Cell Input Data\n");
  261.       fprintf(stdprn, "\tJ:  Help!: Entering Days Input Data\n");
  262.       fprintf(stdprn, "\tK: