12084

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

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

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

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

Русский

2013-04-24

21.75 KB

87 чел.

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

}


 

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

10913. Стандарт і якість. Ергономіка та біоніка 35.5 KB
  Тема 10:Стандарт і якість. Ергономіка та біоніка. Мета: Навчальна: сформувати знання вміння та навички пов’язані з даними поняттями. Виховна: виховувати в учнів культуру праці та бережливе ставлення до чужої праці. Естетичне сприймання предметів. Розвиваюча: розви...
10914. Промислова графіка. Умовні знаки, упаковка, реклама їх призначення види застосування 30 KB
  Тема 11: Промислова графіка. Умовні знаки упаковка реклама їх призначення види застосування. Мета: Навчальна: сформувати знання вміння та навички пов’язані з даними поняттями. Виховна: виховувати в учнів культуру праці та бережливе ставлення до чужої праці. Естет
10915. Технологія свердлильних робіт. Свердла, кути заточування свердел 23.5 KB
  Тема 12: Технологія свердлильних робіт. Свердла кути заточування свердел. Мета: Навчальна: сформувати знання навички та вміння свердління виробів з тонколистового металу. Виховна: виховувати в учнів бережливе ставлення до інструментів та культуру праці. ...
10916. Совершенствование организации профессиональной подготовки и повышения квалификации государственных служащих (на примере УФНС России по Пермскому краю) 105.17 KB
  Выявить отличительные особенности профессиональной подготовки, повышения квалификации как вида дополнительного профессионального образования. Определить проблемы, возникающие в ходе реализации профессиональной подготовки и повышения квалификации. Выяснить какие методы совершенствования дополнительного профессионального образования существуют на данный момент. Определить какие методики по совершенствованию профессиональной подготовки существуют на данный момент.
10917. Дріт як конструкційний матеріал. Інструменти і пристосування для роботи з дротом 45.5 KB
  Тема уроку: Дріт як конструкційний матеріал. Інструменти і пристосування для роботи з дротом. Мета уроку: Засвоєння знань про технологічний процес виготовлення дроту його види властивості та галузі його застосування; формування практичних вмінь визначати твердість...
10918. Економічна та екологічна оцінка виробу 71 KB
  Тема уроку: Мета уроку: Засвоєння знань про оцінку виробу його відповідність технічному малюнку. Формування вмінь користуватися вимірювальними пристроями. Розвивати увагу уяву світогляд. Виховувати акуратність допитливість точність. Об'єкт навчальної діяльност...
10919. Припуски на обробку та економне використання тонколистового металу та дроту 64.5 KB
  Тема уроку: Припуски на обробку та економне використання тонколистового металу та дроту Мета уроку: Засвоєння знань про прийоми розмічання. Формування знань про прийоми розмічання заготовки виробу на листовому металі та підготовчі роботи до розмічання та вмінь коре
10920. Процес різання тонколистового металу. Технологія різання листового металу ручними і важільними ножицями 53.5 KB
  Тема. Процес різання тонколистового металу. Технологія різання листового металу ручними і важільними ножицями. Мета: ознайомити учнів з видами слюсарних ножиць навчити різати слюсарними ножицями листовий метал ознайомити учнів з правилами безпечної роботи при різан...
10921. Організація робочого місця в слюсарній майстерні. Прийоми розмічання заготовок на листовому металі 41.5 KB
  Тема. Організація робочого місця в слюсарній майстерні. Прийоми розмічання заготовок на листовому металі. Мета: ознайомити учнів з основними моментами організації робочого місця в слюсарній майстерні навчити користуватися штангенциркулем для розмічання та контролю...