Скачиваний:
52
Добавлен:
01.05.2014
Размер:
432.13 Кб
Скачать

Санкт-Петербургский государственный электротехнический университет

Кафедра МОЭВМ

Пояснительная записка к курсовой работе по дисциплине

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

Выполнил:

Студент гр.3352

Сергеев М. В.

Проверил:

Смольянинов А. В.

Санкт-Петербург

2006г.

  1. Содержательная (исходная) постановка задачи.

Разработать программу, в которой классы из лабораторной работы №3 будут использовать систему сообщений из лабораторной работы №4.

  1. Объектно-ориентированная модель задачи

Клиентами будут актрисы, а сервером вид из ложи.

Легенда: Актрисы придумывают новую постановку и решают, как им лучше расположиться на сцене и двигаться во время представления. Каждая их них может внести свое предложения и сказать другой актрисе, где ей лучше стоять (т.е. послать сообщение с координатами, на которые ей нужно передвинуться). Так же каждая актриса может предложить передвинуться всему ансамблю (послать сообщение всем актрисам).

Классы Актриса с Клиентом и Вид с Сервером будут объединены с помощью множественного наследования в новых классах CClientActr и CServerView. При этом новым классам не понадобятся новые методы или атрибуты (если не считать id и count), необходимо только переопределить методы из базовых классов.

  1. Структура модели на языке uml

  1. Контракты классов.

Класс CServerView

Определим понятие Корректно заданный экземпляр: Это такой экземпляр класса, у которого:

  • Использует базовые классы CView, CServer

  • id – уникален в данном экземпляре запущенной программы

  • countreal – реальное количество, существующих в данный момент экземпляров данного класса, в данном экземпляре запущенной программы

  • countall – количество экземпляров данного класса, созданных с момента начала работы данного экземпляра запущенной программы

В классе существуют методы:

void ShowScene() const

void MoveActView();

void MoveViewport();

void MoveOne();

void MoveAll();

int regCl(CClient*c);

int resend(CMsg* m);

int resendAll(CClient* from, int comm);

Они переопределяют одноименные методы классов CActress и CClient, и их описание аналогично описанию методов, использованных в прошлых лабораторных работах.

Имя функции

Предусловие

Постусловие

CServerView ()

-

Создан экземпляр

~ CServerView ();

Корректно заданный экземпляр*

Отношение «принадлежит классу» не выполняется

int getID()const;

Корректно заданный экземпляр*

getID() = id

Класс CClientActr

Корректно заданный экземпляр:

  • Использует базовые классы CActress, CClient

  • id – уникален в данном экземпляре запущенной программы

  • countreal – реальное количество, существующих в данный момент экземпляров данного класса, в данном экземпляре запущенной программы

  • countall – количество экземпляров данного класса, созданных с момента начала работы данного экземпляра запущенной программы

В классе существуют методы:

int readMsg(CMsg*m);

void PrintData() const;

int regOnSrv(CServer*s);

int sendMsg(int com,CServer*s,int toID);

int sendMsgAll(int com,CServer*s);

Они переопределяют одноименные методы классов CActress и CClient, и их описание аналогично описанию методов, использованных в прошлых лабораторных работах.

Имя функции

Предусловие

Постусловие

CClientActr ();

-

Создан экземпляр

~ CClientActr ();

Корректно заданный экземпляр*

Отношение «принадлежит классу» не выполняется

int getID()const

Корректно заданный экземпляр*

getID() = id