home *** CD-ROM | disk | FTP | other *** search
/ Liren Large Software Subsidy 7 / 07.iso / c / c150 / 4.ddi / BORROW.C < prev    next >
Encoding:
C/C++ Source or Header  |  1990-10-13  |  2.1 KB  |  92 lines

  1. #include <stdio.h>
  2. #include "vista.h"
  3. #include "tims.h"
  4.  
  5. int strcmp( P1(char *) Pi(char *) );
  6.  
  7. /* Loan book
  8. */
  9. loan_book()
  10. {
  11.    char id[16];
  12.    char date[20];
  13.    struct borrower brec;
  14.  
  15.    printf("id_code of book to be loaned: ");
  16.    if ( gets(id) && id[0] != '\0' ) {
  17.       if ( d_keyfind(ID_CODE, id, CURR_DB) == S_NOTFOUND )
  18.      printf("id_code %s not on file\n", id);
  19.       else {
  20.      d_setor(LOANED_BOOKS, CURR_DB);
  21.      printf("name of borrower: ");
  22.      gets(brec.friend);
  23.      printf("date borrowed   : ");
  24.      gets(date);
  25.      sscanf(date, "%ld", &brec.date_borrowed);
  26.      brec.date_returned = 0L;
  27.      d_fillnew(BORROWER, &brec, CURR_DB);
  28.      d_connect(LOANED_BOOKS, CURR_DB);
  29.      d_connect(LOAN_HISTORY, CURR_DB);
  30.       }
  31.    }
  32.    return ( 0 );
  33. }
  34.  
  35.  
  36. /* Returned borrowed book
  37. */
  38. return_book()
  39. {
  40.    char id[16];
  41.    char friend[32];
  42.    char date[20];
  43.    long bdate;
  44.    struct borrower brec;
  45.  
  46.    printf("id_code of returned book: ");
  47.    if ( gets(id) && id[0] != '\0' ) {
  48.       if ( d_keyfind(ID_CODE, id, CURR_DB) == S_NOTFOUND )
  49.      printf("id_code %s not on file\n", id);
  50.       else {
  51.      d_setor(LOANED_BOOKS, CURR_DB);
  52.      printf("name of borrower: ");
  53.      gets(friend);
  54.      while ( d_findnm(LOANED_BOOKS, CURR_DB) == S_OKAY ) {
  55.         d_recread(&brec, CURR_DB);
  56.         if ( strcmp(brec.friend, friend) == 0 ) {
  57.            if ( brec.date_returned == 0L ) {
  58.           printf("book borrowed on: %ld\n", brec.date_borrowed);
  59.           printf("date returned   : ");
  60.           gets(date);
  61.           sscanf(date, "%ld", &bdate);
  62.           d_crwrite(DATE_RETURNED, &bdate, CURR_DB);
  63.           return (0);
  64.            }
  65.         }
  66.      }
  67.      printf("borrower not on file\n");
  68.       }
  69.    }
  70.    return (0);
  71. }
  72.  
  73.  
  74. /* List loaned out books
  75. */
  76. list_loaners()
  77. {
  78.    struct borrower brec;
  79.    char title[80];
  80.  
  81.    for (d_findfm(LOAN_HISTORY, CURR_DB); db_status == S_OKAY; d_findnm(LOAN_HISTORY, CURR_DB)) {
  82.       d_recread(&brec, CURR_DB);
  83.       if ( brec.date_returned == 0L ) {
  84.      d_findco(LOANED_BOOKS, CURR_DB);
  85.      d_crread(INFO_TITLE, title, CURR_DB);
  86.      printf("title: %s\n", title);
  87.      printf("borrowed by %s on %ld\n\n", brec.friend, brec.date_borrowed);
  88.       }
  89.    }
  90.    return (0);
  91. }
  92.