Символы кириллицы выводит некорректно. Как сделать чтобы выводился читабельный текст на русском языке? Тип приложения - не Qt, Qt Creator 4.5.0 основан на Qt 5.10.0. Win7.
|
Объектно-ориентированное программирование
10.8 Задачи для самостоятельного решения
10.8.1 Иерархия классов
Определить иерархию наследования из двух классов в соответствии с номером задания. Каждый класс снабдить свойствами и методами в соответствии с предметной областью, указанной в варианте задания. В базовом классе предусмотреть метод info(), выводящий на экран информацию об объекте. Предусмотреть конструкторы, инициализирующие свойства объектов переданными данными либо значениями по умолчанию. Написать демонстрационную программу, создающую 4-5 объектов и выводящую на экран информацию о них. Варианты классов:
- "Водный транспорт", "Грузовое судно"
- "Летательный аппарат", "Дирижабль"
- "Здание", "Коттедж"
- "Двигатель", "Двигатель внутреннего сгорания"
- "Устройство печати", "Струйный принтер"
- "Устройство ввода", "Цифровая камера"
- "Растровое изображение", "Репродукция картины"
- "Млекопитающее", "Собака"
- "Транспортное средство", "Легковой автомобиль"
- "Печатное издание", "Номер журнала"
- "Документ", "Квитанция об оплате"
- "Пищевой продукт", "Йогурт"
- "Корпусная мебель", "Книжный шкаф"
- "Проверка знаний", "Экзамен"
- "Носитель информации", "Компакт-диск"
- "Аудиозапись", "файл в формате MP3"
- "Видеозапись", "Художественный фильм"
- "Транспортное средство", "Маршрутный автобус"
- "Средство связи", "Сотовый телефон"
- "Человек", "Член клуба"
- "Птица", "Почтовый голубь"
- "Электронная карта", "Абонемент на проезд"
- "Дата", "День рождения"
- "Удостоверение", "Паспорт"
- "Сотрудник компании", "Начальник отдела"
10.8.2 Перегрузка операторов
Реализовать класс, содержащий коллекцию объектов, методы для включения и удаления элементов, вывода содержимого коллекции на экран, а также перегруженный в соответствии с заданием оператор. Написать программу, заполняющую коллекцию несколькими элементами и демонстрирующую пользователю работу перегруженного оператора для элементов коллекции:
- "–" (вычитание одной коллекции из другой), класс "множество символов"
- "+" (объединение коллекций), класс "множество целых чисел"
- "*" (пересечение коллекций), класс "множество целых чисел"
- "!=" (сравнение коллекций на неравенство), класс "неупорядоченный массив вещественных чисел"
- "==" (сравнение коллекций на неравенство), класс "упорядоченный массив символов"
- "[]" (получение элемента по его номеру в коллекции), класс "неупорядоченный массив целых чисел"
- "[]" (получение элемента по его номеру в коллекции), класс "упорядоченный массив вещественных чисел"
- "%" (проверка элемента на принадлежность коллекции), класс "множество целых чисел"
- "%" (проверка элемента на принадлежность коллекции), класс "упорядоченный массив символов"
- "<<" (удаление элемента из коллекции с его выводом на экран), класс "множество целых чисел"
- ">>" (добавление введённого с клавиатуры элемента в коллекцию), класс "множество символов"
- ">=" (проверка на включение коллекции, заданной вторым аргументом, в начальную часть коллекции, заданной первым аргументом), класс "упорядоченный массив символов"
- "<=" (проверка на включение коллекции, заданной первым аргументом, в начальную часть коллекции, заданной вторым аргументом), класс "неупорядоченный массив символов"
- "++" (добавление элемента со значением, на единицу больше последнего добавленного элемента), класс "упорядоченный массив целых чисел"
- "++" (добавление элемента со значением, на единицу больше последнего добавленного элемента), класс "стек целых чисел"
- "--" (удаление последнего добавленного элемента), класс "упорядоченный массив целых чисел"
- "--" (удаление элемента), класс "очередь вещественных чисел"
- "--" (опустошение коллекции), класс "множество вещественных чисел"
- ">>" (добавление введённого с клавиатуры элемента в коллекцию), класс "очередь целых чисел"
- "<<" (удаление элемента из коллекции с его выводом на экран), класс "очередь вещественных чисел"
- ">>" (добавление введённого с клавиатуры элемента в коллекцию), класс "стек символов"
- "<<" (удаление элемента из коллекции с его выводом на экран), класс "стек целых чисел"
- "*" (умножение всех элементов коллекции на заданное число), класс "неупорядоченный массив вещественных чисел"
- "/" (деление всех элементов коллекции на заданное число), класс "множество вещественных чисел"
- "˜" (смена регистра), класс "множество символов"
10.8.3 Обработка исключительных ситуаций
Снабдить класс из задания п. 10.8.1 проверкой на допустимость значений, передаваемых конструктору. В случае передачи недопустимых значений генерировать исключительную ситуацию. Предусмотреть не менее двух различных классов-индикаторов исключения, позволяющих передать обработчику необходимую информацию. Расширить демонстрационную программу показом обработки некорректной инициализации объектов.