Рефераты
 

Создание программного обеспечения электронного учебника

p align="left">С# - это язык, разработанный Мiсгоsоft для сетевой платформы. По существу С# является разновидностью С++, и несмотря на ряд принципиальных отличий, языки С# и С++ совпадают примерно на 90%. Вероятно, пройдет немало времени, прежде чем язык С# составит серьезную конкуренцию языку С++; но даже если это и произойдет, то знание языка С++ окажется существенным преимуществом.

С++ является языком программирования общего назначения. Естественная для него область применения - системное программирование, понимаемое в широком смысле этого слова. Кроме того, С++ успешно используется во многих областях приложения, далеко выходящих за указанные рамки. Реализации С++ теперь есть на всех машинах, начиная с самых скромных микрокомпьютеров - до самых больших супер-ЭВМ, и практически для всех операционных систем

Достоинства языка C++

- Масштабируемость. На языке C++ разрабатывают программы для самых различных платформ и систем;

- Возможность работы на низком уровне с памятью, адресами, портами. Что, при неосторожном использовании, может легко превратиться в недостаток;

- C++ имеет мощный препроцессор, унаследованный от C. Но, как и любой другой мощный инструмент, требует осторожного использования;

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

Недостатки языка C++

- Подключение интерфейса внешнего модуля через препроцессорную вставку заголовочного файла (#include) серьезно замедляет компиляцию, при подключении большого количества модулей. Для устранения этого недостатка, многие компиляторы реализуют механизм прекомпиляции заголовочных файлов Precompiled Headers;

- Недостаток информации о типах данных во время компиляции;

- Язык C++ является сложным для изучения и для компиляции;

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

Visual Basic 6.0

Visual Basic уже давно стал одним из наиболее популярных инструментов для разработчиков программного обеспечения. И сейчас уже подзабылись былые жаркие дискуссии о его достоинствах и недостатках, когда профессионалы решали, принимать на вооружение этот инструмент или нет. Отметим лишь, что критика в адрес VB велась (и продолжает вестись) с позиций пользователей других средств Microsoft (VC++, Visual и пр.), других языковых систем (Java, Pascal) и, наконец, конкурирующих систем класса RAD, в первую очередь Delphi.

Достоинства языка VB 6.0

- Visual Basic выгодно отличается от других языков программирования своей простотой и наглядностью;

- Visual Basic динамично развивающийся язык;

- Visual Basic встроен в программы семейства Microsoft Office. С его помощью можно управлять этими программами из других программ.

Недостатки языка VB 6.0

- значительное число ошибок в новой технологии работы с базами данных ActiveX Data Objects;

- неудовлетворительный объем и качество (ошибки, неудачная система ссылок и пр.) встроенной справочной системы;

- слишком быстро растущие требования к аппаратным средствам и отсутствие прогресса в производительности;

- минимальные улучшения в самом языке и явно недостаточный прогресс в объектно-ориентированном программировании;

Delphi 7.0

Как известно Delphi это потомок Pascal, а именно в основе Delphi лежит объектно - ориентированное программирование на языке Pascal.

Одним из аргументов против Delphi является сравнительно большой размер откомпилированного кода, т.е. исполняемого файла, но иногда этот недостаток может явиться достоинством Delphi, а именно, такой большой размер файла определяет его независимость от операционной системы, точнее от библиотек, модулей и тому подобному. По сравнению с Borland C++ Builder размер exe-файла получаемого на Delphi не так уж велик и к тому же можно дать гарантию, что этот исполняемый файл будет работать на любом компьютере (под Windows), а вот за C++ Builder нельзя поручиться. История знает большое количество случаев, когда программа, написанная на C++ при тестировании на одном компьютере (на том, где программа была написана) работала, а при установке на другой компьютер программа не работала по причине отсутствия DLL библиотеки. Так же не может быть уверенности в работе программы, написанной на Visual Basic. Что же касается функциональности и возможностей, то здесь Delphi вполне может поспорить с C++ Builder и уж тем более с Visual Basic, к тому же сам язык, более информативен и удобен для понимания и чтения.

Так же к достоинствам Delphi 7.0 относятся:

-Быстрота разработки приложения

-Высокая производительность разработанного приложения

-Hизкие требования разработанного приложения к ресурсам компьютера

-Hаращиваемость за счет встраивания новых компонент и инструментов в среду Delphi

-Удачная проработка иерархии объектов

Эти и другие достоинства Delphi решают выбор языка программирования, программный продукт создан с использованием средств Delphi 7.0.

1.3.2 Текстовый редактор

При создании электронного учебника неоднократно приходится прибегать к помощи текстового редактора, как на этапе разработке материала, так и на этапе создания тестовой части.

Существует большое количество тестовых редакторов: MS Office Word, Word Pad, Angel Writer, Cool Editor 4.1, NoteRepad 1.93, TextMaker 7.0 и другие.

MS Office Word

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

Word Pad

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

Angel Writer

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

Cool Editor 4.1

Cool Editor
4 - мощнейший текстовый редактор для операционных систем симейства Windows.

Поддерживается шифрация/дешифрация по алгоритмам BlowFish, Cast128, Cast256, Cool Editor,
ElectroEdit и другим алгоритмам. Также есть возможность автоопределения кодировки, пакетного перекодирования, транслит, детранслит. Ещё в программе есть 24 подсветки синтаксиса. Программа

поддерживает уникальную библиотеку QPasteLib 2.0. Есть возможность проверки орфографии.

NoteRepad 1.93

NoteRepad
- возможности редактора:

- настройка сочетаний горячих клавиш для меню программы

- печать с сохранением RTF форматирования

- автодетект кодировок KOI8-R, ISO, MAC, UTF-8, Unicode, DOS

-конвертированеие HTML кода в простой текст;

-конвертированеие форматиров
аного текста (RTF) в HTML код с сохранением вида;

-шифрование стойким криптоалгоритмом;

-генерирование паролей неограниченной длины;

TextMaker 7.0

TextMaker
- программа является текстовым редактором. Поддерживает форматирование текста, выравнивание, печать, поиск слов, сохранение и открытие файлов, проверку орфографии.

В 7-ой версии программа научилась сохранять в разные типы файлов, вставлять дату и время,
появилось окно "Опции", есть возможность задавать параметры по умолчанию. Изменен интерфейс программы, а именно добавлена панель с плоскими кнопками.

Основные функции всех этих текстовых редакторов схожи, но несомненно, наибольшее распространение получил текстовый редактор Microsoft Office Word, он и был выбран редактором для создания материала электронного учебника.

1.3.3 Архиватор

В данном проекте программа-архиватор необходима для шифрования тестовых вопросов.

Cуществует более десятка программ-архиваторов, которые могут создавать архивы в формате ZIP. В свою очередь данные в формате ZIP могут быть сжаты различными методами: Deflate, Deflate64, BZip2. Метод Deflate имеет несколько реализаций с разной скоростью и степенью сжатия (разница порядка 5%). С помощью этого метода архиватор 7-zip позволяет создавать архивы в формате ZIP и 7Z.

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

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

- сжатие некоторых файлов и целых директорий;

- создание самораспаковывающихся (SFX) архивов. То есть для распаковки архива программа-архиватор не требуется;

- изменение содержимого архива;

- шифрование содержимого архива;

- информация для восстановления архива при частичном повреждении и возможность восстановления поврежденных архивов;

- разбивка архива на несколько частей или томов;

- консольная версия программы для работы из командной строки;

- графическая (GUI) версия программы.

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

Кроме различий в функциональности, можно разбить архиваторы на две группы: асимметричные и симметричные. Асимметричные архиваторы требуют для операции распаковки значительно меньше времени и оперативной памяти, чем для операции упаковки. Это позволяет быстро получать содержимое архива на маломощных компьютерах. Симметричные архиваторы требуют для операций упаковки и распаковки одинаковое время и объем оперативной памяти. Использование таких архиваторов на широком парке компьютеров или для оперативного доступа к содержимому архива ограничено. Известный архиватор RAR в качестве основного использует асимметричный словарный метод сжатия, а для текстов может использовать симметричный PPM-метод. Таким образом, распаковка архивов RAR, сжатых с максимальной степенью сжатия, может быть невозможна на компьютерах с ограниченным объемом оперативной памяти. Все или почти все передовые архиваторы с высокой степенью сжатия являются симметричными.

Самыми распространенными архиватороми являются ZIP и RAR. По своей распространенности он значительно превосходит ближайших конкурентов. Следом идет ACE. В последние годы встречается архиватор 7-zip. Другие архиваторы встречаются крайне редко. Исключение составляют некогда популярные ARJ и LHA. В данный момент они не актуальны из-за очень низкой степени сжатия.

Для реализации целей проекта был выбран архиватор WinRar.

1.4 Требования

1.4.1 Аппаратное и программное обеспечение компьютера разработчика

Windows XP

Celeron - 1700 MHz

256 Mb RAM

SVGA-монитор с разрешением 1024*768

1.4.2 Системные требования

Windows 2000/XP

Pentium II - 400 MHz

64 Mb RAM

SVGA-монитор с разрешением 800*600

1.5 Модели

1.5.1 Модель взаимодействия студента, АОС и преподавателя

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

1.5.2 Общая модель обучения

Обучение начинается с авторизации. Если учащийся не зарегистрирован, то в базе создается запись, в которую включены фамилия, группа и пароль учащегося. Программа проверяет файл Log.dat, если учащийся зарегистрирован и уже проходил тестирование, то он может перейти к тому месту, где он остановился - на тесте или на экзамене по главе N, либо приступить к изучению теоретического материала. Если студент приступает к выполнению тестовой части, то он может проверить свои знания по главе, с возможностью обращения к учебному материалу при неправильном ответе. Если в результате теста учащийся получает балл ? 40, то он переходит к выполнению экзаменационной части, к ней он может перейти еще непосредственно вначале, если тестовая часть по данной главе уже была выполнена ранее. Если же балл < 40, то учащийся повторяет учебный материал, а затем снова приступает к выполнению теста. Если студент приступает к выполнению экзаменационной части, то в отличии от тестовой он не имеет возможности знать правильный ли он дал ответ и не может вернуться во время экзамена к разделу материал. Если в результате экзамена балл студента < 40, то он повторяет материал и снова пытается сдать экзамен. Если же учащийся получает балл ? 40, то он переходит к теоретической части следующей темы.

1.5.3 Модель тестирования

Тестирование начинается с проверки файла Log.dat. Если там обнаружены записи, то программа их загружает. Студент приступает к обучающему тестированию по последней изученной им главе, если записей в Log.dat по данному учащемуся нет, то она создается и учащийся приступает к изучению материала первой главы. После изучения теоретической части учащийся переходит к обучающему тестированию. В этом режиме в случае неправильного ответа выдается сообщения и предлагается вернуться повторить материал, а после повторения вернуться к выполнению теста. Так продолжается до тех пор, пока учащийся не ответит на определенное количество вопросов по главе. Если в результате выполнения теста учащийся получает балл ? 40, то он переходит к выполнению экзаменационной части, к ней он может перейти еще непосредственно вначале, если тестовая часть по данной главе уже была выполнена ранее. Если же балл < 40, то учащийся повторяет учебный материал, а затем снова приступает к выполнению теста. После успешного выполнения тестовой части главы, учащийся переходит к сдаче экзамена по ней, он так же может перейти к ней сразу после проверки программой файла Log.dat, если тестовая часть по этой главе уже выполнена. При сдаче экзамена по главе учащийся не может вернуться и повторить материал. Выполнив тест, учащийся получает за выполнение процентную оценку знаний, если в результате экзамена балл студента < 40%, то он повторяет материал и снова пытается сдать экзамен. Если же учащийся получает балл ? 40%, то он переходит к теоретической части следующей темы. Если же эта глава, по которой учащийся сдавал экзамен последняя, то из таблицы результатов выводятся его результаты, что бы преподаватель мог выставить итоговую оценку по курсу.

2.1 Создание обучающей части

Обучающая часть программы состоит из раздела “материал” и частично из раздела “тестирование”.

В разделе “материал” находится текстовое изложение пяти глав учебного материала.

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

Во второй части изложена информация о представлении букв и цифр в персональном компьютере.

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

Текст для разделов находится в формате RTF и загружается в программу. (см. приложения, листинг 1) Для каждой главы существует свой RTF файл, названный в соответствии с номером главы.

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

Глава 4 посвящена стандартным утилитам Windows и работе в сети. Подробное описание дается для каждой из утилит, поскольку многие начинающие пользователи после покупки компьютера не имеют представления о том как пользоваться даже самыми простыми программами, даже теми, которые включены в стандартный набор программ Windows, уже не говоря об установке программ извне и работе с ними. Поэтому важно чтобы каждый пользователь, прошедший обучение по этому пособию имел знания о том, как работать со стандартными утилитами Windows. Во второй части главы изложены основные понятия о работе в сети.

Глава 5 целиком посвящена семейству программ Microsoft Office. Однако, подробное описание дано лишь для Microsoft Office Word, поскольку умение работы с этим программным продуктом стандартно необходимо для использования компьютера в образовательных целях, остальные члены семейства Microsoft Office имеют гораздо более специализированный характер. Поэтому о них рассказывается, что называется в двух словах.

Навигация по главам осуществляется посредством простого нажатия левой кнопки мыши в поле слева от номера главы.

Материал - это раздел, в котором в текстовой форме отображено содержание учебной программы курса. Кроме раздела “материал” в обучающей часть входит раздел “тестирование”.

При выборе в главном меню пункта “тестирование”, производится процесс авторизации.

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

При ответе “Да” программа автоматически создаст в таблице результатов запись с введенными фамилией, группой и паролем.

Количество тестов соответствует количеству глав раздела “материал”, но тесты открываются по мере их прохождения, нельзя не сдав первый тест перейти ко второму, кроме того, даже пройдя тестирование по главе с результатами ? 40% правильных ответов, возможность перейти к тесту следующей главы появится только после прохождения экзамена по данной главе (см. приложения, листинг 3).

Таким образом, тестирование проводится по ряду вопросов для конкретных глав. Вопросы выбираются из базы произвольно. При неправильном ответе программа выдает сообщение:

При нажатии на “повторить материал” программа переводит обучаемого в раздел “материал” на ту главу, по которой проводится данное тестирование (см. приложения, листинг 4). После повторения материала обучаемый возвращается в режим тестирования. Он не имеет возможности ответить на последний заданный ему программой вопрос, поскольку тогда была бы велика вероятность, что студент сможет получить 100% правильных ответов даже с нулевыми знаниями, так как он просто-напросто будет находить в тексте правильный ответ на конкретный вопрос, отвечать правильно и в результате не получать никаких знаний из курса.

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

Тогда можно смело перейти к выполнению экзамена по данной главе.

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

Соответственно, после удачного выполнения тестовой части главы 2, обучаемый получает доступ к экзамену по главе 2, а после удачного выполнения экзамена по главе 2 он получает доступ к тестированию главы 3 и так далее(см. приложения, листинг 5).

После успешного выполнения последнего (пятого) экзаменационного теста выдается сообщение, в котором кроме информации о набранных баллах по последнему тесту, дается еще информация по итоговому баллу:

Для того чтобы просмотреть результаты прошедших какие-либо тесты студентов, необходимо выбрать “Результаты” в главном меню(см. приложения, листинг 6):

При нажатии на “Результаты” появляется окно, в котором необходимо ввести пароль для входа. Знать пароль должен преподаватель.

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

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

2.2 Подготовка тестового материала

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

<количество_вопросов_в_главе>

<номер_вопроса> <вопрос>

<1> <ответ_1> [<*>]

<2> <ответ_2> [<*>]

<3> <ответ_3> [<*>]

<4> <ответ_4> [<*>]

<номер_вопроса> <вопрос>

<1> <ответ_1> [<*>]

<2> <ответ_2> [<*>]

<3> <ответ_3> [<*>]

<4> <ответ_4> [<*>]

Количество_вопросов_в_главе - количество считываемых программой вопросов из файла.

<*> - наличие символа указывает на то, что ответ правильный.

Пример.

20

1. Как называется программа семейства Microsoft Office, которая представляет собой полнофункциональное средство создания интернет-сайтов и управления ими?

1 Microsoft Access

2 Microsoft FrontPage*

3 Microsoft Outlook

4 Microsoft Publisher

20. Одновременное нажатие каких клавиш производит сохранение документа Microsoft Word?

1 Ctrl и Esc

2 Alt и F4

3 Shift и Del

4 Shift и F12*

(см. приложения, листинг 7)

Файлы с вопросами зашифрованы программой WinRAR с использованием внутреннего пароля программы, это позволяет свести на ноль вероятность того, что какой-нибудь более или менее осведомленный учащийся откроет файл с тестовой информацией и воспользуется ей (см. приложения, листинг 8).

Заключение

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

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

1. Архангельский А.Я. Delphi 7 Справочное пособие. - М., Бином-Пресс. -2004. -1024 с.

2. Батищев П.С. Электронный On-Line учебник по курсу информатика.

3. Вигерс Карл. Разработка требований к программному обеспечению. /Пер, с англ. - М.: Издательско-торговый дом "Русская Редакция", 2004. -576с

4. Гаврилова Т.А., Хорошевский В.Ф. Базы знаний интеллектуальных систем. - СПб.: Питер, 2001. - 384 с.: ил.

5. Информатика для вас. Электронный учебник

6. Каймин В.А., Жданов В.С. и др. “Информатика” для поступающих в ВУЗы. Москва, АСТ, 2006г.

7. Колин К.К. Фундаментальные соновы информатики: социальная информатика/Учебное пособие для вузов. - М.:Академический проект, 200 -350 с.

8. Красильникова В.А. Становление и развитие компьютерных технологий обучения: Монография. - М.: ИИО РАО, 2002. - 168 с.

9. Круглински Д., Уингоу С, Шеферд Дж. Программирование на Microsoft Visual C++ 6.0 для профессионалов. /Пер, с англ. - СПб: Питер; М.: Издательско-торговый дом "Русская Редакция", 2004. - 861 с.

10. Пайс А. Гении науки. - М.: Институт компьютерных исследований, 2002

11. Платонов Ю.М., Уткин Ю.Г., Иванов М.И. Электронный экзаменатор у Вас дома. Информатика. - М.:СОЛОН-Пресс, 2004 - 176с.

12. Симонович С.В., Мураховский В. И., Интернет у вас дома, ООО «АСТ-Пресс Книга», Москва 2002

Приложение

Листинг

procedure TFMater.PartListClick(Sender: TObject);

var

fl:string;

begin

fl:='Book\'+IntToStr(PartList.ItemIndex+1)+'.rtf';

RE1.Lines.Clear;

RE1.Lines.LoadFromFile(fl);

end;

Листинг 2.

procedure TForm1.BitBtn1Click(Sender: TObject);

var

new: boolean;

i: integer;

begin

if FLogin.ShowModal = idOK then

begin

if (FLogin.Edit1.Text<>'') and (FLogin.Edit2.Text<>'') and (FLogin.Edit3.Text<>'') then

begin

CurStud.Total:=0;

for i:=1 to PCNT do //Очистка текущей записи

begin

CurStud.Tests[i]:=0;

end;

for i:=1 to PCNT do //Очистка текущей записи

begin

CurStud.Exams[i]:=0;

end; CurStud.Login:=FLogin.Edit1.Text;

CurStud.Group:=FLogin.Edit2.Text;

CurStud.Pass:=FLogin.Edit3.Text;

new:=True;

for i:=0 to St-1 do //Поиск записи

begin

if (Stud[i].Login=CurStud.Login) and (Stud[i].Group=CurStud.Group) then

begin

new:=False;

pn:=i;

end;

end;

if new=True then // Если новая - то создать запись

begin

if Application.MessageBox('Запись не найдена. Создать новую?','Экзаменатор',mb_IconQuestion+mb_YesNo) = idYes then

begin

St:=St+1;

pn:=St-1;

SetLength(Stud,St);

Stud[St-1]:=CurStud;

FSel.ShowModal;

end;

end

else // Иначе проверить пароль

begin

if (Stud[pn].Pass<>CurStud.Pass) then

begin

Application.MessageBox('Пароль не верен!!!', 'Экзаменатор',mb_ IconExclamation+mb_Ok);

end

else

begin

CurStud:=Stud[pn];

FSel.ShowModal;

end;

end;

end

else // Поля не заполнены

begin

Application.MessageBox('Заполните три поля','Экзаменатор',mb_ IconExclamation+mb_Ok);

end;

end;

end;

Листинг 3.

procedure TFSel.BitBtn2Click(Sender: TObject);

var

i,n:integer;

k: single;

f,g: integer;

begin

Qrt:=0;

Qc:=0;

g:=0;

for i:=1 to 50 do Rar[i]:=false;

n:=TestList.Selection.Top-1;

Part:=n div 2+1;

if (n mod 2)=1 then Ex:=true else Ex:=false;

Form1.Hide;

FSel.Hide;

repeat

Qc:=Qc+1;

randomize;

repeat

f:=trunc(random(QuesCnt[Part]-1))+1;

until Rar[f]=false;

Rar[f]:=true;

Qnum:=f;

FTest.BitBtn2.Enabled:=false;

FTest.SB1.Down:=false;

FTest.SB2.Down:=false;

FTest.SB3.Down:=false;

FTest.SB4.Down:=false;

FTest.ShowModal;

if FTest.SB1.Down then g:=1;

if FTest.SB2.Down then g:=2;

if FTest.SB3.Down then g:=3;

if FTest.SB4.Down then g:=4;

if g>0 then

begin

if Questions[Part,Qnum].Answers[g].Rt then Qrt:=Qrt+1

else if not(Ex) then

begin

FNR.ShowModal;

end;

g:=0;

end;

until (FTest.ModalResult=mrCancel) or (Qc=10);

FSel.Show;

Form1.Show;

k:=trunc(Qrt/10*100);

if Ex=true then

begin

if CurStud.Exams[part]<k then CurStud.Exams[part]:=k;

end

else

begin

if CurStud.Tests[part]<k then CurStud.Tests[part]:=k;

end;

CurStud.Total:=0;

for i:=1 to PCNT do CurStud.Total:=CurStud.Total+CurStud.Exams[i];

CurStud.Total:=Trunc(CurStud.Total/5);

Stud[pn]:=CurStud;

if k>39.9 then

begin

if part=5 then

begin

if Ex then FRes.Label1.Caption:='Поздравляем! Вы успешно завершили тестирование. Набранный балл: '+FloatToStrF(k,ffFixed,3,0)+'%. Итоговый балл: '+FloatToStrF(CurStud.Total,ffFixed,3,0)+'%';

end

else FRes.Label1.Caption:='Набранный балл: '+FloatToStrF (k,ffFixed,3,0)+'%. Тест пройден';

end

else

begin

FRes.Label1.Caption:='Набранный балл: '+FloatToStrF(k,ffFixed,3,0)+'%. Тест НЕ пройден';

end;

FRes.ShowModal;

Qnum:=0;

end;

Листинг 4.

procedure TFNR.BitBtn2Click(Sender: TObject);

begin

FMater.PartList.ItemIndex:=Part-1;

FMater.ShowModal;

end;

Листинг 5.

procedure TFSel.FormShow(Sender: TObject);

var

i,n,m: integer;

y:single;

begin

with TestList do

begin

RowCount:=2;

FixedRows:=1;

Rows[0].Strings[0]:='Общий балл';

Rows[0].Strings[1]:=FloatToStr(CurStud.Total);

Rows[1].Strings[0]:='Тест по главе'+IntToStr(1);

Rows[1].Strings[1]:=FloatToStr(CurStud.Tests[1]);

for i:=1 to PCNT-1 do

begin

if CurStud.Exams[i]>40 then

begin

RowCount:=RowCount+1;

Rows[i*2+1].Strings[0]:='Тест по главе'+IntToStr(i+1);

Rows[i*2+1].Strings[1]:=FloatToStr(CurStud.Tests[i+1]);

end;

end;

for i:=1 to PCNT do

begin

if CurStud.Tests[i]>40 then

begin

//y:=CurStud.Tests[2];

RowCount:=RowCount+1;

Rows[i*2].Strings[0]:='Экзамен по главе'+IntToStr(i);

Rows[i*2].Strings[1]:=FloatToStr(CurStud.Exams[i]);

end;

end;

end;

end;

Листинг 6.

procedure TFResult.FormShow(Sender: TObject);

var

i,j: integer;

begin

with StrGr do

begin

RowCount:=2;

FixedRows:=1;

RowCount:=St+1;

ColCount:=4+PCNT;

Rows[0].Strings[0]:='Фамилия';

Rows[0].Strings[1]:='Группа';

Rows[0].Strings[2]:='Пароль';

Rows[0].Strings[3]:='Итог';

for i:=1 to PCNT do

begin

Rows[0].Strings[3+i]:='Глава'+IntToStr(i);

end;

for i:=0 to St-1 do

begin

Rows[i+1].Strings[0]:=Stud[i].Login;

Rows[i+1].Strings[1]:=Stud[i].Group;

Rows[i+1].Strings[2]:=Stud[i].Pass;

Rows[i+1].Strings[3]:=FloatToStr(Stud[i].Total);

for j:=1 to PCNT do

begin

Rows[i+1].Strings[3+j]:=FloatToStr(Stud[i].Tests[j])+'/'+FloatToStr(Stud[i].Exams[j]);

end;

end;

end;

end;

Листинг 7.

procedure LoadQues;

var

i,n,j,l: integer;

ns: string;

begin

for i:=1 to PCNT do

begin

AssignFile(QuesFile,'Book\'+IntToStr(i)+'.txt');

Reset(QuesFile);

ReadLn(QuesFile,ns);

n:=StrToInt(ns);

QuesCnt[i]:=n;

for j:=1 to n do

begin

if Eof(QuesFile)=false then ReadLn(QuesFile,ns)

else Application.MessageBox('Конец файла','Экзаменатор',mb_IconExclamation+mb_Ok);

Questions[i,j].Text:=TrimLeft(MidStr(ns,4,255));

for l:=1 to 4 do

begin

if Eof(QuesFile)=false then ReadLn(QuesFile,ns)

else Application.MessageBox('Конец файла','Экзаменатор',mb_IconExclamation+mb_Ok);

if RightStr(ns,1)='*' then

begin

Questions[i,j].Answers[l].Text:=TrimLeft(MidStr(ns,2,Length(TrimRight(ns))-2));

Questions[i,j].Answers[l].Rt:=true;

end

else

begin

Questions[i,j].Answers[l].Text:=TrimLeft(MidStr(ns,2,Length(TrimRight(ns))));

Questions[i,j].Answers[l].Rt:=false;

end;

end;

end;

CloseFile(QuesFile);

end;

end;

Листинг 8.

procedure Decrypt;

begin

WEAW('unrar.exe x -ptachikoma -o+ book.dat');

while not((FileExists('book\1.txt'))

and(FileExists('book\2.txt'))

and(FileExists('book\3.txt'))

and(FileExists('book\4.txt'))

and(FileExists('book\5.txt')))

do Sleep(100);

end;

//------------------------------------------------------------------------------------

procedure Crypt;

begin

DeleteFile('book\1.txt');

DeleteFile('book\2.txt');

DeleteFile('book\3.txt');

DeleteFile('book\4.txt');

DeleteFile('book\5.txt');

end

Страницы: 1, 2


© 2010 BANKS OF РЕФЕРАТ