Министерство образования Республики Беларусь
Учреждение образования
Белорусский государственный университет
информатики и радиоэлектроники
Специальность: Маркетинг
КОНТРОЛЬНАЯ РАБОТА 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);
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.