- •Введение
- •Проектирование программы
- •2.1 Информационное обеспечение
- •Математическое описание
- •Функциональная структура
- •Алгоритмическое обеспечение
- •Программная реализация
- •Детальная реализация функциональных частей программного обеспечения
- •Реализация программного обеспечения
- •3.1.2 Разработка пользовательского интерфейса
- •Разработка руководства пользователя
- •Программа и методика испытаний
- •Тестирование программного обеспечения
- •Заключение
- •Литература
- •Приложение a.
- •Приложение б.
- •Протокол тестирования
- •Б.1 Структура протокола
- •Б.2 Тестирование
- •Б.3 Результаты тестирования
- •Приложение в.
- •Руководство пользователя
- •В.1 Минимальные требования
- •В.2 Запуск службы сервера
- •В.3 Запуск клиентов
-
Математическое описание
-
Функциональная структура
-
Приложение должно предоставлять гостю выбор, к какому серверу подключиться, какое имя будет у сервера/клиента, когда начнётся игра. Алгоритм работы следующий:
1.Старт работы сервера
2.Старт работы клиента(-ов)
3.Выбор подключения к игре либо создание своей.
4.Выбор имени.
5.Ожидание игроков и старт игры
-
Алгоритмическое обеспечение
Описание алгоритма работы программы выглядит следующим образом. При запуске приложения (а именно клиента) можно будет выбрать, кем будет являться таковой: создающим игру либо подключающимся. Создатель игры указывает своё имя (имя игры) и оно отображается на сервере. Затем у него же появляется диалоговое окно со списком клиентов, в котором отображаются имена клиентов, подключившихся к этой игре. Создатель игры может начать игру в любой момент по нажатию кнопки “Start”, либо отменить игру и отключить всех подключившихся именно к этой игре пользователей по нажатию кнопки “Cancel”. После нажатия кнопки “Start” диалоговое окно со списком пользователей будет автоматически закрыто и появится игровое поле.
На стороне клиентов ситуация следующая. При входе клиент указывает своё имя. Затем он может выбрать список игр, которые ожидают старта, после чего появится диалоговое окно с именем игры и кнопкой “Cancel”, нажатие на которую отменит ожидание и вход в игру. Как только на клиенте, который создал игру, будет нажата кнопка “Start” данное окно автоматически закроется и появится игровое поле. Тот, кто первый откроет поле получит сообщение о победе. Остальные клиенты получат сообщение о проигрыше в игре, а также имя победителя.
-
Программная реализация
-
Детальная реализация функциональных частей программного обеспечения
-
Реализация программного обеспечения
-
-
Реализация шла на языке программирования C++ в среде Microsoft Visual Studio 2010. Использовались только стандартные функции и библиотеки. Структура классов находится в приложении Г.
Структура приведена только для классов, реализованных на сервере т.к. на клиенте потребовалось реализовать всего один класс, который, по сути, является формой. В таблице 1 приведено описание классов сервера.
Таблица 1.Описание классов.
Элемент массива игр. |
ref class game { public: game(System::String^ name); System::String^ host; System::String^ winner; bool visible; bool hostReady; array<System::String^>^ Users; void Add(System::String^ name); void Delete(System::String^ name); int Count; }; |
Массив игр. Удаление, элементов,их количество. |
ref class GameList { public: GameList(int k); void Add(System::String^ name); void Delete(System::String^ name); array<game^>^ Items; int Count; }; |
Элемент массива пользователей.
|
ref class Record { public: Record(void); Record(System::String^ username, System::String^ name); System::String^ username; System::String^ name;};
|
Продолжение таблицы 1.
Класс описания пользователя. Используется для обращения к конкретному пользователю. Элемент массива пользователей |
ref class User { public: User(System::String^ nam, SOCKET sok); System::String^ name; SOCKET sock; }; |
Массив пользователей |
ref class UserList { public: UserList(int k); void Add(System::String^ name, SOCKET sok); void Delete(System::String^ name); SOCKET GetSock(System::String^ name); array<User^>^ Items; int Count; }; |