-2

任何建议或指导都会非常棒......

  #include <iostream>
  #include <string.h>


  using namespace std;

 struct Book { 
char title[1024];       // Book name
int id;                 // Book id or ISBN number
float price;            // Book price
struct Book* next;
  } *COLLECTION = NULL;

//-- Forward Declaration --// 
void menu(); 
void branching(char option);
void insertion();
void printall();
struct Book* search(); 
void deletion();
void quit(struct Book* HEAD);


 int main()
 {
char ch; 

cout << "\n\nWelcome to CSE240: Bookstore\n";

do {
     menu();

     ch = tolower(getchar()); // read a char, convert to lower case
     cin.ignore();

     branching(ch);
} while (ch != 'q');

return 0; 
}

 void menu()
    {
cout << "\nMenu Options\n";
cout << "------------------------------------------------------\n";
cout << "i: Insert a book\n";
cout << "d: Delete a book\n";
cout << "s: Search a book\n";
cout << "p: Review your list\n"; 
cout << "q: Quit\n";
cout << "\n\nPlease enter a choice (i, d, s, p, or q) ---> "; 
 }

  void branching(char option)
 {
switch(option)
{
    case 'i':
        insertion();
    break;

    case 'd':
        deletion();
    break;

    case 's':
        search();
    break;

    case 'p':
        printall();
    break;

    case 'q':
        quit(COLLECTION);
        COLLECTION = NULL;
    break;

    default:
        cout << "\nError: Invalid Input.  Please try again..."; 
    break;
}
 }


  void insertion()
  {
// add code to insert a new book into the COLLECTION linked list.   
// HINT: You can insert a new book at the beginning of the linked list


 }

  struct Book* search() 
 {    
// add code to search for an existing book in the COLLECTION linked-list
// HINT: If no book matches the tile return a error messag



return NULL;
 }

 void deletion()
 {
// add code to the deletion method. You must call "delete" to remove the object    from the heap.
  }

  void printall()
  {
// Add code to print the book collection.  (HINT: You will need to use a loop.)

  }

  void quit(struct Book* HEAD)
  {
// Add code to delete the objects/books from the lniked-list.
// HINT: Refer to the slides in the homework assignment


   }
4

1 回答 1

0

我会给你一个线索insertion()——假设你有一本书要插入

void insertion(Book* newBook)
{
  // The new book will be inserted at the beginning of the linked list,
  // with the original list following on from it
  newBook->next = COLLECTION;

  // The new beginning of the collection should be the new book
  COLLECTION = newBook;
}

而对于search()- 假设您正在搜索具有特定 ID 的书

Book* search(int id) 
{
  Book* current = COLLECTION;

  while(current != NULL)
  {
    if(current->id == id)
    {
      // Found it
      return current;
    }

    // Try the next book in the list
    current = current->next;
  }

  // Reached the end, but still could not find the book you are looking for
  return NULL;
}
于 2013-02-19T22:52:38.027 回答