Демонстрирация реализации наследования на при построении архитектуры приложения на заданную тему

Страницы работы

Содержание работы

Министерство образования Республики Беларусь

Учреждение образования

Белорусский государственный университет

информатики и радиоэлектроники

Специальность: Маркетинг

КОНТРОЛЬНАЯ РАБОТА 2

по курсу «Объектно-ориентированное программирование

и проектирование»

Вариант № 1

Выполнил:

.

группа №702221с, шифр №21

Адрес: 220039, г. Минск, ул. Чкалова,

дом № 19, квартира № 3 е-мейл cardinal@iptel.by

МИНСК 2010

Контрольная работа № 2

Задание:

Интернет-магазин.

Администратор добавляет информацию о Товаре. Клиент делает и оплачивает Заказ на Товары.

Требования к контрольной работе:

Продемонстрировать реализацию наследования на при построении архитектуры приложения на заданную тему.

В состав класса входят следующие функции-члены класса:

конструктор с параметрами;

деструктор;

функция просмотра текущего состояния объектов;

функция-друг;

виртуальная функция;

перегрузка двух любых «не парных» (не «+» и «-», а «+» и «++») операторов +,-. ++,--,=. == и др

Листинг программы:

Файл «Tovar.h»

// Tovar.h: interface for the CTovar class.

//

//////////////////////////////////////////////////////////////////////

#if !defined(AFX_TOVAR_H__A0B326BA_3C8E_4AEB_8BD4_4FBE8184422B__INCLUDED_)

#define AFX_TOVAR_H__A0B326BA_3C8E_4AEB_8BD4_4FBE8184422B__INCLUDED_

#if _MSC_VER > 1000

#pragma once

#endif // _MSC_VER > 1000

#include <stdio.h>

#include <string.h>

/////////////////////////////

///class CTovar 

/////////////////////////////

class CTovar 

{

protected:

char tovar_name[20];//наименование товара

double cost;//стоимость  товара

int number;//номер товара

public:

CTovar();//конструктор по умолчанию

virtual ~CTovar();//декструктор

//инициализация свойств объекта CTovar вводом с клавиатуры

void InitData();

//перегрузка оператора присваивания

CTovar &operator = (const CTovar &);

//перегрузка оператора ++ префиксная форма

friend CTovar operator++(CTovar);

//вернуть значение "наименование товара"

char * getTovarName();

//вернуть значение "наименование товара"

double getCost();

//установить значение для номера товара

void setNumber(int num);

//вернуть значение для номера товара

int getNumber();

};

/////////////////////////////

///class CTovarList 

/////////////////////////////

class CTovarList

{

int current;//размер списка товаров

public:

CTovar * list;//указатель на начало списка товаров

CTovarList();//конструктор по умолчанию

CTovarList(int count);//конструктор с параметрами

virtual ~CTovarList();//декструктор

//добавить товар в список

void AddTovar();

//сохранение списка товаров в файл

void SaveListToFile();

//загрузка списка товаров из файла в список

void LoadListFromFile();

//вывод списка товаров на экран монитора

void OutList();

//вернуть значение количества товаров в списке

int getCount();

};

#endif // !defined(AFX_TOVAR_H__A0B326BA_3C8E_4AEB_8BD4_4FBE8184422B__INCLUDED_)

Файл « Tovar.cpp»

// Tovar.cpp: implementation of the CTovar class.

//

//////////////////////////////////////////////////////////////////////

#include "Tovar.h"

/////////////////////////////

///class CTovar 

/////////////////////////////

CTovar::CTovar()

{

}

CTovar::~CTovar()

{

}

//перегрузка оператора присваивания

CTovar &CTovar::operator = (const CTovar & tv)            

{

if( this != &tv) // проверка, не копирование ли объекта в себя

{

//копируем значения полей

strcpy(tovar_name, tv.tovar_name);

cost   = tv.cost;

number = tv.number;

}

return *this;

}

//инициализация свойств объекта CTovar вводом с клавиатуры

void CTovar::InitData()

{

printf("\nInput tovar name:");

scanf("%s", tovar_name);//ввести наименование товара

printf("Input tovar cost:");

scanf("%lf", &cost);//ввести стоимость  товара

printf("Data is added in current list!");

}

//вернуть значение "наименование товара"

char * CTovar::getTovarName()

{

return tovar_name;

}

//вернуть значение "наименование товара"

double CTovar::getCost()

{

return cost;

}

//вернуть значение для номера товара

int CTovar::getNumber()

{

return number;

}

//установить значение для номера товара

void CTovar::setNumber(int num)

{

number = num;

}

//перегрузка оператора ++ префиксная форма

CTovar operator++(CTovar tv)

{

tv.cost ++;

return tv;

}

/////////////////////////////

///class CTovarList 

/////////////////////////////

CTovarList::CTovarList()

{

this->current = 0;

this->list = new CTovar[20];

}

//конструктор с параметрами

CTovarList::CTovarList(int count)

{

this->current = 0;

this->list = new CTovar[count];

}

CTovarList::~CTovarList()

{

}

//добавить товар в список

void CTovarList::AddTovar()

{

CTovar tv;

//инициализация свойств объекта CTovar вводом с клавиатуры

tv.InitData();

tv.setNumber(current + 1);

Похожие материалы

Информация о работе