Создание программы для составления расписания в школе
Дипломная работа - Компьютеры, программирование
Другие дипломы по предмету Компьютеры, программирование
?е уже поставлено и если эта цифра равна общему количеству часов черчения в неделю, программа также выводит сообщение. В противном случае проверка продолжается. Далее происходит проверка преподавателя, т.е. не ведет ли он урок в этот момент в другом классе. А также проверяется рабочее время преподавателя, в котором расставляется время, когда он может работать, а когда не может.
Int32 logicblok(int r, int c, DataGridView data, int f, string predmet)
{= "";(int i = 0; i < peremenie.m_klas.Length / 6; i++)
{(data.Columns[c].HeaderText == peremenie.m_klas[i * 6 + 2] && peremenie.m_klas[i * 6 + 1] == Convert.ToString(peremenie.IDshcool))
{.IDklas = Convert.ToInt32(peremenie.m_klas[i * 6 + 0]); ////ID klassa
}
}kol = 0; ////количество предмета в неделюprep = "";(int i = 0; i < peremenie.nagryzka.Length / 6; i++)
{(predmet == peremenie.nagryzka[i * 6 + 3] && Convert.ToInt32(peremenie.nagryzka[i * 6 + 2]) == peremenie.IDklas)
{= Convert.ToInt32(peremenie.nagryzka[i * 6 + 4]);//// naxodim eto kol-vo= peremenie.nagryzka[i * 6 + 5];(prep, r, c, data, f);(rabota(prep, r, c, data, f) == 3) //////////////необходимо передать имя препода в подпрограмму чтобы определить может он вести в это время
{(MessageBox.Show("Вероятно преподаватель не сможет. Все равно продолжить?", "Предупреждение", MessageBoxButtons.YesNo) == DialogResult.No)
{1;
}
}if (rabota(prep, r, c, data, f) == 2)
{.Show("Преподаватель не сможет.", "Предупреждение");1;
}
}
}sum = 0;(int i = 0; i < dataGridView1.RowCount; i++)
{[] w;= Convert.ToString(dataGridView1.Rows[i].Cells[c].Value).Split('/');(w[0]== predmet)
{= sum + 1;
}[] w1;= Convert.ToString(dataGridView2.Rows[i].Cells[c].Value).Split('/');(w1[0]== predmet)
{= sum + 1;
}[] w2;= Convert.ToString(dataGridView3.Rows[i].Cells[c].Value).Split('/');(w2[0]== predmet)
{= sum + 1;
}[] w3;=Convert.ToString(dataGridView4.Rows[i].Cells[c].Value).Split('/');(w3[0]== predmet)
{= sum + 1;
}[] w4;= Convert.ToString(dataGridView5.Rows[i].Cells[c].Value).Split('/');(w4[0]== predmet)
{= sum + 1;
}[] w5;= Convert.ToString(dataGridView6.Rows[i].Cells[c].Value).Split('/');(w5[0]== predmet)
{= sum + 1;
}
}k = 0;(kol <= sum)
{= 1;.Show("Недопустимое количество данного предмета для этого класса.", "Предупреждение");k;
}(int i = 0; i < peremenie.m_klas.Length / 6; i++)
{(int j = 0; j < dataGridView1.ColumnCount; j++)
{(j != c)
{(data.Columns[j].HeaderText == peremenie.m_klas[i * 6 + 2] && peremenie.m_klas[i * 6 + 1] == Convert.ToString(peremenie.IDshcool))
{(int u = 0; u < peremenie.nagryzka.Length / 6; u++)
{[] word;= Convert.ToString(data.Rows[r].Cells[j].Value).Split('/');(prep == peremenie.nagryzka[u * 6 + 5] && Convert.ToInt32(peremenie.nagryzka[u * 6 + 2]) == Convert.ToInt32(peremenie.m_klas[i * 6 + 0]) && word[0] == peremenie.nagryzka[u * 6 + 3])
{= 1;.Show("Преподаватель занят.", "Предупреждение");k;
}
}
}
}
}
}(int i = 0; i < data.RowCount; i++)
{(r != i)
{ [] word;= Convert.ToString(data.Rows[i].Cells[c].Value).Split('/');(word[0] == predmet)
{(MessageBox.Show("Вы уверенны, что хотите проставить два одинаковых предмета в день?", "Предупреждение", MessageBoxButtons.YesNo) == DialogResult.No)
{= 1;k;
}
}
}
}k;
}
Данный программный код выполняет выше указанные действия.
Также происходит сверка смены:
void smena(int i, int j, DataGridView data)
{z = true;(int k = 0; k < peremenie.m_klas.Length / 6; k++)
{(data.Columns[j].HeaderText == peremenie.m_klas[k * 6 + 2] && peremenie.m_klas[k * 6 + 1] == Convert.ToString(peremenie.IDshcool))
{=Convert.ToBoolean( peremenie.m_klas[k * 6 + 4]); ////ID klassa
}
}(z==true&& i<4)
{.ContextMenuStrip.Enabled = false;
}
{.ContextMenuStrip.Enabled = true;
}
}
Первый урок во второй смене начинается на пятом уроке первой смены, и если попробовать вызвать меню правоу кнопкой мыши на втором уроке второй смены, то меню будет невизуальное.
Программный код для проверки кабинета:
public int razdel(DataGridView data, int r,int c,string nom)
{(int i = 0; i < data.ColumnCount; i++)
{(i != c)
{[] word;= Convert.ToString(data.Rows[r].Cells[i].Value).Split('/');
//MessageBox.Show(Convert.ToString(data.Rows[r].Cells[i].Value), word[0]);
{(word[1] == nom)
{.Show("Кабинет занят!", "Предупреждение");1;
}
}
{
}
}
}0;
}
. Описание пользовательского интерфейса
При запуске программного приложения пользователь видит перед собой окно, в котором он может выбрать либо уже заполненные таблицы данных либо заполнить их заново. Также существует возможность воспользоваться справкой о работе программы.
Рис.3 Интерфейс.
Если пользователь выбрал создание нового проекта, то ему предлагается заполнить ряд таблиц, содержащих сведения об учебном процессе.
Рис.4 Данные о школе
Рис.5 Данные о предметах
Рис.6 Данные о кабинетах
Рис.7 Данные о преподавателях
Рис.8 Данные о классах
Рис.9 Данные о нагрузке для классов
Если же пользователь решает открыть уже существующую запись, то ему открывается специальное окно, в котором отображён список сохранённых записей. Где можно увидеть название школы, учебный год и другие данные из таблицы "Данные о школе".
Рис.10 Окно открытия сохранённой записи.
После заполнения таблиц либо после открытия сохранённой записи пользователь может приступить к работе над составлением расписания. Причём время классного часа уже будет проставлено в данной сетке расписания. При работе над расписанием вызывается контекстное меню для требуемой ячейки, в которую соответственно и будет вноситься выбранное значение.
Рис. 11 Расписание с проставленным классным часом.
Рис.12 Работа над расписанием.
9. Руководство пользователя
Для того чтобы открыть уже созданный проект зайдите в меню файл в подменю открыть. В появившемся окне выберите требующуюся Вам запись и нажмите кнопку ОК. После чего Вы можете приступить к работе над составлением расписания, в открывшейся рабочей области. Выберите ячейку расписания, с которой Вы хотели бы начать. Но помните, что если класс учится во вторую смену, то программа не позволит Вам поставить какой-либо предмет раньше чем пятым либо шестым уроком (в зависимости от того как заполнена таблица "Данные о школе"). Кликните по выбранной ячейке правой кнопкой мыши, чтоб