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

Админов: 4
Работников: 4
Клиентов: 3
Гостей: 9

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

















Бизнес-уровень
программирование
экономика
юриспруденция




Проверить аттестат


Бизнес-уровень
математика
физика
психология




Проверить аттестат




Яндекс цитирования






Грызи гранит не портя зубы;)


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









Класс!









Stats









Логин: Пароль:       

KURSOVIK.COM 12 лет ONLINE KURSOVIK.COM

Поиск готовой работы
KURSOVIK.COM работаем с 2001 года
ВКонтактеFacebookНаш Instagram
Объектно ориентированное программирование

2ЛАБОРАТОРНЫЕ РАБОТЫ ПО ОБЪЕКТНО-ОРИЕНТИРОВАННОМУ ПРОГРАММИРОВАНИЮ

Заказать 2ЛАБОРАТОРНЫЕ РАБОТЫ ПО ОБЪЕКТНО-ОРИЕНТИРОВАННОМУ ПРОГРАММИРОВАНИЮ

4.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 заголовочные файлы , , , а также ваш заголовочный файл "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. Выведите данные объ-екта на экран.

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

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

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;


5 ПРАВИЛА ОФОРМЛЕНИЯ ЛАБОРАТОРНЫХ РАБОТ

А) Лабораторная работа состоит в выполнении задания (глава 4), описании материала в формате MS WORD и подго-товке файлов проекта (файлы *.ехе, *.cpp, *.h) Задание может быть выполнено в любой среде программирования С++ (VC++ или встроенного компилятора электронного учебника), но с обязательным ее указанием в файле отчета (дело в том, что су-ществуют некоторые отличия программирования в средах, на-пример Visual Studio и Borland).

Б) Лабораторная работа обязательно должна содержать:
- краткое изложение теоретического материала по каждому из рассматриваемых разделов;
- комментарии по тексту программы, описывающие основ-ные особенности объектно-ориентированного программирова-ния на С++;
- объектно-ориентированные дополнения (создание нового класса, применение явного наследования и др.) и изменения, приводящие к усложнению варианта лабораторных работ.

В) Окончательно сформированное задание содержит файл описания word и файлы проекта *.ехе, *.cpp, *.h.




 Форма заказа 

   Для удобства наших клиентов, проходящих обучение в ТУСУР-е, была создана форма заказа.
С помощью нее Вы можете БЕСПЛАТНО УЗНАТЬ СТОИМОСТЬ выполнения нужных Вам заданий и заказать выполнение работ по тем дисциплинам, которые Вам необходимы.
   Вы также можете прислать заявку по электронной почте на наш E-mail адрес tusur@kursovik.com

Пожалуйста заполните все необходимые поля формы:

Ваше имя:
Ваш город:
Ваша страна:
Ваш E-mail:
Сотовый:
ICQ:
Ваша учебная специальность:
Код для расчета варианта:

Список дисциплин, которые необходимо выполнить:

Пример заполнения: Методичка 'СИНЕРГЕТИКА ДЛЯ ПРОГРАММИСТОВ' В.М. Зюзьков
2 текстовые контрольные работы по заданиям в учебно-методическом пособии:
1. Контрольная работа №1 на стр 154 вариант 15
2. Контрольная работа №2 на стр 157 вариант 9


Чтобы приложить к заявке файл, нажмите кнопку
(максимальный размер файла не должен привышать 20 Мб)

ВНИМАНИЕ ! Если заданий много, нет смысла прикладывать методички (если они стандатрные) просто напишите автора, название методички и год издания - этого будет более чем достаточно, если какой-либо методички у нас не окажется - мы у Вас ее запросим отдельно в ходе перписки по заказу.


Работы необходимо выполнить до:


Введите код с картинки:
код


ВНИМАНИЕ ! На работу предоставляется гарантия - т.е. мы БЕСПЛАТНО внесем в ее текст все необходимые дополнения/изменения (в разумных пределах) если это потребуется в будущем (в течение 6-и месяцев). Другими словами - в течение полугода Вы можете обращаться с любыми мелкими доработками(дополнениями) этого заказа - всё сделаем бесплатно и в кратчайшие сроки. Если дополнения будут значительно существенными (более 20 процентов)), то тогда уже за отдельную плату. Практика показала, что с первого раза работу не принимают ни при каких обстоятельствах, даже если она выполнена безупречно, всё равно преподаватель находит там ошибки, а зачастую просто их выдумывает. Обычно работу удается защитить со второго или третьего раза, мы уже к этому привыкли. Мы будем исправлять ошибки в работе столько раз, сколько этого требует Ваш преподаватель.

© 2001-2016 kursovik.com