Кафедра информационных систем и технологий

advertisement
САМАРСКИЙ ГОСУДАРСТВЕННЫЙ АЭРОКОСМИЧЕСКИЙ
УНИВЕРСИТЕТ имени акад. С.П. КОРОЛЕВА
Кафедра информационных систем и технологий
ОТЧЕТ
по лабораторной работе по дисциплине
"Технологии программирования" на тему
"Автоматизированная система отправки СМС
сообщений SmsXpress"
Выполнили: студенты гр.631
Кириллов Р.
Кушпель А.
Лившиц Н.
Руководитель проекта:
доцент каф. ИСТ Зеленко Л.С.
Дата сдачи:
Оценка:
Самара 2003 г.
Кафедра информационных систем и технологий
"
«Утверждаю»
Руководитель проекта
_________________
" _________
г.
ЗАДАНИЕ
на разработку ПС в рамках лабораторного практикума по дисциплине
«Технологии программирования»
студентам гр. 631
Кириллову Р.,
Кушпелю А.,
Лившиц Н.
Тема проекта:
"Автоматизированная система отправки СМС сообщений SmsXpress"
1 Содержание задания
1.1 Произвести анализ предметной области и разработать логический проект
АИС
1.2 Реализовать программное и информационное обеспечение АИС в
соответствии
с проектом, подготовить контрольный пример и провести
тестирование.
1.3 Оформить документацию курсового проекта.
2 Исходные данные
2.1 Характеристика объекта автоматизации:
1) объект автоматизации: процесс отсылки СМС сообщений абонентам сотовых
телефонов стандарта GSM;
2) Количество абонентов неограниченно;
3) Количество сообщений неограниченно;
2.2 Требования к информационному обеспечению:
1) В системе должен вестись учет информации об абонентах – адресная книга.
2) Предусмотреть сохранение очереди неотправленных сообщений;
3) Организовать автоматическую транслитерацию сообщений;
4) Предусмотреть разбивку большого сообщения на части по 160 символов
(стандартный размер сообщения для сотовых телефонов);
5) Организовать отсылку сообщения нескольким абонентам;
6) Поддерживать автоматическую транслитерацию сообщений;
2.3 Требования к техническому обеспечению:
1) тип ЭВМ - IBM PC совместимый;
2) конфигурация комплекса определяется в процессе выполнения курсового
проекта.
3) Наличие доступа в Интернет
2.4 Требования к программному обеспечению:
1) тип операционной системы - Windows 95 и выше;
2) среда программирования – Microsoft Visual C++ 6.0.
2.5 Общие требования к проектируемой системе.
2.5.1
Функции, реализуемые системой:
2
1) Добавление, модификация и удаление записей адресной книги.
2) Создание и редактирование сообщения;
3) Отображение очереди сообщений;
4) Отправка сообщения;
5) Отправка очереди сообщений;
6) Приостановка процесса отправки сообщений;
7) Постановка сообщения в очередь;
8) Автоматическое обновление программы;
2.5.2
Технические требования к системе:
1) время реакции не более 20 секунд (зависит от параметров Интернет доступа).
2) режим работы - диалоговый;
3) система должна удовлетворять санитарным правилам и нормам СанПин
2.2.2.542-96;
4) условия работы средств вычислительной техники должны соответствовать
группе 1 п.1.3.1 ГОСТ 21552-84.
3 Календарный план выполнения работ
Содержание работы по этапам
1 Оформление задания и его утверждение
Объем этапа в Срок
% к общему окончания
объему проекта
5
25.02
2 Разработка логического проекта системы и
2 его предъявление руководителю. Сдача отчета.
30
10.04
3 Реализация
проекта
и
разработка
3 контрольного
примера.
Предъявление
реализации руководителю.
4 Корректировка проекта и оформление
4 документации проекта. Защита проекта.
50
28.04
15
27.05
1
3
Фактическое
выполнение
РЕФЕРАТ
Отчет
Пояснительная записка: 23 с., 3 рис., 5 схемы, 4 библиограф.
источника.
СМС СООБЩЕНИЕ, АДРЕСНАЯ КНИГА, ПОТОКИ ЗАДАЧ,
ОЧЕРЕДЬ СООБЩЕНИЙ, XML-ФАЙЛ, ВЕБ-СЕРВЕР
В лабораторной работе разработан алгоритм и соответствующая ему
программа, позволяющая выполнять автоматическую отправку СМС
сообщений на сотовые телефоны стандарта GSM при наличии доступа в
Интернет. Информация об абонентах хранится в xml-файлах,
модифицируется программно. Пользователь может создать сообщение
любого размера, выбрать абонента из адресной книги, затем отправить
сообщение. Есть возможность сначала создать очередь сообщений для
одного и более абонентов, а затем отправить всю очередь. Отправку можно
Приостановить/Продолжить. Программа написана на языке C++ в среде
Microsoft Visual C++ v.6.0
4
Содержание
Введение……………………………………………………………..……….6
1 Системотехническая часть………………………………………………...7
1.1 Анализ предметной области..…………………………………….7
1.2 Функциональная спецификация ПС……………..………….........7
1.3 Структуры данных и классы объектов…………………….…....11
1.4 Выбор и обоснования алгоритмов обработки данных………..14
1.5 Обоснования выбора системных программных средств……...14
1.6 Ресурсные расчеты………………………………………………14
Заключение…………………………………………………………………...15
Приложение А Пример интерфейса программы…………………………..16
Приложение Б Листинг основных модулей……………………………….17
Список использованных источников…………………..……………….......23
5
Введение
В рамках лабораторного практикума разработана сложная система, получившая
название SmsXpress. К настоящему моменту появилась уже версия 2.0. Alpha. Версия
2.0 имеет более гибкий интерфейс, некоторые новые функции, например разбивку
сообщения на части.
Разработанная система достаточно актуальна в данный момент. СМС - сообщение
является быстрым и информативным способом общения. Основное его достоинство –
это доступность и быстрота реакции, т.к. каждый владелец сотового телефона может
послать такое сообщение любому абонента (имеется ввиду на сотовый телефон
стандарта GSM). Сообщение доходит до абонента практически мгновенно. Нельзя не
упомянуть и о дешевизне данного способа обмена информацией. Стоимость СМС
сообщения в зависимости от разных компаний колеблется от 0,7 до 1,5 рубля за
сообщение. Единственный недостаток такого общения – это форма набора с помощью
сотового телефона. Последний в принципе плохо приспособлен для ввода большого
объема текста. Это долгий и сложный процесс. Естественно использовать для решения
этой проблемы ЭВМ, как универсальное средство ввода текстовой информации.
Данный программный продукт позволяет быстро и просто создать сообщений
неограниченного объема, содержащие любые символы, отсутствующие на сотовом
телефоне. Процесс отправки реализован проще и надежнее при условии наличия
доступа в Интернет.
Проектирование системы (подсистемы) производится по технологии быстрой
разработки приложений (RAD), которая поддерживается методологией структурного
проектирования и включает элементы объектно-ориентированного проектирования и
анализа предметной области.
6
1. Системотехническая часть
1.1 Анализ предметной области
При
проектировании системы используется принцип концептуализации
предметной области, т.е. система состоит из компонентов, под которыми понимают
некоторую абстрактную единицу, обладающую функциональностью (способностью
выполнять функции).
Схема 1 – Концептуальная схема
Для начала определим объекты системы и их взаимосвязи:

Объект СМС – сообщение формируется из объектов Абонент (имя и
телефон) и Текст сообщения;

Очередь сообщений хранит список СМС – сообщений и передает их WEB –
серверу.

WEB – сервер отправляет сообщения на сотовые телефоны.
1.2 Функциональная спецификация ПС.
Проектирование любой системы начинается с формулировки спецификаций и
требований или с внешнего описания. Внешнее описание – это совокупность
функциональных спецификаций и спецификации качества. Перед формулировкой
спецификаций проводится системный анализ предметной области, и определяются все
основные функции, которые должна выполнять система.
Спецификация
качества
предшествует
разработке
функциональной
спецификации. При определении спецификаций определяются, какие задачи будут, но
не определяется, как они будут решены. Любая спецификация включает в себя части на
естественном языке – таблицы, диаграммы и т.д. Для каждой единицы строится
карточка.
Название
компонента
Определение
обязанностей,
функций.
Список всех
взаимосвязанных
компонент
Рисунок 1 – Пример карточки
7
Концептуальная схема
I/O
Компонент Ввода/Вывода
18.05.2003
GUI
Выполняет функции
хранения и модификации
информации об абонен- CSMSMesaтах в xml-файле.
ge
CSMSMessage
Компонент Сообщение
Хранит информацию о
тексте сообщения и его
абонентах; формирует
запрос к веб-серверу.
18.05.2003
GUI
I/O
CMsgQueue
CMsgQueue
Компонент Очередь
Выполняет функции
по модификации
сообщения и его
отправки. Формирует
очередь сообщений,
а также потоки
текущих и
выполненных задач.
18.05.2003
GUI
CSMSMesage
GUI
Компонент
Визуализация
18.05.2003
Визуализирует
работу всех
перечисленных
компонент.
I/O
CSMSMesage
CMsgQueue
Схема 2 – Функциональная спецификация.
Систему можно подразделить на 4 основных компонента. Главным из них будет
компонент Визуализации, который реализует взаимодействие остальных компонент с
пользователем. Компонент ввода/вывода реализует обработку адресной книги и
формирования объектов СМС – сообщения. Компонент очередь состоит из одного или
нескольких объектов СМС - сообщения и производит их поочередную отсылку.
Далее осуществляется детальная проработка системы, на которой определяются
классы, их свойства и методы.
Функциональная схема строится в виде графа, вершинами которого является
текущее состояние, а дуги определяют выполнение той или иной функции в текущий
момент времени. Граф будет ориентированным. Результатом системного анализа
является построение модели системы. Под моделью будем понимать некоторое
представление о системе, отражающее наиболее существенные закономерности ее
структуры и процесса функционирования, зафиксированное на некотором языке или в
8
другой форме. Общим свойством всех моделей является подобие оригинальной
системе. Процесс построения систем и их моделирования получил название
моделирования.
Сложность системы и модели рассматривается с различных точек зрения:
1. Сложность структуры, которая определяется количеством элементов
системы и сложностью взаимосвязей между этими элементами.
2. Сложность
процесса
функционирования,
которая
определяется
количеством функций, предписывающихся каждому компоненту, а также
сложностью ориентированного графа, переводящего систему из одного
состояния в другое.
№
состояния
Название состояния
1
2
3
4
5
6
7
8
Главное меню (готов к работе)
Активна п/с Сообщение
Сообщение создано
Активна п/с Отправка Сообщения
Сообщение не было отправлено (ожидание)
Сообщение успешно послано (ожидание)
Активна п/с Очередь Сообщений
Определена непустая очередь (отображается именами
адресатов)
Процесс отправки всей очереди
Приостановлена отправка (ожидание)
Активна п/с Контакты
Процесс создания нового абонента для адресной книги
Процесс изменения параметров абонента из адресной
книги
Активна п/с Помощь
Процесс проверки обновления версии.
9
10
11
12
13
14
15
Таблица 1 – Таблица состояний системы
9
1
23
21
21
34
2
71
141
1112
111
17
1211
107
78
4
12
11
7
45
64
114
1113
13
14
89
54
5
1311
10
8
3
910
46
6
1415
9
15
Схема 3 – Функциональная схема
№ Функции Название функции
12
23
34
45
46
64,54
17
78
89
910
107
111
1113
1112
1211, 1311
114
1415
21,71,141,111
Вызов п/с Сообщение
Создание сообщения (ввод текста, выбор адресата)
Вызов п/с Отправка сообщения
Сообщение не было послано
Сообщение успешно послано
Возврат в п/с Отправка сообщения
Вызов п/с очередь сообщений
Создание очереди сообщений
Отправка очереди
Отправка отложена
Возврат в п/с Очередь сообщений
Вызов п/с Контакты
Модификация информации об абоненте
Добавление нового абонента
Возврат в п/с Контакты
Вызов п/с Помощь
Выход на сайт http://roman.triadesign.ru
Возврат в главное меню.
Таблица 2 – Таблица функций системы.
10
Система – это совокупность объектов, компонентов или элементов произвольной
природы, образующих некоторую целостность. Структура системы – это устойчивая
во времени совокупность взаимосвязей между ее элементами или компонентами.
Структура системы предполагает
вложенностьсхема
элементов
Структурная
ПС одной системы в другую.
Более мелкая система – это подсистема, более крупная – метасистема.
Подсистема управления
П/С Абоненты
П/С Сообщение
Создать сообщение
Открыть список абонентов
Добавить абонента
Изменить абонента
Удалить абонента
Найти
Ввести
текст
Выбрать
абонента
Сохранить сообщение
Изменить сообщение
Отправить немедленно
Поставить в очередь
Прервать отправку
Переадресовать
П/С Очередь
Создать очередь
Сохранить очередь
Отправить
Отправить выборочно
Очистить
Редактировать
П/С Справка
О программе
Help
Об авторе
Схема 4 – Структурная схема.
Основной
функцией
подсистемы
управления
является
организация
взаимодействия подсистем. Подсистема Абоненты обеспечивает необходимые функции
для работы со списком абонентов. Подсистема Сообщение формирует готовое СМС сообщение на основе данных, предоставленных подсистемой Абоненты. Результат
передается подсистеме очередь, задача которой обеспечить отправку сообщений
абоненту. Отдельно реализована подсистема Справки, предоставляющая полную
структурированную информацию для работы с системой.
1.3 Структуры данных и классы объектов.
На данном этапе выполняется разработка структур данных и классов объектов,
выбор или разработка алгоритмов обработки данных, результат – диаграмма классов
(иерархия классов).
11
Выделим следующие основные классы:

CcontactList
Основные методы:
IsContactExists – проверяет пуст ли контактный лист;
DeleteCotact – очищает контактный лист;
GetRecords – возвращает структуру записи;
AddRecords – добавляет новую запись.

CSmsMessage
Основные методы:
IsSent – проверяет отправлено ли сообщение;
GetUrl – возвращает URL;
UrlEncode – преобразует URL;
CheckPhone – проверка номера телефона;
SetOperator – определения оператора;
GetMethod – получение метода
GetFlatMessage - получить структуру Flat –сообщения.

CMessageQueue
Основные методы:
GetSuspendState – проверяет остановлена ли очередь;
SuspendSend – приостанавливает отсылку;
ResumeSend – продолжает отправку;
GetSize – получить размер сообщения;
GetTopMsg – получить первое сообщение в очереди;
AddMsg – добавить сообщение.

CmessageQueueDlg
Основные методы:
OnHide – спрятать очередь сообщений;
RefillTree – обновить дерево очереди;
OnResume – показать очередь.
12

CSmsXPressDlg
Основные методы:
RefreshRecepients – обновить список получателей;
RefreshContactList - обновить лист контактов.
Перечисленные 5 базовых классов образуют основу информационной модели системы.
Их взаимодействие можно показать с помощью иерархии классов.
Схема 5 – Иерархия классов.
Далее рассмотрим основные структуры данных системы. Их две – первая описывает
запись адресной книги, а вторая представляет собой Flat – сообщение. Это более
информативное сообщение, содержащее минимум информации, необходимый для
отправки.
1. AdressField :
Name: String;
Имя абонента;
Phone: String;
Телефон абонента.
2. FlatMessage:
13
Запись адресной книги;
Flat – сообщение;
Name: String;
Имя абонента;
Phone: String;
Телефон абонента;
Text: String;
Текст сообщения.
1.4 Выбор и обоснования алгоритмов обработки данных.
Данная система основана на классических линейных и циклических алгоритмах.
Это связано с тем, что они обеспечивают простоту проектирования и отладки системы,
а также высокую скорость ее работы. Детальная разработанная информационная
система дает возможность обойтись без сложных математических моделей, т.е. решить
задачу напрямую. При этом качество работы и скорость моделирования системы только
повышаются.
1.5 Обоснования выбора системных программных средств.
Особенностью реализации системы является использование xml-файлов. Они
имеют древовидную структуру. Очень удобны и надежны для хранения записей
адресной книги. Встроенный практически во все операционные системы Microsoft
XML Parcer позволяет получить доступ к xml – файлам, что обеспечивает удобство
использования системы, а также ее переносимость на другие программно-аппаратные
ОС – платформы.
Программа разработана на языке С++. Выбор именно этого языка объясняется
тем, что он обеспечивает высокую скорость файлового ввода/вывода, оптимизирует
работу с памятью. Наконец, С++ является родным для многих операционных систем
(Windows, Unix, Mac OS), что намного упрощает отладку программы. Компилятор
языка обеспечивает удобство разработки, а также высокое качество и надежность
исполняемого кода.
1.6 Ресурсные расчеты.
Минимальные требования к ресурсам:
 32 МВ оперативной памяти;
 1 МВ внешней памяти;
 скорость Интернет - соединения не менее 9600 Кбит/с (возможность
использование программы при меньшей скорости возможно, но не
эффективно).
Быстродействие системы линейно зависит от тактовой частоты процессора и
параметров Интернет – доступа.
14
Заключение
Программный продукт «SmsXpess» успешно миновал стадию тестирования и к
настоящему моменту активно используется значительным количеством пользователей.
Статистику, касающуюся этого вопроса можно просмотреть на сайте
http://roman.triadesign.ru Данная программа в случае коммерческой разработки может
реально начать приносить прибыль. Однако в планах разработчиков распространять ее
пока бесплатно в рамках концепции FreeSoft.
В дальнейшем планируется значительное усовершенствование программных функций, а
именно:
 Обеспечение работоспособности программы в случае использования Проксисервера;
 Поддержка форматов Beeline классический и Beeline GSM;
 Организация многопользовательского режима работы программы (только для
Windows NT,2000,XP).
15
Приложение А
Рисунок 2 - Интерфейс программы
Рисунок 3 – Отображение очереди сообщений
16
Приложении Б
Листинг основных модулей:
// ContactList.h: interface for the CContactList class.
//
//////////////////////////////////////////////////////////////////////
#if
!defined(AFX_CONTACTLIST_H__B5B57CC7_9291_4C7A_BFAC_623B1D066915__INCLUDED_
)
#define AFX_CONTACTLIST_H__B5B57CC7_9291_4C7A_BFAC_623B1D066915__INCLUDED_
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
#pragma warning (disable:4786)
#include <string>
#include <vector>
using namespace std;
#import "msxml3.dll"
using namespace MSXML2;
//Класс, предоставляющий возможности сериализации
//контакт-листа
//##ModelId=3E646B460060
class CContactList
{
public:
//##ModelId=3E646B460061
bool EditRecord(const string& phone, const string& newName, const
string& newPhone);
//##ModelId=3E646B460092
struct phbe
{
//##ModelId=3E646B46009D
string name;
//##ModelId=3E646B4600A7
string phone;
//##ModelId=3E646B4600AB
bool operator == (const phbe& phb)
{
return ( name == phb.name && phone == phb.phone );
}
//##ModelId=3E646B4600B0
bool operator == (const string& rName)
{
return (name == rName);
}
};
//##ModelId=3E646B4600BA
typedef vector<phbe> PhonebookRecords;
//##ModelId=3E646B46006D
bool IsContactExists(const string& phone, bool& result);
//##ModelId=3E646B460074
bool DeleteContact(const string& phone);
17
//##ModelId=3E646B460076
bool GetRecords(PhonebookRecords& phbrs);
//##ModelId=3E646B460078
bool AddContact(const string& name, const string& phone);
//##ModelId=3E646B460080
CContactList(const string& name);
//##ModelId=3E646B460082
CContactList();
//##ModelId=3E646B460083
virtual ~CContactList();
protected:
//##ModelId=3E646B460089
string m_FileName;
};
#endif //
!defined(AFX_CONTACTLIST_H__B5B57CC7_9291_4C7A_BFAC_623B1D066915__INCLUDED_
)
// MessageQueue.h: interface for the CMessageQueue class.
//
//////////////////////////////////////////////////////////////////////
#if
!defined(AFX_MESSAGEQUEUE_H__EEB01900_362B_475F_B7A3_0177515211DD__INCLUDED
_)
#define AFX_MESSAGEQUEUE_H__EEB01900_362B_475F_B7A3_0177515211DD__INCLUDED_
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
#pragma warning(disable:4786)
#include <vector>
#include "afxmt.h"
#include "SmsMessage.h"
using namespace SmsMessage;
const OutOfRange = 0;
//##ModelId=3E646B4503BC
class CMessageQueue
{
public:
friend class CMessageQueueDlg;
//##ModelId=3E646B4503C6
bool m_bIsModified;
//##ModelId=3E646B4503C7
CSmsMessage::FlatMessage GetMessage(const UINT& nIndex);
//##ModelId=3E646B460042
friend UINT AfxSendQueueProc( LPVOID pParam );
//##ModelId=3E646B4503D0
bool GetSuspendState();
//##ModelId=3E646B4503D1
bool Abort();
//##ModelId=3E646B4503D2
18
bool SuspendSend();
//##ModelId=3E646B4503D3
bool ResumeSend();
//##ModelId=3E646B4503DA
UINT GetSize();
//##ModelId=3E646B4503DB
CSmsMessage::FlatMessage GetTopMsg();
//##ModelId=3E646B4503DC
void AddMessage(CSmsMessage& msg);
//##ModelId=3E646B4503E5
CMessageQueue();
//##ModelId=3E646B4503E6
virtual ~CMessageQueue();
protected:
//##ModelId=3E646B4503E8
bool m_bKillThread;
//##ModelId=3E646B460006
bool m_bSuspended;
//##ModelId=3E646B460008
CWinThread* m_pSendThread;
//##ModelId=3E646B460030
std::vector<CSmsMessage> m_Messages;
//##ModelId=3E646B460039
CCriticalSection m_Lock;
};
#endif //
!defined(AFX_MESSAGEQUEUE_H__EEB01900_362B_475F_B7A3_0177515211DD__INCLUDED
_)
// SmsMessage.h: interface for the CSmsMessage class.
//
//////////////////////////////////////////////////////////////////////
#if
!defined(AFX_SMSMESSAGE_H__C81AE17C_8FD0_4388_9EEC_FCD030FF00A7__INCLUDED_)
#define AFX_SMSMESSAGE_H__C81AE17C_8FD0_4388_9EEC_FCD030FF00A7__INCLUDED_
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
namespace SmsMessage
{
const CString SmartsURL = "http://www.samaragsm.ru/scripts/smsgate.exe/send?phone=";
const CString MegafonURL = "http://www.mgsm.ru/cgibin/main_exp.cgi?sms=1&filial_id=1&Addr=";
const CString BeelineURL = "";
//Класс, представляющий СМС - сообщение
//##ModelId=3E646B44036A
class CSmsMessage
{
public:
//##ModelId=3E646B44036B
bool IsSent(const CString& rText); // отправлено ли сообщение?
//##ModelId=3E646B440375
CString GetPostData(); // заглушка
//##ModelId=3E646B440376
bool operator == (const CString& rPhone) // перегружаем оператор
проверки на равенство, чтобы можно было искать
19
// только по номеру телефона
{
return (m_Phone == rPhone);
}
//##ModelId=3E646B4403E3
enum SmsException // возможные ошибки
{
//##ModelId=3E646B4403E5
IncorrectOperator = 0,
//##ModelId=3E646B450005
BlankPhone,
//##ModelId=3E646B45011D
NoGET,
//##ModelId=3E646B450131
IncorrectNumber
};
//Оператор
//##ModelId=3E646B45014F
enum MobileOperator // операторы
{
//##ModelId=3E646B45015A
Smarts = 0,
//##ModelId=3E646B45015B
Megafon,
//##ModelId=3E646B450163
Beeline
};
//##ModelId=3E646B45016D
enum SendMethod // тип отправки данных на сервер
{
//##ModelId=3E646B450177
GET = 0,
//##ModelId=3E646B450178
POST,
//##ModelId=3E646B450179
UNDEF
};
//"Плоская" форма смс - сообщение
//##ModelId=3E646B450181
struct FlatMessage
{
//##ModelId=3E646B45018C
CString Name;
//##ModelId=3E646B45018D
CString Phone;
//##ModelId=3E646B45018E
CString Text;
};
- только информативная
//##ModelId=3E646B440378
short GetMethod();
//##ModelId=3E646B44037E
CSmsMessage::FlatMessage GetFlattenMessage(); // делает из
"тяжелого" класса CSmsMessage маленькую структуру FlatMessage
//##ModelId=3E646B44037F
CString GetURL(); // формирует URL с которым надо будет работать
//##ModelId=3E646B440380
CSmsMessage(CString &rPhone, CString &rText, CString &rName); //
конструктор обьекта
//##ModelId=3E646B44038B
20
CSmsMessage(FlatMessage& Sms); // еще один
//##ModelId=3E646B44038D
CSmsMessage(); // и еще - уже совсем без инициализации переменных.
//##ModelId=3E646B4403A6
virtual ~CSmsMessage();
protected:
//##ModelId=3E646B4403A8
CString URLEncode(const CString& rString);
//##ModelId=3E646B4403C5
bool CheckPhone();
//##ModelId=3E646B4403C6
bool SetOperator();
//##ModelId=3E646B4403CF
CString m_Text; // Текст SMS сообщения
//##ModelId=3E646B4403D0
CString m_Phone; // Номер телефона
//##ModelId=3E646B4403D9
CString m_Name; // Имя получателя
//##ModelId=3E646B4403DA
unsigned short m_Operator; // Оператор - перечисляемый тип
};
}
#endif //
!defined(AFX_SMSMESSAGE_H__C81AE17C_8FD0_4388_9EEC_FCD030FF00A7__INCLUDED_)
// SmsXPress.h : main header file for the SMSXPRESS application
//
#if
!defined(AFX_SMSXPRESS_H__A6F1D370_90D5_479A_B8E5_A579EED06AC2__INCLUDED_)
#define AFX_SMSXPRESS_H__A6F1D370_90D5_479A_B8E5_A579EED06AC2__INCLUDED_
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
#ifndef __AFXWIN_H__
#error include 'stdafx.h' before including this file for PCH
#endif
#include "resource.h"
// main symbols
///////////////////////////////////////////////////////////////////////////
//
// CSmsXPressApp:
// See SmsXPress.cpp for the implementation of this class
//
//##ModelId=3E646B440338
class CSmsXPressApp : public CWinApp
{
public:
//##ModelId=3E646B440343
CSmsXPressApp();
// Overrides
// ClassWizard generated virtual function overrides
//{{AFX_VIRTUAL(CSmsXPressApp)
public:
//##ModelId=3E646B44034C
21
virtual BOOL InitInstance();
//}}AFX_VIRTUAL
// Implementation
//{{AFX_MSG(CSmsXPressApp)
// NOTE - the ClassWizard will add and remove member functions
here.
//
DO NOT EDIT what you see in these blocks of generated code
!
//}}AFX_MSG
DECLARE_MESSAGE_MAP()
};
///////////////////////////////////////////////////////////////////////////
//
//{{AFX_INSERT_LOCATION}}
// Microsoft Visual C++ will insert additional declarations immediately
before the previous line.
#endif //
!defined(AFX_SMSXPRESS_H__A6F1D370_90D5_479A_B8E5_A579EED06AC2__INCLUDED_)
22
Список использованных источников
1. Зеленко Л.С. Лекции по курсу «Технологии программирования». Самара, СГАУ,
2003.
2. СТП СГАУ 6.1.4-97. Общие требования к оформлению учебных текстовых
документов: Методические указания. - Самара, Самар. аэрокосм. ун-т, 1997. - 16 с.
3. Смит Дж., Смит Д. Принципы концептуального проектирования баз данных / В кн.:
Требования и спецификации в разработке программ. - М.: Мир, 1984. С.165 - 198.
4. Информационная технология. Комплекс стандартов и руководящих документов на
автоматизированные системы: (Сборник): ГОСТ 34.003-90,
РД 50-680-88, РД 50-682-89, ГОСТ 34.201-89 - ГОСТ 34.602.89. - М.: Изд-во стандартов,
1992. -150 с.
23
Download