Go4Expert (http://www.go4expert.com/)
-   C++ (http://www.go4expert.com/forums/cpp/)
-   -   Functions and Array (http://www.go4expert.com/forums/functions-and-array-t18475/)

dldsob 11Jul2009 03:15

Functions and Array
Can anyone please help me complete the definition of BOOK STRUCT and implement the three functions in order for the program to work? Thank You.


#include <iostream>

using namespace std;

/* Struct to define a book */

/*Function Name: check_out_book
Parameters: A book
Purpose: Function checks out a book.  Nothing is returned. 
void check_out_book (BOOK_STRUCT* book)

/*Function Name: get_book_by_title
Parameters: A library of books, a title, and the size of the library
Purpose: Function returns a pointer to a book based on the title supplied
by the user.  If the book is not found, a null pointer is returned.
BOOK_STRUCT* get_book_by_title (BOOK_STRUCT library[], char* title, int lib_size)

/*Function Name: print_avail_books
Parameters: A library of books and the size of the library
Purpose: Function goes through the library and prints only those books
which are not checked out.
void print_avail_books (BOOK_STRUCT library[], int lib_size)

int main()
    char in_title[81];  // buffer to contain input from user
    BOOK_STRUCT* book;  // a book pointer
    int choice=0;      // used by the menu
    int NUM_BOOKS = 2;  // number of books in the library
    // library data structure
    BOOK_STRUCT library[] = {{"Gods and Generals", "Jeff Shaara", "123", 0},{"Killer Angels",
                                    "Michael Shaara", "143", 0}};
    // Output message to user         
    cout<<"Welcome to Fraser Library"<<endl;
    // Loop until the user selects exit.
      cout<<"Please select from the following options."<<endl;
      cout<<"1. Search for a book."<<endl;
      cout<<"2. Print available books."<<endl;
      cout<<"3. Checkout a book."<<endl;
      cout<<"4. Exit"<<endl;
      cout<<"  > ";
      cin>>choice;  //read input
      if(cin.good() && choice > 0 && choice < 5){  // Make sure choice is correct
        if(choice == 1 || choice == 3){  // selections require title of the book
          cin.ignore();    // need to ignore the character return from the previous cin
          cout<<"Please enter the title of the book."<<endl<<"  > ";
          cin.getline(in_title,81);  //read input from user
          book = get_book_by_title(library, in_title, NUM_BOOKS);  // get book
          if (book == NULL)  // The book is not in the library
                cout<<endl<<in_title<<" not found.  Please try another title"<<endl<<endl;
          else if (book->checked_out == true) // The book is available but checked out
                cout<<endl<<"Sorry, "<<book->title<<" is checked out.  Please try another title"<<endl<<endl;
          else if (choice == 1) // The book is available and it will be checked out
                cout<<endl<<book->title<<" by "<<book->author<<" is available."<<endl<<endl;
          else{  // The book is available
                cout<<endl<<book->title<<" is available.  I'll check it out for you now."<<endl<<endl;
        else if(choice == 2){ // user wants to print the list of books
            print_avail_books(library, NUM_BOOKS);
        else{  //user selected exit
          cout<<"Thanks for coming!"<<endl;
          return 0;
      else {  //user provided something we can't understand
          cout<<endl<<"Sorry, I don't understand what you selected.  Please try again"<<endl<<endl;
          choice = 1;  // This just makes sure the user gets a chance make another selection
    while(choice < 4);
    return 0;

All times are GMT +5.5. The time now is 10:52.