Для ячеек в состоянии "Занято" доступны следующие строки меню:
· "Освободить" - регистрация выезда из номера.
· "Переселить" - регистрация переселения в другой номер.
· "Открыть" - открывается форма заселения для просмотра или изменения.
· "Отменить" - отмена регистрации заселения.
Рис. 4.6. Меню состояния "Занято".
После выбора меню "Переселить" откроется диалоговая форма. Дата переселения будет равна текущей дате, оставшиеся дни проживания рассчитаны относительно текущей даты. Необходимо указать комнату, в которую требуется переселить клиента.
Рис. 4.7 Переселение в другую комнату
На рис.4.8 показано как изменится отображение проживания клиента в таблице.
Рис. 4.8. Отображение операции переселения в таблице
Программа предложит зарегистрировать выезд текущей датой.
Можно оформить выезд задним числом, но зарегистрировать выезд заранее нельзя.
Рис. 4.9. Ввод даты выезда
В таблице зарегистрированный выезд отобразится другим цветом.
4.2.2 Номерной фонд
В данном пункте меню отображается состояние номерного фонда.
Все операции выполняются через форму, отображающую плановое, текущее и прошлое состояние номерного фонда за определенный интервал времени. Колонки таблицы соответствуют дням периода, строки местам в номерах. Ячейка таблицы характеризует состояние места в комнате на определенную дату. Каждому состоянию соответствует свой цвет.
Возможны следующие состояния комнат: "чисто", "грязно", "занято", "на ремонте". При открытии формы отображаются данные за тридцать дней, начиная от текущей даты. Чтобы увидеть данные за другой период, надо изменить период и нажать кнопку "Заполнить".
Рис. 4.10. Шахматка состояний номеров
Данная задача предназначена для изменения состояния номеров.
Рис. 4.11. Изменения состояний номеров
Номер может быть "Чистый", "Грязный", "На ремонте" и "занят". Статус " Занято" присваивается номеру при поселении в него отдыхающего, статус "Грязный" присваивается номеру при освобождении от проживания, а также после окончания срока ремонта. Статусы "Чистый" и "На ремонте" устанавливаются вручную.
Для работы с задачей существуют следующие кнопки и обозначения:
установка фильтра на просмотр номерного фонда (по корпусу, секции или этажу);
установка фильтра на просмотр номеров с различными статусами;
область для отметки номера;
Рис. 4.2.3 Дополнительные услуги
В режиме добавления дополнительных услуг в нижней части окна содержится список услуг, доступных для добавления в баланс. В верхней части окна отображаются услуги, записанные на гостя. Добавленные услуги можно удалить, откорректировать цену (если она не фиксированная) и количество.
Кнопки и обозначения, используемые в окне "Дополнительные услуги":
Рис.4.12. Предоставление дополнительных услуг
4.2.4 Справочники
В задаче "Конфигурация санатория" содержится описание объекта: основные сведения, описание структуры (корпуса, секции, этажи) и информация о категориях номеров. Указанная информация об атрибутах номера, может быть использована при выборе (поиске) номеров.
В разделе "Основные сведения" содержится наименование объекта, юридический адрес, а также адрес электронной почты и адрес сайта. Формат вида номера определяется один раз при описании санатория в поле формата идентификатора номера. Параметры (символ корпуса, секции, символ этажа и номера) можно указать в любом порядке, а количество символов по каждому параметру зависит от конфигурации санатория.
Рис. 4.13. Основные сведения о санатории
В разделе описания категорий номеров содержится список категорий. При описании категорий нужно указать идентификатор. Также нужно указать наличие комнат, мест в номере данной категории. Категорию номера можно добавить (кнопка ) и удалить (кнопка ).
Рис. 4.14. Категории номеров.
В данном классификаторе можно просмотреть структуру санатория, которая была введена в "Конфигурации санатория", а также завести номерной фонд. Информация по количеству номеров используется при расчете статистических показателей.
Если в структуре выделить, например, 3 этаж секции А, 1го корпуса, то в окне "Сведения" появится список классов номеров, которые есть на данном этаже, количество номеров каждого класса, количество комнат, мест, диванов и дополнительных мест.
В окне "Номера" содержится информация о номерах выбранного этажа. Это наименование номера (если есть), идентификатор, категории номера. Указывается количество в номере комнат, мест.
Рис. 4.15. Конфигурация номерного фонда.
При добавлении номеров (кнопка ) в появившемся окне нужно выбрать из списка класс номера (номеров), указать диапазон номеров, которые нужно описать. При вводе диапазона номеров на этаже автоматически высвечивается диапазон номеров (результат). Кнопка "ОК" предназначена для сохранения изменений. Отказаться от сделанных изменений можно с помощью кнопки "Отмена".
При удалении нужно отметить номер, затем нажать кнопку и подтвердить удаление.
В данном справочнике содержится информация о всех услугах.
Рис. 4.16. Классификатор дополнительных услуг.
Для удобства работы с дополнительными услугами есть возможность разбивать их на группы. На одном уровне можно разместить только что-то одно: группу или услугу. Группы можно добавлять, удалять и изменять с помощью кнопок или используя системное меню.
Добавляя новую группу или подгруппу, указывается наименование.
При добавлении услуги необходимо ввести наименование, стоимость услуги (если она фиксированная), вид валюты, в которой предоставляется услуга. Если для услуги будет использоваться цена прейскуранта, то отмечается соответствующий признак. Затем указываем время предоставления и количество человек.
4.2.5 Печатные формы
Информационная система регистрации отдыхающих санатория позволяет получать следующие отчеты:
1. Занятость номеров
В данном отчете по умолчанию отображается список всех свободных номеров на текущую дату. В данном отчёте отображается следующая информация:
- Дата
- Количество человек
- Взрослые
- Дети
- Мужчины
- Женщины
- Свободные места
Рис. 4.17. Занятость номерного фонда за период.
2. Журнал регистрации
В данной форме отображена информация о гостях, проживающих по путевкам.
В начале работы с данным отчетом необходимо выбрать параметры. Основное окно представляет собой список гостей. По каждому гостю отображается следующая информация:
- Номер путевки
- Вид путёвки
- Номер истории болезни
- Номер, в котором проживает отдыхающий
- Категория номера, в котором проживает отдыхающий
- Фамилия, имя и отчество отдыхающий
- Дата заезда и дата выезда отдыхающий (плановая, фактическая)
- Количество дней путёвки
- Количество дней путёвки перешедших на другой месяц
- Паспортные данные
- Адрес
- Дата рождения отдыхающего
Рис. 4.18. Журнал регистрации.
3. График заезда
В данном отчете по умолчанию отображается график занятых номеров, начиная с текущего числа.
Основное окно представляет собой график всех номеров. В отчёте отображается следующая информация:
- Дата
- Категория номера
- Всего заехавших отдыхающих за число
Рис.4.19. График заезда отдыхающих.
4. Реализация программного обеспечения
Результатом является загрузка базы данных access и возможностью ее непосредственного редактирования, добавления записи, удаления, сохранения, в среде microsoft visual studio 2012 как показано на следующих рисунках.
Рис 4.2 база данных отдыхающих в курортном комплексе
Рис 4.3 удаление записи
Рис 4.4 добавление записи
Заключение
В курсовой работе мной была проанализирована работа курортного комплекса, выявлены главные функции и отделы, такие как: управление номерным фондом, структура, контроль и анализ состояния номерного фонда; оформление путёвки; размещение отдыхающих в соответствии с выбранной категорией, с учётом пола, возраста и привычек отдыхающего; предоставление и оплата дополнительных услуг, оплата путёвки при регистрации "от стойки", а также составление всевозможных отчётов.
На основе сравнительного анализа систем-аналогов, с учётом их достоинств и недостатков, выявлены требования к системе.
Построена модель "как есть" и на основе выявленных недостатков была построена модель "как должно быть" необходимая для анализа лучших путей выполнения проекта и документирования того, как отдел санатория будет работать в будущем.
Спроектирована модульная структура и структура баз данных информационной системы, выбрана архитектура системы.
На основе требований, предъявляемых к информационной системе, произведён выбор операционной системы и системы управления баз данных. Показаны экранные формы системы и разработано руководство пользователя.
Были приведены доказательства социальной значимости, как для отдыхающего, так и для всего санатория и непосредственно для регистратуры.
Проанализированы вопросы безопасности и экологичности проекта, а также дано его технико-экономическое обоснование
Список используемых источников
1. Герберт Шилдт. C# 4.0 Полное руководство (Герберт Шилдт).
2. Т.А. Павловская. Security C# Программирование на языке высокого уровня (Т.А. Павловская) 2005.
3. Джозеф Албахари, Бен Албахари. C# 6.0. Справочник. Полное описание языка (Джозеф Албахари, Бен Албахари) 2000.
4. Джозеф Албахари, Бен Албахари, LINQ. Карманный справочник (Джозеф Албахари, Бен Албахари) 2001.
5. Элеонора Ишкова, Самоучитель С#. Начала программирования (Элеонора Ишкова) 2002.
6. О. В. Герман, Ю. О Герман. Программирование на Java и С# для студента (О. В. Герман, Ю. О Герман), 2006.
7. Пол Дейтел, Харви Дейтел. Как программировать на Visual C# 2012 (Пол Дейтел, Харви Дейтел), 2013.
8. Петцольд Ч. Программирование в тональности С# (Петцольд Ч.).2012.
9. Хейлсберг А. Язык программирования C# 4.0 (Хейлсберг А. 2012), 2002.
10. Эндрю Стиллмен. Эндрю Стиллмен Изучаем C#, 3-е издание 2014.
11. Рихтер Дж. Рихтер Дж. CLR via C#: Программирование на платформе Microsoft .NET Framework 4.5 на языке C#, 2008.
Приложение
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using Excel = Microsoft.Office.Interop.Excel;
namespace uchet_IT
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
// TODO: данная строка кода позволяет загрузить данные в таблицу "kurortDataSet.Таблица1". При необходимости она может быть перемещена или удалена.
this.таблица1TableAdapter.Fill(this.kurortDataSet.Таблица1);
// TODO: данная строка кода позволяет загрузить данные в таблицу "iT_dbmdbDataSet1.invent_hell". При необходимости она может быть перемещена или удалена.
this.invent_hellTableAdapter.Fill(this.iT_dbmdbDataSet1.invent_hell);
}
private void Search_Button_Click(object sender, EventArgs e)
{
{
string strNull = textBox1.Text.ToString();
bool exists = false;
int l = dataGridView1.Rows.Count;
if (l == 0)
{
MessageBox.Show("А где искать-то?!", "Ошибка", 0, MessageBoxIcon.Error);
textBox1.Clear();
return;
}
for (int i = 0; i < dataGridView1.RowCount; i++)
{
for (int j = 0; j < dataGridView1.ColumnCount; j++)
{
if (dataGridView1.Rows[i].Cells[j].Value == null)
{
break;
}
if (dataGridView1.Rows[i].Cells[j].Value.ToString().Contains(textBox1.Text))
{
dataGridView1.Rows[i].Visible = true;
dataGridView1.Rows[i].Selected = true;
dataGridView1.Rows[i].DefaultCellStyle.BackColor = Color.White;
exists = true;
break;
}
else
{
dataGridView1.CurrentCell = null;
dataGridView1.Rows[i].Visible = false;
}
}
}
if (!exists)
{
this.invent_hellTableAdapter.Fill(this.iT_dbmdbDataSet1.invent_hell);
}
}
}
private void Save_Button_Click(object sender, EventArgs e)
{
try
{
this.Validate();
this.inventhellBindingSource.EndEdit();
this.invent_hellTableAdapter.Update(this.iT_dbmdbDataSet1.invent_hell);
MessageBox.Show("Данные oбновлены!");
}
catch (System.Exception ex)
{
MessageBox.Show("Ошибка обновления!");
}
}
private void Delete_Button_Click(object sender, EventArgs e)
{
int delet = dataGridView1.SelectedCells[0].RowIndex;
dataGridView1.Rows.RemoveAt(delet);
}
private void Form1_FormClosing(object sender, FormClosingEventArgs e)
{
/* try
{
this.Validate();
this.inventhellBindingSource.EndEdit();
this.invent_hellTableAdapter.Update(this.iT_dbmdbDataSet1.invent_hell);
MessageBox.Show("Данные oбновлены!");
}
catch (System.Exception ex)
{
MessageBox.Show("Ошибка обновления!");
} */
}
private void button_toExcel_Click(object sender, EventArgs e)
{
Microsoft.Office.Interop.Excel.Application ExcelApp = new Microsoft.Office.Interop.Excel.Application();
Microsoft.Office.Interop.Excel.Workbook ExcelWorkBook;
Microsoft.Office.Interop.Excel.Worksheet ExcelWorkSheet;
//Книга.
ExcelWorkBook = ExcelApp.Workbooks.Add(System.Reflection.Missing.Value);
//Таблица.
ExcelWorkSheet = (Microsoft.Office.Interop.Excel.Worksheet)ExcelWorkBook.Worksheets.get_Item(1);
for (int i = 0; i < dataGridView1.Rows.Count; i++)
{
for (int j = 0; j < dataGridView1.ColumnCount; j++)
{
ExcelApp.Cells[i + 1, j + 1] = dataGridView1.Rows[i].Cells[j].Value;
}
}
//Вызываем нашу созданную эксельку.
ExcelApp.Visible = true;
ExcelApp.UserControl = true;
}
private void Destroy_Button_Click(object sender, EventArgs e)
{
{
string destroy = "True";
bool exists = false;
int l = dataGridView1.Rows.Count;
for (int i = 0; i < dataGridView1.RowCount; i++)
{
for (int j = 0; j < dataGridView1.ColumnCount; j++)
{
if (dataGridView1.Rows[i].Cells[j].Value == null)
{
break;
}
if (dataGridView1.Rows[i].Cells[j].Value.ToString().Contains(destroy))
{
dataGridView1.Rows[i].Visible = true;
dataGridView1.Rows[i].Selected = true;
dataGridView1.Rows[i].DefaultCellStyle.BackColor = Color.White;
exists = true;
break;
}
else
{
dataGridView1.CurrentCell = null;
dataGridView1.Rows[i].Visible = false;
}
}
}
}
}
private void Refresh_Button_Click(object sender, EventArgs e)
{
this.invent_hellTableAdapter.Fill(this.iT_dbmdbDataSet1.invent_hell);
}
private void таблица1DataGridView_CellContentClick(object sender,
}
}