Программное обеспечение для реализации бронирования столов в заведениях общественного питания

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

Рубрика Программирование, компьютеры и кибернетика
Вид дипломная работа
Язык русский
Дата добавления 07.08.2018
Размер файла 4,2 M

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

1. DisplayDateStart и DisplayDateEnd.

Устанавливают диапазон дат, которые выводятся в календаре - от самой ранней даты (DisplayDateStart) до самой поздней (DisplayDateEnd). Пользователь не может перейти к месяцам, в которых нет ни одной отображаемой даты. Чтобы разрешить все даты, можно занести в свойство DisplayDateStart значение DateTime.MinValue, а в свойство DisplayDateEnd - значение DateTime.MaxValue.

2. BlackoutDates.

Содержит коллекцию дат, которые будут в календаре неактивными, т.е. их невозможно выбрать. Если эти даты не входят в диапазон отображаемых дат, или одна из этих дат уже выбрана, возникает исключение. Чтобы запретить выбор любой прошедшей даты, необходимо вызвать метод BlackoutDates.AddDatesInPast().

3. SelectedDate.

Предоставляет выбранную дату в виде объекта DateTime (или пустое значение, если не выбран ни один день). Его можно задать программно, щелчком на одном из дней в календаре или вводом строки в поле даты (элемента DatePicker). В представлении календаря выбранная дата отмечается затененным квадратиком, который виден лишь тогда, когда данный элемент имеет фокус ввода.

4. SelectedDates.

Содержит выбранные даты в виде коллекции объектов DateTime. Это свойство поддерживается классом Calendar и имеет смысл только тогда, когда установлено свойство SelectionMode, позволяющее выбрать несколько дат.

5. DisplayDate.

Определяет дату, которая выводится при первоначальном отображении календаря (с помощью объекта DateTime). Если она пуста, то выводится значение SelectedDate. Если пусты оба значения DisplayDate и SelectedDate, то используется текущая дата. Отображаемая дата определяет первоначально выводимый месяц в отображении календаря. Когда элемент имеет фокус, указанный день этого месяца выделяется квадратной рамочкой (которая отличается от затененного квадратика, применяемого для выбранной в данный момент даты).

6. FirstDayOfWeek.

Определяет день недели, который выводится в начале (слева) каждой строки календаря.

7. IsTodayHighlighted.

Определяет, должна ли быть выделена в календаре текущая дата.

8. IsDropDownOpen.

Определяет, должен ли быть открыт раскрывающийся список в элементе DatePicker. Это свойство можно задавать программно, чтобы показать или скрыть календарь.

9. SelectedDateFormat.

Определяет отображение выбранной даты в текстовой части элемента DatePicker. Допустимые варианты - Short (краткий формат) или Long (длинный формат). Конкретный формат отображения даты зависит от региональных настроек клиентского компьютера. Например, при значении Short дата может быть выведена в формате ГГГГ/ММ/ДД или ДД/ММ/ГГГГ. Длинный формат обычно содержит названия месяца и дня. [17]

ListBox

Класс ListBox представляет распространенный компонент среды Windows - списки переменной длины, которые позволяют пользователю выбрать один из элементов.[17]

Класс ListBox допускает множественный выбор, если его свойству SelectionMode присвоить значение Multiple или Extended. В режиме Multiple можно выбрать любой элемент или отменить его выбор, щелкнув на нем. В режиме Extended необходимо прижать клавишу <Ctrl>, чтобы выбрать дополнительные элементы, или клавишу <Shift>, чтобы выбрать диапазон элементов. В любом виде списка с множественным выбором для получения всех выделенных элементов вместо свойства SelectedItem используется коллекция SelectedItems.[17]

Разные элементы управления обрабатывают вложенное в них содержимое по-разному. Объект ListBox хранит все вложенные объекты в своей коллекции Items.[17]

ListBox является довольно гибким элементом управления. Он может хранить не только объекты ListBoxItem, но и любые произвольные элементы. Ведь класс ListBoxItem является наследником класса ContentControl, который позволяет хранить фрагменты вложенного содержимого. Если такой фрагмент является классом, порожденным от UIElement, то он будет отображен в элементе ListBox. Если же это другой тип объекта, ListBox вызовет метод ToString() и выведет полученный текст.[17]

Объекты ListBox способны неявно создавать необходимые им объекты ListBoxItem. Это означает, что объекты можно помещать прямо внутрь элемента ListBox.[17]

Возможность заносить в списки произвольные элементы позволяет создавать различные основанные на списке элементы управления, не используя при этом другие классы. Например, в Windows Forms имеется специальный класс CheckedListBox, отображаемый как список с флажками около каждого элемента. В WPF для этого не нужен никакой специальный класс, поскольку его можно быстро создать с помощью стандартного объекта ListBox.[17]

При использовании списка, содержащего разные элементы, нужно иметь в виду, что при считывании значения SelectedItem (а также коллекций SelectedItems и Items) объекты ListBoxItem будут не видны - вместо них будут видны те объекты, которые занесены в список. В примере с элементом CheckedListBox это означает, что SelectedItem предоставляет объект CheckBox.[17]

Если нужно найти выделенный в данный момент элемент, его можно прочитать непосредственно из свойства SelectedItem или SelectedItems. Если нужно определить, с какого элемента был снят выбор (если такое вообще было), можно воспользоваться свойством RemovedItems объекта SelectionChangedEventArgs.[17]

Аналогично, свойство AddedItems сообщает, какие элементы были добавлены в число выбранных. В режиме выбора одного элемента при изменении выбора всегда может быть добавлен лишь один элемент, и удален тоже только один элемент. В режиме множественного выбора или в расширенном режиме так бывает не всегда.[17]

В классе ListBoxItem имеется небольшая дополнительная возможность: в нем определено свойство IsSelected, значение которого можно считывать (или устанавливать), и события Selected и Unselected, которые сообщают о выделении данного элемента. Однако похожие возможности можно получить с помощью членов класса ListBox - свойства SelectedItem (или SelectedItems) и события SelectionChanged.[17]

2.2 Функциональная схема программы

При разработке программы «Бронирование столов» была составлена блок-схема работы программы, в которой отражена логика работы приложения. Блок-схема изображена на рисунке 2.2.1.

Рис. 2.1 - Блок-схема работы программы

Из схемы следует, что после запуска программы пользователь выбирает дату бронирования, время, на которое клиент хочет забронировать стол, стол, подходящий по вместимости потребностям гостя, вводит данные клиента. После нажатия кнопки «Сохранить бронь» программа проверяет правильность введенных данных клиента в поля «Фамилия и имя» и «Количество человек» (проверка на целое число). Если данные введены неверно, программа выдаст сообщение об ошибке (либо «Введите фамилию и имя клиента!», либо «Количество человек должно быть целым числом!»). Если данные введены верно, то программа сохраняет данные в файл расширения xml с названием формата «[mm-dd-yyyy]Reservations».

2.3 Работа программы

При запуске программы перед пользователем открывается главное окно, в котором находятся следующие элементы: ReservationBlocksListBox, Label«Время», поле DateTextBlock, DatePicker, кнопка «Импорт». В нем так же содержится подсказка для пользователя («Выберите время и стол»). Так же в этом окне можно выбрать дату бронирования, нажав на значок календаря (DatePicker) в поле «Выбор даты» или импортировать данные нажатием кнопки «Импорт». По умолчанию в программе используется текущая системная дата, которая отображается в поле DateTextBlock (рис. 2.2).

После выбора даты (рис. 2.3) в DateTextBlock дата с текущей меняется на выбранную в DatePicker (рис. 2.4).

Рис. 2.2 - Главное окно программы

Рис. 2.3 - Выбор даты в DatePicker

Рис. 2.4 - Изменение даты в DateTextBlock с текущей на выбранную

После выбора даты пользователь должен выбрать время, на которое клиент хочет забронировать стол. Выбрав нужное время и нажав на него в ReservationBlocksListBox (рис. 2.5), в главном окне появляется элемент TablesDataGrid, содержащий таблицу номеров столов и их вместимости. После выбора нужного стола с соответствующей клиентским запросам вместимостью в главном окне появляются поля для ввода данных(NameTextBox, PhoneNumberTextBox и NumberInPartyTextBox) и кнопки SaveButton и DeleteButton, предназначенные для сохранения и удаления брони соответственно(рис. 2.6). Пользователю необходимо ввести нужные данные в соответствующие поля, после чего он может нажать кнопку «Сохранить бронь» соответственно (рис. 2.7).

Рис. 2.5 - Отображение TablesDataGrid в главном окне

Рис. 2.6 - Отображение полей для ввода данных после выбора нужного стола в TablesDataGrid

Рис. 2.7 - Ввод данных в соответствующие поля

После нажатия кнопки «Сохранить бронь» проверим правильность сохранения данных в файл. Для этого, перезапустив программу, необходимо нажать кнопку ImportButton и найти в диалоговом окне нужный файл (в нашем случае, это 06-21-2017Reservations.xml), после чего нажать кнопку «Открыть» (рис. 2.8).

Рис. 2.8 - Диалоговое окно импорта файла

После импорта файла нужно найти в ReservationBlocksListBox нужное время и, соответственно, в TablesDataGrid - нужный стол, на который чуть ранее была осуществлена бронь, которая была сохранена. Все данные выводятся в соответствующие поля без ошибок (рис. 2.9).

Следующим шагом проверим удаление брони. Нажав кнопку «Удалить бронь», перезапустим программу. Снова выполнив импорт файла и, найдя нужное время и стол, станет видно, что бронь была удалена из файла (рис. 2.10).

Рис. 2.9 - Проверка правильности сохранения брони в файл и импорта из файла

Следующим шагом проверим программу на правильность появлений сообщений о тех или иных ошибках. Начнем с отсутствия данных в поле NameTextBox, наличие которых обязательно. При отсутствии данных и при нажатии кнопки «Сохранить бронь» появляется сообщение об ошибке с текстом «Введите фамилию и имя гостя!» (рис. 2.11).

Рис. 2.10 - Проверка правильности удаления брони из файла

Далее необходимо проверить соответствие количества человек по брони и максимальной вместимости выбранного стола. Если в поле NumberInParty ввести число, превышающее вместимость стола, то при нажатии кнопки появляется сообщение об ошибке с текстом «Количество человек превышает вместимость выбранного стола!» (рис. 2.12).

Следующей проверкой является обязательность ввода целого числа в поле NumberInParty. При вводе диапазона и при нажатии кнопки «Сохранить бронь» появляется сообщение об ошибке с текстом «Количество человек должно быть целым числом!» (рис. 2.13).

Рис. 2.11 - Сообщение об ошибке при отсутствии необходимых данных в поле NameTextBox

Рис. 2.12 - Сообщение об ошибке при превышении вместимости

Рис. 2.13 - Сообщение об ошибке при вводе диапазона чисел

При нажатии кнопки «Удалить бронь» программа проверяет наличие сохраненных в файле данных. Если данных нет, то программа выдает сообщение об ошибке «Не найдено брони для удаления!». Если таковые данные есть, то программа удаляет их (они выводятся в соответствующие поля для удобства пользователя) (рис. 2.14).

Рис. 2.14 - Сообщение об ошибке при отсутствии данных для удаления

2.4 Перспективы разработки

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

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

Заключение

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

Разработанная программа полностью соответствует заданию бакалаврской работы. В приложении реализован функционал:

· пользовательский интерфейс для реализации бронирования столов;

· возможность сохранить данные по брони в xml-файл;

· возможность импорта данных из xml-файла;

· защита от возможных ошибок пользователя при заполнении формы данных клиента.

В ходе разработки были изучены материалы по ныне существующим системам для бронирования столов в заведениях общественного питания и документация для Microsoft Visual Studio. Данная документация помогла реализовать большую часть задуманного для данной программы функционала: работа с XAML и работа с LINQ.

На диаграмме классов UML отображена разработанная иерархия классов программы для бронирования столов в заведениях общественного питания. Сохранение данных в программе реализовано посредством xml-файла.

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

Размещено на Allbest.ru

...

Подобные документы

  • Этапы разработки автоматизированной системы приема и бронирования заказов столиков в заведениях. Анализ среды разработки Android Development Tools. Общая характеристика диаграммы компонентов IOS приложения. Рассмотрение системы контроля версий сервера.

    курсовая работа [8,7 M], добавлен 14.05.2014

  • Цели разработки сайта интернет–магазина для реализации продуктов питания, выбор инструментария для реализации. Разработка базы данных главного модуля и клиентского интерфейса. Модульность и расширяемость, язык команд и сценариев, административный модуль.

    дипломная работа [1,1 M], добавлен 09.04.2012

  • Описание предметной области и процессов обработки информации, требующих автоматизации. Обзор существующих программных продуктов. Описание структуры системы бронирования гостевого дома. Назначение и функции программы. Описание методов защиты данных в ИС.

    дипломная работа [154,6 K], добавлен 08.02.2013

  • Характеристики и оценка значения, а также роль и значение компьютерных систем бронирования и резервирования на современном рынке. Зарубежные и российские системы, используемые в данной сфере, их сравнительное описание, анализ преимуществ и недостатков.

    презентация [2,0 M], добавлен 17.11.2015

  • Назначение для информационной системы OpenPOS для автоматизации рабочих процессов в заведениях общественного питания. Состав и структура исходных данных. Основные сведения о предметной области, ее моделирование. Создание и запуск базовых запросов SQL.

    курсовая работа [2,2 M], добавлен 28.01.2016

  • Основные понятия гостиничной индустрии и виды бронирования. Способы бронирования гостиничных номеров. Характеристика системы и ее особенности. Система формирования сводок и отчетов. Регистрация, размещение и выписка гостей. Управление работой горничных.

    курсовая работа [27,0 K], добавлен 10.01.2014

  • Понятие, принципы бронирования билетов на железнодорожные рейсы, порядок автоматизации данного процесса. Методика и этапы формирования программного обеспечения для упрощения бронирования на основе входной и выходной информации. Модели организации данных.

    контрольная работа [25,4 K], добавлен 21.02.2012

  • Деятельность службы бронирования отеля и её функции. Роль информационных технологий в автоматизации управления электронными каналами продаж. Применение систем интернет-бронирования и АСУ в ГУП "Санаторий Зеленая Роща РБ" и гостинице "Президент-Отель".

    курсовая работа [51,3 K], добавлен 14.10.2014

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

    курсовая работа [1,7 M], добавлен 11.02.2016

  • Общая характеристика ресторана ООО "Альянс". Анализ конъюнктуры рынка услуг общественного питания, объема реализации услуг, прибыли и рентабельности. Обоснование проектных решений по автоматизированному решению задачи управления производством ресторана.

    дипломная работа [2,3 M], добавлен 27.11.2012

  • Анализ существующих информационных систем для автоматизации деятельности предприятий общественного питания. Моделирование основных бизнес-процессов, выполняемых в автоматизированной информационной системе. Этапы разработки информационной системы.

    дипломная работа [1,8 M], добавлен 14.11.2017

  • Создание программного средства для реализации работы отдела кадров, построенное на основах ООП и STL. Доступный и простой интерфейс для занесения данных о рабочих и местах их прошлых работ. Алгоритм функционирования программы, ее характеристика.

    курсовая работа [319,6 K], добавлен 19.06.2012

  • Программное обеспечение как совокупность программ системы обработки информации и программных документов, необходимых для эксплуатации этих программ. Системное ПО (программы общего пользования), прикладное и инструментальное (системы программирования).

    реферат [73,1 K], добавлен 04.06.2010

  • Программное обеспечение для ЭВМ и личные права на него. Техническое обслуживание программного обеспечения. Компьютерные преступления на рынке программных продуктов. Пути снижения преступности на рынке программных продуктов и компьютерной информации.

    курсовая работа [95,7 K], добавлен 23.01.2012

  • Microsoft Office как пример прикладного программного обеспечения (ПО). Проблемы выбора и использования прикладного ПО. Роль программных продуктов пакетного типа, обеспечивающих свободную конвертацию данных между различными компьютерными технологиями.

    реферат [18,2 K], добавлен 21.02.2010

  • Сущность понятия "программное обеспечение". Типы прикладных программ. Современные системы программирования для персональных компьютеров. Уровни программного обеспечения: базовый, системный, служебный. Классификация служебных программных средств.

    реферат [20,2 K], добавлен 01.04.2010

  • Объектный подход как метод реализации программных систем. Проектирование и программная реализация стратегической системы, реализующей процессы создания и взаимодействия группы объектов. Разработка объектной модели. Назначение элементов интерфейса.

    курсовая работа [4,1 M], добавлен 11.05.2012

  • Разработка многопользовательской системы бронирования авиабилетов, описание и построение модели. Этапы концептуального и логического проектирования, реализация запросов, получение информации по рейсам, их поиск по определенным критериям, заказ билетов.

    курсовая работа [1,2 M], добавлен 25.05.2010

  • Компания Amadeus как поставщик передовых решений в области информационных технологий, дистрибуции и электронной коммерции для индустрии туризма и авиаперевозок. Система бронирования Amadeus и история ее создания. Продукты и дополнительные спектр услуг.

    реферат [35,2 K], добавлен 29.03.2012

  • Список используемых программных продуктов на предприятии ООО "FasTel". Требования к оборудованию, выбор среды передачи данных. Разработка топологии сети. Основные требования, предъявляемые к серверной комнате. Выбор сетевого шкафа и оборудования.

    реферат [3,1 M], добавлен 09.12.2014

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.