Информационная система реализации билетов в кинотеатрах
Используемые средства реализации информационной системы реализации билетов в кинотеатрах. Создание автоматизированного программного комплекса на платформе NET Framework при помощи объектно-ориентированного подхода в среде разработки Visual Studio 2019.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | дипломная работа |
Язык | русский |
Дата добавления | 19.04.2020 |
Размер файла | 1019,9 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
{
cinema.Add(new Cinema(Convert.ToInt32(item.ItemArray[0]), item.ItemArray[1].ToString(), Convert.ToInt32(item.ItemArray[2]),
Convert.ToInt32(item.ItemArray[3]), Convert.ToInt32(item.ItemArray[4]), item.ItemArray[5].ToString()));
}
foreach (var item in cinema)
{
ticketCinema.Items.Add(item.Name);
}
command = new MySqlCommand("SELECT * FROM tikets.film", db.GetConnection());
table = new DataTable();
adapter.SelectCommand = command;
adapter.Fill(table);
foreach (var item in table.Select())
{
films.Add(new Film(
Convert.ToInt32(item.ItemArray[0]),
item.ItemArray[1].ToString(),
item.ItemArray[2].ToString(),
item.ItemArray[3].ToString(),
Convert.ToInt32(item.ItemArray[4])));
}
foreach (var item in films)
{
ticketFilm.Items.Add(item.Name);
}
}
private void addTicketBtn_Click(object sender, RoutedEventArgs e)
{
int filmId = 0, cinemaId = 0;
foreach (var item in films)
{
if (item.Name.Equals(ticketFilm.SelectedItem))
filmId = item.FilmId;
}
foreach (var item in cinema)
{
if (item.Name.Equals(ticketCinema.SelectedItem))
cinemaId = item.CinemaId;
}
DateTime dateTime = Convert.ToDateTime(ticketDate.Text);
DB db = new DB();
db.openConnection();
MySqlDataAdapter adapter = new MySqlDataAdapter();
MySqlCommand command = new MySqlCommand("INSERT INTO tikets.ticket(time_seans, cinema_id, film_id) VALUES (" +
"@time_seans,@cinema_id,@film_id);"
, db.GetConnection());
adapter.InsertCommand = command;
adapter.InsertCommand.Parameters.Add("@time_seans", MySqlDbType.DateTime, 4).Value = dateTime;
adapter.InsertCommand.Parameters.Add("@cinema_id", MySqlDbType.Int32, 4).Value = cinemaId;
adapter.InsertCommand.Parameters.Add("@film_id", MySqlDbType.Int32, 4).Value = filmId;
adapter.InsertCommand.ExecuteNonQuery();
ticketDate.Text = "";
MessageBox.Show("Билеты успешно добавлены!");
}
private void Button_Click(object sender, RoutedEventArgs e)
{
otchetText.Text = "";
DB db = new DB();
db.openConnection();
MySqlDataAdapter adapter = new MySqlDataAdapter();
MySqlCommand command;
cinema = new List<Cinema>();
films = new List<Film>();
command = new MySqlCommand("Select films.name, count(films.film_id) " +
"From tikets.film as films " +
"INNER JOIN tikets.ticket as tickets ON films.film_id = tickets.film_id " +
"INNER JOIN tikets.sale as sales ON sales.ticket_id = tickets.ticket_id " +
"GROUP BY films.name; ", db.GetConnection());
table = new DataTable();
adapter.SelectCommand = command;
adapter.Fill(table);
int count = 1;
foreach (var item in table.Select())
{
otchetText.Text += "Место номер " + count + ": " + item.ItemArray[0].ToString() + "\n";
count++;
}
}
private void Button_Click_1(object sender, RoutedEventArgs e)
{
otchetText.Text = "";
DB db = new DB();
db.openConnection();
MySqlDataAdapter adapter = new MySqlDataAdapter();
MySqlCommand command;
cinema = new List<Cinema>();
films = new List<Film>();
command = new MySqlCommand("Select films.name, sum(sales.price) " +
"From tikets.film as films " +
"INNER JOIN tikets.ticket as tickets ON films.film_id = tickets.film_id " +
"INNER JOIN tikets.sale as sales ON sales.ticket_id = tickets.ticket_id " +
"GROUP BY films.name; ", db.GetConnection());
table = new DataTable();
adapter.SelectCommand = command;
adapter.Fill(table);
int count = 1;
foreach (var item in table.Select())
{
otchetText.Text += item.ItemArray[0].ToString() + " собрал " + item.ItemArray[1].ToString() + "р. \n";
count++;
}
}
private void Button_Click_2(object sender, RoutedEventArgs e)
{
otchetText.Text = "";
DB db = new DB();
db.openConnection();
MySqlDataAdapter adapter = new MySqlDataAdapter();
MySqlCommand command;
cinema = new List<Cinema>();
films = new List<Film>();
command = new MySqlCommand("Select cinemas.name, count(sales.ticket_id) " +
"From tikets.cinema as cinemas " +
"INNER JOIN tikets.ticket as tickets ON cinemas.cinema_id = tickets.cinema_id " +
"INNER JOIN tikets.sale as sales ON sales.ticket_id = tickets.ticket_id " +
"GROUP BY cinemas.name;", db.GetConnection());
table = new DataTable();
adapter.SelectCommand = command;
adapter.Fill(table);
int count = 1;
foreach (var item in table.Select())
{
otchetText.Text += item.ItemArray[1].ToString() + " зрителей посетили " + item.ItemArray[0].ToString() + " \n";
count++;
}
}
DataTable table = null;
private void exit_Click(object sender, RoutedEventArgs e)
{
MainWindow mainWindow = new MainWindow();
mainWindow.Show();
Close();
}
private void Button_Click_3(object sender, RoutedEventArgs e)
{
if (table == null)
return;
XDocument xdoc = new XDocument();
XElement attributes = new XElement("attributes");
foreach (var item in table.Select())
{
XElement otchet = new XElement("otchet");
XAttribute otchetNameAttr = new XAttribute("name", item.ItemArray[0].ToString());
XElement otchetElement = new XElement("element", item.ItemArray[1].ToString());
otchet.Add(otchetNameAttr);
otchet.Add(otchetElement);
attributes.Add(otchet);
}
xdoc.Add(attributes);
SaveFileDialog saveFileDialog = new SaveFileDialog();
saveFileDialog.Filter = "Xml file (*.xml)|*.xml";
saveFileDialog.InitialDirectory = @"c:\";
if (saveFileDialog.ShowDialog() == true)
xdoc.Save(saveFileDialog.FileName);
}
}
}
Cinema.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace CourseWorkProject_OOP.Models.Entity
{
public class Cinema
{
public int CinemaId;
public string Name { get; set; }
public string Description { get; set; }
public int CountPlaceCategory1;
public int CountPlaceCategory2;
public int CountPlaceCategory3;
public Cinema(int cinema_id, string name, int place_category1, int place_category2, int place_category3, string description)
{
this.CinemaId = cinema_id;
this.Name = name;
this.CountPlaceCategory1 = place_category1;
this.CountPlaceCategory2 = place_category2;
this.CountPlaceCategory3 = place_category3;
this.Description = description;
}
}
}
Film.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace CourseWorkProject_OOP.Models.Entity
{
public class Film
{
public int FilmId;
public string Name { get; set; }
public string Description { get; set; }
public string Cost { get; set; }
public int Length { get; set; }
public Film(int filmId, string name, string description, string cost, int length)
{
FilmId = filmId;
Name = name;
Description = description;
Cost = cost;
Length = length;
}
public Film(string name, string description)
{
Name = name;
Description = description;
}
}
}
Length.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace CourseWorkProject_OOP.Models.Entity
{
class LengthCategory
{
private int lengthFrom;
private int lengthTo;
private double coef;
public LengthCategory(int lengthFrom, int lengthTo, double coef)
{
this.lengthFrom = lengthFrom;
this.lengthTo = lengthTo;
this.coef = coef;
}
public double calcPrice(double price, int length)
{
if (length >= lengthFrom && length <= lengthTo)
{
return price * coef;
}
else
{
return price;
}
}
}
}
PlaceCategory.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace CourseWorkProject_OOP.Models.Entity
{
class PlaceCategory
{
private int placeFrom;
private int placeTo;
private double coef;
public PlaceCategory(int placeFrom, int placeTo, double coef)
{
this.placeFrom = placeFrom;
this.placeTo = placeTo;
this.coef = coef;
}
public double calcPrice(double price, int line)
{
if (line >= placeFrom && line <= placeTo)
{
return price * coef;
}
else
{
return price;
}
}
}
}
Sale.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace CourseWorkProject_OOP.Models.Entity
{
class Sale: Ticket
{
public int SaleId;
public int UserId;
public double Price { get; set; }
public DateTime DateSale { get; set; }
public Sale(int saleId, int userId, double price, DateTime dateSale, int tiketId, int cinemaId, string cinemaName, DateTime timeSeans,
int filmId, string name, string description, string cost, int length)
: base(tiketId, cinemaId, cinemaName, timeSeans, filmId, name, description, cost, length)
{
this.SaleId = saleId;
this.UserId = userId;
this.DateSale = dateSale;
this.Price = price;
}
public Sale(double price, DateTime dateSale, string cinemaName, DateTime timeSeans,
string name, string description)
: base(cinemaName, timeSeans, name, description)
{
this.DateSale = dateSale;
this.Price = price;
}
}
}
Ticket.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace CourseWorkProject_OOP.Models.Entity
{
public class Ticket: Film
{
public int TiketId;
public int CinemaId;
public string CinemaName { get; set; }
public DateTime TimeSeans { get; set; }
public Ticket(int tiketId, int cinemaId, string cinemaName, DateTime timeSeans,
int filmId, string name, string description, string cost, int length)
: base(filmId, name, description, cost, length)
{
this.TiketId = tiketId;
this.CinemaId = cinemaId;
this.CinemaName = cinemaName;
this.TimeSeans = timeSeans;
}
public Ticket(string cinemaName, DateTime timeSeans,
string name, string description)
:base(name, description)
{
this.CinemaName = cinemaName;
this.TimeSeans = timeSeans;
}
}
}
TimeCategory.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace CourseWorkProject_OOP.Models.Entity
{
/// <summary>
/// класс категории времени
/// </summary>
class TimeCategory
{
private int timeFrom;
private int timeTo;
private double coef;
public TimeCategory(int timeFrom, int timeTo, double coef)
{
this.timeFrom = timeFrom;
this.timeTo = timeTo;
this.coef = coef;
}
public double calcPrice(double price, DateTime time)
{
if (time.Hour >= timeFrom && time.Hour <= timeTo)
{
return price * coef;
}
else
{
return price;
}
}
}
}
Db.cs
using MySql.Data.MySqlClient;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace CourseWorkProject_OOP
{
class DB
{
MySqlConnection connection = new MySqlConnection("datasource = localhost; port=3306;username=root;password=Guga6931;database=tikets");
//ф-ция подключения к БД
public void openConnection()
{
if (connection.State == System.Data.ConnectionState.Closed)
connection.Open();
}
public void closedConnection()
{
if (connection.State == System.Data.ConnectionState.Open)
connection.Close();
}
public MySqlConnection GetConnection()
{
return connection;
{
ПРИЛОЖЕНИЕ Г
(обязательное)
Руководство пользователя
1 Общие сведения
Раздел «Руководство пользователя» содержит материал в обязательном порядке необходимый для ознакомления. В разделе описывается уровень допустимых знаний пользователя, документы, описывающие особенности работы и функционирования системы, необходимое программное обеспечение (если требуется).
Целью разработки программного продукта является автоматизация деятельности предприятий по учёту и обслуживания автотранспорта. Результатом разработки является приложение, включающее в себя функции доступа и обработки данных регламентируемых предметной областью проекта.
Пользователь системы должен обладать следующей квалификацией:
- пользовательские навыки работы с ЭВМ;
- знание предметной области и знакомство с руководством пользователя.
Список документов, предоставляемых к обязательному ознакомлению перед началом работы:
- настоящее руководство пользователя;
- инструкциями по технике безопасности (для работы с ЭВМ).
2 Требования к запуску приложения
Для запуска приложения требуется:
- операционная система Windows 7, 8, 10;
- устнановленный.NET Framework;
- заранее настроеное соединения с базой данных системным-программистом.
3 Запуск приложения
Приложение можно запустить через exe-файл напрямую. После запуска программы пользователь должен авторизоваться в системе, затем он сможет продолжить работу с приложением. Для завершения программы требуется нажать на значок меню в правом верхнем углу программы и выбрать соответствующий пункт.
4 Непредвиденные ситуации
Могут возникнуть несколько типов ошибок:
- неверно вваленные данные при авторизации;
-некорректно введённые данные;
- потеря соединения с базой данных;
- не удалось изменить запись;
- не удалось добавить запись;
- не удалось удалить запись;
- доступ к данному ресурсу недоступен.
При возникновении любых непредвиденных ситуаций рекомендуется перезапустить приложение. Если ошибка связана с подключением к базе данных обратитесь к системному-программисту. Если после повторного использования программы возникают ошибки сообщите разработчику, или программисту, который в данный момент поддерживает программу данной программы для её устранения.
ПРИЛОЖЕНИЕ Д
(обязательное)
Руководство программиста
1 Назначение и условия применения программы
Программное средство предназначено для учёта реализации билетов на киносеансы в кинотеатрах города.
Основные функции приложения:
- предоставление отчётов о доставках;
- получение информации с базы данных;
- управление данными пользователей;
- управление пользователями системы;
И тд
Для запуска приложения должен быть установлен.NET Framework. Для считывания данных устройство должно соединятся с базой данных MySQL.
2 Характеристики программы
Разработанное приложение написано на языке программирования C# в среде разработке VisualStudio 2019.
Для хранения информации используется база данных MySQL.
3 Обращение к программе
Обращение к программе происходит при запуске.exeфайла и настройки соединения с СУБД MySQL. Запуск программы так же осуществляется с помощью среды разработки, например, VisualStudio 2019.
Для дополнения программного обеспечения новым функционалом можно использовать любую среду разработки на языке программирования C#. Продукт покрыт автоматизированными функциональными тестами и их использование позволяет изменять исходный код без опасности нарушить какую-либо часть существующего функционала.
4 Входные и выходные данные
В качестве входных данных может использоваться тестовый набор данных, он генерируется с помощью SQL-скрипта приложенным в приложении, базу данных и тестовые записи.
Выходными данными для приложения являются сгенерированные XML-отчёты по расходу обслуживания заказов.
5 Сообщение в ходе работы приложения
При работе программа может оповещать пользователя о следующих неполадках в работы системы:
- некорректные учетные данные пользователя;
- несуществующий пользователь;
- ошибки корректности ввода данных;
- несуществующий киносеанс;
- несуществующий заказ.
Данные сообщения передаются в специальном виде ошибки с кодом ошибки и описанием
ПРИЛОЖЕНИЕ Ж
(обязательное)
Руководство системного программиста
1 Общие сведения о приложении
Приложении предназначена для автоматизации и упрощения работы по учёту обслуживания кинотеатров.
Данноеприложение выполняет следующие функции:
управление данными: добавление, удаление, просмотр, редактированиеданных;
выборка данных для предоставления отчётов;
получение данных из базы данных;
предоставление отчётов о доставках в формате XML;
Для функционирования программно-аппаратного комплекса необходимо наличие следующих компонент:
СУБД: MySQL;
на стороне клиента:.exeфайл с приложением.
2 Структура программы
Приложение реализовано на языке C#. В качестве хранилища базы данных используется MySQL. Для генерации базы данных и тестового набора написаны SQL-скрипты.
3 Настройка программы
Для корректной работы приложения требуется предварительно настроить подключения к базе данных, если база данных не создана, то сгенерировать её.
Так как приложения работает с СУБД MySQL, требуется предварительно её установить на компьютер с приложением, либо компьютер, находящийся в одной сети с ним, и установить MySQL Server. Для этого требуется выполнить SQL-скрипт, приложенный к приложению.
Далее потребуется настройка соединения с СУБД. Для этого требуется изменить строку подключения для уже существующей СУБД. Строка подключения находится в файле «DB.cs».
4 Проверка программы
Для проверки программы на работоспособность требуется заново провести модульное и интегрированное тестирование для проверки:
- на соединения с базой данных;
- на работоспособность бизнес-логики и возникновения исключительных ситуаций;
- корректность вывода данных и представления данных.
5 Дополнительные возможности
В качестве дополнительных возможностей можно выделить:
- многопользовательский доступ;
- гибкая настройка СУБД;
- валидация введённых данных.
6 Сообщение системному программисту
В приложении могут возникать следующие системные ошибки:
- не удалось установить подключения к базе данных;
-не удалось сохранить XML-отчёт;
- не удалось добавить киносеанс;
- не удалось зарегистрировать пользователя.
Для устранения данных ошибок требуется перезапустить программу, если ошибки не исчезли требуется проверить корректность введённых данных и соединения с базой данных. Если ошибки так и не удалось устранить требуется обратится к разработчику программы, либо программисту в данный момент её поддерживающий.
Размещено на Allbest.ru
Подобные документы
Изучение методов разработки приложений в среде визуального программирования Visual Studio. Создание программы, реализующей заказ железнодорожных билетов. Язык SQL-запросов в системе управления базами данных MS Access. Тестирование созданной программы.
курсовая работа [1,0 M], добавлен 03.07.2016Разработка информационной системы учета регистрации пассажиров и реализации билетов в кассе аэрофлота. Изменение учетных данных клиентов аэропорта. Реализация функции возврата билета. Составление посадочной ведомости и отчета по продажам билетов.
курсовая работа [4,9 M], добавлен 13.08.2012Основные принципы объектно-ориентированного подхода в построении модели АИС унифицированного языка моделирования. Диаграммы моделей системы. Анализ больничного комплекса Алексеевской ЦРБ и создание информационной системы его кардиологического отделения.
курсовая работа [715,4 K], добавлен 20.11.2010Требования к MS Office 2007. Набор средств разработки Visual Studio Tools for Office как альтернатива VBA. Разработка СУБД на базе MS Access. Разработка надстройки "Электронные компоненты" для PowerPoint на языке C# в среде MS Visual Studio 2010.
дипломная работа [5,2 M], добавлен 03.05.2013Понятие объектно-ориентированного программирования, общая характеристика языков высокого уровня. Разработка программного обеспечения для реализации компьютерной игры "пинбол" с помощью императивного программирования в среде Microsoft Visual Basic.
курсовая работа [428,9 K], добавлен 19.09.2012Создание программы с использованием принципов объектно-ориентированного программирования на языке высокого уровня С# средствами Microsoft Visual Studio 2010. Построение алгоритма реализации. Определение математического аппарата, применение его в задаче.
курсовая работа [500,4 K], добавлен 13.01.2015Особенности реализации главных элементов разрабатываемой программы (цифровые элементы) с помощью объектно-ориентированного подхода. Применение принципа инкапсуляции для защиты данных. Конструирование классов, описание и тестирование программного продукта.
курсовая работа [2,3 M], добавлен 10.05.2015Анализ проблематики построения объектно-ориентированного канала связи. Основные понятия протокола Modbus. Возможности CodeSys для реализации объектно-ориентированного подхода. Разработка методики кроссплатформенной библиотеки для интеграции устройств.
курсовая работа [38,6 K], добавлен 15.06.2013Создание технического задания на разработку информационной системы для заказа билета на самолет. Требования к документированию. Порядок контроля и приемки системы. Разработка концепции, архитектуры построения и платформы реализации информационной системы.
курсовая работа [1,8 M], добавлен 13.05.2015Разработка программы с использованием принципов объектно-ориентированного программирования на языке высокого уровня С средствами Microsoft Visual Studio 2010. Построение алгоритма реализации. Класс программы, инструкция по использованию программы.
курсовая работа [1,0 M], добавлен 26.12.2013