Автор работы: Пользователь скрыл имя, 02 Февраля 2014 в 19:29, курсовая работа
В данной работе описывается разработка и использование программного продукта, который может в некоторой степени облегчить работу турфирм. Также целью работы является исследование СУБД Microsoft SQL Server. Сделано это будет путем использования среды разработки Microsoft Visual Studio 2010.
ВВЕДЕНИЕ 3
1. ОСНОВАНИЕ И ЦЕЛЬ РАЗРАБОТКИ 4
2. РАЗРАБОТКА ПРИЛОЖЕНИЯ “ТУРОПЕРАТОР” 7
2.1. Создание проекта 7
2.2. База данных 8
2.3. Модель данных 13
2.4. Контроллеры проекта 14
2.5. Представления проекта 15
2.6. Представление приложения 16
3. РАБОТА ПРИЛОЖЕНИЯ «ТУРОПЕРАТОР» 18
ЗАКЛЮЧЕНИЕ 22
СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ 23
ПРИЛОЖЕНИЕ 24
Листинг контроллера клиент 24
Источник: Собственная разработка
Сущность «Manager», а также ее атрибуты представлены в табл.2.6.
Таблица 2.6
Менеджер
Поле |
Тип данных |
Хранимые данные |
ManagerId |
int |
Код менеджера |
ManagerName |
nvarchar(50) |
Имя менеджера |
Источник: Собственная разработка
Схема базы данных (рис. 2.4):
Рис. 2.4. Окно-диаграмма "Схема базы данных"
Источник: собственная разработка
Для осуществления манипуляций с нашей базой данных необходима модель данных. Именно с помощью модели данных приложение получает доступ к полям хранилища данных. Создаем модель данных (рис. 2.5):
Рис.2.5. Создание модели данных
Источник: Собственная разработка
Платформа Entity Framework позволяет разработчикам создавать приложения для доступа к данным, работающие с концептуальной моделью приложения, а не напрямую с реляционной схемой хранения. Цель состоит в уменьшении объема кода и снижении затрат на сопровождение приложений, ориентированных на обработку данных. Приложения Entity Framework предоставляют следующие преимущества.
Платформа MVC для ASP.NET сопоставляет URL-адреса с классами, называемыми контроллерами. Контроллеры обрабатывают входящие запросы, вводимые пользователями данные и их действия, а так же реализуют логику приложения. Класс контроллера обычно вызывает отдельный компонент представления, который создает в качестве ответа HTML-разметку.[1]
Для создания нового контроллера необходимо необходимо вызвать контекстное меню папки “Controllers” затем выбрать Add, Controllerи набрать имя контроллера, причём если мы хотим добавить методы для создания, обновления, удаления и работы с деталями объекта, нам необходимо выбрать пункт “Add action methods for Create, Update, Delete, and Details scenarios” (рис. 2.6):
Рис.2.6. Создание контроллера
Источник: Собственная разработка
Контроллеры должны в полной мере описывать сущности задачи.Методы контроллеров реализуют CRUD-функционал.(приложение) Для примера рассмотрим метод Index(), который служит для отображения всех клиентов (рис. 2.7):
Рис.2.7.Реализация метода Index()
Источник: Собственная разработка
Как говорилось раньше, представление - отвечает за отображение информации.
Для создания нового представления необходимо вызвать контекстное меню папки “View” затем выбрать Add, View. В открывшемся окне (рис. 2.8) мы видим много различных опций. Для создания представления определённого типа мы должны выбрать из списка объект модели, предварительно поставив галочку на “Create a strongly-typed view”.
“View-Content” – это способ представления данных, к примеру “details” сгенерирует нам представление в виде деталей некоторого объекта.
“Select master page” – здесь мы выбираем страницу, из которой наследуется разметка html страницы.
Рис. 2.8. Диалоговоеокно "Создание нового представления"
Источник: собственная разработка
Для создания пользовательского интерфейса, облегчающего работу с приложением пользователя, использовалась технология HTML+CSS.
CSS(Каскадные таблицы стилей)–формальный язык описания внешнего вида документа, написанного с использованием языка разметки.
CSS используется для задания цветов, шрифтов, расположения отдельных блоков и других аспектов представления внешнего вида веб-страниц. Основной целью разработки CSS являлось разделение описания логической структуры веб-страницы (которое производится с помощью HTML или других языков разметки) от описания внешнего вида этой веб-страницы (которое теперь производится с помощью формального языка CSS). Такое разделение может увеличить доступность документа, предоставить большую гибкость и возможность управления его представлением, а также уменьшить сложность и повторяемость в структурном содержимом.
Запуск приложения осуществляется
из среды разработки Microsoft Visual Studio 2012.
После загрузки приложения в браузере
можно будет наблюдать
Рис. 3.1. Главная страница приложения «Туроператор»
Источник: Собственная разработка
Главная страница состоит из трёх основных элементов. Первый из них – это главное меню. Из него возможен переход в соответствующие разделы, где будет возможен просмотр и редактирование имеющихся данных. Второй элемент является контейнером, то есть местом, куда будет выводиться вся информация. Так же существует нижнее меню, оно позволяет осуществлять дополнительные операции, такие как печать, создание нового элемента, вход и выход из системы. Следует заметить, что для осуществления любых операций работнику необходимо пройти авторизацию.
Далее подробнее остановимся на некоторых элементах главного меню. Первый элемент меню представляет собой ссылку на список клиентов нашей турфирмы, то есть происходит извлечение данных из существующей таблицы Klient. Последующие элементы меню предоставляют аналогичные возможности – это вывод данных из таблиц Tour, Country, Town, Manager, Transport. Помимо просмотра выводимых данных, также существует возможность их редактирования, удаления, создания и отправки документа на печать. Например, представление списка клиентов турфирмы (рис.3.2):
Рис. 3.2. Список клиентов турфирмы
Источник: Собственная разработка
Так же напротив каждого клиента существует ссылка AllTours, которая позволяет просмотреть все туры данного клиента. Ссылка Edit позволяет перейти к редактированию данных о клиенте, Delete - удалить клиента из базы данных. Однако, как писалось ранее, для доступа ко всем разделам необходима авторизация. Любое современное предприятие не может успешно функционировать без создания надежной системы защиты своей информации. Форма авторизации будет выглядеть следующим образом (рис.3.3):
Рис. 3.3. Форма "Вход в систему"
Источник: Собственная разработка
При регистрации новых клиентов, необходимо добавление их в базу данных. Это осуществляется путем нажатия кнопки Create New, находясь в соответствующем разделе (рис.3.4):
Рис. 3.4. Форма "Создание клиента"
Источник: Собственная разработка
Для любой фирмы необходимо формирование различной отчетной документации. Для реализации этой процедуры необходимо просто выбрать, что мы хотим отправить на печать и нажать кнопку Print. Например, отправим на печать список всех наших клиентов, выходной документ будет представлен в виде (рис.3.5):
Рис. 3.4. Печатная форма докумета
Источник: Собственная разработка
Для реализации этой возможности использовалась технология JavaScript.
Результатом данной курсовой работы является программный продукт, который решает следующие задачи:
1. Автоматизация основных
функций туроператора. Процесс создания
регистрации клиентов и
2. Создание отчетности. В
программном продукте
3. Обеспечение безопасности данных, благодаря необходимости авторизации.
Технические решения всех этих задач и многих других уже существуют, и уже в ближайшее время турфирмы, не использующие новые технологии, окажутся вне конкуренции (в печальном смысле). Нужно отдавать себе отчет в том, что внедрение полноценной системы - процесс длительный и трудоемкий.
Подводя итоги, возникает вопрос, стоит или не стоит автоматизироваться? Если нам необходима возможность быстрого получения информации для принятия решения, систематизация данных, возможность быстрого принятия решения - самое время задуматься об автоматизации.
Листинг контроллера клиент
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using turoperator.Models;
namespace turoperator.Controllers
{
public class KlientController : Controller
{
private TuroperatorDBEntities db = new TuroperatorDBEntities();
[Authorize(Roles="
public ActionResult Index()
{
var klients = (from klient in db.Klient select klient).ToList();
return View(klients);
}
public ActionResult Details(int id)
{
var klientDetails = (from klient in db.Klient where klient.KlientId == id select klient).First();
return View(klientDetails);
}
public ActionResult Create()
{
Klient klient = new Klient();
return View(klient);
}
[HttpPost]
public ActionResult Create(Klient klient)
{
try
{
if (ModelState.IsValid)
{
db.AddToKlient(klient);
db.SaveChanges();
return RedirectToAction("Index");
}
}
catch (Exception ex)
{
ModelState.AddModelError(Strin
}
return View(klient);
}
public ActionResult Edit(int id)
{
var klientEdit = (from klient in db.Klient where klient.KlientId == id select klient).First();
return View(klientEdit);
ПРОДОЛЖЕНИЕ
}
[HttpPost]
public ActionResult Edit(int id, FormCollection collection)
{
var klientEdit = (from klient in db.Klient where klient.KlientId == id select klient).First();
try
{
UpdateModel(klientEdit);
db.SaveChanges();
return RedirectToAction("Index");
}
catch
{
return View(klientEdit);
}
}
public ActionResult Delete(int id)
{
var klientDelete = (from klient in db.Klient where klient.KlientId == id select klient).First();
return View(klientDelete);
}
[HttpPost]
public ActionResult Delete(int id, FormCollection collection)
{
var klientDelete = (from klient in db.Klient where klient.KlientId == id select klient).First();
try
{
db.DeleteObject(klientDelete);
db.SaveChanges();
return RedirectToAction("Index");
}
catch
{
return View(klientDelete);
}
}
public ActionResult AllTours(int id)
{
var tours = (from tour in db.Tour where tour.TourId == id select tour).ToList();