BookArray Code Flashcards
(10 cards)
BookArray ();
BookArray::BookArray(){
books = new Book*[MAX_ARR];
size = 0;
}
~ BookArray ();
BookArray::~BookArray(){
delete [] books;
}
bool add ( Book *);
bool BookArray::add(Book* book){
if (isFull()) return false;
int index = 0;
while (index < size){
if (book->getTitle() < books[index]->getTitle()){
break;
}
++index;
}
for (int i = size; i > index; –i){
books[i] = books[i-1];
}
books[index] = book;
++size;
return true;
}
bool get ( const string & title , Book **);
bool BookArray::get(const string& title, Book** book){
for (int i = 0; i < size; ++i){
if(books[i]->getTitle() == title){
*book = books[i];
return true;
}
}
*book = NULL;
return false;
}
bool get ( int index , Book **);
bool BookArray::get(int index, Book** book){
if (index < 0 || index >= size){
*book = NULL;
return false;
}
*book = books[index];
return true;
}
bool getMinPrice ( Book **);
bool BookArray::getMinPrice(Book** book){
if (size == 0){
*book = NULL;
return false;
}
book = books[0];
for (int i = 1; i < size; ++i){
if (books[i]->getPrice() < (book)->getPrice()){
*book = books[i];
}
}
return true;
}
void getAllFiction ( BookArray &);
void BookArray::getAllFiction(BookArray& bookArray){
for (int i = 0; i < size; ++i){
if (books[i]->isFiction()){
bookArray.add(books[i]);
}
}
}
bool remove ( const string & title , Book **);
bool BookArray::remove(const string & title, Book ** book){
int index = 0;
while (index < size){
if (books[index]->getTitle() == title){ break; }
++index;
}
if (index >= size) return false; *book = books[index]; while (index < size-1){ books[index] = books[index+1]; \++index; } --size; return true; }
bool remove ( int index , Book **);
bool BookArray::remove(int index, Book** book){
if (index < 0 || index >= size) return false;
return remove(books[index]->getTitle(), book);
}
void print () const ;
void BookArray::print() const {
for (int i = 0; i < size; ++i){
books[i]->print();
}
}