- •Содержание
- •Введение
- •1 История инженерно-технического института
- •1.1 Кафедра программного обеспечения вычислительной техники и автоматизированных систем
- •2 Организационная структура инженерно – технического института
- •2.1 Кафедры инженерно-технического института
- •3 Описание аппаратного и программного обеспечения
- •4 Инфологическое проектирование базы данных
- •5 Блок-схема программы
- •6 Описание интерфейса программы
5 Блок-схема программы
Для понимания работы алгоритма ниже приведена блок схема, описывающая функциональность программы.
Выход
Рисунок 4 – Обобщенная блок-схема программы
6 Описание интерфейса программы
При запуске программы появляется главное окно которое предоставляет диалог для выбора последующих действий. На главной форме предоставлена возможность перехода в режим бронирования номеров, оформление или удаление забронированных номеров, добавление сведений в базу данных о новых номерах, просмотр текущего состояния номеров, формирование финансовых отчетов.
Рисунок 5 - главное окно программы
При выборе “бронирование” появляется диалоговое окно для регистрации брони. Окно в текущем окне предоставлена информация по забронированным номерам и свободным номерам. При помощи всплывающего списка предоставляется возможность выбора категории номера, даты въезда и даты выезда , также вносится фамилия и имя в соответствующие текстовые поля. После заполнения всех необходимых поле нажать клавишу забронировать.
Рисунок 6 – бронирование номеров
В случае успешного бронирования появится информирующее окно.
Рисунок 7 – окно сообщения
При выборе оформить удалить на экране появится окно оформления номера. Данное окно содержит вкладки оформление, удаление. На вкладке оформления присутствует вложенные вкладки на которых в таблицах отображается информация о свободных и забронированных номерах. При выборе в всплывающем списке категории номеров изменяется и содержимое таблиц которые формируются в соответствии с заданным условием. Для того чтобы оформить заказ необходимо выбрать категорию номера и в поле номер ввести код номера и нажать клавишу оформить. В результате появится форма оформления данных о клиенте.
Рисунок 8 – данные о клиенте
Заполнив все необходимые данные о клиенте нажать клавишу сохранить . в случае удачного сохранения вас проинформирует окно сообщения и программа автоматически сформирует чек оплаты за номер
При выборе добавление номера, появится окно “добавить новый номер”. после заполнения всех полей и сохранении я данных данный номер будет присутствовать в базе данных.
Рисунок 9 – добавление номера
При выборе “состояние/поиск” появится окно с з вкладками. На вкладке - состояние свободных номеров. присутствует информация о номерах цена, кол-во мест, кол-во комнат и т.д.
На вкладке поиск можно найти осуществить поиск по заданным критериям ( по номеру, ФИО, дате проживания)
Рисунок 10 – окно состояние/поиск
Для того чтобы просмотреть финансовый отче необходимо в главном окне программы нажать кнопку “Финансовый отчет”. Появившемся окне выбрать необходимые параметры для формирования отчета : за квартал (указать какой), за месяц. И нажать кнопку вывести
Рисунок 11 – формирование отчета
Рисунок 12 – отчет
Приложение А
Form1.cs
using System.Windows.Formsnamespace Гостиница
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
public string user;
private void button1_Click(object sender, EventArgs e)
{
Form2 ii= new Form2();
ii.ShowDialog();
}
private void button4_Click(object sender, EventArgs e)
{
this.Close();
}
private void button2_Click(object sender, EventArgs e)
{
Form3 pp= new Form3();
pp.ShowDialog();
}
private void timer1_Tick(object sender, EventArgs e)
{
maskedTextBox1.Text = DateTime.Now.ToString();
maskedTextBox1.Refresh();
}
rivate void button3_Click(object sender, EventArgs e)
{
Form5 pp = new Form5();
pp.ShowDialog();
}
private void button5_Click(object sender, EventArgs e)
{
Form6 pp = new Form6();
pp.ShowDialog();
}
private void Form1_Load(object sender, EventArgs e)
{
if (user == "Рабочий")
{
button5.Enabled=false;
button6.Enabled = false;
}
}
private void button6_Click(object sender, EventArgs e)
{
Form8 pp = new Form8();
pp.ShowDialog();
}
private void связьСРазработчикомToolStripMenuItem_Click(object sender, EventArgs e)
{
о_программе pp = new о_программе();
pp.ShowDialog();
}
private void английскийToolStripMenuItem_Click(object sender, EventArgs e)
{
англ pp = new англ();
pp.ShowDialog();
}
private void экстренныеНомераToolStripMenuItem_Click(object sender, EventArgs e)
{
MessageBox.Show(" Пожарная служба: 101;\n Милиция: 102;\n Скорая помощ: 103;\n Газовая служба: 104;","Телефоны экстренных служб:", MessageBoxButtons.OK, MessageBoxIcon.Warning);
}
private void телефонРуководстваToolStripMenuItem_Click(object sender, EventArgs e)
{
MessageBox.Show(" Ген.Директор: 077745671;\n Заместитель директора: 0778462711;\n Главный управляющий: 0778664297;\n Служба охраны: 0778953276;","Телефоны:", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
}}
Form2.cs
namespace Гостиница
{
public partial class Form2 : Form
{
public Form2()
{
InitializeComponent();
}
public OleDbConnection con = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + @"гостиница.mdb");
public DataTable table;
public OleDbDataAdapter da;
public string kod_klienta;
private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
{
table = new DataTable();
switch (comboBox1.SelectedIndex)
{
case 0:
da = new OleDbDataAdapter("SELECT Номер.[Код номера], Категория.Категория, Номер.[Кол-во мест], Номер.[Кол-во комнат], Номер.[Стоимость за 1 день], Номер.[Доп информация]FROM (Категория INNER JOIN Номер ON Категория.[Код категории] = Номер.[Код категории]) INNER JOIN [Состояние номера] ON Номер.[Код номера] = [Состояние номера].[Код номера]WHERE ((([Состояние номера].[Код состояния])=1) AND ((Номер.[Код категории])=1))", con);
break;
case 1:
da = new OleDbDataAdapter("SELECT Номер.[Код номера], Категория.Категория, Номер.[Кол-во мест], Номер.[Кол-во комнат], Номер.[Стоимость за 1 день], Номер.[Доп информация]FROM (Категория INNER JOIN Номер ON Категория.[Код категории] = Номер.[Код категории]) INNER JOIN [Состояние номера] ON Номер.[Код номера] = [Состояние номера].[Код номера]WHERE ((([Состояние номера].[Код состояния])=1) AND ((Номер.[Код категории])=2))", con);
break;
case 2:
da = new OleDbDataAdapter("SELECT Номер.[Код номера], Категория.Категория, Номер.[Кол-во мест], Номер.[Кол-во комнат], Номер.[Стоимость за 1 день], Номер.[Доп информация]FROM (Категория INNER JOIN Номер ON Категория.[Код категории] = Номер.[Код категории]) INNER JOIN [Состояние номера] ON Номер.[Код номера] = [Состояние номера].[Код номера]WHERE ((([Состояние номера].[Код состояния])=1) AND ((Номер.[Код категории])=3))", con);
break;
}
da.Fill(table);
dataGridView2.DataSource = table;
}
private void timer1_Tick(object sender, EventArgs e)
{
maskedTextBox1.Text = DateTime.Now.ToString();
maskedTextBox1.Refresh();
dateTimePicker1.MaxDate = dateTimePicker2.Value;
dateTimePicker2.MinDate = dateTimePicker1.Value;
}
private void Form2_Load(object sender, EventArgs e)
{
// TODO: This line of code loads data into the 'гостиницаDataSet2.Доход' table. You can move, or remove it, as needed.
this.доходTableAdapter.Fill(this.гостиницаDataSet2.Доход);
// TODO: This line of code loads data into the 'гостиницаDataSet.Номер' table. You can move, or remove it, as needed.
this.номерTableAdapter.Fill(this.гостиницаDataSet.Номер);
// TODO: This line of code loads data into the 'гостиницаDataSet.Категория' table. You can move, or remove it, as needed.
this.категорияTableAdapter.Fill(this.гостиницаDataSet.Категория);
table = new DataTable();
switch (comboBox1.SelectedIndex)
{
case 0:
da = new OleDbDataAdapter("SELECT Номер.[Код номера], Категория.Категория, Номер.[Кол-во мест], Номер.[Кол-во комнат], Номер.[Стоимость за 1 день], Номер.[Доп информация]FROM (Категория INNER JOIN Номер ON Категория.[Код категории] = Номер.[Код категории]) INNER JOIN [Состояние номера] ON Номер.[Код номера] = [Состояние номера].[Код номера]WHERE ((([Состояние номера].[Код состояния])=1) AND ((Номер.[Код категории])=1))", con);
break;
case 1:
da = new OleDbDataAdapter("SELECT Номер.[Код номера], Категория.Категория, Номер.[Кол-во мест], Номер.[Кол-во комнат], Номер.[Стоимость за 1 день], Номер.[Доп информация]FROM (Категория INNER JOIN Номер ON Категория.[Код категории] = Номер.[Код категории]) INNER JOIN [Состояние номера] ON Номер.[Код номера] = [Состояние номера].[Код номера]WHERE ((([Состояние номера].[Код состояния])=1) AND ((Номер.[Код категории])=2))", con);
break;
case 2:
da = new OleDbDataAdapter("SELECT Номер.[Код номера], Категория.Категория, Номер.[Кол-во мест], Номер.[Кол-во комнат], Номер.[Стоимость за 1 день], Номер.[Доп информация]FROM (Категория INNER JOIN Номер ON Категория.[Код категории] = Номер.[Код категории]) INNER JOIN [Состояние номера] ON Номер.[Код номера] = [Состояние номера].[Код номера]WHERE ((([Состояние номера].[Код состояния])=1) AND ((Номер.[Код категории])=3))", con);
break;
}
da.Fill(table);
dataGridView2.DataSource = table;
table = new DataTable();
da = new OleDbDataAdapter("SELECT [Состояние номера].[Код номера], [Вид состояния].Название, Категория.Категория, Клиент.Фамилия,[Состояние номера].[Дата въезда] FROM (Категория INNER JOIN Номер ON Категория.[Код категории] = Номер.[Код категории]) INNER JOIN (Клиент INNER JOIN ([Вид состояния] INNER JOIN [Состояние номера] ON [Вид состояния].[Код состояния] = [Состояние номера].[Код состояния]) ON Клиент.[Код клиента] = [Состояние номера].[Код клиента]) ON Номер.[Код номера] = [Состояние номера].[Код номера]WHERE ((([Вид состояния].[Код состояния])=3));", con);
da.Fill(table);
dataGridView1.DataSource = table;
con.Open();
OleDbCommand max = new OleDbCommand("SELECT Max(Клиент.[Код клиента]) FROM Клиент", con);
OleDbDataReader read = max.ExecuteReader();
while (read.Read())
{
kod_klienta = Convert.ToString(int.Parse(read[0].ToString()) + 1);
}
con.Close();
textBox1.Text = "";
textBox2.Text = "";
}
private void button1_Click(object sender, EventArgs e)
{
if (textBox1.Text != "" && textBox2.Text != "")
{
con.Open();
OleDbCommand InsertCom1 = new OleDbCommand("INSERT INTO [Клиент] VALUES ('" + kod_klienta + "','" + textBox1.Text + "',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,"+textBox2.Text+")", con);
if (InsertCom1.ExecuteNonQuery() > 0)
MessageBox.Show("Сведения успешно добавлены", "Добавление", MessageBoxButtons.OK, MessageBoxIcon.Information);
OleDbCommand UpdateCom1 = new OleDbCommand("UPDATE [Состояние номера] SET [Код состояния]=3, [Код клиента]='" + kod_klienta + "', [Дата въезда]='" + dateTimePicker1.Text + "',[Дата выезда]='" + dateTimePicker2.Text + "' WHERE [Код номера]=" + int.Parse(textBox2.Text), con);
if (UpdateCom1.ExecuteNonQuery() > 0)
MessageBox.Show("Сведения успешно добавлены", "Добавление", MessageBoxButtons.OK, MessageBoxIcon.Information);
con.Close();
Form2_Load(sender, e);
}
else
MessageBox.Show("Не все поля введены","Ошибка",MessageBoxButtons.OK,MessageBoxIcon.Error);
}
private void button2_Click(object sender, EventArgs e)
{ this.Close(); }
Form3.cs
namespace Гостиница
{
public partial class Form3 : Form
{public Form3() { InitializeComponent(); }
public OleDbConnection con = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + @"гостиница.mdb");
public DataTable table;
public OleDbDataAdapter da; public string nomer;
private void Form3_Load(object sender, EventArgs e)
{
this.категорияTableAdapter.Fill(this.гостиницаDataSet.Категория);
table = new DataTable();
switch (comboBox1.SelectedIndex)
{
case 0:
da = new OleDbDataAdapter("SELECT Номер.[Код номера], Категория.Категория, Номер.[Кол-во мест], Номер.[Кол-во комнат], Номер.[Стоимость за 1 день], Номер.[Доп информация]FROM (Категория INNER JOIN Номер ON Категория.[Код категории] = Номер.[Код категории]) INNER JOIN [Состояние номера] ON Номер.[Код номера] = [Состояние номера].[Код номера]WHERE ((([Состояние номера].[Код состояния])=1) AND ((Номер.[Код категории])=1));", con);
break;
case 1:
da = new OleDbDataAdapter("SELECT Номер.[Код номера], Категория.Категория, Номер.[Кол-во мест], Номер.[Кол-во комнат], Номер.[Стоимость за 1 день], Номер.[Доп информация]FROM (Категория INNER JOIN Номер ON Категория.[Код категории] = Номер.[Код категории]) INNER JOIN [Состояние номера] ON Номер.[Код номера] = [Состояние номера].[Код номера]WHERE ((([Состояние номера].[Код состояния])=1) AND ((Номер.[Код категории])=2));", con);
break;
case 2:
da = new OleDbDataAdapter("SELECT Номер.[Код номера], Категория.Категория, Номер.[Кол-во мест], Номер.[Кол-во комнат], Номер.[Стоимость за 1 день], Номер.[Доп информация]FROM (Категория INNER JOIN Номер ON Категория.[Код категории] = Номер.[Код категории]) INNER JOIN [Состояние номера] ON Номер.[Код номера] = [Состояние номера].[Код номера]WHERE ((([Состояние номера].[Код состояния])=1) AND ((Номер.[Код категории])=3));", con);
break;
}
da.Fill(table);
dataGridView1.DataSource = table;
table = new DataTable();
da = new OleDbDataAdapter("SELECT Номер.[Код номера], Категория.Категория, Номер.[Кол-во мест], Номер.[Кол-во комнат], Номер.[Стоимость за 1 день], Номер.[Доп информация]FROM (Категория INNER JOIN Номер ON Категория.[Код категории] = Номер.[Код категории]) INNER JOIN [Состояние номера] ON Номер.[Код номера] = [Состояние номера].[Код номера]WHERE ((([Состояние номера].[Код состояния])=2))", con);
da.Fill(table);
dataGridView3.DataSource = table;
table = new DataTable();
da = new OleDbDataAdapter("SELECT [Состояние номера].[Код номера], [Вид состояния].Название, Категория.Категория, Клиент.Фамилия FROM (Категория INNER JOIN Номер ON Категория.[Код категории] = Номер.[Код категории]) INNER JOIN (Клиент INNER JOIN ([Вид состояния] INNER JOIN [Состояние номера] ON [Вид состояния].[Код состояния] = [Состояние номера].[Код состояния]) ON Клиент.[Код клиента] = [Состояние номера].[Код клиента]) ON Номер.[Код номера] = [Состояние номера].[Код номера]WHERE ((([Вид состояния].[Код состояния])=3));", con);
da.Fill(table);
dataGridView2.DataSource = table;
dataGridView4.DataSource = table;
}
private void timer1_Tick(object sender, EventArgs e)
{ maskedTextBox1.Text = DateTime.Now.ToString();
maskedTextBox1.Refresh();
}
private void button1_Click(object sender, EventArgs e)
{if (textBox1.Text == "")
MessageBox.Show("Поле номера не введено", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error);
else
{
Form4 pp = new Form4();
pp.nomer = textBox1.Text;
pp.ShowDialog();
Form3_Load(sender, e);
} }
private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
{
table = new DataTable();
switch (comboBox1.SelectedIndex)
{
case 0:
da = new OleDbDataAdapter("SELECT Номер.[Код номера], Категория.Категория, Номер.[Кол-во мест], Номер.[Кол-во комнат], Номер.[Стоимость за 1 день], Номер.[Доп информация]FROM (Категория INNER JOIN Номер ON Категория.[Код категории] = Номер.[Код категории]) INNER JOIN [Состояние номера] ON Номер.[Код номера] = [Состояние номера].[Код номера]WHERE ((([Состояние номера].[Код состояния])=1) AND ((Номер.[Код категории])=1))", con);
break;
case 1:
da = new OleDbDataAdapter("SELECT Номер.[Код номера], Категория.Категория, Номер.[Кол-во мест], Номер.[Кол-во комнат], Номер.[Стоимость за 1 день], Номер.[Доп информация]FROM (Категория INNER JOIN Номер ON Категория.[Код категории] = Номер.[Код категории]) INNER JOIN [Состояние номера] ON Номер.[Код номера] = [Состояние номера].[Код номера]WHERE ((([Состояние номера].[Код состояния])=1) AND ((Номер.[Код категории])=2))", con);
break;
case 2:
da = new OleDbDataAdapter("SELECT Номер.[Код номера], Категория.Категория, Номер.[Кол-во мест], Номер.[Кол-во комнат], Номер.[Стоимость за 1 день], Номер.[Доп информация]FROM (Категория INNER JOIN Номер ON Категория.[Код категории] = Номер.[Код категории]) INNER JOIN [Состояние номера] ON Номер.[Код номера] = [Состояние номера].[Код номера]WHERE ((([Состояние номера].[Код состояния])=1) AND ((Номер.[Код категории])=3))", con);
break;
}
da.Fill(table);
dataGridView1.DataSource = table;
}
private void tabPage4_Click(object sender, EventArgs e)
{
table = new DataTable();
da = new OleDbDataAdapter("SELECT Номер.[Код номера], Категория.Категория, Номер.[Кол-во мест], Номер.[Кол-во комнат], Номер.[Стоимость за 1 день], Номер.[Доп информация]FROM (Категория INNER JOIN Номер ON Категория.[Код категории] = Номер.[Код категории]) INNER JOIN [Состояние номера] ON Номер.[Код номера] = [Состояние номера].[Код номера]WHERE ((([Состояние номера].[Код состояния])=2))", con);
da.Fill(table);
dataGridView3.DataSource = table;
}
private void button3_Click(object sender, EventArgs e)
{
this.Close();
}
private void button2_Click(object sender, EventArgs e)
{
con.Open();
OleDbCommand UpdateCom1 = new OleDbCommand("UPDATE [Состояние номера] SET [Код состояния]=1, [Код клиента]=NULL, [Дата въезда]=NULL,[Дата выезда]=NULL WHERE ([Состояние номера].[Код номера])="+ int.Parse(textBox2.Text) + "", con);
if (UpdateCom1.ExecuteNonQuery() > 0)
MessageBox.Show("Сведения успешно изменены", "Удаление", MessageBoxButtons.OK, MessageBoxIcon.Information);
con.Close();
Form3_Load(sender, e);
}
private void tabPage3_Click(object sender, EventArgs e)
{
table = new DataTable();
da = new OleDbDataAdapter("SELECT [Состояние номера].[Код номера], [Вид состояния].Название, Категория.Категория, Клиент.Фамилия FROM (Категория INNER JOIN Номер ON Категория.[Код категории] = Номер.[Код категории]) INNER JOIN (Клиент INNER JOIN ([Вид состояния] INNER JOIN [Состояние номера] ON [Вид состояния].[Код состояния] = [Состояние номера].[Код состояния]) ON Клиент.[Код клиента] = [Состояние номера].[Код клиента]) ON Номер.[Код номера] = [Состояние номера].[Код номера]WHERE ((([Вид состояния].[Код состояния])=3));", con);
da.Fill(table);
dataGridView2.DataSource = table;
}
private void button4_Click(object sender, EventArgs e)
{
this.Close();
}
private void tabControl1_Selected(object sender, TabControlEventArgs e)
{
TabControl tp = (TabControl)sender;
if (tp.SelectedIndex == 1)
comboBox1.Enabled = false;
else
comboBox1.Enabled = true;
}}}
Form4.cs
public partial class Form4 : Form
{
public Form4()
{
InitializeComponent();
}
public OleDbConnection con = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + @"гостиница.mdb");
public OleDbDataAdapter da; public string kod_klienta;
public string nomer; public int nomer1, cena1; public string cena;
public DateTime dt1, dt2;
private void Form4_Load(object sender, EventArgs e)
{
// TODO: This line of code loads data into the 'гостиницаDataSet.Номер' table. You can move, or remove it, as needed.
this.номерTableAdapter.Fill(this.гостиницаDataSet.Номер);
// TODO: This line of code loads data into the 'гостиницаDataSet.Состояние_номера' table. You can move, or remove it, as needed.
this.состояние_номераTableAdapter.Fill(this.гостиницаDataSet.Состояние_номера);
// TODO: This line of code loads data into the 'гостиницаDataSet.Клиент' table. You can move, or remove it, as needed.
this.клиентTableAdapter.Fill(this.гостиницаDataSet.Клиент);
textBox2.Text = "1";
textBox1.Text = nomer;
nomer1 = int.Parse(nomer);
con.Open();
OleDbCommand com1 = new OleDbCommand("DELETE * FROM [Доход1]", con);
com1.ExecuteNonQuery();
OleDbCommand cena1 = new OleDbCommand("SELECT Номер.[Стоимость за 1 день]FROM Номер WHERE Номер.[Код номера]="+nomer1,con);
OleDbDataReader read1 = cena1.ExecuteReader();
while (read1.Read())
{
cena = Convert.ToString(int.Parse(read1[0].ToString()));
}
OleDbCommand max = new OleDbCommand("SELECT Max(Клиент.[Код клиента]) FROM Клиент", con);
OleDbDataReader read = max.ExecuteReader();
while (read.Read())
{
kod_klienta = Convert.ToString(int.Parse(read[0].ToString()) + 1);
}
con.Close();
radioButton2.Checked = true;
}
private void button2_Click(object sender, EventArgs e)
{
this.Close();
}
private void button1_Click(object sender, EventArgs e)
{
con.Open();
OleDbCommand InsertCom1 = new OleDbCommand("INSERT INTO [Клиент] VALUES (" + kod_klienta + ",'" + textBox5.Text + "','" + textBox6.Text + "','" + textBox7.Text + "','" + comboBox1.Text + "','" + textBox8.Text + "'," + textBox9.Text + ",'" + maskedTextBox1.Text + "','" + textBox11.Text + "'," + textBox4.Text + ",'" + dateTimePicker3.Value.ToShortDateString() + "',"+textBox1.Text+")", con); //,'" + dateTimePicker3.Text + "'
if (InsertCom1.ExecuteNonQuery() > 0)
MessageBox.Show("Сведения успешно добавлены", "Добавление", MessageBoxButtons.OK, MessageBoxIcon.Information);
OleDbCommand UpdateCom1 = new OleDbCommand("UPDATE [Состояние номера] SET [Код состояния]=2, [Код клиента]='" + kod_klienta + "', [Дата въезда]='" + dateTimePicker1.Value.ToShortDateString() + "',[Дата выезда]='" + dateTimePicker2.Value.ToShortDateString() + "' WHERE [Код номера]=" + int.Parse(textBox1.Text), con);
if (UpdateCom1.ExecuteNonQuery() > 0)
MessageBox.Show("Сведения успешно добавлены", "Добавление", MessageBoxButtons.OK, MessageBoxIcon.Information);
OleDbCommand ChCom1 = new OleDbCommand("INSERT INTO Доход1 (Номер,[Цена],[Дата],[Фамилия], Имя, Отчество) SELECT [Состояние номера].[Код номера],[Клиент].[Оплата за номер],[Клиент].[Дата оплаты],Клиент.Фамилия, Клиент.Имя, Клиент.Отчество FROM [Состояние номера],Клиент WHERE [Состояние номера].[Код клиента]=Клиент.[Код клиента] AND [Состояние номера].[Код номера]=" + textBox1.Text, con);
ChCom1.ExecuteNonQuery();
con.Close();
textBox5.Text = "";
textBox6.Text = "";
textBox7.Text = "";
comboBox1.Text = "";
textBox8.Text = "";
maskedTextBox1.Text = "";
textBox9.Text = "";
textBox11.Text = "";
Form10 pp = new Form10();
pp.ShowDialog();
this.Close();
}
private void timer1_Tick(object sender, EventArgs e)
{
dt1 = DateTime.Parse(dateTimePicker1.Text);
dt2 = DateTime.Parse(dateTimePicker2.Text);
TimeSpan Day = dt2 - dt1;
textBox4.Text = (Day.TotalDays * int.Parse(cena)).ToString();
if (textBox4.Text == "0")
{ textBox4.Text = cena; }
}
private void radioButton1_CheckedChanged(object sender, EventArgs e)
{
if (radioButton1.Checked == true)
{
textBox2.Enabled= true;
button3.Enabled = true;
}
else
{
button3.Enabled = false;
textBox2.Enabled = false;
}}
private void radioButton2_CheckedChanged(object sender, EventArgs e)
{
if (radioButton2.Checked == true)
{
textBox2.Enabled = false;
textBox3.Enabled = false;
}}
private void dateTimePicker_ValueChanged(object sender, EventArgs e)
{
dateTimePicker1.MaxDate = dateTimePicker2.Value;
dateTimePicker2.MinDate = dateTimePicker1.Value;
}
private void button3_Click(object sender, EventArgs e)
{
textBox3.Text = (int.Parse(textBox4.Text) / float.Parse(textBox2.Text)).ToString();
}
Form5.cs
namespace Гостиница
{
public partial class Form5 : Form
{
public Form5()
{
InitializeComponent();
}
public OleDbConnection con = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + @"гостиница.mdb");
public DataTable table;
public OleDbDataAdapter da;
private void Form5_Load(object sender, EventArgs e)
{ table = new DataTable();
da = new OleDbDataAdapter("SELECT Номер.[Код номера], Категория.Категория, Номер.[Кол-во мест], Номер.[Кол-во комнат], Номер.[Стоимость за 1 день], Номер.[Доп информация]FROM (Категория INNER JOIN Номер ON Категория.[Код категории] = Номер.[Код категории]) INNER JOIN [Состояние номера] ON Номер.[Код номера] = [Состояние номера].[Код номера]WHERE ((([Состояние номера].[Код состояния])=1))", con);
da.Fill(table);
dataGridView1.DataSource = table;
}
private void timer1_Tick(object sender, EventArgs e)
{
maskedTextBox1.Text = DateTime.Now.ToString();
maskedTextBox1.Refresh();
}
private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
{}
private void tabPage2_Click(object sender, EventArgs e)
{}
private void button1_Click(object sender, EventArgs e)
{
if (textBox1.Text == "")
MessageBox.Show("Поле с данными для поиска не введено", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error);
else
{
table = new DataTable();
switch (comboBox1.SelectedIndex)
{
case 0:
da = new OleDbDataAdapter("SELECT [Состояние номера].[Код номера],Клиент.[Фамилия], Клиент.[Имя],Клиент.[Отчество] FROM [Состояние номера],Клиент WHERE [Состояние номера].[Код клиента]=Клиент.[Код клиента] AND [Состояние номера].[Код номера]=" + int.Parse(textBox1.Text), con);
break;
case 1:
string[] mas = textBox1.Text.Split(' ');
da = new OleDbDataAdapter("SELECT [Состояние номера].[Код номера],Клиент.[Фамилия], Клиент.[Имя],Клиент.[Отчество] FROM [Состояние номера],Клиент WHERE [Состояние номера].[Код клиента]=Клиент.[Код клиента] AND Клиент.[Фамилия]='" + mas[0] + "' AND Клиент.[Имя]='" + mas[1] + "' AND Клиент.[Отчество]='" + mas[2] + "'", con);
break;
case 2:
da = new OleDbDataAdapter("SELECT [Состояние номера].[Код номера],Клиент.[Фамилия], Клиент.[Имя],Клиент.[Отчество] FROM [Состояние номера],Клиент WHERE [Состояние номера].[Код клиента]=Клиент.[Код клиента] AND [Состояние номера].[Дата въезда]='" + textBox1.Text + "'", con);
break;
}
da.Fill(table);
dataGridView2.DataSource = table;
}}
private void button2_Click(object sender, EventArgs e)
{ this.Close(); }
private void dataGridView2_CellContentClick(object sender, DataGridViewCellEventArgs e)
{} }}
Form6.cs
namespace Гостиница
{
public partial class Form6 : Form
{
public Form6()
{
InitializeComponent();
}
public OleDbConnection con = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + @"гостиница.mdb");
public string kod_nomera;
private void Form6_Load(object sender, EventArgs e)
{
this.состояние_номераTableAdapter.Fill(this.гостиницаDataSet.Состояние_номера);
if (comboBox1.Text == "люкс")
textBox2.Text = "1";
if (comboBox1.Text == "полулюкс")
textBox2.Text = "2";
if(comboBox1.Text == "эконом")
textBox2.Text = "3";
textBox6.Text = "1";
con.Open();
OleDbCommand max = new OleDbCommand("SELECT Max(Номер.[Код номера]) FROM Номер", con);
OleDbDataReader read = max.ExecuteReader();
while (read.Read())
{
kod_nomera = Convert.ToString(int.Parse(read[0].ToString()) + 1);
}
con.Close();
}
private void button2_Click(object sender, EventArgs e)
{
this.Close();
}
private void button1_Click(object sender, EventArgs e)
{
con.Open();
OleDbCommand InsertCom1 = new OleDbCommand("INSERT INTO [Номер] VALUES ('" + kod_nomera + "','" + int.Parse(textBox2.Text) + "','" + int.Parse(textBox3.Text) + "','" + int.Parse(textBox4.Text) + "','" + int.Parse(textBox5.Text) + "','" + richTextBox1.Text + "')", con);
if (InsertCom1.ExecuteNonQuery() > 0)
MessageBox.Show("Сведения успешно добавлены", "Добавление", MessageBoxButtons.OK, MessageBoxIcon.Information);
OleDbCommand InsertCom2 = new OleDbCommand("INSERT INTO [Состояние номера] VALUES ('" + kod_nomera + "','" + int.Parse(textBox6.Text) + "',NULL,NULL,NULL)", con);
if (InsertCom2.ExecuteNonQuery() > 0)
MessageBox.Show("Сведения успешно добавлены", "Добавление", MessageBoxButtons.OK, MessageBoxIcon.Information);
con.Close();
this.Close();
}
private void timer1_Tick(object sender, EventArgs e)
{
if (comboBox1.Text == "люкс")
textBox2.Text = "1";
if (comboBox1.Text == "полулюкс")
textBox2.Text = "2";
if (comboBox1.Text == "эконом")
textBox2.Text = "3";
comboBox1.Refresh();
textBox2.Refresh();
} }}
Form7.cs
namespace Гостиница
{
public partial class Form7 : Form
{
public Form7()
{
InitializeComponent();
}
public string user;
private void button1_Click(object sender, EventArgs e)
{
StreamReader sr = new StreamReader("pass.txt");
string st;
st = sr.ReadToEnd();
if ((textBox1.Text == st.Substring(0, st.Length-2 )) && (comboBox1.Text == "Администратор"))
{
sr.Close();
Form1 ff = new Form1();
ff.user = comboBox1.Text;
ff.Show();
}
else if ((textBox1.Text == st.Substring(2, st.Length-2 )) && (comboBox1.Text == "Рабочий"))
{
sr.Close();
Form1 ff = new Form1();
ff.user=comboBox1.Text;
ff.Show();
}
else
MessageBox.Show("Вы ввели неверный пароль");
}
Form8.cs
public partial class Form8 : Form
{
public Form8()
{
InitializeComponent();
}
public OleDbConnection con = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + @"гостиница.mdb");
private void Form8_Load(object sender, EventArgs e)
{}
private void radioButton1_CheckedChanged(object sender, EventArgs e)
{
if (radioButton1.Checked == true)
{
panel1.Enabled = true;
}
else
{
panel1.Enabled = false;
}
}
private void radioButton2_CheckedChanged(object sender, EventArgs e)
{
if (radioButton2.Checked == true)
{
panel2.Enabled = true;
}
else
{
panel2.Enabled = false;
}
}
private void button1_Click(object sender, EventArgs e)
{
con.Open();
OleDbCommand com1 = new OleDbCommand("DELETE * FROM [Доход]", con);
com1.ExecuteNonQuery();
switch (comboBox1.SelectedIndex)
{
case 0:
{
OleDbCommand ChCom1 = new OleDbCommand("INSERT INTO Доход (Номер,Категория,[Код категории],[Цена],[Дата],[Фамилия], Имя, Отчество) SELECT [Клиент].[Number],Категория.Категория,Номер.[Код категории],[Клиент].[Оплата за номер],[Клиент].[Дата оплаты],Клиент.Фамилия, Клиент.Имя, Клиент.Отчество FROM Клиент,Номер,Категория WHERE Клиент.Number=Номер.[Код номера] AND Номер.[Код категории]=Категория.[Код категории] AND [Клиент].[Дата оплаты] BETWEEN #01/01/2010# AND #02/01/2010#", con);
/* OleDbCommand kod_klienta = new OleDbCommand("Select [Код клиента] From [Клиент] WHERE [Дата оплаты] Between #01/01/2010# AND #02/01/2010#", con);
OleDbDataReader kod_read = kod_klienta.ExecuteReader();
while (kod_read.Read())
{
OleDbCommand sena = new OleDbCommand("Select [Клиент].[Оплата за номер] From [Клиент] Where [Клиент].[Код клиента]=" + Convert.ToInt32(kod_read[0].ToString()), con);
OleDbDataReader sena_read = sena.ExecuteReader();
int cena = 0;
while (sena_read.Read())
cena = Convert.ToInt32(sena_read[0].ToString());
OleDbCommand data = new OleDbCommand("Select [Клиент].[Дата оплаты] From [Клиент] Where [Клиент].[Код клиента]=" + Convert.ToInt32(kod_read[0].ToString()), con);
OleDbDataReader data_read = data.ExecuteReader();
string data1 ="";
while (data_read.Read())
data1 = data_read[0].ToString().Split(' ')[0];
OleDbCommand FIO = new OleDbCommand("Select [Фамилия],[Имя],[Отчество] From [Клиент] Where [Клиент].[Код клиента]=" + Convert.ToInt32(kod_read[0].ToString()), con);
OleDbDataReader FIO_read = FIO.ExecuteReader();
string fam= "";
string ima = "";
string ot4estvo = "";
while (FIO_read.Read())
{
fam = FIO_read[0].ToString();
ima= FIO_read[1].ToString();
ot4estvo= FIO_read[2].ToString();
}
OleDbCommand add = new OleDbCommand("Insert into [Доход] VALUES ("+cena+",'"+data1+"','"+fam+"','"+ima+"','"+ot4estvo+"')", con);
add.ExecuteNonQuery();*/
ChCom1.ExecuteNonQuery();
}
break;
case 1:
OleDbCommand ChCom2 = new OleDbCommand("INSERT INTO Доход (Номер,Категория,[Код категории],[Цена],[Дата],[Фамилия], Имя, Отчество) SELECT Клиент.Number,Категория.Категория,Номер.[Код категории],[Клиент].[Оплата за номер],[Клиент].[Дата оплаты],Клиент.Фамилия, Клиент.Имя, Клиент.Отчество FROM Клиент,Номер,Категория WHERE Клиент.Number=Номер.[Код номера] AND Номер.[Код категории]=Категория.[Код категории] AND [Клиент].[Дата оплаты] BETWEEN #02/01/2010# AND #03/01/2010#", con);
ChCom2.ExecuteNonQuery();
break;
case 2:
OleDbCommand ChCom3 = new OleDbCommand("INSERT INTO Доход (Номер,Категория,[Код категории],[Цена],[Дата],[Фамилия], Имя, Отчество) SELECT Клиент.Number,Категория.Категория,Номер.[Код категории],[Клиент].[Оплата за номер],[Клиент].[Дата оплаты],Клиент.Фамилия, Клиент.Имя, Клиент.Отчество FROM Клиент,Номер,Категория WHERE Клиент.Number=Номер.[Код номера] AND Номер.[Код категории]=Категория.[Код категории] AND [Клиент].[Дата оплаты] BETWEEN #03/01/2010# AND #04/01/2010#", con);
ChCom3.ExecuteNonQuery();
break;
case 3:
OleDbCommand ChCom4 = new OleDbCommand("INSERT INTO Доход (Номер,Категория,[Код категории],[Цена],[Дата],[Фамилия], Имя, Отчество) SELECT Клиент.Number,Категория.Категория,Номер.[Код категории],[Клиент].[Оплата за номер],[Клиент].[Дата оплаты],Клиент.Фамилия, Клиент.Имя, Клиент.Отчество FROM Клиент,Номер,Категория WHERE Клиент.Number=Номер.[Код номера] AND Номер.[Код категории]=Категория.[Код категории] AND [Клиент].[Дата оплаты] BETWEEN #04/01/2010# AND #05/01/2010#", con);
ChCom4.ExecuteNonQuery();
break;
case 4:
OleDbCommand ChCom5 = new OleDbCommand("INSERT INTO Доход (Номер,Категория,[Код категории],[Цена],[Дата],[Фамилия], Имя, Отчество) SELECT Клиент.Number,Категория.Категория,Номер.[Код категории],[Клиент].[Оплата за номер],[Клиент].[Дата оплаты],Клиент.Фамилия, Клиент.Имя, Клиент.Отчество FROM Клиент,Номер,Категория WHERE Клиент.Number=Номер.[Код номера] AND Номер.[Код категории]=Категория.[Код категории] AND [Клиент].[Дата оплаты] BETWEEN #05/01/2010# AND #06/01/2010#", con);
ChCom5.ExecuteNonQuery();
break;
case 5:
OleDbCommand ChCom6 = new OleDbCommand("INSERT INTO Доход (Номер,Категория,[Код категории],[Цена],[Дата],[Фамилия], Имя, Отчество) SELECT Клиент.Number,Категория.Категория,Номер.[Код категории],[Клиент].[Оплата за номер],[Клиент].[Дата оплаты],Клиент.Фамилия, Клиент.Имя, Клиент.Отчество FROM Клиент,Номер,Категория WHERE Клиент.Number=Номер.[Код номера] AND Номер.[Код категории]=Категория.[Код категории] AND [Клиент].[Дата оплаты] BETWEEN #06/01/2010# AND #07/01/2010#", con);
ChCom6.ExecuteNonQuery();
break;
case 6:
OleDbCommand ChCom7 = new OleDbCommand("INSERT INTO Доход (Номер,Категория,[Код категории],[Цена],[Дата],[Фамилия], Имя, Отчество) SELECT Клиент.Number,Категория.Категория,Номер.[Код категории],[Клиент].[Оплата за номер],[Клиент].[Дата оплаты],Клиент.Фамилия, Клиент.Имя, Клиент.Отчество FROM Клиент,Номер,Категория WHERE Клиент.Number=Номер.[Код номера] AND Номер.[Код категории]=Категория.[Код категории] AND [Клиент].[Дата оплаты] BETWEEN #07/01/2010# AND #08/01/2010#", con);
ChCom7.ExecuteNonQuery();
break;
case 7:
OleDbCommand ChCom8 = new OleDbCommand("INSERT INTO Доход (Номер,Категория,[Код категории],[Цена],[Дата],[Фамилия], Имя, Отчество) SELECT Клиент.Number,Категория.Категория,Номер.[Код категории],[Клиент].[Оплата за номер],[Клиент].[Дата оплаты],Клиент.Фамилия, Клиент.Имя, Клиент.Отчество FROM Клиент,Номер,Категория WHERE Клиент.Number=Номер.[Код номера] AND Номер.[Код категории]=Категория.[Код категории] AND [Клиент].[Дата оплаты] BETWEEN #08/01/2010# AND #09/01/2010#", con);
ChCom8.ExecuteNonQuery();
break;
case 8:
OleDbCommand ChCom9 = new OleDbCommand("INSERT INTO Доход (Номер,Категория,[Код категории],[Цена],[Дата],[Фамилия], Имя, Отчество) SELECT Клиент.Number,Категория.Категория,Номер.[Код категории],[Клиент].[Оплата за номер],[Клиент].[Дата оплаты],Клиент.Фамилия, Клиент.Имя, Клиент.Отчество FROM Клиент,Номер,Категория WHERE Клиент.Number=Номер.[Код номера] AND Номер.[Код категории]=Категория.[Код категории] AND [Клиент].[Дата оплаты] BETWEEN #09/01/2010# AND #10/01/2010#", con);
ChCom9.ExecuteNonQuery();
break;
case 9:
OleDbCommand ChCom10 = new OleDbCommand("INSERT INTO Доход (Номер,Категория,[Код категории],[Цена],[Дата],[Фамилия], Имя, Отчество) SELECT Клиент.Number,Категория.Категория,Номер.[Код категории],[Клиент].[Оплата за номер],[Клиент].[Дата оплаты],Клиент.Фамилия, Клиент.Имя, Клиент.Отчество FROM Клиент,Номер,Категория WHERE Клиент.Number=Номер.[Код номера] AND Номер.[Код категории]=Категория.[Код категории] AND [Клиент].[Дата оплаты] BETWEEN #10/01/2010# AND #11/01/2010#", con);
ChCom10.ExecuteNonQuery();
break;
case 10:
OleDbCommand ChCom11 = new OleDbCommand("INSERT INTO Доход (Номер,Категория,[Код категории],[Цена],[Дата],[Фамилия], Имя, Отчество) SELECT Клиент.Number,Категория.Категория,Номер.[Код категории],[Клиент].[Оплата за номер],[Клиент].[Дата оплаты],Клиент.Фамилия, Клиент.Имя, Клиент.Отчество FROM Клиент,Номер,Категория WHERE Клиент.Number=Номер.[Код номера] AND Номер.[Код категории]=Категория.[Код категории] AND [Клиент].[Дата оплаты] BETWEEN #11/01/2010# AND #12/01/2010#", con);
ChCom11.ExecuteNonQuery();
break;
case 11:
OleDbCommand ChCom12 = new OleDbCommand("INSERT INTO Доход (Номер,Категория,[Код категории],[Цена],[Дата],[Фамилия], Имя, Отчество) SELECT Клиент.Number,Категория.Категория,Номер.[Код категории],[Клиент].[Оплата за номер],[Клиент].[Дата оплаты],Клиент.Фамилия, Клиент.Имя, Клиент.Отчество FROM Клиент,Номер,Категория WHERE Клиент.Number=Номер.[Код номера] AND Номер.[Код категории]=Категория.[Код категории] AND [Клиент].[Дата оплаты] BETWEEN #12/01/2010# AND #12/31/2010#", con);
ChCom12.ExecuteNonQuery();
break;
}
if (comboBox2.Enabled == true)
{
OleDbCommand com2 = new OleDbCommand("DELETE * FROM [Доход]", con);
com2.ExecuteNonQuery();
switch (comboBox2.SelectedIndex)
{
case 0:
{
OleDbCommand ChCom1 = new OleDbCommand("INSERT INTO Доход (Номер,Категория,[Код категории],[Цена],[Дата],[Фамилия], Имя, Отчество) SELECT Клиент.Number,Категория.Категория,Номер.[Код категории],[Клиент].[Оплата за номер],[Клиент].[Дата оплаты],Клиент.Фамилия, Клиент.Имя, Клиент.Отчество FROM Клиент,Номер,Категория WHERE Клиент.Number=Номер.[Код номера] AND Номер.[Код категории]=Категория.[Код категории] AND [Клиент].[Дата оплаты] BETWEEN #01/01/2010# AND #03/31/2010#", con);
ChCom1.ExecuteNonQuery();
}
break;
case 1:
OleDbCommand ChCom2 = new OleDbCommand("INSERT INTO Доход (Номер,Категория,[Код категории],[Цена],[Дата],[Фамилия], Имя, Отчество) SELECT Клиент.Number,Категория.Категория,Номер.[Код категории],[Клиент].[Оплата за номер],[Клиент].[Дата оплаты],Клиент.Фамилия, Клиент.Имя, Клиент.Отчество FROM Клиент,Номер,Категория WHERE Клиент.Number=Номер.[Код номера] AND Номер.[Код категории]=Категория.[Код категории] AND [Клиент].[Дата оплаты] BETWEEN #04/01/2010# AND #06/30/2010#", con);
ChCom2.ExecuteNonQuery();
break;
case 2:
OleDbCommand ChCom3 = new OleDbCommand("INSERT INTO Доход (Номер,Категория,[Код категории],[Цена],[Дата],[Фамилия], Имя, Отчество) SELECT Клиент.Number,Категория.Категория,Номер.[Код категории],[Клиент].[Оплата за номер],[Клиент].[Дата оплаты],Клиент.Фамилия, Клиент.Имя, Клиент.Отчество FROM Клиент,Номер,Категория WHERE Клиент.Number=Номер.[Код номера] AND Номер.[Код категории]=Категория.[Код категории] AND [Клиент].[Дата оплаты] BETWEEN #07/01/2010# AND #09/30/2010#", con);
ChCom3.ExecuteNonQuery();
break;
case 3:
OleDbCommand ChCom4 = new OleDbCommand("INSERT INTO Доход (Номер,Категория,[Код категории],[Цена],[Дата],[Фамилия], Имя, Отчество) SELECT Клиент.Number,Категория.Категория,Номер.[Код категории],[Клиент].[Оплата за номер],[Клиент].[Дата оплаты],Клиент.Фамилия, Клиент.Имя, Клиент.Отчество FROM Клиент,Номер,Категория WHERE Клиент.Number=Номер.[Код номера] AND Номер.[Код категории]=Категория.[Код категории] AND [Клиент].[Дата оплаты] BETWEEN #10/01/2010# AND #12/31/2010#", con);
ChCom4.ExecuteNonQuery();
break;
}
}
con.Close();
Form9 pp = new Form9();
pp.Show();
}
private void button2_Click(object sender, EventArgs e)
{
this.Close();
} }
Form9.cs
namespace Гостиница
{
public partial class Form9 : Form
{
public Form9()
{
InitializeComponent();
OleDbConnection con = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + @"гостиница.mdb");
гостиницаDataSet3 mm = new гостиницаDataSet3();
OleDbDataAdapter DatAdapTable = new OleDbDataAdapter("Select * FROM [Доход]", con);
DatAdapTable.Fill(mm.Tables["Доход"]);
CrystalReport11.SetDataSource(mm);
crystalReportViewer1.Update();
}}