Задания для самостоятельной работы. Создайте класс Int. имитирующий стандартный тип int
Вариант 1
Создайте класс Int. имитирующий стандартный тип int. Единственное поле этого класса должно иметь тип int. Создайте методы, которые будут устанавливать значение поля, равным нулю, инициализировать его целым значением, выводить значение поля на экран и складывать два значения типа Int.
Вариант 2
Создайте класс с именем Time, содержащий три поля типа char предназначенные для хранения часов, минут и секунд. Один из конструкторов класса должен инициализировать поля нулевыми значениями, а другой конструктор — заданным набором значений. Создайте метод класса, который будет выводить значения полей на экран в формате 11:59:59. и метод, складывающий значения двух объектов типа Time, передаваемых в качестве аргументов.
Вариант 3
1). Создайте класс с именем Date. Его данные должны размешаться в трех полях тина int; Month, Day и Year. Метод класса Getdate() должен принимать значение для объекта в формате 12/05/09, а метод Showdate() — выводить данные на экран в формате 12 мая 2009г.
Вариант 4
1). Создайте класс, имитирующий работу пункта для взимания платежей за проезд по автостраде. Каждая проезжающая машина должна заплатить за проезд n руб, однако часть машин платит за проезд, а часть проезжает бесплатно. В кассе ведется учет числа проехавших машин и суммарная выручка от платы за проезд.
Класс должен содержать три поля. Одно из них типа unsigned int предназначено для учета количества проехавших автомобилей, второе, имеющее тип double, будет содержать суммарную выручку от оплаты проезда, а третье константное поле – плату за проезд. Конструктор должен инициализировать два поля нулевыми значениями, а третье значением заданным пользователем. Метод payingCar() инкрементирует число машин и увеличивает на значение константного поля суммарную выручку. Другой метод. nopayCar(). увеличивает на единицу число автомобилей, но оставляет без изменения выручку. Метод display() выводит оба значения на экран.
Вариант 5
Создайте класс Fraction. Данные класса должны быть представлены двумя полями: числителем и знаменателем. Методы класса должны получать от пользователя значения числителя и знаменателя дроби в формате 3/5 и выводить значение дроби в этом же формате. Кроме того, должен быть разработан метод, складывающий значения двух дробей. Напишите программу, которая циклически запрашивает у пользователя ввод пары дробей, затем складывает их и выводит результат на экран. После каждой такой операции программа должна спрашивать пользователя, следует ли продолжать цикл.
Вариант 6
Создайте класс Employee. Класс должен включать поле типа int для хранения номера сотрудника, поле типа std::string для хранения ФИО сотрудника и поле типа float для хранения величины его оклада. Методы класса должны позволять пользователю вводить и отображать данные класса. Создайте программу, демонстрирующую работу класса. Напишите программу, создающую массив типа Employee, а затем предложить пользователю внести данные для 10 служащих. После этого необходимо вывести данные всех служащих на экран компьютера.
Вариант 7
Создайте класс Money имитирующий денежный тип с фиксированной десятичной точкой. Данные класса должны быть представлены двумя полями: количеством рублей (тип long) и количеством копеек (тип char). Методы класса должны получать от пользователя строку в формате 4 000 678 889,88 руб и выводить значение в этом же формате. Кроме того, должен быть разработан метод, складывающий значения двух денежных величин. Напишите программу, выводящую на экран сумму всех денежных величин введенных пользователем.
Вариант 8
Напишите класс SafeArray который использует массив типа int фиксированного размера. В классе необходимо описать два метода. Первый, Set(). принимает индекс и значение типа int как аргументы и вставляет это значение в массив по заданному индексу. Второй, Get(), принимает индекс как аргумент и возвращает значение типа int, содержащееся в элементе с этим индексом. Оба метода должны проверять индекс аргумента, чтобы быть уверенными, что он не выходит за размеры массива.
Вариант 9
Создать класс Date для работы с датами в формате «год, месяц день». Дата представляется структурой с тремя полями типа unsigned int: для года, месяца и дня. Класс должен включать не менее трех функций инициализации: числами, строкой вида «год, месяц, день» (например. «2004.08.31») и датой. Обязательными операциями являются: вычисление даты через заданное количество дней, вычитание заданного количества дней из даты, определение високосности года, присвоение и получение отдельных частей (год, месяц, день), сравнение дат (равно, до, после), вычисление количества дней между датами.
Вариант 10
Рациональная (несократимая) дробь представляется парой целых чисел (а,b), где а — числитель. b — знаменатель. Создать класс Rational для работы с рациональными дробями. Обязательно должны быть реализованы операции:
· сложения add, (a, b) + (c,d) = (ad + be, bd);
· вычитания sub,(а, b) − (с, d) = (ad − be, bd);
· умножения mul, (a, b) * (с, d) = (ас, bd);
· деления div, (a, b) / (c,d) = (ad, be);
Вариант 11
Создать класс Money для работы с денежными суммами. Число должно быть представлено двумя полями: типа long для рублей и типа unsigned char — для копеек. Дробная часть (копейки) при выводе на экран должна быть отделена от целой части запятой. Реализовать сложение, вычитание, деление сумм, деление суммы на дробное число, умножение на дробное число и операции сравнения.
Вариант 12
Создать класс Angle для работы с углами на плоскости, задаваемыми величиной в градусах и минутах. Обязательно должны быть реализованы: перевод в радианы, приведение к диапазону 0−360º, увеличение и уменьшение угла на заданную величину, получение синуса, сравнение углов.
Вариант 13
Создать класс Time для работы со временем в формате «час:минута:секунда». Класс должен включать в себя не менее четырех функций инициализации: числами, строкой (например, «23:59:59»), секундами и временем. Обязательными операциями являются: вычисление разницы между двумя моментами времени в секундах, сложение времени и заданного количества секунд, вычитание из времени заданного количества секунд, сравнение моментов времени, перевод в секунды, перевод в минуты (с округлением до целой минуты).
Вариант 14
Реализовать класс: Account, представляющий собой банковский счет. В классе должны быть четыре поля: фамилия владельца, номер счета, процент начисления и сумма в рублях. Открытие нового счета выполняется операцией инициализации. Необходимо выполнять следующие операции: сменить владельца счета, снять некоторую сумму денег со счета, положить деньги на счет, начислить проценты, перевести сумму в доллары, перевести сумму в евро, получить сумму прописью (преобразовать в числительное).
Вариант 15
Номиналы российских рублей могут принимать значения 1, 2, 5, 10, 50. 100. 500, 1000, 5000. Копейки представить как 0.01 (1 копейка). 0.05 (5 копеек). 0.1 (10 копеек). 0.5 (50 копеек). Создать класс Money для работы с денежными суммами. Сумма должна быть представлена полями−номиналами, значениями которых должно быть количество купюр данного достоинства. Реализовать сложение сумм, вычитание сумм, деление сумм, деление суммы на дробное число, умножение на дробное число и операции сравнения. Дробная часть (копейки) при выводе на экран должна быть отделена от целой части запятой.
Вариант 16
Написать класс для аффективной работы со строками, позволяющий форматировать и сравнивать строки, хранить в строках числовые значения и извлекать их. Для этого необходимо реализовать:
· перегруженные операции присваивания и конкатенации;
· операции сравнения и приведения типов;
· преобразование в число любого типа;
· форматный вывод строки.
Вариант 17
Описать класс «записная книжка». Предусмотреть возможность работы с произвольным числом записей, поиска записи по какому−либо признаку (например, по фамилии, дате рождения или номеру телефона), добавления и удаления записей, сортировки по разным полям.
Вариант 18
Создать класс Fraction для работы с дробными числами. Число должно быть представлено двумя нолями, целая часть длинное целое со знаком, дробная часть — беззнаковое короткое целое. Реализовать арифметические операции сложения, вычитания, умножения и операции сравнения.
Вариант 19
Создать класс Goods (товар). В классе должны быть представлены данные−члены: наименование товара, дата оформления, цена товара, количество единиц товара, номер накладной, по которой товар поступил на склад. Реализовать методы изменения цены товара, изменения количества товара (увеличения и уменьшения), вычисления стоимости товара. Метод toString() должен выдавать в виде строки стоимость товара.
Вариант 20
Описать класс «множество», позволяющий выполнять основные операции — добавление и удаление элемента, пересечение, объединение и разность множеств.
Контрольные вопросы:
3. Как создать проект – консольное приложение?
4. Что такое файл исходного кода? Как добавить такой файл в проект?
5. Как запускается проект в режиме отладки?
6. Что такое развертывание программы?
7. Определение класса? Структура класса?
8. Конструкторы и деструкторы класса?
9. Основные принципы построения классов
10. Спецификаторы доступа ?
11. Экземпляры класса ?
12. Инициализация данных объекта?
13. Переопределение операций?
14. Что такое объект, и каким образом объекты соединяются в систему для решения задачи?
15. Чем характеризуется объект?
16. Каким образом в программных объектах реализуются состояние, поведение и идентификация объектов предметной области?
17. Что такое переопределение операций? Какие операции можно переопределять?
18. В какой последовательности происходит вызов конструкторов и деструкторов при создании объектов.
Дата добавления: 2015-07-30; просмотров: 3091;