Создание программы для составления расписания в школе
Дипломная работа - Компьютеры, программирование
Другие дипломы по предмету Компьютеры, программирование
Behavior.CloseConnection))
{(dr.Read())
{++;
}
}.Open();(MySqlDataReader dr = cmd1.ExecuteReader(CommandBehavior.CloseConnection))
{j = 0;.nagryzka = new string[k * 6];(dr.Read())
{(int i = 0; i < 6; i++)
{.nagryzka[j * 6 + i] = dr.GetValue(i).ToString().Trim();
}++;
}
}
////нагрузка= new MySqlCommand("Select * From рабвремяпрепода", mycon);= "SELECT * FROM рабвремяпрепода;";= new MySqlDataAdapter(query, conn);.Open();.ExecuteNonQuery();= 0;(MySqlDataReader dr=cmd1.ExecuteReader(CommandBehavior.CloseConnection))
{(dr.Read())
{++;
}
}.Open();(MySqlDataReader dr=cmd1.ExecuteReader(CommandBehavior.CloseConnection))
{j=0;.rabvr = new int[k * 10];(dr.Read())
{(int i = 0; i <10; i++)
{.rabvr[j * 10 + i]= Convert.ToInt32(dr.GetValue(i).ToString().Trim());
}++;
}
}
//рабочее время
}
6. Описание программы
Работа программы начинается с модуля iенариев. То есть либо с открытия уже созданной базы данных либо с создания новой путём заполнения нижеперечисленных таблиц:
1.Таблица "Данные о школе" призвана собрать общие данные о школе и учебном процессе.
2.Таблица "Предметы" содержит данные о предметах, преподаваемых в данной школе.
.Таблица "Преподаватели" содержит личную и служебную информацию о преподавательском составе.
Таблица "Рабочее время", привязанная к таблице "Преподаватели" содержит пожелания преподавателя, касающиеся его рабочего графика.
4.Таблица "Классы" содержит информацию об учащихся и о классах.
Таблица "Нагрузка", привязанная к таблице "Классы" содержит учебный план, то есть количество часов, которые должны быть проведены для каждого класса по предметам, изучающимся данным классом.
5.Таблица "Кабинеты" содержит информацию об аудиторном фонде школы.
Таблица "Рабочее время", привязанная к таблице "Кабинеты" не заполняется пользователем. Она существует как справочный материал и заполняется компьютером по ходу работы пользователя с программой.
Данные хранятся в Базе данных MS SQL и взаимодействуют с ядром системы, которое налагает ограничения на работу пользователя, то есть советует ему и предупреждает о невозможности совершаемого действия. Прежде чем любой предмет помещается в сетку расписания, программа осуществляет проверку.
Налагаемые ядром ограничения:
.Если пользователь превышает возможное количество уроков в день, программа сообщает об этом. Это является строгим ограничением.
2.Если пользователь пытается поставить предмет для класса обучаемого во второй смене во время обучения первой, программа сообщает ему об этом.
.Если в графе "спаренные" не стоит галочка, то при попытке пользователем поставить в один день данный предмет более одного раза, программа сообщает о невозможности данного действия. Это является строгим ограничением.
.В графу "количество часов вносится количество оплачиваемых часов для данного преподавателя. Если оно будет превышено, то программа сообщит об этом.
.Время классного часа вносится следующим образом: день недели; номер урока. Эта информация автоматически устанавливается в сетку расписания после заполнения таблицы "Данные о школе". Пользователь не имеет права менять местоположение классного часа в сетке расписания, кроме как путём изменения данных в таблице.
.Если данные по какому-либо преподавателю отсутствуют в таблице, то есть не дано количество часов и не выбран предмет, считается, что данный преподаватель не ведёт каких-либо уроков в этом классе. Следовательно при попытке поставить данный предмет для этого класса программа сообщит о невозможности.
.Если предмет не привязан ни к одному из учителей для выбранного класса, программа запрещает пользователю помещать его в сетку расписания для данного класса.
8.Если пользователь превышает номинальное количество часов в неделю, программа сообщает об этом, но это не является строгим ограничением.
9.Если кабинет или преподаватель ведущий данный предмет уже заняты в это время, то программа укажет на невозможность данного действия.
Модуль расписания - это непосредственно само расписание, которое и заполняется пользователем, путём вызова контекстного меню для каждой из ячеек и выбора предмета и кабинета. Изначально кабинет идёт в связке с предметом, но пользователь может его поменять, если возникает такая необходимость.
По окончании работы над расписанием пользователь может сохранить его в MS Exel для последующей печати или доработки.
Рис.2 Структурная схема компьютерной системы расписания
. Описание алгоритмов и методов решения
Когда завуч самостоятельно составляет расписание, он ориентируется на большое количество информации, сверяет её, чтобы не случилось не приятных ситуаций. Другими словами, чтобы не поставить одного преподавателя в один и тот же урок в разные классы, завуч должен проверить списки классов, уроков и преподавателей. В программе это осуществляется благодаря программному коду, который все это сверяет сам. Но для начала осуществляются другие операции. Давайте по порядку рассмотрим алгоритм "запихивания" предмета в ячейку расписания.
Когда мы выбрали какой-то предмет в ячейке определенного класса.тАж Хотя давайте рассмотрим сразу на примере: Мы выбираем предмет черчение в 9 "Б" классе. Для начала программа должна знать ведется ли черчение в 9 классе, и она начинает проверять по базе - сколько часов стоит в неделю черчения в этом классе. Если количество часов равно нулю, то и выведется соответствующее сообщение. Если же не равно нулю, то программа просматривает предметы за всю неделю в этом классе и просчитывает сколько раз черчен