12084

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

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

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

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

Русский

2013-04-24

21.75 KB

99 чел.

Отчёт по лабораторной работе №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; // Удаление массива из динамической памяти, если этого не сделать он останеться.

}


 

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

25442. Основные состовляющие системы социальной защиты в странах Европы 11.77 KB
  Европейская модель отличается от американской высокой степенью участия государства в определении направлений планирований финансирований и непосредственных проведений в жизнь социальной политики. Первые специализированные законы по социальной защите были приняты в 1936 году о защите ребенка об алкоголизме о бродяжничестве это был шаг к созданию структуры социальной защиты и предоставлению социальных услуг по целевым программам. В сферу социальной защиты входят: здравоохранение пенсии уход за престарелыми детские дома помощь...
25443. Модель социальной защиты 12.06 KB
  К моменту вторжения на советскую территорию в немецких войсках предназначенных к войне на Восточном фронте было сформировано 19 рот пропаганды и 6 взводов военных корреспондентов СС. Внутренняя структура министерства пропаганды постоянно менялась росло число отделов. Под контролем министерства пропаганды находилось все немецкое радиовещание.
25444. Сущностная характеристика социальной работы 17.91 KB
  Сущностная характеристика социальной работы. Соц. Человек как объект соц. Множество потребностей человека определяется его двойственной социальнобиологической природой.
25446. Этапы развития социальной работы как научного знания и практики 35.06 KB
  Этапы развития социальной работы как научного знания и практики Термин социальная работа был впервые использован в Англии в связи с расширением в начале XX столетия направлений деятельности одной из религиозных общественных организаций COS занимающихся филантропией или как ее называли тогда любительской дилетантской работой. Эта новая деятельность и стала называться социальной работой. Уже в этот период возникает необходимость выделения адресной помощи нуждающимся что сегодня и представляет собой один из основных принципов...
25447. Тенденции изменения практики социальной работы в современном обществе 18.17 KB
  Такой теорией и является теория социальной работы что со всей очевидностью вытекает из ее характера как системы видов деятельности по защите слабых общественных групп. Теория социальной работы составляет органическую часть тех социологоориентированных и психологоориентированных теорий которые связывают социальную теорию в целом с прикладными исследованиями этого круга проблем. Учеб заведения по подготовке соц работников и возникла необходимость разработки теоретических основ СР.
25448. Основные современные государственные концепции и модели социальной работы 30.46 KB
  основные современные государственные концепции и модели социальной работы. Основные модели теоретического обоснования практики социальной работы отражают не только результаты научных поисков ученых разных школ но и ее эволюцию изменения в самом содержании и формах социальной работы. Каждая модель содержит некоторые теоретические положения связь со смежными науками о человеке и обществе естественными и социокультурными основами жизни а также предполагает вполне определенное содержание социальной работы методы и формы содействия...
25449. Психолого-ориентированные модели 18.08 KB
  Получили распространение в связи с тем что ее современная стратегия ориентирует соц.работников на то чтобы помочь клиентам оптимизировать собственные усилия по изменению ситуации возникшей на личностном и соц. Основные понятия психодинамической модели опирающиеся на психоанализ вошли в ранг категорий соц. Выполняет функцию универсальной технологии применяемой ко всем сферам соц.
25450. Надзор и контроль за соблюдением законодательства об охране труда 148.5 KB
  Контроль за состоянием охраны труда и его виды. Органы государственного надзора за охраной труда. Компетенция Госгорпромнадзора в сфере надзора и контроля за соблюдением законодательства об охране труда. Права и ответственность должностных лиц специально уполномоченного центрального органа исполнительной власти по надзору за охраной труда.