Главная | Обратная связь | Поможем написать вашу работу!
МегаЛекции

Словарь предметной области




Министерство образования и науки Российской Федерации

Новосибирский государственный технический университет

Кафедра ПМт

 

Расчетно-графическое задание

по дисциплине

“Объектно-ориентированное программирование ”

 


Факультет: ПМИ

Группа: ПМИ-21

Студент: Давыдов Д.В.

Преподаватель: Тракимус Ю.В.

 

 

Новосибирск
2013

Формулировка задания


Для выбранной предметной области выявить ключевые абстракции, составляющие словарь предметной области. На основе выявленных ключевых абстракций разработать систему классов и объектов, описывающих предметную область. Специфицировать атрибуты и операции классов, а также отношения, существующие между классами. Упорядочить классы в иерархии типа «является» (не менее одной) и иерархии типа «имеет».

· Представить разработанные классы в виде диаграмм классов языка UML.

· Описать наиболее важные аспекты поведения системы посредством разработки нескольких сценариев, отражающих взаимодействие ряда объектов различных классов.

· Представить сценарии в виде диаграмм последовательностей или коммуникации языка UML.

· Реализовать разработанные диаграммы классов в системе Enterprise Architect. Диаграммы последовательностей или коммуникации также можно реализовать в системе Enterprise Architect. Сгенерировать прототип кода средствами Enterprise Architect.

 

Вариант предметной области: Автомобильный магазин


 

Словарь предметной области

 

Автомобильный магазин – Помещение магазина. Характеризуется состоянием открытия (магазин открыт или магазин закрыт)

 

Человек – Живое существо, обладающее разумом. Характеризуется именем, возрастом, полом. (абстрактный класс).

 

Работник – Человек, работающий в заданном магазине. Характеризуется рабочими днями и зарплатой (абстрактный класс).

 

Директор – Глава магазина, нанимает и увольняет работников, а так же выплачивает им зарплату. Характеризуется лояльностью, которую проявляют к нему его работники.

 

Покупатель – Клиент магазина, покупает, либо просто просматривает товар. Характеризуется наличием лицензии и денег.

 

Продавец-консультант – Проверяет лицензию покупателя, даёт ему консультацию, а так же продаёт товар.

 

Складной работник – Отвечает за состояние склада (наличие необходимого товара, проверка недостачи), а так же приносит необходимый товар со склада, при его наличии.

 

Уборщица – Следит за чистотой помещения магазина и склада.

 

Охранник – Защищает работников магазина от нападений, а так же защищает магазин от воров.

 

Товар – Продаваемые в магазине автомобили и запчасти. Характеризуется ценой, названием, а также необходимостью лицензии для данного товара.

 


3.Спецификации разработанных классов и их назначение

 

class Director: public Human //Директор

{

int loyality;//Лояльность

public:

Director();

virtual ~Director();

Worker *m_Worker;

 

void FireCrew(Worker* crew);//Нанять работника

int GetLoyality();//Получить значение лояльности

void HireCrew(Worker* crew);//Уволить работника

void PaySalaryToAll();//Выдать зарплату

void SetLoyality(int newL);//Изменить лояльность

};

 

class Сar_Store //Автомобиль магазин

{

bool opened;//флажок открытия

short TimeClose;//Время закрытия

short TimeOpen;//Время открытия

public:

Weapon_Store();

virtual ~Car_Store();

Director *v_Director;

Good *v_Good;

 

void SetOpenCloseStatus(short curTime);//Поменять статус открытия в зависимости от //времени

};

 

class Security: public Worker //Охранник

{

 

public:

Security();

virtual ~Security();

 

void Protect();//Защита помещения. Когда открыто – сотрудников и товар, когда //закрыто – только товар.

 

};

 

class Client: public Human //Покупатель

{

bool haveLicense;//Есть ли лицензия

int Money;//Кол-во денег

public:

Client();

virtual ~Client();

 

void Buy(Good* car);//Купить оружие

bool CanBuy();//Проверить – можно ли покупать авто

int GetMoney();//Проверить деньги

};

 

class Shopper: public Worker

{

public:

Shopper();

virtual ~Shopper();

 

bool CheckClientLicense();//Проверить лицензию покупателя

void GetConsultation();//Проконсультировать покупателя

void Sell(Good* ammo);//Продать оружие

};

 

class Worker: public Human //Работник

{

protected:

int salary;//Зарплата

boolean[7] shedule;//Дни работы

public:

Worker();

virtual ~Worker();

 

virtual void CalculateNewSalary();//Пересчитать зарплату

 

virtual void GetShedule(boolean* shed);//Получить график работы

virtual void PaySalary();//Выдать зарплату

};

 

class Store_worker: public Worker //Складной работник

{

 

public:

Store_worker();

virtual ~Store_worker();

 

bool CheckForDeficit();//Проверить склад на недостачу

bool CheckSpare(Good* spare);//Проверить наличие товара на складе

void GiveSpareFromStore(Good* spare);//Принести товар со склада

 

};

 

class Good//Товар

{

char* name;//Название

bool needLicense;//Необходимость лицензии

int price;//Цена

public:

Good();

virtual ~Good();

 

bool CheckForLicense();//Проверить необходимость лицензии

void GetName(char* nm);//Получить название

int GetPrice();//Получить цену

};

 

class Cleaner: public Worker//Уборщица

{

 

public:

Cleaner();

virtual ~Cleaner();

 

void Clean();//Привести помещение в порядок

 

};

 

class Human // Человек

{

protected:

int Age;//Возраст

int exp;//Стаж

char* Name;//Имя

char sex;//Пол

char* Surname;//Фамилия

public:

Human();

virtual ~Human();

 

virtual int GetExpierence();//Получить стаж

};

 

 

4. Диаграмма классов


 

Поделиться:





Воспользуйтесь поиском по сайту:



©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...