12084

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

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

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

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

Русский

2013-04-24

21.75 KB

97 чел.

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

}


 

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

73998. Великая Отечественная война: крупнейшие военные операции 1941 – 1945 годов 21.99 KB
  Великой Отечественной войне первоначальный ход военных действий сложился крайне неблагоприятно для СССР. Суворовым идея неподготовленности СССР к войне оборонительной ввиду подготовки его к войне наступательной иными словами воскрешение еще Гитлером выдвинутой концепции превентивной вынужденной войны с целью обезопасить себя от нападения Красной Армии. Таким образом Советский Союз в упорной борьбе сумел одержать победу в Великой Отечественной и разделить успех с союзниками по антигитлеровской коалиции во II мировой войне. Полководческое...
73999. Деятельность тыла в Великой Отечественной войне. Партизанское движение в годы Великой Отечественной войны 17.77 KB
  Партизанское движение в годы Великой Отечественной войны. Благодаря высокому уровню централизации государственного хозяйства в первые же месяцы войны удалось обеспечить его перестройку на военномобилизационный лад. Успех во многом определялся удачной организацией управления страной в условиях войны: при всех своих издержках советская система как раз и была предназначена для действия в условиях чрезвычайных обстоятельств для быстрой и решительной мобилизации имеющихся ресурсов и их перераспределения в соответствии с первоочередными...
74000. СССР во 2-й половине 50 - 1-й половине 80-х гг. XX в. От попыток либерализации к всеобщему кризису 22.46 KB
  Первые послевоенные годы принесли мало изменений в функционирование политической системы СССР. Будучи отражением реальной потребности в мобилизации сил для быстрого завершения восстановительных работ централизация в то же время подошла к своему пределу за которым она теряла всякую эффективность что отчетливо проявилось в нарастании кризисных явлений во всех сферах жизни СССР в начале 50х гг. Все это подводило руководящие круги СССР к осознанию необходимости преобразований.
74001. Основные направления и этапы внешней политики СССР в годы «холодной войны» 19.09 KB
  Основные направления и этапы внешней политики СССР в годы холодной войны. Победа СССР в войне значительно изменило его международное положение. СССР принял участие в создании ООН где ему было определено место одного из постоянных членов Совета безопасности.президент США сформулировал доктрину Трумена меры против экспансии СССР.
74002. Перестройка 1985 – 1990 годов 22.31 KB
  Именно эти меры положили начало развалу политической системы СССР поскольку именно партийная вертикаль обеспечивала реальное функционирование политической системы; советские органы были властью сугубо номинальной а потому оказались не готовы к выполнению возложенных на них полномочий. когда оппозиции удалось добиться отмены 6й статьи Конституции СССР закрепляющей особую роль КПСС в государственной системе СССР и внушительного представительства в ряде...
74003. Становление новой российской государственности в 1990-е годах 18.55 KB
  Распавшийся Советский Союз оставил весьма сложное наследство России в виде экономического кризиса всеобщего социального недовольства и наконец отсутствия реальной российской государственности. В условиях краха умеренной и консервативной моделей периода перестройки вполне естественной была победа весьма радикальной для России концепции демократического либеральнорыночного государства с ориентацией на западные страны. В принципе основные направления реформ к моменту их осуществления в России были уже испытаны в ряде государств Восточной...
74004. Основные этапы развития исторической науки в России XVIII – начале XX веков 20.07 KB
  Главною заслугою Миллера было собирание материалов по русской истории; его рукописи так наз. И исследования Миллера имели значение он был одним из первых ученых заинтересовавшихся позднейшими эпохами нашей истории им посвящены его труды: Опыт новейшей истории России и Известие о дворянах Российских. видное место трудами по русской истории занял и М.
74005. Основные этапы развития советской исторической науки 23.2 KB
  Начало новому этапу в развитии марксистской исторической мысли положили труды В. И. Ленина. Особенно большое значение для И. имела разработка Лениным теоретико-методологических основ общественных наук (в том числе исторической науки)...
74006. Влияние колониальной эксплуатации на традиционное общество в Индии в XIX – начале ХХ веках 23.77 KB
  Влияние колониальной эксплуатации на традиционное общество в Индии в XIX начале ХХ вв. Заключительным этапом средневековой истории Индии стало возвышение на ее севере в начале XVI в. Власть моголов в Индии укрепилась в годы полувекового правления Акбара 14521605 завоевавшего Бенгалию а вместе с ними и выход к морю. Таким образом в Индии XVIXVII вв.