12084

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

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

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

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

Русский

2013-04-24

21.75 KB

100 чел.

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

}


 

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

19463. Institute on Mathematics and Mechanics, Urals Branch of Russian Academy of Science and Urals State University 59 KB
  This theoretical paper is devoted to research of computer metaphor’s sources. Metaphors are actively used in designing of modern interaction and visualization systems. The paper contains the discussion of problems of metaphor search and/or metaphor generations. One of possible hierarchy of computer metaphors is described.
19464. THEORY AS A BRIDGE BETWEEN EDUCATION, RESEARCH AND DEVELOPMENT IN HUMAN-COMPUTER INTERACTION AND COMPUTER VISUALIZATION 72 KB
  The theory is necessary to analyze an existing state of the practice, to train new professionals and to use in the practical work. One may find two main approaches to a choice of foundations for the theories of the computer visualization and human-computer interaction which can be roughly described as psychological and semiotical. The paper contains discussion on the theories of computer visualization and human-computer interaction and considers the role of the theories in education and development processes.
19465. Договор энергоснабжения и его характеристики 32.5 KB
  Договор энергоснабжения Договор энергоснабжения относится к договорам куплипродажи. Одна сторона передает другой за плату определенный товар энергию. Вместе с тем указанный товар обладает специфическими свойствами что требует особого регулирования договорн...
19467. Не коммерческие юридические лица 29.5 KB
  Не коммерческие юридические лица. Некоммерческие организации могут создаваться в форме: общественных или религиозных организаций объединений некоммерческих партнерств учреждений автономных некоммерческих организаций социальных благотворительных и иных фондов...
19468. Понятие и виды обязательств 31 KB
  Понятие и виды обязательств. Обязательство это гражданское правоотношение в силу которого одно лицо должник обязано совершить в пользу другого лица кредитора определенное действие передать вещь выполнить работу либо воздержаться от определенного действия а кре...
19469. Понятие и виды юридических лиц 23.5 KB
  Понятие и виды юридических лиц. Юридическое лицо́ организация имеющая в собственности хозяйственном ведении или оперативном управлении обособленное имущество в соответствии с которым отвечают по обязательствам. Виды. Юр.Лица бывают: Коммерческие Тов...
19470. Понятие и классификация вещей 30.5 KB
  Понятие и классификация вещей Вещи объекты гражданских прав имеющие материальную осязаемую форму товара имеют следующую классификацию: недвижимые объекты перемещение которых затруднено в связи с их особой связью с землей земельные участки леса здания...
19471. Основні види архітектури ВМ 14.02 KB
  Основні види архітектури ВМ. По разрядности интерфейсов и машинных слов: 8 16 32 64 128 разрядные ряд ЭВМ имеет и иные разрядности По особенностям набора регистров формата команд и данных: CISC RISC VLIW; По количеству центральных процессоров: однопроцессорные многопроцесс