任何建议或指导都会非常棒......
#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
}
答案 0 :(得分: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;
}