Лекция 6. Введение в ООП через практику. Часть 1 Красс Александр СПбГУ ИТМО, 2008
2 Будем делать прототип книжного склада
3 Книжный склад Для каждой книги нужно хранить: –название –список авторов –издательство –номер стеллажа –число экземпляров –цену за экземпляр.
4 Книжный склад Должны уметь находить все книги с указанным пользователем: –названием –одним из авторов –номером стеллажа хранения. Просматривать все известные данные о найденных книгах. Добавление новых наименований книг. Новые поступления существующих наименований.
5 Требования Как можно больше группировать последовательности связанных операторов в функции. Например, могут быть функции для поиска по названию книги, для добавления нового наименования и т.д.
6 Немного про области видимости const int maxBookNumber = 100; Book *books[maxBookNumber]; void main() { // Можем использовать здесь books, // т.к. переменная books объявлена в // глобальной области видимости }
7 Немного про области видимости int f() {} void main() { f(); g(); // Ошибка! Функции должны быть // объявлены до // их первого использования или // предоставлен их прототип. } void g() {}
8 Немного про области видимости int f() {} int g(); // Прототип функции g void main() { f(); g(); // Всё хорошо } void g() {}
9 Дополнительные требования для тех, кто быстро кодирует Отгрузка любого допустимого числа книг. Реализовать наиболее оптимальные на Ваш взгляд версии вышеописанных операций. Замечание. Нужно оптимизировать только поиск. Это достигается за счёт способа хранения книг и дополнительных затрат на добавление новых наименований.
10 Поехали!
11 Спасибо за внимание Вопросы?