12084

Классы и объекты в С++

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

Информатика, кибернетика и программирование

Отчёт по лабораторной работе №1 По дисциплине Программирование Тема: Классы и объекты в С Вариант №8 Задачи. 1. Определить пользовательский класс в соответствии с вариантом задания смотри приложение. 2. Определить в классе следующие конструкторы: без пар

Русский

2013-04-24

21.75 KB

107 чел.

Отчёт по лабораторной работе №1

По дисциплине «Программирование»

Тема: «Классы и объекты в С++»

Вариант №8

Задачи.

1. Определить пользовательский класс в соответствии с вариантом задания (смотри приложение).

2. Определить в классе следующие конструкторы: без параметров, с параметрами, копирования.

3. Определить в классе деструктор.

4. Определить в классе компоненты-функции для просмотра и установки полей данных.

5. Определить указатель на компоненту-функцию.

6. Определить указатель на экземпляр класса.

7. Написать демонстрационную программу, в которой создаются и разрушаются объекты пользовательского класса и каждый вызов конструктора и деструктора сопровождается выдачей соответствующего сообщения (какой объект какой конструктор или деструктор вызвал).

8. Показать в программе использование указателя на объект и указателя на компоненту-функцию.

Определение пользовательского класса с комментариями.

#ifndef Tovarh

#define Tovarh

class Tovar

{

char* name; // Название Товара

int kol; // Кол-во товара

float price; // Цена

public:

Tovar (); // Конструктор без параметров

Tovar (char*,int,float); // Конструктор с параметрами

Tovar (const Tovar&); // Конструктор копирования

~Tovar (); // Деструктор

char * GetName() ; // Функция получения имени

int GetKol(); // Функция получения кол-ва

float GetPrice(); // Функция получения цены

void SetName(char*); // Функция изменения имени

void SetKol(int); // Функция изменения кол-ва

void SetPrice(float); // Функция изменения цены

void Set(char*,int,float); // Функция изменения всех параметров

void Show(); // Функция показа всех параметров

};

#endif

Реализация конструкторов и деструктора.

Tovar::Tovar ()

{

setlocale (0,"");

cout<< "\nКонструктор без параметров вызван для объекта. " << this <<endl;

name = new char('\0'); // Выделяем память под \0

kol=0;price=0;

}

Tovar::Tovar (char* NAME,int KOL,float PRICE)

{

setlocale (0,"");

cout<< "\nКонструктор c параметрами вызван для объекта. " << this << endl;

name = new char [strlen(NAME)+1];

strcpy (name,NAME);

kol=KOL;

price=PRICE;

}

Tovar::Tovar (const Tovar& ob)

{

setlocale (0,"");

cout<< "\nКонструктор копирования вызван для объекта. " << this <<endl;

name = new char [strlen(ob.name)+1];

strcpy (name,ob.name);

kol = ob.kol;

price = ob.price;

}

Tovar::~Tovar ()

{

setlocale (0,"");

cout << "\nВызов деструктора. " << this << endl;

 delete name;

}

Фрагмент программы, показывающий использование указателя на функцию.

void (Tovar::*pf)(); // Инициализируем указатель

pf=&Tovar::Show; // Записываем адрес функции показа всех параметров

(zavoz[2].*pf)(); // Вызов функции Show через указатель

Программа.

void main ()

{

Tovar(); // Конструктор без параметров, инициализация переменых

 

Tovar one("Ноутбук",13,17500); // Конструктор с параметрами

Tovar two=one; // Конструктор копирования

two.Show(); // Получение все параметров

one.Set("Компьютер",15,20000); // Изменение все параметров

 one.GetName();

one.GetKol();

one.GetPrice();

Tovar thri=two;

thri.SetName ("Планшет");

thri.SetPrice (15000);

thri.Show();

Tovar zavoz[3]; // массив студентов размещается в статической памяти

 zavoz[0].Set("Флешки",50,250);

zavoz[0].Show();

zavoz[1].Set("Клавиатуры",23,880);

zavoz[1].Show();

zavoz[2].Set("Мышки",17,300);

 

 void (Tovar::*pf)();

 pf=&Tovar::Show; // Записываем адрес функции показа всех параметров

(zavoz[2].*pf)(); // Вызов функции Show через указатель

Tovar *z; // массив студентов размещается в динамической памяти

 z = new Tovar [3];

z[0].Set("Кулеры",30,150);

z[0].Show();

z[1].Set("USB Лампочки",30,100);

z[1].Show();

z[2].Set("Диски BD",30,150);

 

 (z[2].*pf)(); // Вызов функции Show через указатель

 delete []z; // Удаление массива из динамической памяти, если этого не сделать он останеться.

}


 

А также другие работы, которые могут Вас заинтересовать

5130. Морфология, физиология и патология опорно-двигательного аппарата 104 KB
  Морфология, физиология и патология опорно-двигательного аппарата Цель: сформировать умение оценивать состояние ОДА. Вопросы для самоподготовки:. Строение скелета головы, туловища и конечностей. Общие сведения о мышцах. Их строение. ...
5131. Внутриутробное развитие организма. ВПР. Закономерности роста и развития организма 52.5 KB
  Внутриутробное развитие организма. ВПР. Закономерности роста и развития организма Цель: сформировать умение визуально выделять патологические изменения и различать ВПР. Вопросы для самоподготовки: Организм как единое целое. Понятие о био...
5132. Генетика микроорганизмов. Генотипическая изменчивость 474.5 KB
  Генетика микроорганизмов До 40-х гг. 20 в. считалось, что, поскольку у микроорганизмов нет ядерного аппарата и мейоза, на них не распространяются законы Менделя и хромосомная теория наследственности. С начала 40-х гг. микроорганизмы становятся объек...
5133. Латинский язык и основы терминологии 450 KB
  Тема: Латинский алфавит. Правила чтения. Ударение. Задание 1. Прочтите следующие термины, обратите внимание на произношение букв и буквосочтаний: а) apex верхушка crista гребень tuber бугор sulcus борозда canalis канал tuberculum бугорок fissu...
5134. Общая патология клетки. Повреждение клетки 120 KB
  Общая патология клетки. Повреждение клетки: Нарушение функционирования клетки, которое сохраняется после удаления повреждающего агента Генетически детерминированные или приобретенные изменения метаболизма, физико-химических параметров, к...
5135. Кадровая политика на предприятии 71.5 KB
  Создание конкурентоспособного предприятия всегда связано с людьми, которые работают на предприятии. Организация возможностей фирмы заключена в новых методах управления и зависит от конкретных людей, знаний, компетенции, квалификации, дисциплины, мот...
5136. Формы расчетов, применяемые при осуществлении внешнеэкономической деятельности 24.59 KB
  Формы расчетов, применяемые при осуществлении внешнеэкономической деятельности Внешнеэкономическая деятельность неразрывно связана с необходимостью определения форм расчетов. Под формами расчетов понимаются сложившиеся в международном коммерческом о...
5137. Принципы формирования кадровой политики. Кадровая политика и стратегия управления персоналом 59.5 KB
  Принципы формирования кадровой политики. Кадровая политика и стратегия управления персоналом Кадровая политика – главное направление в работе с кадрами, набор основополагающих принципов, которые реализуются кадровой службой предприятия. В этом ...
5138. Структура механизмов. Классификация кинематических пар 330.69 KB
  Структура механизмов. Классификация кинематических пар Кинематические пары (КП) классифицируются по следующим признакам: 1) по виду места контакта (места связи) поверхностей звеньев: - низшие, в которых контакт звеньев осуществляется по плоскости ил...