Обоснование выбора языка программирования




Для реализации поставленных задач был выбран следующий язык программирования: С#.

C# — компилируемый статически типизированный язык программирования общего назначения.

Поддерживает такие парадигмы программирования как процедурное программирование, объектно-ориентированное программирование, обобщённое программирование, обеспечивает модульность, раздельную компиляцию, обработку исключений, абстракцию данных, объявление типов (классов) объектов, виртуальные функции.

Одно из преимуществ языка C# является наличие конструированных форм, и задача событий для элементов форм, что упрощает процесс программирования и делает его интуитивно понятным даже для начинающих. Так же он объединяет достоинства таких языков как Java и C++

В качестве программной среды была выбрана Visual Studio из-за ее способности поддерживать множество языков программирования, подключать дополнительные динамические библиотеки и структурированное отображение проекта.

Основные модули программного средства

Для решения поставленной задачи были сконструированы следующие формы:

· ChatServer;

· ChatClient;

· PrivateChanel;

Форма ChatServer

ChatServer – форма, организующая запуск сервера и мониторинг со стороны администратора. Элементы формы представлены в таблице 3.1. Классы в таблице 3.2

Таблица 3.1 – Элементы формы ChatServer

Название объекта (в коде) Вид объекта Функция в программе
     
Лог   (richTextBox1)   Текстовое поле только чтение, показывает сообщения клиентов
Сообщение администратора   (textBox2)   Текстовое поле редактируемое, поле для ввода сообщения от администрации
Пользователь (listBox1)   Поле списка выводит никнеймы пользователей в сети
IP-адрес (listBox2)   Поле списка выводит IP-адреса пользователей в сети
Приватное сообщение   (button1)   Кнопка Отправить сообщение выбранному пользователю
Послать сообщение всем (button2)   Кнопка Отправить сообщение всем пользователям в чате
Выгнать пользователя   (button3)   Кнопка Выгнать пользователя из чата по усмотрению администратора

 

Таблица 3.2 – Основные классы ChatServer

Имя класса Его методы Описание
  server server.OnClientConnected server.OnClientDisconnected server.OnDataReceived server.OnServerError server.Start server.Broadcast Присоединение пользователя Отключение пользователя Обновление полученных данных Проверка на ошибки Запуск сервера Отправка сообщений
SoundPlayer player.Play Звуковые оповещения
listbox1 listBox1.SelectedIndex ChangeListBox Выделение никнейма клиента Изменение списка (доб/удал)
listbox2 listBox2.SelectedIndex ChangeListBox Выделение порта клиента Изменение списка (доб/удал)
Form (внешний класс) (содержит в себе все классы и объекты)

Форма ChatClient

Эта форма представляет собой интерфейс программы клиента в которой доступны возможности для рядовых пользователей чата: отправка сообщений, подключение к серверу и вызов приватного канала (Элементы: таб. 3.3, классы: таб. 3.4)

Таблица 3.3 – Элементы формы ChatClient

Название объекта (в коде) Вид объекта Функция в программе
     
Никнейм (textBox4) Текстовое поле Редактируемое Ввод имени клиента
Сервер (textBox3) Текстовое поле Редактируемое Ввод IP-адрес сервера
Порт (textBox5) Текстовое поле Редактируемое Ввод порта сервера
Лог (richTextBox1) Текстовое поле Только чтение Вывод всех сообщений чата
Сообщение (textBox2) Текстовое поле Редактируемое Ввод сообщения пользователя
Вход (button3) Кнопка Вход в чат по серверу и порту
Приват-канал (button4) Кнопка Открыть окно приват- канала
Отправить (button1) Кнопка Отправка сообщения из textBox2 в лог
Очистить (button2) Кнопка Очистка textBox2

Таблица 3.4 – Основные классы ChatClient

Имя класса Его методы Описание
Form (внешний класс) (содержит в себе все классы и объекты)
client client.OnClientConnecting client.OnClientConnected client.OnClientDisconnected client.OnDataReceived client.OnClientError client.Connect client.Send Присоединение Реакция на приход других клиентов Реакция на уход клиента Получение сообщений Проверка на ошибки Выполнение соединения Отправка сообщений
SoundPlayer player.Play Звуковые оповещения

Форма PrivateChanel

Данная форма является интерфейсом программной реализации чата между двумя людьми, отдельно от остальной группы. (элементы формы: таб. 3.5, классы: таб. 3.6)

 

 

Таблица 3.5 – Объекты формы PrivateChanel

Название поля Тип данных Дополнительные сведения
Вы: IP-адрес (textLocalIP) Текстовое поле редактируемое, IP-адрес пользователя-субъекта
Вы: Port (textLocalPort) Текстовое поле редактируемое, порт пользователя-субъекта
Собеседник: IP-адрес (textFriendsIP) Текстовое поле редактируемое, IP-адрес пользователя-объекта
Собеседник: Порт (textFriendsPort) Текстовое поле редактируемое, порт пользователя-субъекта
Соединение (button1) Кнопка устанавливает соединение между пользователями
Отправить (button2) Кнопка отправка сообщения
Лог (listMessage)   Список только чтение, вывод отправленных сообщений

 

Таблица 3.6 – Основные классы PrivateChanel

Имя класса Его методы Описание
Form (внешний класс) (содержит в себе все классы и объекты)
SoundPlayer player.Play Звуковые оповещения
Socket socket.SetSocketOption socket.BeginReceiveFrom socket.Bind socket.Connect socket.Send socket.EndReceiveFrom Отправка данных Получение данных Связка двух пользователей Соединение между пользователями Отправка сообщения Получение сообщения

 

 

3.3 Разработка диаграммы классов

Диаграмма классов - это диаграмма, демонстрирующая классы системы, их атрибуты, методы и взаимосвязи между ними. Диаграмма классов является ключевым элементом в объектно-ориентированном моделировании.

В данной диаграмме класcов демонстрируется взаимодействие 3 форм и их классов: ChatServer, ChatClient, PrivateChanel, с использованием основных методов

Для разработки программного средства была разработана следующая диаграмма классов (Рисунок 3.1):

 

 

Рисунок 3.1 – Диаграмма классов

 

 

Выводы по главе

В процессе программной разработки были созданы формы ChatClient, ChatServer и PrivateChanel. Первые две характерезуют собой основной процесс группового чата. PrivateChanel служит для связи ТОЛЬКО двух людей, независимо от работы программы-сервера или программы-клиента. Для каждой программы были разработаны свои классы.




Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2018-01-08 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: