1. This site uses cookies. By continuing to use this site, you are agreeing to our use of cookies. Learn More.

Functions and Array

Discussion in 'C++' started by dldsob, Jul 10, 2009.

  1. dldsob

    dldsob New Member

    Jul 3, 2009
    Likes Received:
    Trophy Points:
    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 */
    struct BOOK_STRUCT 
    /*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;
    Last edited by a moderator: Jul 11, 2009

Share This Page