Если книги нет в массиве, вернуть ложь
если книга найдена: - разрушить найденный объект; - сжать массив; - уменьшить число книг в массиве и вернуть истину.*/ bool CCatalogue::del(const string& key) { int i = find(key); if (i < 0) return false; delete m_pBook[i]; while(i < m_q-1) m_pBook[i++] = m_pBook[i+1]; m_q--; return true; } /* поиск книги по названию 1) проверить название каждой книги; Если есть совпадение, вернуть индекс книги если нет совпадений, вернуть -1. */ int CCatalogue::find(const string& key) const { for (int i=0; i<m_q; i++) if (m_pBook[i] -> check(key)) return i; return -1; } // сортировка массива по авторам - // метод пузырьковой сортировки Void CCatalogue::sort() { for (int j=1; j<m_q; j++) for (int i=0; i< m_q-1; i++) if (m_pBook[i]->getAuthor() > m_pBook[i+1]->getAuthor()) { CBook* tmp = m_pBook[i]; m_pBook[i] = m_pBook[i+1]; m_pBook[i+1] = tmp; } } //Объявление класса CMenu Class CMenu { public: CCatalogue* m_p; // указатель на каталог книг CMenu(); ~CMenu(); Void showMenuAndSelect(); // активизация меню private: Void p_menu_find()const; //поиск книги по названию Void p_menu_view()const; //просмотр состояния каталога Void p_menu_ins(); // добавление книги Void p_menu_del(); // удаление книги по названию Void p_menu_sort(); //сортировка в каталоге по авторам Void align(int) const; // выравнивание при выводе }; //Определение методов класса CMenu #include <iomanip> const static int N(512); CMenu::CMenu():m_p (new CCatalogue){} CMenu::~CMenu(){delete m_p;} Void CMenu::showMenuAndSelect()// активизация меню { char choice; do { cout << "\n 1 - Поиск книги по названию"; cout << "\n 2 - Добавление книги"; cout << "\n 3 - Удаление книги"; cout << "\n 4 - Сортировка по авторам книг"; cout << "\n 5 - Просмотр каталога книг"; cout << "\n 0 - Выход\n"; cout << "\n Ваш выбор ->"; cin >> choice; cin.ignore(); if (m_p -> getNumberOfBook()) Switch(choice) { case '1': p_menu_find(); break; case '2': p_menu_ins(); break; case '3': p_menu_del(); break; case '4': p_menu_sort(); break; case '5': p_menu_view(); break;
} Else if (!m_p -> getNumberOfBook() && choice=='2') p_menu_ins(); } while(choice!= '0'); } Void CMenu::p_menu_find() const // поиск по ключу { string title; cout << "\nВведите название книги -> "; getline(cin, title); int iKey = m_p->find(title); if (iKey!= -1) { cout << "Автор: "; cout << m_p->m_pBook[iKey]->getAuthor()<<endl; cout << "Название: "; cout << m_p->m_pBook[iKey]->getTitle()<<endl; cout << "Год издания: "; cout << m_p->m_pBook[iKey]->getYear()<<endl; } else cout << title << " - не найдена"; } Void CMenu::p_menu_view() const // просмотр { int n = m_p -> getNumberOfBook(); align(20); cout << "Автор"; align(30); cout << "Название";align(10); cout << "Год издания"; cout<<endl; for (int i=0;i<n;i++) { align(20); cout << m_p->m_pBook[i]->getAuthor(); align(30); cout << m_p->m_pBook[i]->getTitle(); align(10); cout << m_p->m_pBook[i]->getYear(); cout<<endl; } }
Читайте также: II. Мойсей і так звані Мойсеєві книги Воспользуйтесь поиском по сайту: ©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...
|