12084

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

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

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

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

Русский

2013-04-24

21.75 KB

82 чел.

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

}


 

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

19434. Технологии работы с графической информацией. Растровая и векторная графика. Аппаратные средства ввода и вывода графических изображений 303 KB
  Технологии работы с графической информацией. Растровая и векторная графика. Аппаратные средства ввода и вывода графических изображений. Прикладные программы работы с графикой. Графический редактор. Основные инструменты и режимы работы. Раздел информатики занимающийс...
19435. Табличные базы данных (БД): основные понятия (поле, запись, первичный ключ записи); типы данных. Системы управления базами данных и принципы работы с ними 113.5 KB
  Табличные базы данных БД: основные понятия поле запись первичный ключ записи; типы данных. Системы управления базами данных и принципы работы с ними. Поиск удаление и сортировка данных в БД. Условия поиска логические выражения; порядок и ключи сортировки. Любой из на...
19436. Технология обработки информации в электронных таблицах (ЭТ). Структура электронной таблицы. Типы данных: числа, формулы, текст 212.5 KB
  Технология обработки информации в электронных таблицах ЭТ. Структура электронной таблицы. Типы данных: числа формулы текст. Правила записи формул. Основные встроенные функции. Абсолютные и относительные ссылки. Графическое представление данных. При работе с документ...
19437. Основные принципы организации и функционирования компьютерных сетей. Интернет. Информационные ресурсы и сервисы компьютерных сетей 102 KB
  Основные принципы организации и функционирования компьютерных сетей. Интернет. Информационные ресурсы и сервисы компьютерных сетей: Всемирная паутина файловые архивы интерактивное общение. Назначение и возможности электронной почты. Поиск информации в Интернете. В
19438. Понятие модели. Информационная модель. Виды информационных моделей (на примерах). Реализация информационных моделей на компьютере 930 KB
  Понятие модели. Информационная модель. Виды информационных моделей на примерах. Реализация информационных моделей на компьютере. Пример применения электронной таблицы в качестве инструмента математического моделирования. Человечество в своей деятельности научной ...
19439. Виды гражданских правоотношений 26.5 KB
  Виды гражданских правоотношений Классификация гражданских правоотношений может проводиться по различным основаниям: Абсолютные и относительные правоотношения – выделяют по характеру взаимосвязи управомоченного и обязанного лица; В абсолютном правоотнош...
19440. Понятие и содержание гражданской правоспособности 23 KB
  Понятие и содержание гражданской правоспособности. Правоспособность способность лица иметь гражданские права и нести гражданские обязанности признается в равной мере за всеми гражданами Содержание В соответствии со ст. 18 ГК граждане могут иметь имущество на пра
19441. Понятие и структура дееспособности. Дееспособность малолетних и несовершеннолетних. Эмансипация 26 KB
  Понятие и структура дееспособности. Дееспособность малолетних и несовершеннолетних. Эмансипация. Дееспособность граждан определяется как способность лица своими действиями приобретать и осуществлять гражданские права создавать для себя гражданские обязанности и и
19442. Ограничение дееспособности и признание граждан недееспособными 24.5 KB
  Ограничение дееспособности и признание граждан недееспособными. Гражданин который вследствие психического расстройства не может понимать значения своих действий или руководить ими признается судом недееспособным. В этом случае гражданин не вправе совершать в...