Создание программы для составления расписания в школе

Дипломная работа - Компьютеры, программирование

Другие дипломы по предмету Компьютеры, программирование



?е уже поставлено и если эта цифра равна общему количеству часов черчения в неделю, программа также выводит сообщение. В противном случае проверка продолжается. Далее происходит проверка преподавателя, т.е. не ведет ли он урок в этот момент в другом классе. А также проверяется рабочее время преподавателя, в котором расставляется время, когда он может работать, а когда не может.

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. Руководство пользователя

Для того чтобы открыть уже созданный проект зайдите в меню файл в подменю открыть. В появившемся окне выберите требующуюся Вам запись и нажмите кнопку ОК. После чего Вы можете приступить к работе над составлением расписания, в открывшейся рабочей области. Выберите ячейку расписания, с которой Вы хотели бы начать. Но помните, что если класс учится во вторую смену, то программа не позволит Вам поставить какой-либо предмет раньше чем пятым либо шестым уроком (в зависимости от того как заполнена таблица "Данные о школе"). Кликните по выбранной ячейке правой кнопкой мыши, чтоб