Вход

Автоматизированная система составления школьного расписания

Рекомендуемая категория для самостоятельной подготовки:
Дипломная работа*
Код 165217
Дата создания 2012
Страниц 68
Источников 19
Мы сможем обработать ваш заказ (!) 24 апреля в 12:00 [мск]
Файлы будут доступны для скачивания только после обработки заказа.
4 570руб.
КУПИТЬ

Содержание

СОДЕРЖАНИЕ
Введение
1Техническое задание
1.1Наименование разработки
1.2Цель выполнения разработки
1.3Технические требования к разработке
2Технико-экономическое обоснование
2.1Характеристика объекта автоматизации
2.2Назначение автоматизированной системы
2.3Основные требования АС
2.4Подходы к оценке эффективности
2.5План маркетинга
2.6Технико-экономические показатели
2.7Оценка рисков
3Выбор направления решения
3.1Состав, содержание и организация работ по созданию АС
3.2Обзор существующих систем-аналогов
4Разработка алгоритма
4.1Моделирование процессов и потоков данных
4.2Моделирование данных и состояний
4.3Инфологическое моделирование предметной области
4.4Математическая модель
4.5Выбор алгоритма
5Разработка программы реализующий алгоритм
5.1Построение структурно-функциональной схемы
5.2Разработка проекта системы
5.2.1Разработка физической структуры базы данных
5.2.2Разработка программы
6Контрольный пример работы программы
7Руководство пользователя
7.1Общие положения
7.2Настройка базы данных программы
8Организационно-экономическая часть
9Безопасность и экологичность проекта
Заключение
Литература
Приложение

Фрагмент работы для ознакомления

Предназначен для работы с базами данных Microsoft SQL Server 7.0 и более поздних версий. Оптимизирован для доступа к SQL Server и взаимодействует с ним напрямую по «родному» протоколу передачи данных SQL Server. Всегда пользуйтесь этим провайдером при работе с SQL Server 7.0 или SQL Server 2000. •
В составе Microsoft Visual Studio 2008 находится сервер баз данных Microsoft SQL Server 2005 Express Edition. От полнофункционального сервера данных он отличается только ограничением размера базы данных в 2 гигабайта, что позволяет производить разработку и тестирование приложений баз данных.
Для работы по созданию базы данных и таблиц будем использовать Microsoft SQL Server Management Studio Express. Данный программный продукт является свободнораспространяемым и доступен для скачивания.
Основная процедура для каждой формы ввода - это вышерассмотренная технология ADO. Для формирования школьного расписания использована технология выборки данных T-SQL. Делаются предварительные запросы, выборка разбирается, некоторая информация кэшируется, затем обрабатывается и делаются необходимы вставки записей в БД.
Нажатие пункта меню «Формировать расписание» вызывает главную процедуру перерасчета расписания. Прежде всего, очищается таблица study_graph, в которой хранится все расписание. Затем, с помощью T-SQL запроса загружается таблица study_plan. На основе разбора этой таблицы начинается формировать расписание.
Вызываются такие процедуры: процедура загрузки класса по id, процедура загрузки учителя по id, процедура загрузки предмета по id. Используется процедура поиска свободного дня и номера урока, для конкретного предмета и преподавателя.
После определения всех данных, делается запись в БД, с помощь процедуры insert запроса T-SQL.
Наиболее полное описание работы программы – это исходных код программы, его можно увидеть в приложении.
Контрольный пример работы программы
Для проверки корректной и безошибочной работы программного продукта был выполнен контрольный пример ее функционирования.
В результате проведения контрольного примера работы программного продукта был сделан вывод о его корректной и безошибочной работе.
Результаты проведения контрольного примера работы полностью удовлетворяют всем требованиям функционированию к автоматизированной системы. Смотри рисунки 6.1 и 6.2. На рисунке 6.3 представлены различные варианты сортировки данных.
Рисунок 6.1 – Выбор пункта меню «Переформировать расписание»
Рисунок 6.2 – Результат формирования для 1-го класса
Рисунок 6.3 – Различные варианты сортировки данных
Руководство пользователя
Общие положения
В распоряжении оператора системы, для управления его ресурсами, находятся:
- клавиатура;
- манипулятор "мышь";
- видеомонитор.
Интерфейс "человек-машина", реализованный в системе, организует диалоговый режим работы оператора, при котором в ответ на конкретные действия с манипулятором "мышь" и клавиатурой, программа системы выводит на видеомонитор последовательность диалоговых окон, представляющих собой виртуальные (нарисованные на видеомониторе) панели управления. Мнемонические изображения кнопок, световых индикаторов и т.д. на панелях управления соответствуют принятым в операционной системе MS Windows. Для управления системой оператор должен в определенной последовательности открывать диалоговые окна, выбирая нужный пункт меню при помощи манипулятора "мышь" и вводить с клавиатуры запрашиваемые программой данные. Выбор пунктов меню в диалоговых окнах осуществляется установкой курсора в нужную позицию в поле диалогового окна при помощи манипулятора "мышь". Активизация режима осуществляется однократным нажатием левой клавиши манипулятора "мышь". Последовательность действий оператора, необходимая для управления комплексом, представлена деле на рисунках.
Настройка базы данных программы
В качестве пользователя системы формирования и контроля школьного расписания выступает заместитель директора по УВР, в функции которого входит работа с расписанием.
Пользователь, начинающий работу с системой, должен запустить исполняемый файл программы Scholl.exe, после чего откроется главная форма приложения, которая представлена на рисунке 7.1.
Рисунок 7.1 – Главная форма приложения
На форме расположено несколько выпадающих списков: «Справочники», «Расписание», «Справка».
Для начала работы с расписанием необходимо заполнить несколько справочников: «Классы», «Предметы», «Преподаватели», «Учебный план», «Специализация преподавателей» (рисунок 7.2).
Рисунок 7.2 – Справочники приложения
В справочнике «Классы» необходимо заполнить данные по учебным классам в школе: наименование класса, буква, максимальное количество учебных дней в неделю, максимальное количество занятий в день, начало занятий (рисунок 7.3).
Рисунок 7.3 – Заполнение справочника «Классы»
Далее необходимо заполнить справочник «Предметы»: наименование предмета, сложность предмета по шкале Сивкова (рисунок 7.4).
Рисунок 7.4 – Заполнение справочника «Предметы»
Затем необходимо заполнить справочник «Преподаватели»: ФИО преподавателя, отметить флажком отсутствие (рисунок 7.5).
Рисунок 7.5 – Заполнение справочника «Преподаватели»
Обязательным аспектом формирования расписания является распределение учебных дисциплин по классам. Поэтому необходимо заполнить справочник «Учебный план» (рисунок 7.6).
Рисунок 7.6 – Заполнение справочника «Учебный план»
После этого нужно за каждым преподавателем закрепить предмет, класс и кабинет (рисунок 7.7).
Рисунок 7.7 – Заполнение справочника «Специализация преподавателей»
После заполнения всех справочников нужно перейти на вкладку «Расписание»
Для просмотра расписания из выпадающего меню нужно выбрать пункт «Переформировать расписание», после чего расписание будет сформировано
В случае ошибок заполнения справочников при формировании расписания будет выдана ошибка. Поэтому справочники следует заполнять очень внимательно.
Для корректировки расписания необходимо выбрать пункт «Корректировать вручную» из меню «Расписание»
Рисунок 7.8 – Сформированное расписание
На основе введенных данных система автоматически формирует расписание занятий. Функции контроля заключаются в следующем:
при автоматизированном составлении расписания контролируется дневная нагрузка учащихся и суммарная дневная нагрузка преподавателей, согласно установленным нормам;
при ручной корректировке расписания система предоставляет возможность контроля суммарной нагрузки преподавателей и учащихся с помощью создания отчёта "расчасовка", а также отображения баллов сложности уроков в расписании.
Организационно-экономическая часть
Безопасность и экологичность проекта
Заключение
В результате дипломного проектирования была разработана автоматизированная система формирования и контроля школьного расписания.
Проведен анализ предметной области, который показал необходимость создания данной системы.
Разработанная система позволяет систематизировать данные о классах, преподавателях, дисциплинах, кабинетах. Затем на основе этих данных формировать расписание.
Разработанный программный комплекс не предъявляет высоких требований к программному и аппаратному обеспечению. Работа возможна на компьютере, работающем под управлением операционной системы Windows NT/ХР/Vista/7.
Автоматизированная система реализована на языке С# в среде программирования MS Visual Studio 2008. Для работы с БД используется СУБД MS SQL Server и соответствующее ей программное обеспечение SQL Server Management Studio Express.
Автоматизированная система реализует следующие функции:
учет классов, преподавателей, предметов, кабинетов;
формирование учебного плана;
формирование нагрузки преподавателей;
формирование расписания;
ручную корректировку расписания в случае необходимости.
Литература
«Основы программирования» Бондарев В. М., Рублинецкий В. И. и Качко Е. Г. - Харьков: Фолио; Ростов Н/Д; Феникс, 2007 год – 368 с.
«Теория расписаний», Конвей Р. В., Максвелл В. Л., Миллер Л. В., Главная редакция физико-математической литературы издательства «Наука», 1975г., 359 c.
«Введение в теорию расписания», В. С. Танаев, В. В. Шкурба, Главная редакция физико-математической литературы издательства «Наука», М., 1975г.
Зак Ю.А. Некоторые свойства задач теории расписаний // Автома-тика и телемеханика. - 1978. - N 1. - C.121 - 127.
Танаев В.С.,  Сотсков Ю.Н.,  Струсевич В.А.  Теория расписаний. Многостадийные системы. - М.: Наука. Гл. ред. физ. - мат. лит., 1989. -  328 с.
Куренков А.В. К вопросу решения некоторых динамических задач теории расписаний статическими методами. Тул.гос.ун-т. - Тула, 2010. - 5 с. Деп. ВИНИТИ. № 1963-В96 17.06.99г. 
Базы знаний интеллектуальных систем / Т. А. Гаврилова, В. Ф. Хорошевский – СПб.: Питер, 2011 – 384 с.: ил.
Информатика: Учебник для вузов – М.: Высшая школа, 2011 – 511 с.: ил.
Таусенд К., Фохт Д. Проектирование и программная реализация экспертных систем на персональных ЭВМ: Пер. с англ. - М.: Финансы и статистика, 2004.- 320 с.
Кальянов Г.Н CASE структурный системный анализ (автоматизация и применение). - М.: ЛОРИ, 2009. – 242 с.
Монахов М.Ю., Монахова Г.Е. Структурирование учебной информации //Математические и технические средства обработки данных и знаний под ред. С.С.Садыкова, Р.С. Садуллаева–Ташкент: НПО Кибернетика АНРуз,2009-C.46-47.
Дэвид А. Марка, Клемент Мак Гоуэн. Методология структурного анализа и проектирования SADT. Электронная версия, 237 с.
Вендров А.М. CASE-технологии. Современные методы и средства проектирования автоматизированных систем. – М.: Финансы и статистика, 2008. – 340 с.
Маклаков С.В. BPWin и ERWin. CASE-средства разработки автоматизированных систем. – М.: Диалог-МИФИ, 2007.
Маклаков С.В. Волшебный ключик BPWin. Электронная версия.
Теория автоматизированных систем: Метод. указания к лаб. работам/ Муром. ин-т (фил.) Влад. гос. ун-та; Сост. Р.И. Макаров.- Муром: ИПЦ МИ ВлГУ, 2008. - 44 с.
Проектирование автоматизированных систем: Курс лекций. Электронная версия.
Горев А., Ахаян Р., Макашарипов С. Эффективная работа с СУБД. – СПб.: Питер, 2009. – 704 с.: ил.
Методология построения автоматизированной системы предприятия. Подход Microsoft. Компьютер Пресс, №1, 2009.
Приложение
Код программы с комментариями
private void переформироватьРасписаниеToolStripMenuItem_Click(object sender, EventArgs e)
{
//Основная функция формирования расписания
getPrrpod();
}
private void оПрограммеToolStripMenuItem_Click(object sender, EventArgs e)
{
MessageBox.Show("Автоматизированная система формирования расписания, 2012");
}
private string serverName = ".\\SQLEXPRESS";//Адрес сервера
private string dbName = "SCHOOL";//Название БД
//Поиск id преподавателя по id предмета и id класса
private long findTeacherId(long p_id, long class_id)
{
long id = 0;
//Загрузка вопросов
System.Data.SqlClient.SqlCommand BCommand;
System.Data.SqlClient.SqlConnection BConnection;
System.Data.SqlClient.SqlDataReader BDataReader;
BConnection = new System.Data.SqlClient.SqlConnection();
BConnection.ConnectionString = string.Concat("Data Source=", serverName, ";Initial Catalog=" + dbName + ";Integrated Security=True;Pooling=False");
BConnection.Open();
BCommand = new System.Data.SqlClient.SqlCommand();
BCommand.Connection = BConnection;
BCommand.CommandText = "Select teacher_id From techer_specialization WHERE predmet_id='" + p_id.ToString() + "' and class_id='" + class_id.ToString() + "'";
BDataReader = BCommand.ExecuteReader();
while (BDataReader.Read())
{
id = BDataReader.GetInt64(0);
}
BDataReader.Close();
BConnection.Close();
return id;
}
//Поиск id класса по году
private long getClassId(long year)
{
long id = 0;
System.Data.SqlClient.SqlCommand BCommand;
System.Data.SqlClient.SqlConnection BConnection;
System.Data.SqlClient.SqlDataReader BDataReader;
BConnection = new System.Data.SqlClient.SqlConnection();
BConnection.ConnectionString = string.Concat("Data Source=", serverName, ";Initial Catalog=" + dbName + ";Integrated Security=True;Pooling=False");
BConnection.Open();
BCommand = new System.Data.SqlClient.SqlCommand();
BCommand.Connection = BConnection;
BCommand.CommandText = "Select * From classes WHERE study_year='" + year.ToString() + "'";
BDataReader = BCommand.ExecuteReader();
while (BDataReader.Read())
{
id = BDataReader.GetInt64(0);
if (id > 0)
break;

}
BDataReader.Close();
BConnection.Close();
return id;
}
//Поиск класса по id класса и дню недели
private int getClass(long class_id, long dayNumber)
{
int recordCount = 0;
//Загрузка вопросов
System.Data.SqlClient.SqlCommand BCommand;
System.Data.SqlClient.SqlConnection BConnection;
System.Data.SqlClient.SqlDataReader BDataReader;
BConnection = new System.Data.SqlClient.SqlConnection();
BConnection.ConnectionString = string.Concat("Data Source=", serverName, ";Initial Catalog=" + dbName + ";Integrated Security=True;Pooling=False");
BConnection.Open();
BCommand = new System.Data.SqlClient.SqlCommand();
BCommand.Connection = BConnection;
BCommand.CommandText = "Select * From study_graph WHERE class_id='" + class_id.ToString() + "' and day_number='" + dayNumber.ToString() + "'";
BDataReader = BCommand.ExecuteReader();
while (BDataReader.Read())
{
recordCount++;
}
BDataReader.Close();
BConnection.Close();
return recordCount;
}
long curLesson = 0;
//Писк наименее загруженного дня по id класса
private long findDay(long class_id)
{
List<int> items = new List<int>();
int indexMax = 0;

for (int i = 1; i < 6; i++) {
items.Add(getClass(class_id, (long)i));
}
for (int i = 0; i < 5; i++)
{
if (((int)items[i]) < ((int)items[indexMax]))
indexMax = i;
}
curLesson = (long)items[indexMax];
return indexMax+1;
}
//Поиск текущего дня класса
private long getCurDay(long dayNumber, long techer_id)
{
long maxLessonNumber = 0;
//Загрузка вопросов
System.Data.SqlClient.SqlCommand BCommand;
System.Data.SqlClient.SqlConnection BConnection;
System.Data.SqlClient.SqlDataReader BDataReader;
BConnection = new System.Data.SqlClient.SqlConnection();
BConnection.ConnectionString = string.Concat("Data Source=", serverName, ";Initial Catalog=" + dbName + ";Integrated Security=True;Pooling=False");
BConnection.Open();
BCommand = new System.Data.SqlClient.SqlCommand();
BCommand.Connection = BConnection;
BCommand.CommandText = "Select lesson_number From study_graph WHERE techer_id='" + techer_id.ToString() + "' and day_number='" + dayNumber.ToString() + "'";
BDataReader = BCommand.ExecuteReader();
while (BDataReader.Read())
{
long num = BDataReader.GetInt64(0);
if (num > maxLessonNumber)
maxLessonNumber = num;
}
BDataReader.Close();
BConnection.Close();
return maxLessonNumber;
}
private void getPrrpod()
{
//Очистка расписания
clearStudyGraph();
//Инициализация клиента запроса к БД
System.Data.SqlClient.SqlCommand BCommand;
System.Data.SqlClient.SqlConnection BConnection;
System.Data.SqlClient.SqlDataReader BDataReader;
BConnection = new System.Data.SqlClient.SqlConnection();
BConnection.ConnectionString = string.Concat("Data Source=", serverName, ";Initial Catalog="+dbName+";Integrated Security=True;Pooling=False");
BConnection.Open();//Открытие соединения
BCommand = new System.Data.SqlClient.SqlCommand();
BCommand.Connection = BConnection;
BCommand.CommandText = "Select * From study_plan";//Формирование запроса
BDataReader = BCommand.ExecuteReader();
while (BDataReader.Read())//Разбор выборки
{
long id = BDataReader.GetInt64(0);
long id_p = BDataReader.GetInt64(1);
long year = BDataReader.GetInt64(2);
long hours = BDataReader.GetInt64(3);
if (id_p > 0 && year > 0 && hours > 0)
{
for (int h = 1; h <= hours; h++)
{
long classId = getClassId(year);
if (classId > 0)
{
long day = findDay(classId);
if (day > 0)
{
long teacherId = findTeacherId(id_p, classId);
if (teacherId > 0)
{
curLesson = getCurDay(day, teacherId);
insertRecord(day, curLesson + 1, classId, id_p, teacherId);//Вставка новой записи
}
}
}
}
}
}
BDataReader.Close();
BConnection.Close();
}
//Вставка новой записи в расписание
private void insertRecord(long day, long curLesson, long classId, long id_p, long teacherId)
{
System.Data.SqlClient.SqlCommand BCommand;
System.Data.SqlClient.SqlConnection BConnection;
BConnection = new System.Data.SqlClient.SqlConnection();
BConnection.ConnectionString = string.Concat("Data Source=", serverName, ";Initial Catalog="+dbName+";Integrated Security=True;Pooling=False");
BConnection.Open();
BCommand = new System.Data.SqlClient.SqlCommand();
BCommand.Connection = BConnection;
string RDateTime = string.Concat(DateTime.Now.Month.ToString(), ".", DateTime.Now.Day.ToString(), ".", DateTime.Now.Year.ToString(), " ", DateTime.Now.Hour, ":", DateTime.Now.Minute.ToString(), ":", DateTime.Now.Second.ToString());
BCommand.CommandText = string.Concat("INSERT INTO study_graph (day_number, lesson_number, class_id, predmet_id, techer_id) VALUES("
+ day.ToString() + "," + curLesson.ToString() + "," + classId.ToString() + "," + id_p.ToString() + "," + teacherId.ToString() + ")");
BCommand.ExecuteNonQuery();
BConnection.Close();
}
//Очистка расписания
private void clearStudyGraph()
{
System.Data.SqlClient.SqlCommand BCommand;
System.Data.SqlClient.SqlConnection BConnection;
BConnection = new System.Data.SqlClient.SqlConnection();
BConnection.ConnectionString = string.Concat("Data Source=", serverName, ";Initial Catalog=" + dbName + ";Integrated Security=True;Pooling=False");
BConnection.Open();
BCommand = new System.Data.SqlClient.SqlCommand();
BCommand.Connection = BConnection;
string RDateTime = string.Concat(DateTime.Now.Month.ToString(), ".", DateTime.Now.Day.ToString(), ".", DateTime.Now.Year.ToString(), " ", DateTime.Now.Hour, ":", DateTime.Now.Minute.ToString(), ":", DateTime.Now.Second.ToString());
BCommand.CommandText = string.Concat("DELETE FROM study_graph");
BCommand.ExecuteNonQuery();
BConnection.Close();
}
47

Список литературы [ всего 19]

ЛИТЕРАТУРА
1.«Основы программирования» Бондарев В. М., Рублинецкий В. И. и Качко Е. Г. - Харьков: Фолио; Ростов Н/Д; Феникс, 2007 год – 368 с.
2.«Теория расписаний», Конвей Р. В., Максвелл В. Л., Миллер Л. В., Главная редакция физико-математической литературы издательства «Наука», 1975г., 359 c.
3.«Введение в теорию расписания», В. С. Танаев, В. В. Шкурба, Главная редакция физико-математической литературы издательства «Наука», М., 1975г.
4.Зак Ю.А. Некоторые свойства задач теории расписаний // Автома-тика и телемеханика. - 1978. - N 1. - C.121 - 127.
5.Танаев В.С., Сотсков Ю.Н., Струсевич В.А. Теория расписаний. Многостадийные системы. - М.: Наука. Гл. ред. физ. - мат. лит., 1989. - 328 с.
6.Куренков А.В. К вопросу решения некоторых динамических задач теории расписаний статическими методами. Тул.гос.ун-т. - Тула, 2010. - 5 с. Деп. ВИНИТИ. № 1963-В96 17.06.99г.
7.Базы знаний интеллектуальных систем / Т. А. Гаврилова, В. Ф. Хорошевский – СПб.: Питер, 2011 – 384 с.: ил.
8.Информатика: Учебник для вузов – М.: Высшая школа, 2011 – 511 с.: ил.
9.Таусенд К., Фохт Д. Проектирование и программная реализация экспертных систем на персональных ЭВМ: Пер. с англ. - М.: Финансы и статистика, 2004.- 320 с.
10.Кальянов Г.Н CASE структурный системный анализ (автоматизация и применение). - М.: ЛОРИ, 2009. – 242 с.
11.Монахов М.Ю., Монахова Г.Е. Структурирование учебной информации //Математические и технические средства обработки данных и знаний под ред. С.С.Садыкова, Р.С. Садуллаева–Ташкент: НПО Кибернетика АНРуз,2009-C.46-47.
12.Дэвид А. Марка, Клемент Мак Гоуэн. Методология структурного анализа и проектирования SADT. Электронная версия, 237 с.
13.Вендров А.М. CASE-технологии. Современные методы и средства проектирования автоматизированных систем. – М.: Финансы и статистика, 2008. – 340 с.
14.Маклаков С.В. BPWin и ERWin. CASE-средства разработки автоматизированных систем. – М.: Диалог-МИФИ, 2007.
15.Маклаков С.В. Волшебный ключик BPWin. Электронная версия.
16. Теория автоматизированных систем: Метод. указания к лаб. работам/ Муром. ин-т (фил.) Влад. гос. ун-та; Сост. Р.И. Макаров.- Муром: ИПЦ МИ ВлГУ, 2008. - 44 с.
17.Проектирование автоматизированных систем: Курс лекций. Электронная версия.
18.Горев А., Ахаян Р., Макашарипов С. Эффективная работа с СУБД. – СПб.: Питер, 2009. – 704 с.: ил.
19.Методология построения автоматизированной системы предприятия. Подход Microsoft. Компьютер Пресс, №1, 2009.

Очень похожие работы
Пожалуйста, внимательно изучайте содержание и фрагменты работы. Деньги за приобретённые готовые работы по причине несоответствия данной работы вашим требованиям или её уникальности не возвращаются.
* Категория работы носит оценочный характер в соответствии с качественными и количественными параметрами предоставляемого материала. Данный материал ни целиком, ни любая из его частей не является готовым научным трудом, выпускной квалификационной работой, научным докладом или иной работой, предусмотренной государственной системой научной аттестации или необходимой для прохождения промежуточной или итоговой аттестации. Данный материал представляет собой субъективный результат обработки, структурирования и форматирования собранной его автором информации и предназначен, прежде всего, для использования в качестве источника для самостоятельной подготовки работы указанной тематики.
bmt: 0.00587
© Рефератбанк, 2002 - 2024