Автор работы: Пользователь скрыл имя, 08 Ноября 2015 в 11:17, курсовая работа
Электронная очередь – это комплекс программно-аппаратных средств, предназначенных для оптимизации и формализации управления потоком людей (очередью). Очередь позволяет в значительной степени улучшить работу любой организации, в которой требуется постоянный прием клиентов. Распределение посетителей между операторами позволяет ускорять процесс обслуживания, а также исключает простой в работе персонала.
Внедрение электронной очереди в организации позволяют менеджерам зала в процессе работы системы и обслуживания клиентов оперативно вносить коррективы в работу операторов, разрабатывать новые методики облуживания, более эффективно выделять категории обслуживания клиентов.
В системе электронной очереди существует возможность гибко настроить работу операторов и, таким образом, равномерно разделить поток клиентов между всеми работающими в данный момент операторами.
ВВЕДЕНИЕ 3
1. АНАЛИЗ СРЕДЫ 5
2. ПОЯСНИТЕЛЬНАЯ ЗАПИСКА 16
2.1. Список исполнителей 16
2.2. Техническое задание 17
2.2.1. Назначение и область применения программного изделия. 17
2.2.2. Основание для разработки 17
2.2.3. Требования заказчика к ПИ 17
2.3. Календарный план разработки 21
2.3.1. Общий план разработки 21
2.3.2. Индивидуальный план разработки 22
2.4. Документация разработки 23
2.4.1. Технический проект 23
2.4.2. Подготовка к разработке 25
2.4.3. Программная реализация 29
2.4.4. Тестирование системы 36
2.5. Эксплуатационная документация 41
2.5.1. Руководство системного программиста 41
2.5.2. Руководство программиста. 43
2.5.3. Руководство оператора. 46
2.5.4. Документация по установке и сопровождению системы 49
ЗАКЛЮЧЕНИЕ 52
СПИСОК ИСПОЛЬЗОВАННОЙ ЛИТЕРАТУРЫ. 54
Приложения.
query.ExecuteNonQuery();
connection.Close();
// Определяем какой нам дали номер
connection = new MySqlConnection(MyConString);
query = connection.CreateCommand();
query.CommandText = "SELECT operator_id FROM operator " +
connection.Open();
Reader = query.ExecuteReader();
while (Reader.Read())
{
operator_id = int.Parse(Reader.GetValue(0).
}
connection.Close();
label3.Text = "Номер подключения: " + operator_id;
// Блокируем кнопку подключения и включаем таймер
timer1.Enabled = true;
tabControl1.SelectedIndex = 1;
panel2.Enabled = true;
panel1.Enabled = false;
// Ожидание начала работы
waiting = false;
waittime = 10;
timerNameLabel.Text = "Перерыв";
timer2.Enabled = true;
endWorkButton.Enabled = true;
// создаем условие для запроса клиента
//callWhere = "WHERE `turn`.`serviced`='0' AND `turn`.`call` < '3' AND (`turn`.`cat_id`='" + cat_id[0] + "'";
//for (int i = 1; i < cat_id.Count; i++)
//{
// callWhere += " OR `turn`.`cat_id`='" + cat_id[i] + "'";
//}
//callWhere += ") ";
bool lamp = false;
callWhere = "WHERE `turn`.`serviced`='0' AND `turn`.`call` < '3' ";
foreach (int i in selСheckedListBox.
//for (int i = 0; i < selСheckedListBox.Items.Count; i++)
{
if (lamp == false)
{
callWhere += "AND (`turn`.`cat_id`='" + cat_id[i] + "'";
lamp = true;
}
else
callWhere += " OR `turn`.`cat_id`='" + cat_id[i] + "'";
}
callWhere += ") ";
}
private void timer1_Tick(object sender, EventArgs e)
{
// Если пришло время - то обновляем свою онлайновость в базе
if (update == 60)
{
updateOnline();
update = 0;
}
else
update++;
// Обновляем статистику
todayClientLabel.Text = todayClient().ToString();
todayTimeLabel.Text = todayTime();
todayAllClientsLabel.Text = ServedClients().ToString();
}
private int todayClient()
{
// Клиентов обслужено сегодня этим оператором
MySqlConnection connection = new MySqlConnection(MyConString);
MySqlCommand query = connection.CreateCommand();
MySqlDataReader Reader;
query.CommandText = "SELECT COUNT(turn_id) FROM turn " +
connection.Open();
Reader = query.ExecuteReader();
int i = 0;
while (Reader.Read())
{
i = int.Parse(Reader.GetValue(0).
}
connection.Close();
return i;
}
private string todayTime()
{
// Суммарное время работы этого оператора
//DateTime dateNow = DateTime.Now;
//TimeSpan left = new DateTime(dateNow.Year, dateNow.Month, dateNow.AddDays(1).Day, 0, 0, 0) - dateNow;
//leftTimerLabel.Text = string.Format("{0:h\\:mm\\:ss}
//if (left.Hours == 0 && left.Minutes == 0 && left.Seconds == 0)
// reset = true;
MySqlConnection connection = new MySqlConnection(MyConString);
MySqlCommand query = connection.CreateCommand();
MySqlDataReader Reader;
//query.CommandText = "SELECT COUNT(turn_id) FROM turn " +
//
"WHERE `date_reg` > '" + DateTime.Now.ToString("yyyy-
// " `date_begin` IS NOT NULL AND `date_end` IS NOT NULL AND `serviced` = '" + numberUpDown.Value.ToString() + "'";
query.CommandText = "SELECT date_start, date_end FROM operator " +
"WHERE `number` = '" + numberUpDown.Value.ToString() + "' AND " +
"`date_end` > '" + DateTime.Now.ToString("yyyy-
"ORDER BY operator_id DESC";
connection.Open();
Reader = query.ExecuteReader();
TimeSpan work = new TimeSpan(0,0,0);
while (Reader.Read())
{
work = work + (Convert.ToDateTime(Reader.
}
connection.Close();
return string.Format("{0:h\\:mm}", work);
}
private int ServedClients()
// Клиентов обслужено
{
MySqlConnection connection = new MySqlConnection(MyConString);
MySqlCommand query = connection.CreateCommand();
MySqlDataReader Reader;
query.CommandText = "SELECT COUNT(turn_id) FROM turn " +
connection.Open();
Reader = query.ExecuteReader();
int i = 0;
while (Reader.Read())
{
i = int.Parse(Reader.GetValue(0).
}
connection.Close();
return i;
}
private void updateOnline()
{
MySqlConnection connection = new MySqlConnection(MyConString);
MySqlCommand query = connection.CreateCommand();
connection.Open();
query.CommandText = "UPDATE `operator` " +
query.ExecuteNonQuery();
connection.Close();
}
private void closeButton_Click(object sender, EventArgs e)
{
Close();
}
private void endWorkButton_Click(object sender, EventArgs e)
{
updateOnline();
update = 0;
timer1.Enabled = false;
tabControl1.SelectedIndex = 0;
panel2.Enabled = false;
panel1.Enabled = true;
timer2.Enabled = false;
}
private void timer2_Tick(object sender, EventArgs e)
{
if (waiting == false) // Ожидание клиента - устанавливается автоматически
{
timerLabel.Text = "00:" + (waittime < 10 ? "0" : "") + waittime;
if (waittime != 0)
waittime--;
else
{
// Зовем следующего клиента
waitClients();
if (callClient(false))
{
markClient();
}
else // Если клиента нет, то
noClients();
}
}
else // Ожидание клиента - устанавливается автоматически
{
timerLabel.Text = "00:" + (waittime < 10 ? "0" : "") + waittime;
if (waittime != 0)
waittime--;
else
{
lostClient();
// Клиента недождались, зовем следующего клиента
waitClients();
if (callClient(true))
{
markClient();
}
else // Если клиента нет, то
noClients();
}
}
}
private void noClients()
{
timerNameLabel.Text = "Перерыв";
waiting = false;
waittime = 15;
endWorkButton.Enabled = true;
ClientLabel.Text = "Нет клиентов";
startServiceButton.Enabled = false;
}
private void waitClients()
{
timerNameLabel.Text = "Ожидание клиента";
waiting = true;
waittime = 30;
startServiceButton.Enabled = true;
endWorkButton.Enabled = false;
}
private bool callClient(bool other)
{
// Ищем подходящиего клиента
MySqlConnection connection = new MySqlConnection(MyConString);
MySqlCommand query = connection.CreateCommand();
MySqlDataReader Reader;
query.CommandText = "SELECT turn.turn_id, cat.abbr, turn.num FROM turn " +
connection.Open();
Reader = query.ExecuteReader();
while (Reader.Read())
if (int.Parse(Reader.GetValue(0).
{
// Если есть, то клиент обнаружен
turn_id = int.Parse(Reader.GetValue(0).
nameNum = Reader.GetValue(1).ToString() + Reader.GetValue(2).ToString();
ClientLabel.Text = nameNum;
connection.Close();
return true;
}
connection.Close();
return false;
}
private void markClient()
{
MySqlConnection connection = new MySqlConnection(MyConString);
MySqlCommand query = connection.CreateCommand();
connection.Open();
query.CommandText = "UPDATE `turn` " +
query.ExecuteNonQuery();
connection.Close();
}
private void lostClient()
{
MySqlConnection connection = new MySqlConnection(MyConString);
MySqlCommand query = connection.CreateCommand();
connection.Open();
query.CommandText = "UPDATE `turn` " +
query.ExecuteNonQuery();
connection.Close();
}
private void comeClient()
{
MySqlConnection connection = new MySqlConnection(MyConString);
MySqlCommand query = connection.CreateCommand();
connection.Open();
query.CommandText = "UPDATE `turn` " +
query.ExecuteNonQuery();
connection.Close();
}
private void servedClient()
{
MySqlConnection connection = new MySqlConnection(MyConString);
MySqlCommand query = connection.CreateCommand();
connection.Open();
query.CommandText = "UPDATE `turn` " +
query.ExecuteNonQuery();
connection.Close();
}
private
void startServiceButton_Click(
{
startServiceButton.Enabled = false;
endServiceButton.Enabled = true;
comeClient();
timer2.Enabled = false;
timerNameLabel.Text = "Время обслуживания";
endWorkButton.Enabled = false;
serviceTimer.Enabled = true;
serviceTime = 0;
}
private void serviceTimer_Tick(object sender, EventArgs e)
{
int hour = serviceTime / 3600; // часы
int residue = serviceTime - (3600 * hour); // Остаток
int min = residue / 60; // минуты
residue = residue - (60 * min);
int sec = residue; // секунды
timerLabel.Text = (hour > 0 ? hour+":" : "") + (min < 10 ? "0" : "") + min + ":" + (sec < 10 ? "0" : "") + sec;
serviceTime++;
}
private void endServiceButton_Click(object sender, EventArgs e)
{
servedClient();
serviceTimer.Enabled = false;
//startServiceButton.Enabled = true;
endServiceButton.Enabled = false;
// Ожидание начала работы
waiting = false;
waittime = 10;
timerNameLabel.Text = "Перерыв";
timer2.Enabled = true;
endWorkButton.Enabled = true;
}
private void button2_Click(object sender, EventArgs e)
{
foreach (int i in selСheckedListBox.
{
MessageBox.Show(i.ToString());
}
}
}
}
Информация о работе Разработка и стандартизация программных средств и информационных технологий