Применение метода моделируемого отжига к задаче составления школьного расписания

Автор работы: Пользователь скрыл имя, 28 Февраля 2011 в 12:45, курсовая работа

Описание работы

Разработать программу, позволяющую максимально автоматизировать трудоемкий процесс составления школьного расписания, применяя метод моделируемого отжига.

Содержание работы

Введение…………………………………………………………………………………………………………….3
Цель курсовой работы………………………………………………………………………………………..4
Постановка задач курсовой работы…………………………………………………………………..5
Реализация задач курсовой работы
Задача 1)………………………………………………………………………………………….6
Задача 2)………………………………………………………………………………………….20
Задача 3)………………………………………………………………………………………….23
Задача 4)………………………………………………………………………………………….26
Заключение……………………………………………………………………………………………………………29
Список используемой литературы……………………………………………………………………….30
Приложения…………………………………………………………………………………………………………..31

Файлы: 1 файл

Курсовая.docx

— 603.65 Кб (Скачать файл)
  1. Записать намерение произвести некоторые операции
  2. Выполнить задание, копируя оригиналы изменяемых страниц в сегмент отката
  3. Записать, что всё сделано без ошибок

   Журнал  транзакций в сочетании с сегментом отката (область, в которой хранится копия всех изменяемых в ходе транзакции данных) гарантирует целостность данных. В случае сбоя запускается процедура восстановления, которая просматривает отдельные его записи следующим образом:

  • Если повреждена запись, то сбой произошёл во время проставления отметки в журнале. Значит, ничего важного не потерялось, игнорируем эту ошибку.
  • Если все записи помечены как успешно выполненные, то сбой произошёл между транзакциями, здесь также нет потерь.
  • Если в журнале есть незавершённая транзакция, то сбой произошёл во время записи на диск. В этом случае мы восстанавливаем старую версию данных из сегмента отката.

   Firebird вообще не имеет ни журнала изменений, ни сегмента отката, а реализует MVCC, записывая новые версии строк прямо в активное пространство данных. Также поступает MS SQL 2005. Теоретически это даёт максимальную эффективность при параллельной работе с данными, но ценой является необходимость «сборки мусора», то есть удаления старых и уже не нужных версий строк.

   Для реализации самой программы мне  необходимо было изучить язык программирования Delphi, так как раньше мне не приходилось с ним работать. Я выбрала именно этот язык, потому что считаю, что в настоящее время он очень востребован, и изучить его будет для меня очень полезно. Среда разработки - Borland Developer Studio 2006. Изучением языка я занималась в течение года, и продолжаю этим заниматься до сих пор. Также я изучила такие программы как Power Designer, Firebird и IBExpert.

   Следующим шагом в моей работе после сбора информации стало составление общей картины из собранных данных. Эта часть работы оказалась очень кропотливой, ведь процесс составления расписания включает в себя множество нюансов. Итак, я разобралась, что должна представлять собой итоговая программа.

   Во-первых, программа должна включать в себя следующие таблицы: учителя, предметы, методические дни, классное руководство, школьное полугодие, нагрузка учителя, список классов, список кабинетов, балловая оценка предметов, учебный план и само расписание. Эти таблицы и связи между ними решено было реализовывать в программе Power Designer. Для всех таблиц должна быть реализована возможность вносить изменения в имеющиеся данные, удалять их и добавлять новые. Необходимо создать справочную систему, доступную для неопытного пользователя, по эксплуатации данной программы. Для таблиц должна быть реализована возможность изменять данные, удалять и добавлять новые. Также необходима проверка вводимых данных на соответствие типу данных.  Замечание по поводу начальных классов: для них предполагается прописывание только тех предметов, которые ведут другие учителя (не классный руководитель).

   Во-вторых, программа должна включать реализацию следующих запросов: получение информации по каждому учителю, по каждому классу, по каждому кабинету.

   В рабочем окне должна быть реализована  возможность выбора учебного года. Также мне бы хотелось, чтобы в  этом же окошке была реализована возможность  вписывания пожеланий учителей: предпочтение методического дня и рабочего времени (предпочтение работы с самого утра или нет, с окнами или без).

   Расписание  должно создаваться для каждого  класса отдельно. Нужно учесть следующие  параметры:

      - начальная  школа не учится по субботам

      - максимальное  количество уроков в день (начальное  звено – 5 уроков, среднее и  старшее звено – 6 уроков)

      - балловая  система предметов

      - отсутствие  сдвоенных уроков в начальной  и средней школе

      - чередование  предметов точного и гуманитарного  характера

      - ход  дневной и недельной умственной  работоспособности

      - пожелания  учителей, у каждого должен быть  методический день

      - основная  учебная нагрузка должна приходиться  на 2,3,4 уроки (по балловой системе)

      - необходимо  учитывать что в каждом классе  на уроках английского, трудов  и физкультуры (в старших классах)  класс делится на 2 подгруппы

   Вид расписания предполагается представить  в таком же виде, как показано в приложении 1.

      Я планирую реализовать формирование таблиц с расписанием и балловой системой для каждого класса (приложение 6), а также зарисовку соответствующих схем (приложение 7). 
 
 
 
 
 
 
 
 
 
 
 
 

  1. Следующим шагом  в реализации моей программы стала  разработка реляционной схемы данных. Для этой цели я использовала программу  Power Designer.

    Спроектированные  реляционные таблицы:

Таблица TEACHER – список учителей

Таблица SEX – пол

Таблица METHODIC_DAY – методические дни

Таблица CLASS_GUIDANCE – классное руководство

Таблица SUBJECT – список предметов

Таблица TEACHING_LOAD – преподавательская нагрузка

Таблица CLASS – список классов

Таблица SCHOOL_HALF_YEAR – школьное полугодие

Таблица STUDY_PLAN – учебный план

Таблица SUBJECT_POINTS – баллы предметов

Таблица CLASS_ROOM – кабинеты

Таблица TIME_TABLE – расписание

Схема реляционной  базы данных: 

 
 
 
 

  1. Следующей моей задачей была разработка самой программы  с удобным пользовательским интерфейсом. Для реализации этой задачи решено было использовать среду разработки Borland Developer Studio 2006, язык программирования – Delphi. Раньше мне не приходилось работать в этой среде и писать на этом языке, но я всегда хотела его освоить. Достаточно много времени ушло на изучение Delphi.

      Первым  моим шагом в разработке программы  стало создание меню-справочника, содержащего  все таблички и позволяющего изменять, добавлять и удалять данные из этих табличек:

    Выбирая в меню «Предметы», получаем:

    Следующая форма появляется при выборе в  меню пункта «Учителя»:

    При желании  возможно добавление нового учителя  в список учителей:

    Аналогично  выглядит форма со списком классов:

         По  реляционной модели данных видно, что  для учителя определяется большое  количество параметров, таких как: методический день, классное руководство и нагрузка. Для удобства на форме «Учителя»  была создана кнопка «Дополнительно», нажав на которую пользователь получает доступ к вышеуказанным параметрам, например:

         По  сути, процесс составления расписания – оптимизационная задача, поэтому для её решения я использую метод моделируемого отжига – один из интереснейших методов решения оптимизационных задач. Сейчас моя программа находится на стадии выявления целевой функции и решения оптимизационной задачи методом моделируемого отжига. 
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     

  1. Ознакомление  с программами, подобными моей работе, на мой взгляд, очень важно. Я почерпнула для себя много нового из программы ASC Timetable, пожалуй, самой распространенной, судя по отзывам в интернете. К сожалению, других подобных программ мне не удалось скачать. Вообще, эти программы дорогое удовольствие! ASC Timetable в бесплатном режиме доступна только на ограниченный промежуток времени. Моя школа не в состоянии приобрести подобную программу.

   ASC Timetable показалась мне довольно легкой в пользовании, хотя к ней необходимо привыкнуть, ведь она включает в себя очень много параметров, хотя не могу сказать, что среди них есть лишние. Для своей программы я позаимствовала несколько важных условий для создания расписания из ASC Timetable. Мне очень понравился интерфейс программы: очень яркий и наглядный.

          К сожалению, даже эта программа, включающая в себя множество деталей, не может  удовлетворять всем школам. Какие-то параметры могут быть лишними, каких-то параметров может не хватать…. Для моего представления о составлении расписания в моей школе, многие параметры найденной программы показались для меня странными и ненужными. 

Очень неудобно, на мой взгляд, организован ввод данных об учителе. Одного поля мало для  вписывания имени, отчества и фамилии. Также для меня непонятно, для  чего нужно сокращение имени учителя  и что такое общий и основной кабинет.

Мне очень  понравилась система организации  рабочего времени учителя. Хотелось бы взять её на заметку для моей программы.

К сожалению, я не могу просмотреть код ASC Timetable, но меня неприятно удивило составленное этой программой расписание.

 
 
 

Заключение

      В заключение хочу сказать, что моя  курсовая работа в следующем году плавно перетечет в дипломную работу. В этом учебном году я набрала внушительный информационный запас, которого мне будет достаточно для дальнейшей реализации программы. Сейчас я довольно четко представляю суть и содержание своей работы. Конечно, хотелось бы реализовать больше, чем фактически удалось в этом учебном году. Но так получилось, что на усвоение материала времени ушло гораздо больше, нежели я предполагала. 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Список  используемой литературы

    1. В.В.Фараонов, П.В.Шумаков Delphi5 Руководство разработчика баз данных, Москва, «Нолидж», 2001
    2. http://zdd.1september.ru/2006/08/5.htm - наука составлять расписание
    3. http://ru.wikipedia.org/wiki/Database

Информация о работе Применение метода моделируемого отжига к задаче составления школьного расписания