Главная страница Случайная страница Разделы сайта АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника |
💸 Как сделать бизнес проще, а карман толще?
Тот, кто работает в сфере услуг, знает — без ведения записи клиентов никуда. Мало того, что нужно видеть свое раписание, но и напоминать клиентам о визитах тоже.
Проблема в том, что средняя цена по рынку за такой сервис — 800 руб/мес или почти 15 000 руб за год. И это минимальный функционал.
Нашли самый бюджетный и оптимальный вариант: сервис VisitTime.⚡️ Для новых пользователей первый месяц бесплатно. А далее 290 руб/мес, это в 3 раза дешевле аналогов. За эту цену доступен весь функционал: напоминание о визитах, чаевые, предоплаты, общение с клиентами, переносы записей и так далее. ✅ Уйма гибких настроек, которые помогут вам зарабатывать больше и забыть про чувство «что-то мне нужно было сделать». Сомневаетесь? нажмите на текст, запустите чат-бота и убедитесь во всем сами! Упражнения. 1. Создайте шаблон на основе данного класса List:
1. Создайте шаблон на основе данного класса List: class List { public: List(): head(0), tail(0), theCount(0) { } virtual ~List(); void insert(int value); void append(int value); int is_present(int value) const; int is_empty() const { return head == 0; } int count() const { return theCount; } private: class ListCell { public: ListCell(int value, ListCell *cell =): val(value), next(cell){ } int val; ListCell *next; }; ListCell *head; ListCell *tail; int theCount; }; 2. Напишите выполнение обычной (не шаблонной) версии класса List. 3. Напишите шаблонный вариант выполнения. 4. Объявите три списка объектов: типа Strings, типа Cat и типа int. 5. Жучки: что неправильно в приведенном ниже программном коде? (Предположите, что определяется шаблон класса List, а Cat — это класс, определенный на одном из предыдущих занятий.) List< Cat> Cat_List; Cat Felix; CatList.append(Felix); cout < < " Felix is " < < (Cat_List.is_present(Felix))? " ": " not " < < " present\n"; 6. ПОДСКАЗКА (поскольку задание не из самых легких): подумайте, чем тип Cat отличается от типа int? 7. Объявите дружественный оператор operator== для класса List. 8. Напишите выполнение дружественного оператора operator== для класса List. 9. Грешит ли оператор operator== той же проблемой, которая существует в упражнении 5? 10. Напишите выполнение функции шаблона, осуществляющей операцию обмена данными, в результате чего две переменные должны обменяться содержимым. 11. Напишите выполнение класса SchoolClass, показанного в листинге 19.8, как списка. Для добавления в список четырех студентов используйте функцию push_back(). Затем пройдитесь по полученному списку и увеличьте возраст каждого студента на один год. 12. Измените код из упражнения 10 таким образом, чтобы для отображения данных о каждом студенте использовался объект функции.
День 20-й. Отслеживание исключительных ситуаций и ошибок
Программный код, представленный в этой книге, был создан в иллюстративных целях. Мы не упоминали о возможных ошибках, чтобы не отвлекать вас от основных моментов программирования, представленных в том или ином фрагменте программы. Реальные же программы должны обязательно предусматривать возможные аварийные ситуации. Сегодня вы узнаете: • Что представляют собой исключительные ситуации • Как перехватываются и обрабатываются исключения • Что такое наследование исключений • Как использовать исключения в общей структуре отслеживания и устранения ошибок • Что представляет собой отладка программы
|