12084

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

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

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

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

Русский

2013-04-24

21.75 KB

109 чел.

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

}


 

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

67078. Дерева, кущі, трав’янисті рослини. Якими бувають рослини. Запис і читання трицифрових чисел. Випадки додавання і віднімання пов’язані з нумерацією чисел. Задача на три дії 60 KB
  Сьогодні ми дізнаємося на які групи поділяються рослини. А також будемо вправлятися у записуванні трицифрових чисел, у додаванні та відніманні розрядних чисел, будемо розв’язувати задачу на три дії. III. Перевірка домашнього завдання. Біля входу в царство нас зустрічає принцеса.
67079. Змінювання іменників за зразком: один - багато 53 KB
  Мета: удосконалювати уміння розпізнавати слова, які означають назви предметів; вчити змінювати слова-назви предметів за зразком: один-багато; сприяти усвідомленню того факту, що всі люди мають рівні права; розвивати уміння працювати в парі та групі; виховувати почуття власної гідності, повагу до інших.
67080. Конспект уроку з міжпредметними зв’язками (Я і Україна, рідна мова) «У царстві тварин» 170 KB
  Мета: ознайомити учнів з різноманітним світом тварин; формувати поняття комахи птахи звірі навчати їх розпізнавати за істотними зовнішніми ознаками; розвивати логічне мислення через завдання на порівняння доведення вилучення зайвого встановлення взаємозвязку між рослинами і тваринами між самими тваринами...
67081. Зима щедра святами. Інтегрований урок з курсу «Я і України» та позакласного читання 98 KB
  Сьогодні ми з вами більш детальніше зупинимося на дні Святого Миколая, Новому році та Різдві Христовому. У кожного з вас є картка із зображенням або ялинкових прикрас, або зірочок, або чобітків. Я пропоную вам пересісти за той стіл, де назва свята пов'язана, на вашу думку, із зображенням на картці.
67082. Я і Україна та математика. У царстві тварин 150.5 KB
  Продовжити знайомство учнів з різноманітним світом тварин; формувати поняття комахи птахи звірі навчати їх розпізнавати за істотними зовнішніми ознаками;продовжити формувати навички та вміння розпізнавати серед чотирикутників прямокутники розв'язування складених задач на знаходження невідомого доданку; знаходити значення буквених виразів...
67084. Різноманітність тваринного світу. Інтегрований урок (природознавство, математика, трудове навчання) 174.5 KB
  Учити розрізняти групи тварин: хребетні безхребетні; формувати вміння визначити істотні ознаки тварин. Закріплювати знання нумерації багатоцифрових чисел: читати записувати представляти число у вигляді суми розрядних доданків; удосконалювати обчислювальні навички вміння розвязувати задачі та знаходження площі і периметру...
67085. Інтегрований урок мови й мовлення. «Мелодія осіннього саду» 45 KB
  Мета: закріплювати знання учнів з теми Речення та члени речення; розширювати узагальнювати знання учнів з теми Осінь; розвивати вміння добирати виразні мовні засоби для передання того що вразило уяву усно вміння висловлювати свої почуття збагачувати словниковий запас...
67086. Курс «Я і Україна. Природознавство». Південний берег Криму. Математика. Додавання та віднімання багатоцифрових чисел 70.5 KB
  Мета: курс « Я і Україна. Природознавство »: ознайомити дітей із розташуванням, кліматом, рослинним і тваринним світом Південного берегу Криму, представити Крим як всеукраїнську здравницю; розвивати усне мовлення, увагу, уяву; виховувати дбайливе ставлення до багатства природи України; математика: повторити прийоми додавання та віднімання багатоцифрових чисел...