- •Предисловие
- •Введение
- •Глоссарий
- •Пользовательские требования
- •1. Диалоговое окно «Вход в систему»:
- •2. Диалоговое окно «Регистрация»:
- •3. Диалоговое окно «Восстановление пароля»
- •4. Диалоговое окно «http-клиент»
- •Системная архитектура Use case диаграммы
- •Диаграммы классов
- •Системные требования
- •Функциональные требования
- •Нефункциональные требования
- •Код состояния и поясняющая фраза
- •Системные модели
- •Эволюция системы
- •Приложения
- •Указатели Алфавитный указатель
Системная архитектура Use case диаграммы
1)
2)
Диаграммы классов
1)
// Класс CUserDlg
class CUserDlg : public CDialog
{
DECLARE_DYNAMIC(CUserDlg)
public:
//-----Конструктор-----
CUserDlg(CWnd* pParent = NULL);
//---Деструктор----------
virtual ~CUserDlg();
enum { IDD = IDD_USERS_DIALOG };
protected:
virtual void DoDataExchange(CDataExchange* pDX);
DECLARE_MESSAGE_MAP()
CString m_User;//Login пользователя
CString m_Pass;//Пароль пользователя
public:
//---- Проверка наличия регистрации ---
//--Вход параметры: -
//--Выходные параметры: -1 - регистация введеного login в системе уже есть
// 0 - введеный login можно зарегистрировать
int CheckLoginAndRegistration();
//---- Открыть архив пользователей ----
//--Вход параметры: -
//--Выходные параметры: -1 - архив пуст
// 0 - архив существует
int OnBnClickedOpenArch();
//--- Вход в систему ----
afx_msg void OnBnClickedOk();
//--- Регистрация в системе ------
afx_msg void OnBnClickedRegistr();
//--- Восстановить пароль ---
afx_msg void OnBnRemPass();
};
//Класс User (узел списка пользователей)
class User
{
public:
CString user_name; // Имя пользователя
CString user_pass; // Пароль пользователя
};
// класс CRegistDlg (регистрация пользователя в системе)
class CRegistDlg : public CDialog
{
DECLARE_DYNAMIC(CRegistDlg)
public:
//---- Конструктор -------
CRegistDlg(CWnd* pParent = NULL);
//---- Деструктор --------
virtual ~CRegistDlg();
enum { IDD = IDD_REGISTR_DLG };
protected:
virtual void DoDataExchange(CDataExchange* pDX);
DECLARE_MESSAGE_MAP()
CString m_RegName;// Имя
CString m_RegSurN;// Фамилия
CTime m_RegDate;// Дата рождения
CString m_RegQuestion;// Девичья фамилия матери
CString m_RegLogin;// Логин
CString m_RegPass;// Пароль
CString m_RegPass1;// Подтверждение пароля
public:
//--- Проверка совпадения полей пароля и подтверждения пароля ---
//--Входные значения: -
//--Выходные значения: 0 - значение полей совпали
// -1 - значение полей не совпали
int CheckNoCompare();
//---- Сохранение данных в архиве -----
afx_msg void OnBnClickedOk();
};
//Класс CRemPassDlg dialog
class CRemPassDlg : public CDialog
{
DECLARE_DYNAMIC(CRemPassDlg)
public:
//---- Конструктор ----
CRemPassDlg(CWnd* pParent = NULL);
//---- Деструктор ----
virtual ~CRemPassDlg();
enum { IDD = IDD_REMEBER_PASS };
protected:
virtual void DoDataExchange(CDataExchange* pDX);
protected:
DECLARE_MESSAGE_MAP()
CString m_RemLogin;// Логин
CString m_RemNewPass;// Новый пароль
CString m_RemNewPass1;// Подтверждение нового пароля
CString m_RemQuestion;// Контрольный вопрос: девичья фамилия матери
public:
//---- Запись данных в архив -----
afx_msg void OnBnClickedOk();
//--- Проверка совпадения полей пароля и подтверждения пароля ---
//--Выходные значения: 0 - значение полей совпали
// -1 - значение полей не совпали
int CheckNoCompare() ;
//---- Открыть архив пользователей ----
//--Вход параметры: -
//--Выходные параметры: -1 - архив пуст
// 0 - архив существует
int OnBnClickedOpenArchReg();
};
//Узел списка пользователей
class UserReg
{
public:
CString UserReg_name; // Имя пользователя
CString UserReg_surname;// Фамилия пользователя
CString UserReg_data; // Дата рождения пользователя
CString UserReg_question; // Девичья фамилия матери пользователя
CString UserReg_login; // Login пользователя
CString UserReg_pass; // Пароль пользователя
};
2)
class cHttpClient: public CDialog
{
public:
SOCKET dSocket;
public:
// ------------
// Конструктор
// ------------
cHttpClient(void);
// ------------------------
// Функция создания сокета
// Входные параметры:
// ---
// Возвращаемое значение:
// -1 - сокет не создан
// 1 - сокет создан
// ------------------------
int cSocket();
// --------------------------------
// Устанoвка соединения с сервером
// --------------------------------
// Входные параметры:
// 1 - имя сервера
// 2 - ШЗ-адрес сервера
// Возвращаемое значение:
// 0 - соединение успешно установлено
// -1 - ошибка установки соединения
// -----------------------------------
int cConnect(CString, unsigned long);
// ------------------------------
// Закрытие соединения с сервером
// ------------------------------
// Входные параметры:
// ---
// Возвращаемое значение:
// 0 - соединение закрыто
// -1 - ошибка закрытия соединения
// -------------------------------
int cClose();
// ------------------------------------------------
// Получение тела сообщения-отклика от сервера HTTP
// ------------------------------------------------
// Входные параметры:
// 1 - размер тела сообщения
// 2 - указатель на буффер для данных
// Выходные параметры:
// 0 - тело отклика получено
// -1 - ошибка получения тела отклика
// -----------------------------------
int GetBodyResponse(int, char*);
// -------------------------------------------
// Получение сообщения-отклика от сервера HTTP
// -------------------------------------------
// Входные параметры:
// 1 - результат исполнения запроса сервером
// Выходные параметры:
// 0 - заголовок отклика получен
// -1 - ошибка получения заголовка отклика
// -------------------------------------------
int GetResponse(int *pStatusCode);
// ------------------------------------------------------------------------------------
// Получение заголовков сообщений (заголовки сообщений завершаются пустой строкой CRLF)
// ------------------------------------------------------------------------------------
// Входные параметры:
// 1 - указатель на буффер для полученных данных
// Выходное значение:
// 0 - данные успешно получены
// -1 - ошибка при приеме данных
// --------------------------------------------------------
int RecvHeaderFromServer(char *DataFromServer);
// -------------------------------------
// Получение информации до символов CRLF
// -------------------------------------
// Входные параметры:
// 1 - указатель на буффер для полученных данных
// Выходное значение:
// 0 - данные успешно получены
// -1 - ошибка при приеме данных
// --------------------------------------------------------
int RecvDataFromServer(char *DataFromServer);
// -----------------------
// Послать данные серверу
// -----------------------
// 1 - указатель на буффер с данными
// 2 - размер данных
// 3 - флаги
// Выходное значение:
// 0 - данные успешно получены
// -1 - ошибка при приеме данных
// ----------------------------------------------
int SendData(char *, int, int);
// -----------
// Деструктор
// -----------
~cHttpClient(void);
};
// CTestHTTPDlg dialog
class CTestHTTPDlg : public CDialog
{
// Construction
public:
CTestHTTPDlg(CWnd* pParent = NULL); // standard constructor
// Dialog Data
enum { IDD = IDD_TESTHTTP_DIALOG };
protected:
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support
// Implementation
protected:
HICON m_hIcon;
// Generated message map functions
virtual BOOL OnInitDialog();
afx_msg void OnSysCommand(UINT nID, LPARAM lParam);
afx_msg void OnPaint();
afx_msg HCURSOR OnQueryDragIcon();
DECLARE_MESSAGE_MAP()
protected:
CString nResource; // Имя ресурса
int cMetCheck; // Выбранный метод
CString metDesc; // Описание выбранного метода
CListBox nResMeth; // Результаты выполнения методов
CString nFileName; // Имя файла от сервера
public:
afx_msg void OnBnClickedExecute();
afx_msg void OnEnSetfocusEditRes();
afx_msg void OnBnClickedMethod();
afx_msg void OnBnClickedAuthors();
afx_msg void OnBnClickedChoiceFile();
afx_msg void OnOK();
// Обработка методов
void Head();
void Put();
void Delete();
void Get();
void Options();
};