*****Listing 1*****

   1:   /*
   2:    *  MDB.H       (Static-Array-Only Version)
   3:    *
   4:    *  Program:    Mini-Database
   5:    *  Written by: Leor Zolman
   6:    *  Module:     Program Header File
   7:    */
   8:   
   9:   #define TRUE    1
  10:   #define FALSE   0
  11:   
  12:   /*
  13:    * Prototypes: 
  14:    */
  15:   
  16:   int do_menu(struct menu_item *mnu, char *title);
  17:   void write_db(char *filename);
  18:   int read_db(char *filename);
  19:   void edit_db();
  20:   void fix_db();  
  21:   void backup_db();
  22:   void error(char *msg);
  23:   struct record *alloc_rec(void);
  24:   void free_up();
  25:   
  26:   /*
  27:    * Data Definitions:
  28:    */
  29:   
  30:   struct record {                 /* Database record definition   */
  31:       char    active;             /* TRUE if Active, else FALSE   */
  32:       char    last[25], first[15];    /* Name             */
  33:       long    id;                     /* ID Number        */
  34:       int     age;                    /* Age              */
  35:       char    gender;                 /* M or F           */
  36:       float   salary;                 /* Annual Salary    */
  37:   };
  38:   
  39:   #define MAX_RECS    1000        /* Maximum number of records    */
  40:   
  41:   
  42:   #ifdef MAIN_MODULE              /* Make sure data is only       */
  43:   #define EXTERN                  /* DEFINED in the main module,  */
  44:   #else                           /* and declared as EXTERNAL in  */
  45:   #define EXTERN  extern          /* the other modules.           */
  46:   #endif
  47:   
  48:   
  49:   EXTERN  struct  record *recs[MAX_RECS];  /*  Array of ptrs to   */
  50:   #define RECS    recs            /*       structs of type record */
  51:                                                                        
  52:   EXTERN  int n_recs;             /* # of records in current db   */
  53:   EXTERN  int max_recs;           /* Max # of recs allowed        */
  54:   
  55:   struct menu_item {                  /* Menu definition record   */
  56:       int action_code;                /* Menu item code           */
  57:       char *descrip;                  /* Menu item text           */
  58:   };
  59:   
