Разработка автоматизированной информационной системы «Отель»

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

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

В процессе выполнения курсового проекта было изучено понятие информационной системы, выявлены основные классификации ИС.
Было проведено исследование уже существующих информационных систем гостиниц и отелей. На их основе мной была создана информационно-поисковая автоматизированная информационная система “Отель”. Программа автоматизирует работу сотрудника отеля. В программе реализованы ввод и хранение информации о постояльцах гостиницы, информация о состоянии номеров, услугах которые предоставляются клиентам гостиницы, также осуществляются функции поиска информации в базе данных по различным критериям. Формируются отчёты о клиенте и суммарной стоимости проживания его в номере.

Содержание

Содержание
ВВЕДЕНИЕ 2
ГЛАВА 1. ТЕОРЕТИЧЕСКАЯ ЧАСТЬ. ПОНЯТИЕ И СТРУКТУРА ИС 4
1.1. ПОНЯТИЕ ИС 4
1.2. КЛАССИФИКАЦИЯ ИНФОРМАЦИОННЫХ СИСТЕМ 7
1.3. ОБЗОР СОВРЕМЕННЫХ АИС ГОСТИНИЦ 10
ГЛАВА 2. ПРАКТИЧЕСКАЯ ЧАСТЬ. РАЗРАБОТКА АИС ГОСТИНИЦЫ 15
2.1. ПОСТАНОВКА ЗАДАЧИ 15
2.2. ВЫБОР СРЕДЫ РАЗРАБОТКИ И ЯЗЫКА ПРОГРАММИРОВАНИЯ 16
2.3. ИНСТРУКЦИЯ ПОЛЬЗОВАТЕЛЮ 25
2.4. ИНСТРУКЦИЯ ПРОГРАММИСТУ 30
ЗАКЛЮЧЕНИЕ 35
СПИСОК ЛИТЕРАТУРЫ 36
ПРИЛОЖЕНИЕ A 37
ПРИЛОЖЕНИЕ Б 48

Прикрепленные файлы: 1 файл

Мараков_курсовой_проект.docx

— 397.03 Кб (Скачать документ)

- Отсутствие поддержки свойства «=»

- Использование указателей

- Высокая избыточность

В опубликованном Кристофером Дейтом и Хью Дарвеном Третьем Манифесте они излагают принципы СУБД следующего поколения и предлагают язык Tutorial D, который является подлинно реляционным.

  • Сложность

Хотя SQL и задумывался как средство работы конечного пользователя, в  конце концов он стал настолько сложным, что превратился в инструмент программиста.

  • Отступления от стандартов

Несмотря на наличие международного стандарта ANSI SQL-92, многие компании, занимающиеся разработкой СУБД (например, Oracle, Sybase, Microsoft, MySQL AB), вносят изменения в язык SQL, применяемый в разрабатываемой СУБД, тем самым отступая от стандарта. Таким образом, появляются специфичные для каждой конкретной СУБД диалекты языка SQL.

  • Сложность работы с иерархическими структурами

Ранее диалекты SQL большинства СУБД не предлагали способа манипуляции  древовидными структурами. Некоторые  поставщики СУБД предлагали свои решения (например, Oracle использует выражение CONNECT BY). В настоящее время в ANSI стандартизована рекурсивная конструкция WITH из диалекта SQL DB2. В MS SQL Server рекурсивные запросы появились лишь в версии MS SQL Server 2005.

 

C++ — компилируемый статически типизированный язык программирования общего назначения. Поддерживая разные парадигмы программирования, сочетает свойства как высокоуровневых, так и низкоуровневых языков. В сравнении с его предшественником — языком C, — наибольшее внимание уделено поддержке объектно-ориентированного и обобщённого программирования. Название «C++» происходит от языка C, в котором унарный оператор ++ обозначает инкремент переменной.

Являясь одним из самых популярных языков программирования, C++ широко используется для разработки программного обеспечения. Область его применения включает создание операционных систем, разнообразных  прикладных программ, драйверов устройств, приложений для встраиваемых систем, высокопроизводительных серверов, а также развлекательных приложений (например, видеоигры). Существует несколько реализаций языка C++ — как бесплатных, так и коммерческих. Их производят Проект GNU, Microsoft, Intel и Embarcadero (Borland). C++ оказал огромное влияние на другие языки программирования, в первую очередь на Java и C#.

При создании C++ Бьёрн Страуструп стремился  сохранить совместимость с языком C. Множество программ, которые могут  одинаково успешно транслироваться  как компиляторами C, так и компиляторами C++, довольно велико — отчасти благодаря  тому, что синтаксис C++ был основан  на синтаксисе C.

 

Достоинства

C++ — чрезвычайно мощный язык, содержащий средства создания эффективных программ практически любого назначения, от низкоуровневых утилит и драйверов до сложных программных комплексов самого различного назначения. В частности:

  • Поддерживаются различные стили и технологии программирования, включая традиционное директивное программирование, ООП, обобщённое программирование, метапрограммирование (шаблоны, макросы).
  • Предсказуемое выполнение программ является важным достоинством для построения систем реального времени. Весь код, неявно генерируемый компилятором для реализации языковых возможностей (например, при преобразовании переменной к другому типу), определён в стандарте. Также строго определены места программы, в которых этот код выполняется. Это даёт возможность замерять или рассчитывать время реакции программы на внешнее событие.
  • Автоматический вызов деструкторов объектов при их уничтожении, причём в порядке, обратном вызову конструкторов. Это упрощает (достаточно объявить переменную) и делает более надёжным освобождение ресурсов (память, файлы, семафоры и т. п.), а также позволяет гарантированно выполнять переходы состояний программы, не обязательно связанные с освобождением ресурсов (например, запись в журнал).
  • Пользовательские функции-операторы позволяют кратко и ёмко записывать выражения над пользовательскими типами в естественной алгебраической форме.
  • Язык поддерживает понятия физической (const) и логической (mutable) константности. Это делает программу надёжнее, так как позволяет компилятору, например, диагностировать ошибочные попытки изменения значения переменной.
  • Используя шаблоны, возможно создавать обобщённые контейнеры и алгоритмы для разных типов данных, а также специализировать и вычислять на этапе компиляции.
  • Возможность имитации расширения языка для поддержки парадигм, которые не поддерживаются компиляторами напрямую. Например, библиотека Boost.Bind позволяет связывать аргументы функций.
  • Возможность создания встроенных предметно-ориентированных языков программирования. Такой подход использует, например библиотека Boost.Spirit, позволяющая задавать EBNF-грамматику парсеров прямо в коде C++.
  • Используя шаблоны и множественное наследование можно имитировать классы-примеси и комбинаторную параметризацию библиотек.
  • Кроссплатформенность: стандарт языка накладывает минимальные требования на ЭВМ для запуска скомпилированных программ. Доступны компиляторы для большого количества платформ, на языке C++ разрабатывают программы для самых различных платформ и систем.
  • Эффективность. Язык спроектирован так, чтобы дать программисту максимальный контроль над всеми аспектами структуры и порядка исполнения программы.
  • Имеется возможность работы на низком уровне с памятью, адресами.
  • Высокая совместимость с языком C, позволяющая использовать весь существующий C-код.

 

Критика

  • Критика синтаксиса

Операция присваивания обозначается как =, а операция сравнения как ==. Их легко спутать, при этом операция присваивания возвращает значение, поэтому присваивание на месте выражения является синтаксически корректным, а в конструкциях цикла и ветвления появление числа на месте логического значения также допустимо, так что ошибочная конструкция оказывается синтаксически правильной.

Ошибки такого рода трудно выявлять, но во многих современных компиляторах предлагается диагностика некоторых  подобных конструкций.

Операции присваивания (=), инкрементации (++), декрементации (--) и другие возвращают значение. В сочетании с обилием операций это позволяет, хотя и не обязывает, создавать трудночитаемые выражения.

Некоторые преобразования типов неинтуитивны. В частности, операция над беззнаковым и знаковым числами выдаёт беззнаковый результат.

Многие конструкции С++ позволяют  делать то же самое, что и конструкции C, также присутствующие в С++. Это  иногда сбивает с толку новичков.

  • Критика наличия возможностей

C++ позволяет пропускать break в ветви оператора switch с целью последовательного выполнения нескольких ветвей. Такой же подход принят в языке Java. Есть мнение, что это затрудняет понимание кода. Например, в языке C# необходимо всегда писать либо break, либо использовать goto case N для явного указания порядка выполнения.

Макросы (#define) являются мощным, но опасным средством. Они сохранены в C++ несмотря на то, что необходимость в них, благодаря шаблонам и встроенным функциям, не так уж велика. В унаследованных стандартных C-библиотеках много потенциально опасных макросов.

  • Критика отсутствия возможностей

Препроцессор, унаследованный от C, очень примитивен. Это приводит с одной стороны к тому, что с его помощью нельзя (или тяжело) осуществлять некоторые задачи метапрограммирования, а с другой, вследствие своей примитивности, он часто приводит к ошибкам и требует много действий по обходу потенциальных проблем. Некоторые языки программирования (например, Scheme и Nemerle) имеют намного более мощные и более безопасные системы метапрограммирования (также называемые макросами, но мало напоминающие макросы C/C++).

Плохая поддержка модульности. Подключение интерфейса внешнего модуля через препроцессорную вставку  заголовочного файла (#include) серьёзно замедляет компиляцию при подключении большого количества модулей.

Метапрограммирование на основе шаблонов C++ сложно и при этом ограничено в возможностях. Оно состоит в реализации средствами шаблонов C++ интерпретатора примитивного функционального языка программирования, выполняющегося во время компиляции. Сама по себе данная возможность весьма привлекательна, но такой код весьма трудно воспринимать и отлаживать.

Явная поддержка функционального  программирования присутствует только в будущем стандарте C++0x. Данный пробел устраняется различными библиотеками (Loki, Boost), использующими средства метапрограммирования для расширения языка функциональными конструкциями, но качество подобных решений значительно уступает качеству встроенных в функциональные языки решений.

Некоторые считают недостатком  языка C++ отсутствие встроенной системы  сборки мусора. С другой стороны, средства C++ позволяют реализовать сборку мусора на уровне библиотеки. Противники сборки мусора полагают, что RAII является более достойной альтернативой. С++ позволяет пользователю самому выбирать стратегию управления ресурсами.

 2.3. ИНСТРУКЦИЯ ПОЛЬЗОВАТЕЛЮ

Для того чтобы запустить программу  необходимо дважды щёлкнуть левой клавишей мыши по ярлыку “Отель”, либо запустить исполняемый файл “Project1.exe” в папке “Отель”. Главное окно программы выглядит следующим образом.

Рис. 3. Главное окно программы “Отель”

В данном окне располагаются две  таблицы: таблица “список постояльцев гостиницы” и таблица “услуги оказанные постояльцам”. В первой таблице вводится регистрационная информация о новом постояльце, таблица состоит из следующих полей: Фамилия, имя, отчество, серия и номер паспорта (вводится без пробелов), дата заселения, дата отъезда, вид номера, номер и стоимость проживания. Под таблицей находится панель инструментов, облегчающая работу с таблицей, а именно удаление и добавление записей, пролистывание записей, сохранение и отмена. Также для этой таблицы существует группа полей для осуществления поиска. Поиск по фамилии или виду номера, поддерживают функцию частичного совпадения, что облегчает работу с программой. Поиск по паспорту или по номеру осуществляется только при полном совпадении.

В таблицу “услуги оказанные постояльцам” заносятся данные об дополнительно оказанных услугах, не входящих в стоимость проживания в номере. Таблица содержит следующие поля: ФИО, серия и номер паспорта, услуга, стоимость услуги. У этой таблицы также есть своя панель инструментов, а также две функции поиска: по номеру паспорта и по названию услуги. Поиск по услуге использует метод частичного совпадения.

Теперь рассмотрим более подробно процесс занесения данных в таблицу, начнём с таблицы регистрации. Данные в поля фамилия, имя, отчество, серия  и номер паспорта, даты приезда  и отъезда вносятся вручную. При  выборе вида номера, необходимо щёлкнуть левой клавишей мыши по данному полю перед нами открывается окно в  котором содержится таблица “виды номеров”.

 

Рис. 4. Таблица “Виды номеров”

Таблица состоит из двух полей: вид номера и стоимость проживания в данном номере в сутки. Под таблицей находится уже привычная нам панель инструментов для работы с таблицей. После того как пользователь выбрал нужную ему запись необходимо нажать на кнопку “записать”., после этого форма автоматически закроется. Далее в основной таблице щёлкаем по полю номер и перед нами открывается окно с таблицами свободных номеров.

Рис. 5. Таблицы номера

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

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

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

 

Рис. 6. Таблицы “Виды услуг”

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

 

Рис. 7. Таблица “Отчёты”

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

Информация о работе Разработка автоматизированной информационной системы «Отель»