Автор: Пользователь скрыл имя, 11 Апреля 2011 в 17:46, курсовая работа
Техническое задание: разработать программу для обмена тестовыми сообщениями.
В настоящее время значительная часть программных продуктов написана на языке C++. Увеличение количества персональных ЭВМ в 80-90 гг. и вовлечение большого количества неквалифицированных пользователей в непосредственную работу на ЭВМ способствовало развитию операционных систем типа Windows. Эти операционные системы предполагают организацию процедур ввода-вывода не так как системы DOS.
1. Введение……………………………………………………………3
2. Инструментальное обеспечение для обмена текстовыми
сообщениями……………………………………………….……...4
3. Разработка архитектуры программы для обмена текстовыми
сообщениями…………………………...........................................5
4. Программная реализация сетевой технологии обмена
текстовыми сообщениями в программе ………………………...8
5. Результаты работы программы…………………………………...25
6. Преимущества и недостатки приложения……………………….27
7. Заключение………………………………………………………...28
8. Список литературы………………………………………………..29
{
int
countpeople = 1/*сервер*/ + (int)m_vecSockets.size()/*
m_wndCountPeople.
IntToStr(
// Отправим сообщение о количествах людей в чате.
SENDBUFFER sb;
sb.typemessage = m_TypeMessage::tmCountPeople;
sb.countpeople = countpeople;
for(int i = 0; i < (int)m_vecSockets.size(); i++)
{
int send = m_vecSockets[i]->Send(&sb, sizeof(SENDBUFFER));
}
}
//////////////////////////////
//////////////////////////////
// Запрос имени чатующего перед созданием сокета.
bool CChatCppDlg::QueryName(void)
{
CString strName;
m_wndName.GetWindowText(
if(strName == g_EmptyName || strName.IsEmpty() == true)
return false;
return true;
}
//////////////////////////////
//////////////////////////////
Исходный код инициализацию сокета:
#include "stdafx.h"
#include "ChatCpp.h"
#include "ChatCppDlg.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#endif
// CChatCppApp
BEGIN_MESSAGE_MAP(CChatCppApp, CWinApp)
ON_COMMAND(ID_HELP, CWinApp::OnHelp)
END_MESSAGE_MAP()
// CChatCppApp construction
CChatCppApp::CChatCppApp()
{
// TODO: add construction code here,
// Place all significant initialization in InitInstance
}
// The one and only CChatCppApp
object
CChatCppApp theApp;
// CChatCppApp initialization
BOOL CChatCppApp::InitInstance()
{
//InitCommonControls () требуется на Windows XP, если прикладная декларация //определяет использование ComCtl32.dll версии 6 или позже позволить визуальные стили.
//Иначе,
любое создание
окна потерпит неудачу.
InitCommonControls();
CWinApp::InitInstance();
AfxEnableControlContaine
if (!AfxSocketInit())
{
AfxMessageBox("
return FALSE;
}
CChatCppDlg dlg;
m_pMainWnd = &dlg;
INT_PTR nResponse = dlg.DoModal();
if (nResponse == IDOK)
{
// TODO: Place code here to handle when the dialog is
// dismissed with OK
}
else if (nResponse == IDCANCEL)
{
// TODO: Place code here to handle when the dialog is
// dismissed with Cancel
}
// Since the dialog has been closed, return FALSE so that we exit the
// application, rather than start the application's message pump.
return FALSE;
}
//////////////////////////////
СОКЕТ:
#include "stdafx.h"
#include "ChatCppDlg.h"
#include "Sock.h"
CSock::CSock()
: m_pParent(NULL)
{
}
CSock::~CSock()
{
}
//////////////////////////////
// Событие подключения на стороне клиентского приложения.
void CSock::OnConnect(int nErrorCode)
{
CChatCppDlg*
pDlg = (CChatCppDlg*)m_pParent;
nErrorCode
== 0 ? pDlg->OnConnect(FALSE) : pDlg->OnConnect(TRUE);
CAsyncSocket::OnConnect(
}
//////////////////////////////
//////////////////////////////
// Событие отключения от сети
void CSock::OnClose(int nErrorCode)
{
Beep(2000,
300);
CAsyncSocket::OnClose(
}
//////////////////////////////
//////////////////////////////
// Событие возможности получения сообщений.
void CSock::OnReceive(int nErrorCode)
{
CChatCppDlg* pDlg = (CChatCppDlg*)m_pParent;
pDlg->OnReceive();
CAsyncSocket::OnReceive(
}
//////////////////////////////
//////////////////////////////
// Запрос на подключение, направляемый клиентом серверу.
// Происходит на стороне серверного приложения.
void CSock::OnAccept(int nErrorCode)
{
CChatCppDlg* pDlg = (CChatCppDlg*)m_pParent;
pDlg->OnAccept();
CAsyncSocket::OnAccept(
}
//////////////////////////////
5.Результат работы программы.
Результатом
работы программы стал обмен текстовой
информацией между удаленными компьютерами
локальной сети.
Окно первого запуска
Окно
сервера и окно
клиента
Проверка
отправки и прихода
сообщений
6.Преимущества
и недостатки приложения.
Программа обмена текстовыми сообщениями получилась простой, без большого количества дополнительных функций. Приятный интерфейс интуитивно понятен. Из дополнительных возможностей можно отменить выбор цвета и других атрибутов для отправляемых сообщений. Также на главной форме есть ползунок, с помощью которого мы можем сделать нашу программу прозрачной, на тот случай если это кому-нибудь когда-нибудь пригодится. Еще одним достоинством программы является то, что ее можно написать самому за пару часов, если у Вас вдруг (по странному стечению обстоятельств) под рукой не будет ни одной другой прогммы по обмену текстовыми сообщениями. Программу также можно свернуть в трей, что тоже иногда бывает очень полезным.
К
минусам программы можно
7.Заключение
При выполнении данной курсовой работы были освоены основы визуального программирования, получены навыки работы с интегрированной средой разработчика и интерфейсом среды визуального программирования C++Builder.
Также в процессе выполнения курсового проекта были изучены компоненты классов TForm, TLabel, TMemo, TBitBtn, TScrollBox, TButton, TPopupMenu, TActionList, TMainmenu, TPanel, TBevel, TTrayIcon, TStringGrid и другие . Мы ознакомились со специальными методами для работы с этими компонентами, научились обрабатывать реакцию этих компонентов на события, научились эффективно и эстетично использовать рабочее пространство формы и освоились со специфичностью написания программ на C++Builder(модульность).
Стало ясно, что роль модулей в C++Builder. не исчерпывается только механизмом раздельной компиляции. C++Builder. связывает с каждым включаемым в программу окном собственный модуль и таким способом локализует все свойства окна в отдельной программной единице. Выяснили, что основная программа весьма специфична: она содержит перечень всех используемых в программе модулей и несколько исполняемых операторов, обеспечивающих создание нужных окон и связь программы с Windows. Вся основная работа программы управляется кодом, содержащимся в модулях.
8.Список литературы
Информация о работе Разработка программы для обмена тестовыми сообщениями