Пример: Глобальная сеть INTERNET
Я ищу:
На главную  |  Добавить в избранное  

Главная/

Программирование, базы данных. /

Разработка ПО "Правила Дорожного Движения"

Документ 1 | Документ 2 | Документ 3 | Документ 4 | Документ 5 | Документ 6 | Документ 7 | Документ 8 | Документ 9 | Документ 10 | Документ 11
1 ОБЩАЯ ЧАСТЬ

1.1. КРАТКОЕ ОПИСАНИЕ

Описываемая программа состоит из трех основных подпрограмм(Меню, Контроль, Обучение).Эти подпрограммы могут работать не зависимо, что позволяет использовать их в других программах.  Рассмотрим алгоритмы  работы этих подпрограмм и всей программы в целом. При загрузке программы выводится заставка, кратко описывающая назначение программы, затем на экране отображается меню. В меню программы вы можете выбрать один из трех пунктов меню: Выход, Контроль, или Обучение.

Выход: осуществляется выход в операционную систему ( например: MS-DOS X.X, WINDOWS 3.X, WINDOWS 95, DR-DOS и.т.д. ).

Обучение: позволяет экзаменуемому выбрать любой билет с вопросами по экзамену и просмотреть правильные ответы на заданный билет.

Контроль: режим приема экзамена у экзаменуемого. В этом режиме программа случайным образом выбирает номер билета. Далее экзаменуемый отвечает на вопросы выводимые на экран, в течении времени отведенного для  ответа на билет. После того, как экзаменуемый ответит на все вопросы данного билета, программа автоматически выставляет оценку и записывает данные о экзаменуемом и результаты экзамена в файл.

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

1. Выход. При выборе этого пункта программа переспросит вас, действительно ли вы хотите выйти. Если вы ответите НЕТ вы вернетесь в меню программы. Если вы ответите ДА программа восстановит среду вызова (освободит занимаемую память, восстановит содержимое переменных-  адреса векторов прерываний, содержимое регистров, закроет все, открытые ею файлы),сохраненную при запуске программы. После произойдет реальный выход. Уточнение насчет выхода нужно для того,  чтобы пользователь при случайном выборе данного пункта не вышел из программы.

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

При корректном вводе номера билета программа сделает попытку загрузить файл с данным билетом. При невозможности загрузить файл( отсутствие файла ) будет выведено сообщение об ошибке и программа выйдет в вызываемую среду. После успешной загрузки файла с билетом программа выведет первый вопрос с отмеченным правильным ответом. Далее программа проверяет счетчик вопросов т.е. был ли это последний вопрос в билете. Если это был последний вопрос то программа предложит выбрать новый билет или вернуться в основное меню. Иначе программа увеличивает счетчик вопросов и обновив экран выводит новый вопрос. Цикл повторяется пока не кончатся вопросы в билете. Затем происходит выход в основное меню.

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

Программа записывает результат опроса и данные экзаменуемого в файл. Этот файл потом может быть объединен с другими такими же файлами для составления списка успеваемости группы. После записи данных происходит  выход в основное меню.

Подпрограммы имеют универсальный интерфейс обмена между собой, что позволяет изменять отдельные модули, не «перекраивая» всей программы   в целом, т.е. по мере улучшения отдельных подпрограмм не нужно заменять все программу в целом у конечного пользователя, а только ее некоторую часть. В нескольких местах программы  встраивается защита от несанкционированного копирования (это сделано для того чтобы программа не распространялась без согласия ее автора).В программе также  предусмотрена система защиты от заражения компьютерным вирусом. Использование программой стандартного интерфейса для общения с операционной системой предотвращает от фатальных ошибок (уничтожение данных на диске, зависание  компьютера и.т.д. ) и конфликтов с операционной системой.

Программа написана на языке C++. На нем реализованы все основные подпрограммы. Использованию этого языка его такие особенности, как лаконичность, мощность, гибкость, мобильность. Для компиляции программы использовался компилятор фирмы «Watcom Systems Inc».  Также использовался язык ассемблера для выполнения наиболее критичных ко времени участков кода. Язык ассемблера, это символьное представление машинного языка, а как известно все критичные ко времени процедуры т.е. ,которые должны выполняться в течении короткого промежутка времени, пишутся на машинном языке.  Программа реализована для компьютера IBM PC , а скомпилирована для процессора Intel™ 386 и выше. Выбор компьютера  не случаен .Этот компьютер наиболее распространен на  рынке настольных компьютеров и обладает достаточной вычислительной мощностью. Выбор типа процессора также не случаен так, как на более медленных процессорах (i80286, i80186, i8086) программа может “притормаживать” т.е. очень медленно работать. Особенностью процессоров Intel™  является преемственность на уровне команд: программы написанные для младших моделей процессоров, без всяких изменений могут быть выполнены на более старших моделях. Также нужен монитор и видеоадаптер поддерживающие режим  «VGA». Для удобства работы в программу введена поддержка манипулятора  типа “мышь”. А сейчас рассмотрим подробнее алгоритм наиболее важной подпрограммы, которая распознает формат файла билета и интерпретирует команды содержащиеся в этом файле.

1.2 ОПИСАНИЕ  АЛГОРИТМА ПОДПРОГРАММЫ

В подпрограмму передается несколько параметров, а именно указатель- позиция текущего считываемого символа в массиве, сам массив, и его размер.

В самой подпрограмме в организуется цикл с условием -  пока не встретится  символ окончания вопроса или билета или указатель не станет больше размера массива. В первом случае программой сохраняется текущая позиция указателя в массиве и программа переходит для обработки результата ответа пользователя, в зависимости от режима работы- контроль или обучение. Во втором случае подпрограмма рисует заставку об информирующую об окончании билета и выходит в основной модуль для окончательной обработки результата. Модуль рисования  распознает несколько команд «примитивов», а именно: рисование линии по заданным начальным и конечным координатам с заданным цветом, рисование прямоугольников ( закрашенных и не закрашенных ) заданного цвета, рисование окружности, рисование прямых от текущей координаты к указанным  закрашивание области одним цветом, включение файла с описанными выше командами в определенную позицию на экране и включение файла с заданным коэффициентом масштабирования.

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

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

В файле используются несколько команд: C,F,L,M,P,PL,T,W,V.В начале файла должен стоять значок «*», означающий,  что этот файл является файлом графики. Ниже приведена таблица содержащая имя команды, ее описание, формат записи и пример.     

Команда

Описание

Формат записи

Пример

С

рисование окружности с координатами x,y, радиусом r и цветом color

С                            x,y,r,color

 

 C                           120,50,40,3

Команда

Описание

Формат записи

Пример

F

рисование финальной заставки из файла filename

F                            filename

F                           exit.bil

L

рисование линии (прямоугольника закрашенного и не закрашенного по заданным координатам x1,y1,x2,y2 c цветом color

L  x1,y1,x2,y2,color,command

command может принимать значения L,F и B

L- линия, F- закрашенный прямоугольник, B- не закрашенный прямоугольник

L   10,10,20,20,7,L 10,10,20,20,1,B 10,10,20,20,2,F

М

указывает количество вариантов ответов в вопросе N, правильный ответ (color=1), и координаты вывода рамки-курсора на экран x1,y1,x2,y2 ... xn, yn, xn, yn,

M                            N          x1,y1,x2,y2,color   .........                        xn ,yn, xn, yn, color

M

2                       81,127,185, 147, 2

81,152,185,172, 1

P

закрашивает область цветом color1, до границ цвета color начиная с точки x, y

P                              x,y,color,color1

P                              30,26,3,2

PL

рисует прямые с указанными конечными координатами   xn, yn ,цветом color , с начальными координатами x1,y1,x2,y2, PL,0- служит признаком конца рисования

PL        x1,y1,x2,y2,color xn, yn

PL,0

PL                          120,120,130,130,3 140,132                    23,51                     PL,0

Команда

Описание

Формат записи

Пример

T

вывод строки text в заданные координаты x1,y1, цветом color, XOR- служит признаком конца текста и, означает метод наложения текста на графику  

T                             x1,x2,color,text, XOR

T                           5,5,3,пример,XOR                

W

включает из  файла filename графику и выводит ее в позицию x1,x2 т.е. x1,x2 - это новые координаты отсчета

W                          filename         x1,x2

W                          zastavka         90,90

V

включает из  файла filename графику и выводит ее в позицию x1,x2 с коэффициентом масштабирования m

V                         filename               x1,y1,m

V                           avto_100             100,100,300

Примечание: коэффициент подсчитывается по формуле -aspect = maxx/(m-x1) ; где maxx- максимальное разрешение графического режима в пикселях.

Глубина  вложения файлов равна единице т.е. вы не можете использовать команды W и V в уже включаемом файле. Это сделано для уменьшения требований к ресурсам  компьютера и для уменьшения путаницы во включаемых файлах. Для составления  билетов можно использовать любой текстовый редактор.


Copyright © 2005—2007 «RefStore.Ru»