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

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

Уважаемые коллеги! Предлагаем вам разработку программного обеспечения под ключ.

Опытные программисты сделают для вас мобильное приложение, нейронную сеть, систему искусственного интеллекта, SaaS-сервис, производственную систему, внедрят или разработают ERP/CRM, запустят стартап.

Сферы - промышленность, ритейл, производственные компании, стартапы, финансы и другие направления.

Языки программирования: Java, PHP, Ruby, C++, .NET, Python, Go, Kotlin, Swift, React Native, Flutter и многие другие.

Всегда на связи. Соблюдаем сроки. Предложим адекватную конкурентную цену.

Заходите к нам на сайт и пишите, с удовольствием вам во всем поможем.

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

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

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

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

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

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

КОНТРОЛЬНАЯ РАБОТА 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);

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

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

Уважаемые коллеги! Предлагаем вам разработку программного обеспечения под ключ.

Опытные программисты сделают для вас мобильное приложение, нейронную сеть, систему искусственного интеллекта, SaaS-сервис, производственную систему, внедрят или разработают ERP/CRM, запустят стартап.

Сферы - промышленность, ритейл, производственные компании, стартапы, финансы и другие направления.

Языки программирования: Java, PHP, Ruby, C++, .NET, Python, Go, Kotlin, Swift, React Native, Flutter и многие другие.

Всегда на связи. Соблюдаем сроки. Предложим адекватную конкурентную цену.

Заходите к нам на сайт и пишите, с удовольствием вам во всем поможем.