Главная страница   
Экстренная связь
Сейчас на сайте

Админов: 3 из 8
Исполнителей: 8 из 188
Клиентов: 20 из 8701

Наша помощь
Оценить задание
• Программирование
Информатика
Базы данных
СУБД
• Разработка ПО
Бухгалтерский учёт
Экономика, Аудит
Финанс. менеджмент
Финансовый анализ
Эконом. теория
Эконом. предприятия
Финансы и кредит
Менеджмент
Маркетинг
• ТУСУРовцам
Юриспруденция
Право
Психология
Психологическая консультация
Математика
Исследование операций
Методы оптимизации
Физика
Радиотехника
Электроника
Схемотехника
Механика
Метрология
• Перефразирование
История
Английский
Другой предмет
Готовые работы
• Каталог
Программирование
Экономика, Аудит
Бухгалтерский учёт
Финансы и кредит
Юриспруденция
Право
История
Психология
Механика
Информация
О сайте
Наши цены
Соглашение
Наши гарантии
Способы оплаты
Вопросы и ответы
Отзывы клиентов
Бонусы и скидки
Регистрация
Вакансии
Написать письмо
Мы работаем
ЕЖЕДНЕВНО
с 9:30 до 23:30 msk
ПИШИТЕ НАМ
  +79374242235
  +79374242235
  kursovikcom
  kursovikcom

Поиск готовой работы


Разное
Архив заказов
Анекдоты
Облака тегов
Карточные игры
Преподы-монстры
Антиплагиат
Мысли вслух

Банковские карты
QIWI
Юmoney


Яндекс.Метрика











Объектно-ориентированное программирование ЛР1, ЛР2. Объект согласно варианту 1. СТУДЕНТ имя — char* курс — int пол — int(bool)

Лабораторная работа
в среде программирования С++ под Windows



Если Вы считаете, что данная страница каким-либо образом нарушает Ваши авторские права, то Вам следует обратиться в администрацию нашего сайта по адресу info@kursovik.com либо через форму обратной связи

Среда программирования: С++ под Windows

Название работы: Объектно-ориентированное программирование ЛР1, ЛР2. Объект согласно варианту 1. СТУДЕНТ имя — char* курс — int пол — int(bool)

Вид работы: Лабораторная работа

Описание: Предмет: Объектно-ориентированное программирование

Лабораторная работа № 1
Тема: Классы. Открытые и закрытые уровни доступа. Конструкторы. Инициализация данных объекта. Определение методов. Создание объекта в памяти. Стандартные потоки ввода-вывода.
Вариант №1
Задание
1. В среде программирования на С++ создайте консольный проект с именем LAB1 в каталоге LAB1.
2. В проекте создайте файлы main.h (заголовочный файл) и main.cpp (файл исходного кода).
3. В файле main.h определите с помощью ключевого слова class объект Person.

Данные объекта:
Номер человека (целый тип)
ФИО (символьный массив)
Пол (логический тип: 0-муж., 1-жен.)
Возраст (вещественный тип)
Пусть данные имеют закрытый уровень доступа (private).
4. Опишите конструктор объекта, аргументы которого будут инициализировать все данные объекта.
5. Опишите конструктор объекта по умолчанию (без аргументов), проинициализировав все данные.
6. Опишите в объекте функцию void Print() с открытым уровнем доступа (public), которая будет выводить данные на экран.
7. Откройте файл main.cpp. С помощью директивы #include включите в файл main.cpp заголовочные файлы <stdlib.h>, <string.h>, <iostream.h>, а также ваш заголовочный файл "Main.h".
8. Ниже определите конструктор объекта, инициализирующий все данные объекта значениями аргументов. В теле конструктора используйте функцию strcpy(стр1, стр2) для копирования строки имени человека (ФИО).
9. Затем определите функцию void Person::Print(). В теле функции для вывода данных используйте стандартный поток вывода cout << значение1 << значение2 << … << endl;
10. Ниже напишите главную функцию программы int main(). Внутри ее создайте объект Person, указав все значения данных объекта. Выведите данные объекта на экран, вызвав функцию Print.
11. Затем создайте динамический объект Person с помощью обычного конструктора и оператора new. Выведите данные объекта на экран. Удалите динамический объект из памяти с помощью оператора delete.
12. Напишите функцию ввода данных в объект с клавиатуры void Person::Input(). В теле функции для ввода данных используйте стандартный поток ввода cin >> значение1 >> значение2 >> … ;
13. Затем в теле функции main создайте объект Person с помощью конструктора по умолчанию и введите данные в объект с клавиатуры, вызвав функцию Input. Выведите данные объекта на экран.

Объект согласно варианту 1
1. СТУДЕНТ
имя — char*
курс — int
пол — int(bool)

Лабораторная работа № 2

Тема: Создание динамического массива объектов.
Деструктор объекта. Два типа полиморфизма: принудительное приведение типа, перегрузка функций и перегрузка операторов (унарных и бинарных).

Вариант №1

Задание
1. В среде программирования на С++ создайте консольный проект с именем LAB2 в каталоге LAB2.
2. Переименуйте файл main.h из предыдущей лабораторной в person.h. Создайте файл person.cpp и включите в проект эти два файла. Переместите конструктор и функции объекта Person из main.cpp в файл person.cpp. Таким образом, файл person.h содержит описание объекта Person, а файл person.cpp — реализацию объекта Person.
3. Включите в проект файл main.cpp и очистите тело функции main().
4. Определим объект Group, который будет содержать динамический массив объектов Person. Создайте два файла group.h и group.cpp и включите их в проект.
5. В файле group.h определите с помощью ключевого слова class объект Group.
Данные объекта:
размер массива (целый тип)
указатель на массив (тип Person*).
Пусть данные имеют закрытый уровень доступа (private).
6. Опишите конструктор объекта с одним аргументом — размер массива (целый тип) и деструктор объекта.
7. Откройте файл group.cpp. С помощью директивы #include включите необходимые заголовочные файлы.
8. Определите конструктор объекта Group. В теле конструтора проинициализируйте данные объекта, т.е. проинициализируйте размер массива значением аргумента конструктора и выделите динамическую память под массив с помощью строки кода:
указатель на массив = new Person[размер массива].
9. В деструкторе объекта освободите память, занимаемую массивом, с помощью строки кода
delete [] указатель на массив.
Таким образом, мы создали объект Group, который содержит массив объектов Person.
10. Определим открытые (public) методы для объекта Group. Напишите функцию void Group::Print(), которая выводит в цикле for все записи массива на экран. В теле цикла примените ранее написанную функцию Print() для объекта Person.
11. Напишите функцию int Group::Size(), которая возвращает размер массива.
12. Напишите функции void PutPerson(int i, Person& man); и Person& GetPerson(int i);, первая функция заносит объект man типа Person в i-й элемент массива, вторая функция возвращает объект типа Person из i-го элемента массива.
13. Заполните массив данными и затем выведите их на экран. Для этого в теле функции int main() сначала определите массив имен, которые будут заносится в поле ФИО объекта Person, например,
char names[5][25] = {"A", "B", "C", "D", "E"};.
Затем создайте объект с именем group типа Group размером пять записей, т.е. Group group(5);.
14. Ниже с помощью цикла for заполните массив данными.
Для этого в теле цикла создайте объект Person, проинициализировав все его данные, и с помощью функции PutPerson занесите объект в массив.
15. Выведите массив на экран с помощью строки кода:
group.Print();. Получилось? Если да, то вы научились создавать динамический массив объектов, определять функции работы с таким массивом и выводить его на экран.
16. В этой части лабораторной работы изучим первые два типа полиморфизма — это а) принудительное приведение типа;
б) перегрузка функций и операторов.
17. Напишите функцию приведения типа. Для этого с по мощью ключевого слова operator напишите функцию объекта
Person, которая преобразует тип Person в double. Пусть функция
возвращает возраст человека, например,
Person::operator double() { return this->Age; }.
Что означает ключевое слово this?
18. Проверьте функцию преобразования типа. В функции int main() далее определите переменную double и присвойте ей
объект Person, например:
double age = group.GetPerson(2);.
То есть совершается неявное преобразование из типа Person
в тип double при обращении к объекту. Выведите значение переменной на экран.
19. Перегруженные функции имеют одинаковое название, но разный возвращаемый тип или/и разный список аргументов.
Определим в объекте Group две функции с одинаковым именем, например double Age(); и double Age(int limit);. Первая функция пусть возвращает средний возраст группы людей, а вторая функция пусть возвращает средний возраст людей в группе, возраст которых не больше некоторого граничного значения limit. Функции отличаются списком аргументов.
20. Проверьте работу перегруженных функций, отобразив на экране подсчитанные два значения среднего возраста.
21. Перегрузите оператор индексирования. Если раньше, чтобы обратиться к элементу массива, нам необходимо было вызывать функцию GetPerson, то, определив оператор индексирования, мы будем использовать только квадратные скобки. Сравните две строки кода:
Person man = group.GetPerson(2);
Person man = group[2];
В объекте Group с помощью ключевого слова operator определите оператор индексирования, например:
Person& Group::operator[](int i).
В теле оператора напишите код, возвращающий i-ый элемент массива, т.е. объект Person.
22. Выведите на экран с помощью оператора индексирова ния любой один элемент массива group, например третий.
23. Перегрузим бинарный оператор, например оператор
сложения (+), для объекта Person. Пусть оператор сложения будет возвращать суммарный возраст двух человек. Опишем в объекте Person данный оператор как дружественную функцию с помощью ключевого слова friend, например:
friend double operator+(Person& p1, Person& p2);
Эта строка кода означает, что оператор сложения не принадлежит объекту, но ему доступны все закрытые данные и методы объекта. В файле person.cpp определите оператор сложения, например:
double operator + (Person& p1, Person& p2)
{ return (p1.Age + p2.Age); }
Здесь мы напрямую обращаемся к закрытому полю Age объекта Person.
24. Проверим работу оператора с помощью следующих строк кода:
double sum = group[1] + group[3];
cout << sum << endl;

Объект согласно варианту 1
1. СТУДЕНТ
имя — char*
курс — int
пол — int(bool)

Год: 2021

<<< Назад к списку

Данный заказ (лабораторная работа) выполнялся нашим сайтом в 2021-м году, в рамках этого заказа была разработана программа в среде программирования С++ под Windows. Если у Вас похожее задание на программу, которую нужно написать на С++ под Windows, либо на другом языке программирования, пожалуйста заполните форму, приведённую ниже, после чего Ваше задание в первую очередь рассмотрит наш программист, выполнявший в 2021-м году этот заказ, если он откажется, то Ваше задание оценят другие наши программисты в течение 48-и часов, если оценка нужна срочно, просим Вас оставить пометку об этом - напишите в тексте задания фразу "СРОЧНЫЙ ЗАКАЗ".

Купить эту работу

Тел.: +79374242235
Viber: +79374242235
Telegram: t.me/kursovikcom
ВКонтакте: vk.com/kursovikcom
WhatsApp +79374242235
E-mail: info@kursovik.com
Skype: kursovik.com





ВНИМАНИЕ ! Сотрудники сайта KURSOVIK.COM в своей работе осуществляют сбор, обработку и обобщение информации по предложенным клиентам темам. Результатом данной работы является информационная подборка, которая НЕ ЯВЛЯЕТСЯ готовой НАУЧНОЙ РАБОТОЙ, она лишь служит основой для её написания самим клиентом.
Данный сайт НЕ ЯВЛЯЕТСЯ средством массовой информации.
Данный сайт НЕ ЯВЛЯЕТСЯ рекламой каких-либо товаров или услуг.
© 2001-2023 kursovik.com
➥ Оценить задание
➥ Контакты