Разработка системы рассылки СМС сообщений

Автор работы: Пользователь скрыл имя, 29 Января 2013 в 17:29, курсовая работа

Краткое описание

Целью курсовой работы является автоматизация рассылки SMS сообщений, для ускорения и облегчения работы по оповещению студентов.
Задачей, для достижения данной цели является создание приложения SmsMessenger, которое будет производить автоматизацию рассылки SMS.

Содержание

Введение 2
1. Описание предметной области 3
1.1. Предметная область курсового проекта 3
1.2. Информационно-логическая модель предметной области 3
2. Создание приложения SmsMessenger 6
2.1. Логическое проектирование 6
2.2. Модель данных 7
2.3. Описание представлений и представителей 8
3. Тестирование программы 17
Заключение 25
Список литературы 26
Пиложение А. Задание на курсовой проект 27
Приложение Б. Структура исходных файлов 28
Приложение В. XAML код всех представлений и библиотек ресурсов 30
Приложение Г. Код классов программы. 62

Вложенные файлы: 1 файл

Kursovik.docx

— 6.63 Мб (Скачать файл)

Представления формы выполнены  в виде UserControl:

    • EditConfigView – представление редактирования конфигурации;
    • EditContactView – представление редактирования контакта;
    • EditDistributionListView – представление редактирования списка рассылки;
    • EditGroupView – представление редактирования группы;
    • EditSmsTemplateGroupView – представление редактирования группы шаблонов СМС;
    • EditSmsView – представление редактирования шиблона SMS;
    • LogView – представление для отображения лога;
    • SendSmsByListView – представление для создания отправки сообщений;
    • SmsSendReportView – представление отображающее отчет после отправки сообщений.

 

  1. Тестирование  программы

В данном разделе приведено  несколько тестов для разработанной  программы.

После запуска приложения появляется главное окно программы (Рисунок 8).

Рисунок 8

Для редактирования работы с  группами и контактами необходимо расширить  панель «Контакты» (Рисунок 9).

Рисунок 9

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

- редактирование

- отправить сообщение

- удалить

- добавить нового студента в  группу

- показать / спрятать студентов текущей группы

- добавить

В случае затруднения выбора действия, при наведении курсора  на кнопку отображается всплывающая  подсказка.

При клике на кнопке редактирования студента открывается вкладка с  редактированием данного студента (Рисунок 10)

Рисунок 10

Имеется возможность отредактировать  имя, фамилию, студенческий номер, сотовый  телефон, домашний телефон, адрес день рождения, группу а так же задать фотографию или аватар.

При не корректном вводе информации в критически важные поля появляются валидационные предупреждения (Рисунок 11)

Рисунок 11

Окно с отображением списков  рассылки изображено на Рисунок 12

Рисунок 12

Список рассылки выполнен в виде дерева, коренными элементами которого являются сами списки рассылки, следующим уровнем идут группы контактов, листьями дерева являются сами контакты.

Список шаблонов SMS изображен на Рисунок 13.

Список SMS шаблонов так же выполнен в виде дерева, коренные элементы – группы SMS шаблонов, листья – SMS шаблоны.

Рисунок 13

Создание SMS сообщения возможно несколькими способами. Рассмотрим пример отправки сообщения по группе рассылки.

Для этого необходимо нажать на кнопку в списке рассылки, после чего отобразится вкладка создания сообщения (Рисунок 14). Далее необходимо выбрать нужных членов группы рассылки (по умолчанию выбраны все), выбрать сообщение и нажать кнопку отправить.

Так же возможно корректировка  SMS сообщения и сохранения полученого сообщения как новый шаблон, для этого необходимо нажать кнопку , после чего произойдет отображение интерфейса для сохранения SMS шаблона (Рисунок 15), затем необходимо нажать кнопку еще раз.

 

Рисунок 14

Рисунок 15

Данный способ отправки SMS сообщений не единственный, можно например вызывать отправку кнопкой , при просмотре контактов. Тогда будет сформирован временный список рассылки, состоящий из одного выбранного контакта.

Так же рассылку SMS удобно производить при помощи перетаскивания шаблона SMS на студента или группу рассылки (Рисунок 16)

Рисунок 16

После отправки SMS формируется отчет, в котором будут указаны контакты, для которых сообщение было отправлено и контакты, для которых не удалось отправить сообщение (Рисунок 17)

Рисунок 17

Так же в программе SmsMessenger предусмотрена удобная форма визуализации лога (Рисунок 18)

Рисунок 18

 

Заключение

При работе над проектом были пройдены следующие этапы:

    • Выбор языка программирования и платформы для проекта
    • Выбор паттерна программирования
    • Выбор способа хранения данных
    • Проектирования модели данных
    • Проектирование логики работы программы и интерфейса
    • Написание программы

После этого было написано приложение SmsMessenger, которое позволяет организовать массовую SMS рассылку для студентов, обладает удобным GUI.

К перспективам развития данного  приложения следует отнести добавление новых вспомогательных функций  и улучшение пользовательского  интерфейса.

 

Список литературы

    1. Nathan, Adam – “WPF 4 Unleashed”.  Indianapolis, Indiana 2010;
    2. Rob Eisenberg, Christopher Bennage – “WPF in 24 Hours”. Indianapolis, Indiana 2009;
    3. http://msdn.microsoft.com/library/ - ценный источник информации для разработчиков, использующих средства, продукты, технологии и службы корпорации Майкрософт;
    4. http://www.techdays.ru/ - Онлайн-семинары от Microsoft по современным IT-технологиям;
    5. http://windowsclient.net/learn/videos_wpf.aspx - скринкасты по технологии WPF;

 

Приложение А. Задание на курсовой проект

Кафедра «Системы автоматизированного проектирования»

ЗАДАНИЕ НА КУРСОВОЙ ПРОЕКТ

По дисциплине

Объектно-ориентированное программирование

Студенту группы

7САПР(С)-01 Непомнящева А.Н.


 

Тема:

Разработка системы рассылки СМС  сообщений


 

Этапы разработки

Срок выполнения

  1. Описание предметной области

3-6 недели семестра

  1. Создание приложения рассылки СМС сообщений

7-12 недели семестра

  1. Оформление пояснительной записки

13-14 недели семестра


 

Срок предоставления проекта к  защите

15-17-я недели семестра


 

Руководитель проекти

Качесова Л.Ю.


 

Подпись руководителя

Подпись студента

_________________

_________________


 

Дата выдачи задания

«01» Марта 2011 г.


 

Приложение Б. Структура исходных файлов

 

Приложение В. XAML код всех представлений и библиотек ресурсов

Представления

App.xaml

<Application x:Class="SmsMessanger.App"

            xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"

            xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"

            StartupUri="Shell.xaml">

    <Application.Resources>

        <ResourceDictionary>

            <ResourceDictionary.MergedDictionaries>

                <ResourceDictionary Source="Resources\DefaultStyles.xaml" />

                <ResourceDictionary Source="Resources\Colors.xaml" />

                <ResourceDictionary Source="Resources\TransparentButton.xaml" />

            </ResourceDictionary.MergedDictionaries>

        </ResourceDictionary>

    </Application.Resources>

</Application>

Shell.xaml

<Window x:Class="SmsMessanger.Shell"

       xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"

       xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"

       xmlns:controls ="clr-namespace:SmsMessanger.UserControls"

       Title="MainWindow" Height="550" Width="825"

       Closed="app_closed"

       StateChanged="Window_StateChanged">

    <DockPanel>

        <controls:Menu DockPanel.Dock="Top" />

       

        <StatusBar DockPanel.Dock="Bottom">

            <StatusBarItem DockPanel.Dock="Right">

                <TextBlock Text="{Binding Path=StatusText}" />

            </StatusBarItem>

            <StatusBarItem></StatusBarItem>

        </StatusBar>

 

        <Expander ExpandDirection="Right"

                 IsExpanded="False">

            <Expander.Header>

                <TextBlock Text="Контакты">

                    <TextBlock.LayoutTransform>

                        <RotateTransform Angle="90"></RotateTransform>

                    </TextBlock.LayoutTransform>

                </TextBlock>

            </Expander.Header>

            <controls:SideBar></controls:SideBar>

        </Expander>

       

        <Expander ExpandDirection="Right">

            <Expander.Header>

                <TextBlock Text="Рассылка">

                    <TextBlock.LayoutTransform>

                        <RotateTransform Angle="90" />

                    </TextBlock.LayoutTransform>

                </TextBlock>

            </Expander.Header>

            <DockPanel Width="300">

                <controls:DistributionTreeBar></controls:DistributionTreeBar>              

               

            </DockPanel>           

        </Expander>

 

        <Expander ExpandDirection="Right">

            <Expander.Header>

                <TextBlock Text="Шаблоны">

                    <TextBlock.LayoutTransform>

                        <RotateTransform Angle="90" />

                    </TextBlock.LayoutTransform>

                </TextBlock>

            </Expander.Header>

            <DockPanel Width="300">

                <controls:SmsTemplateBar></controls:SmsTemplateBar>               

            </DockPanel>

        </Expander>

 

 

 

        <TabControl x:Name="tabs">

        </TabControl>

              

    </DockPanel>

</Window>

 

EditConfigView.xaml

<UserControl x:Class="SmsMessanger.Views.EditConfigView"

            xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"

            xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"

            xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"

            xmlns:d="http://schemas.microsoft.com/expression/blend/2008"

            mc:Ignorable="d"

            d:DesignHeight="300" d:DesignWidth="300">

    <Grid>

        <Grid.RowDefinitions>

            <RowDefinition Height="*" />

            <RowDefinition Height="auto"/>

        </Grid.RowDefinitions>

        <WrapPanel>

            <GroupBox Padding="10"

                 BorderThickness="2"

                 BorderBrush="{StaticResource ResourceKey=MediumBlue}"

                 Margin="5">

                <GroupBox.Header>

                    <Border Background="{StaticResource ResourceKey=MediumBlue}"

                               Padding="5"

                               CornerRadius="5">

                        <TextBlock Text="Настройки подключения к шлюзу SMS: smsc.ru"

                                      Foreground="White"

                                      FontWeight="Bold"/>

                    </Border>

                </GroupBox.Header>

                <Grid>

                    <Grid.RowDefinitions>

                        <RowDefinition />

                        <RowDefinition />

                    </Grid.RowDefinitions>

                    <Grid.ColumnDefinitions>

                        <ColumnDefinition Width="auto" />

                        <ColumnDefinition />

                    </Grid.ColumnDefinitions>

                    <TextBlock Text="Логин:" Grid.Row="0" HorizontalAlignment="Right" />

                    <TextBlock Text="Пароль:" Grid.Row="1" HorizontalAlignment="Right" />

                   

                    <TextBox Text="{Binding SmscLogin}" Grid.Column="1" />

                    <PasswordBox x:Name="passwordBox" Grid.Column="1" Grid.Row="1" />

                </Grid>

            </GroupBox>

           

            <GroupBox Padding="10"

                 BorderThickness="2"

                 BorderBrush="{StaticResource ResourceKey=MediumBlue}"

                 Margin="5">

                <GroupBox.Header>

                    <Border Background="{StaticResource ResourceKey=MediumBlue}"

                               Padding="5"

                               CornerRadius="5">

                        <TextBlock Text="Настройки подключения к шлюзу SMS: smsc.ru"

                                      Foreground="White"

                                      FontWeight="Bold"/>

                    </Border>

                </GroupBox.Header>

                <StackPanel Orientation="Vertical"

                           HorizontalAlignment="Left">

                    <StackPanel Orientation="Horizontal">

                        <TextBlock Text="Отправлять сообщение на телефоны (боевой режим)"

                                  TextWrapping="Wrap"

                                  MaxWidth="200"/>

                        <CheckBox x:Name="combatModeCheck"

                                 Margin="5"

                                 VerticalAlignment="Center"

                                 IsChecked="{Binding CombatMode}"/>

Информация о работе Разработка системы рассылки СМС сообщений