Добавил:
darkwarius13@gmail.com Рад если помог :). Можешь на почту спасибо сказать Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Промский М. И. Пояснительная записка.docx
Скачиваний:
3
Добавлен:
27.06.2021
Размер:
624.23 Кб
Скачать

Перелік джерел посилання

1. Андреев, В. В. Как организовать делопроизводство на. М.: ИНФРА-М, 1997. 94 с.

2. Белов А. В., Николаев В. Н.  Финансы и кредит: учеб. - К.: Университет, 2004. 215 с.

3. Агафонова Н. Н., Богачева Т. В. , Глушкова Л. И.  Гражданское право: учеб. пособие / под общ. ред. А. Г. Калпина ; МОН Украины. - 2-е изд., перераб. и доп. - Х. : Фактор, 2000. 542 с.

4. Височанський В. С. , Кардаш А. І., Костєв В. С. та ін. Елементи інформатики: довідник. К. :Наук. думка, 2003. 92 с.

5. Документация по .NET. URL: https://docs.microsoft.com/ru-ru/dotnet/#pivot=docs&panel=getstarted (дата звернення: 26.02.2018).

6. Microsoft Developer Network. Библиотека MSDN / MSDN – сеть разработчиков Microsoft. URL: https://msdn.microsoft.com/ru-ru/ (дата звернення: 26.02.2018).

Додаток а

Код форми додатків

AddRoomsForm.cs

public partial class AddRoomsForm : Form

{

private Hotel hotel;

private int numberFirst, numberLast;

private string _class;

private int capacity;

private double pricePerDay;

//конструктор

public AddRoomsForm(Hotel h)

{

hotel = h;

InitializeComponent();

for (int i = 1; i <= hotel.FloorNumber; i++)

floorComboBox.Items.Add(i);

floorComboBox.SelectedIndex = 0;

}

//валидаторы полей

private string roomNumberTextBox_Validate()

{

string text = roomNumberTextBox.Text;

if (text == "")

{

return "Заполните это поле";

}

Regex single = new Regex(@"^\d{1,9}$");

Regex range = new Regex(@"^\d{1,9}-\d{1,9}$");

if (single.IsMatch(text))

{

numberFirst = numberLast = Int32.Parse(text);

if (numberFirst == 0)

{

return "Введите положительное число меньше миллиарда";

}

return "";

}

if (range.IsMatch(text))

{

numberFirst = Int32.Parse(text.Split('-')[0]);

numberLast = Int32.Parse(text.Split('-')[1]);

if (numberFirst == 0 || numberLast == 0)

{

return "Номер комнаты должен быть от нуля до миллиарда";

}

return "";

}

return "Неверный формат";

}

private string classTextBox_Validate()

{

_class = classTextBox.Text;

if (_class == "")

{

return "Заполните это поле";

}

return "";

}

private string capacityTextBox_Validate()

{

if (capacityTextBox.Text == "")

{

return "Заполните это поле";

}

if (!Int32.TryParse(capacityTextBox.Text, out capacity) || capacity <= 0)

{

return "Введите положительное число меньше миллиарда";

}

return "";

}

private string priceTextBox_Validate()

{

if (priceTextBox.Text == "")

{

return "Заполните это поле";

}

if (!Double.TryParse(priceTextBox.Text, out pricePerDay) || pricePerDay < 0)

{

return "Введите неотрицательное число меньше миллиарда";

}

return "";

}

//удаление предупреждения при изменении текста

private void textBox_TextChanged(object sender, EventArgs e)

{

TextBox target = sender as TextBox;

if (target == priceTextBox)

{

errorProvider.SetError(priceLabel1, null);

}

else

{

errorProvider.SetError(target, null);

}

}

//обработка добавления комнат

private void submitButton_Click(object sender, EventArgs e)

{

//проверка всех полей формы

string result;

//флаг, все ли поля формы верны

bool flag = true;

if ((result = roomNumberTextBox_Validate()) != "")

{

flag = false;

errorProvider.SetError(roomNumberTextBox, result);

}

if ((result = classTextBox_Validate()) != "")

{

flag = false;

errorProvider.SetError(classTextBox, result);

}

if ((result = capacityTextBox_Validate()) != "")

{

flag = false;

errorProvider.SetError(capacityTextBox, result);

}

if ((result = priceTextBox_Validate()) != "")

{

flag = false;

errorProvider.SetError(priceLabel1, result);

}

if (flag == false)

return;

try

{

hotel.AddRoomRange(floorComboBox.SelectedIndex + 1,

numberFirst,

numberLast,

_class,

capacity,

pricePerDay);

MessageBox.Show("Комнаты успешно добавлены.",

"Добавление успешно",

MessageBoxButtons.OK, MessageBoxIcon.Information);

this.DialogResult = DialogResult.OK;

}

catch (Exception exc)

{

MessageBox.Show(exc.Message,

"Ошибка",

MessageBoxButtons.OK, MessageBoxIcon.Error);

}

}

}

DeleteRoomsForm.cs

public partial class DeleteRoomForm : Form

{

private Hotel hotel;

public DeleteRoomForm(Hotel h)

{

InitializeComponent();

hotel = h;

}

private void deleteButton_Click(object sender, EventArgs e)

{

string text = roomNumberTextBox.Text;

int number;

if (text == "")

{

errorProvider.SetError(roomNumberTextBox, "Заполните это поле.");

return;

}

if (Int32.TryParse(text, out number) == false || number <= 0)

{

errorProvider.SetError(roomNumberTextBox, "Введите положительное число не больше миллиарда.");

return;

}

DialogResult result = MessageBox.Show($"Вы уверены, что хотите удалить комнату с номером {number}?",

"Подтверждение операции",

MessageBoxButtons.YesNo,

MessageBoxIcon.Question);

if (result == DialogResult.No)

{

errorProvider.SetError(roomNumberTextBox, null);

return;

}

try

{

hotel.DeleteRoom(number);

MessageBox.Show($"Комната {number} успешно удалена.",

"Удаление успешно",

MessageBoxButtons.OK, MessageBoxIcon.Information);

this.DialogResult = DialogResult.OK;

}

catch (Exception exc)

{

errorProvider.SetError(roomNumberTextBox, null);

MessageBox.Show(exc.Message,

"Ошибка",

MessageBoxButtons.OK, MessageBoxIcon.Error);

}

}

}

FindRoomsForm.cs

public partial class FindRoomsForm : Form

{

private Hotel hotel;

private string _class;

private int capacity;

private double pricePerDay;

public FindRoomsForm(Hotel h)

{

hotel = h;

InitializeComponent();

datePicker.MinDate = DateTime.Now;

}

//валидаторы полей

private string classTextBox_Validate()

{

_class = classTextBox.Text;

if (_class == "")

{

return "Заполните это поле";

}

return "";

}

private string capacityTextBox_Validate()

{

if (capacityTextBox.Text == "")

{

return "Заполните это поле";

}

if (!Int32.TryParse(capacityTextBox.Text, out capacity) || capacity <= 0)

{

return "Введите положительное число меньше миллиарда";

}

return "";

}

private string priceTextBox_Validate()

{

if (priceTextBox.Text == "")

{

return "Заполните это поле";

}

if (!Double.TryParse(priceTextBox.Text, out pricePerDay) || pricePerDay < 0)

{

return "Введите неотрицательное число меньше миллиарда";

}

return "";

}

//удаление предупреждения при изменении текста

private void textBox_TextChanged(object sender, EventArgs e)

{

TextBox target = sender as TextBox;

if (target == priceTextBox)

{

errorProvider.SetError(priceLabel1, null);

}

else

{

errorProvider.SetError(target, null);

}

}

//формирование запроса на поиск

private void findButton_Click(object sender, EventArgs e)

{

//проверка всех полей формы

string result;

//флаг, все ли поля формы верны

bool flag = true;

if (classCheckBox.Checked && (result = classTextBox_Validate()) != "")

{

flag = false;

errorProvider.SetError(classTextBox, result);

}

if (capacityCheckBox.Checked && (result = capacityTextBox_Validate()) != "")

{

flag = false;

errorProvider.SetError(capacityTextBox, result);

}

if (priceCheckBox.Checked && (result = priceTextBox_Validate()) != "")

{

flag = false;

errorProvider.SetError(priceLabel1, result);

}

if (flag == false)

return;

//проверка чекбоксов, составление критерия

string criteria = "";

criteria += classCheckBox.Checked ? "Y" : "N";

criteria += capacityCheckBox.Checked ? "Y" : "N";

criteria += priceCheckBox.Checked ? "Y" : "N";

try

{

IReadOnlyList<Room> foundRooms = hotel.FindEmptyRooms(criteria,

_class,

capacity,

pricePerDay,

datePicker.Value);

showResult(foundRooms);

}

catch (Exception exc)

{

MessageBox.Show(exc.Message,

"Ошибка",

MessageBoxButtons.OK, MessageBoxIcon.Error);

}

}

private void showResult(IReadOnlyList<Room> foundRooms)

{

if (foundRooms.Count == 0)

{

nothingFound.Visible = true;

}

else

{

nothingFound.Visible = false;

}

searchResult.Rows.Clear();

foreach (Room room in foundRooms)

{

searchResult.Rows.Add(new object[] { room.Number,

room.Class,

room.Capacity,

room.PricePerDay,

room.IsEmpty,

room.IsEmpty ? null : room.DateLeave.ToShortDateString() });

}

}

//включение/отключение параметра поиска

private void checkBox_CheckedChanged(object sender, EventArgs e)

{

CheckBox target = sender as CheckBox;

switch (target.Name)

{

case "classCheckBox":

{

classTextBox.Enabled = !classTextBox.Enabled;

errorProvider.SetError(classTextBox, null);

break;

}

case "capacityCheckBox":

{

capacityTextBox.Enabled = !capacityTextBox.Enabled;

errorProvider.SetError(capacityTextBox, null);

break;

}

case "priceCheckBox":

{

priceTextBox.Enabled = !priceTextBox.Enabled;

errorProvider.SetError(priceLabel1, null);

break;

}

}

}

.

41