- •Содержательная (исходная) постановка задачи.
- •Объектно-ориентированная модель задачи
- •Структура модели на языке uml
- •Контракты классов.
- •Проектирование конструкторов и деструкторов классов.
- •Разработка методики тестирования классов и тестовых наборов данных.
- •Сценарий диалога с пользователем
- •Количественные характеристики программы
- •Текст программы (новых файлов)
Санкт-Петербургский государственный электротехнический университет
Кафедра МОЭВМ
Пояснительная записка к курсовой работе по дисциплине
Объектно-ориентированное программирование
Выполнил:
Студент гр.3352
Сергеев М. В.
Проверил:
Смольянинов А. В.
Санкт-Петербург
2006г.
-
Содержательная (исходная) постановка задачи.
Разработать программу, в которой классы из лабораторной работы №3 будут использовать систему сообщений из лабораторной работы №4.
-
Объектно-ориентированная модель задачи
Клиентами будут актрисы, а сервером вид из ложи.
Легенда: Актрисы придумывают новую постановку и решают, как им лучше расположиться на сцене и двигаться во время представления. Каждая их них может внести свое предложения и сказать другой актрисе, где ей лучше стоять (т.е. послать сообщение с координатами, на которые ей нужно передвинуться). Так же каждая актриса может предложить передвинуться всему ансамблю (послать сообщение всем актрисам).
Классы Актриса с Клиентом и Вид с Сервером будут объединены с помощью множественного наследования в новых классах CClientActr и CServerView. При этом новым классам не понадобятся новые методы или атрибуты (если не считать id и count), необходимо только переопределить методы из базовых классов.
-
Структура модели на языке uml
-
Контракты классов.
Класс 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 |