Разработка демонстрационно-обучающей программы по дисциплине "Электрические машины и трансформаторы"
Выбор средств создания электронной системы. Общие сведения о демонстрационно-обучающих программах. Особенности интерфейсов обучающих программ. Алгоритм работы программы. Анализ предметной области. Техника безопасности при работе в компьютерном классе.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | дипломная работа |
Язык | русский |
Дата добавления | 27.03.2010 |
Размер файла | 2,6 M |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
2.5 Тестирование программы
Типы и методы тестирования
Хотя в тестировании можно выделить несколько различных процессов, такие термины, как «тестирование», «отладка», «доказательство», «контроль» и «испытание», часто используются как синонимы и, к сожалению, ддя разных людей имеют разный смысл. Нашу классификацию различных форм тестирования мы начнем с того, что дадим эти определения, слегка их дополнив и расширив их список.
Тестирование (testing) -- процесс выполнения программы (или части программы) с намерением (или целью) найти ошибки.
Доказательство (ргооf) -- попытка найти ошибки в программе безотносительно к внешней для программы среде. Большинство методов доказательства предполагает формулировку утверждений о поведении программы и затем вывод и доказательство математических теорем о правильности программы. Доказательства могут рассматриваться как форма тестирования, хотя они и не предполагают прямого выполнения программы. Многие исследователи считают доказательство альтернативой тестированию взгляд во многом ошибочный.
Контроль (verification) -- попытка найти ошибки, выполняя программу в тестовой, или моделируемой, среде.
Испытание (validation) -- попытка найти ошибки, выполняя программу в заданной реальной среде.
Аттестация (certification) -- авторитетное подтверждение правильности программы. При тестировании с целью аттестации выполняется сравнение с некоторым заранее определенным стандартом.
Отладка (debugging) не является разновидностыр тестирования. Хотя слова «отладка» и «тестирование» часто используются как синонимы, под ними подразумеваются разные виды деятельности. Тестирование -- деятельность, направленная на обнаружение ошибок; отладка направлена на установление точной природы известной ошибки, а затем -- на исправление этой ошибки. Эти два вида деятельности связаны -- результаты тестирования являются исходными данными для отладки.
Эти определения представляют один взгляд на тестирование -- со стороны среды, на которую оно опирается. Другой ряд определений, приведенный ниже, охватывает вторую сторону тестирования: типы ошибок, которые предполагается обнаружить, и стандарты, с которыми сопоставляются тестируемые программы.
Тестирование модуля, или автономное тестирование (module testing, unit testing), -- контроль отдельного программного модуля, обычно в изолированной среде (т. е. изолированно от всех остальных модулей). Тестирование модуля иногда включает также математическое доказательство.
Тестирование сопряжений (integration testing) -- контроль сопряжений между частями системы (модулями, компонентами, подсистемами).
Тестирование внешних функций (external function testing) --контроль внешнего поведения системы, определенного внешними спецификациями.
Комплексное тестирование (system testing) -- контроль и/или испытание системы по отношению к исходным целям. Комплексное тестирование является процессом контроля, если оно выполняется в моделируемой среде, и процессом испытания, если выполняется в среде реальной, жизненной.
Тестирование приемлемости (acceptance testing) -- проверка соответствия программы требованиям пользователя.
Тестирование настройки (installation testing) -- проверка соответствия каждого конкретного варианта установки системы с целью выявить любые ошибки, возникшие в процессе настройкисистемы.
Тестированне программы как «черного ящика»
Одним из способов изучения поставленного вопроса является исследование стратегии тестирования, называемой стратегией «черного ящика», тестированием с управлением no данным или тестированием с управлением no входу-выходу. При использовании этой стратегии программа рассматривается как «черный ящик». Иными словами, такое тестирование имеет целью выяснение обстоятельств, в которых поведение программы не соответствует спецификации. Тестовые же данные используются только в соответствии со спецификацией программы (т. е. без учета знаний о ее внутренней структуре).
При таком подходе обнаружение всех ошибок в программе является критерием исчерпывающего входного тестирования. Последнее может быть достигнуто, если в качестве тестовых наборов использовать все возможные наборы входных данных.
Если такое испытание представляется сложным, то еще сложнее создать исчерпывающий тест для большой программы. Об разно говоря, число тестов можно оценить «числом большим, чем бесконечность».
Построение исчерпывающего входного теста невозможно. Это подтверждается двумя аргументами: во-первых, нельзя создать тест, гарантирующий отсутствие ошибок; во-вторых, разработ ка таких тестов противоречит экономическим требованиям. Поскольку исчерпывающее тестирование исключается, нашей целью должна стать максимизация результативности капиталовложений в тестирование (иными словами, максимизация числа ошибок, обнаруживаемых одним тестом). Для этого мы можем рассматривать внутреннюю структуру программы и делать некоторые разумные, но, конечно, не обладающие полной гарантией досто верности предположения.
Тестирование программы как «белого ящика»
Стратегия «белого ящика», или стратегия тестирования, управляемого логикой программы, позволяет исследовать внутреннюю структуру программы. В этом случае тестирующий получает тестовые данные путем анализа логики программы (к сожалению, здесь часто не используется спецификация программы).
Сравним способ построения тесгов при данной стратегии с исчерпывающим входным тестированием стратегии «черного ящика». Непосвященному может показаться, что достаточно построить такой набор тестов, в котором каждый оператор исполняется хотя бы один раз; нетрудно показать, что это неверно. He вдаваясь в детали, укажем лишь, что исчерпывающему входному тестированию может быть поставлено в соответствие исчерпывающее тестирование маршрутов. Подразумевается, что программа проверена полностью, если с помощью тестов удается осуществить выполнение программы по всем возможным маршрутам ее потока (графа) передач управления.
Последнее утверждение имеет два слабых пункта. Первый изних состоит в том, что число не повторяющих друг друга маршрутов в программе астрономическое. Второй слабый пункт утверждения заключается в том, что, хотя исчерпывающее тестирование маршрутов является полным тестом и хотя каждый маршрут программы может быть проверен, сама программа будет содержать ошибки. Это объясняется следующим образом.
Во-первых, исчерпывающее тестирование маршрутов не может дать гарантии того, что программа соответствует описанию.Например, вместо требуемой программы сортировки по возрастанию случайно была написана программа сортировки по убыванию. В этом случае ценность тестирования маршрутов невелика, поскольку после тестирования в программе окажется одна ошибка, т. е. программа неверна.
Во-вторых, программа может быть неверной в силу того, что пропущены некоторые маршруты. Исчерпывающее тестирование маршрутов не обнаружит их отсутствия.
В-третьих, исчерпывающее тестирование маршрутов не может обнаружить ошибок, появление которых зависит от обрабатываемых данных.
Восходящее тестироваиие
При восходящем подходе программа собирается и тестируется «снизу вверх». Только модули самого нижнего уровня («терминальные» модули; модули, не вызывающие других модулей) тестируются изолированно, автономно. После того как тестирование этих модулей завершено, вызов их должен быть так же надежен, как вызов встроенной функции языка или оператор присваивания. Затем тестируются модули, непосредственно вызывающие уже проверенные. Эти модули более высокого уровня тестируются не автономно, а вместе с уже проверенными модулями более низкого уровня. Процесс повторяется до тех пор, пока не будет достигнута вершина. Здесь завершается и тестирование модулей, и тестирование сопряжений программы.
При восходящем тестировании для каждого модуля необходим драйвер: нужно подавать тесты в соответствии с сопряжением тестируемого модуля. Одно из возможных решений -- написать для каждого модуля неболыиую ведущую программу. Тестовые данные представляются как «встроенные» непосредственно в эту программу переменные и структуры данных, и она много кратно вызывает тестируемый модуль, с каждым вызовом передавая ему новые тестовые данные. Имеется и лучшее решение: воспользоваться программой тестирования модулей -- это инструмент тестирования, позволяющий описывать тесты на специальном языке и избавляющий от необходимости писать драйверы.
Здесь отсутствуют проблемы, связанные с невозможностью или трудностью создания всех тестовых ситуаций, характерные для нисходящего тестирования. Драйвер как средство тестирования применяется непосредственно к тому модулю, который тестируется, где нет промежуточных модулей, которые следует принимать во внимание. Анализируя другие проблемы, возникающие при нисходящем тестировании, можно заметить, что при восходящем тестировании невозможно принять неразумное решение о совмещении тестирования с проектированием программы, поскольку нельзя начать тестирование до тех пор, пока не спроектированы модули нижнего уровня. He существует также и трудностей с незавершенностью тестирования одного модуля при переходе к тестированию другого, потому что при восходящем тестировании с применением нескольких версий заглушки нет сложностей с представлением тестовых данных.
Нисходящее тестирование
Нисходящее тестирование (называемое также нисходящей разработкой) не является полной противоположностью восходящему, но в первом приближении может рассматриваться как таковое. При нисходящем подходе программа собирается и тестируется «сверху вниз». Изолированно тестируется только головной модуль. После того как тестирование этого модуля завершено, с ним соединяются (например, редактором связей) один за другим модули, непосредственно вызываемые им, и тестируется получен ная комбинация. Процесс повторяется до тех пор, пока не будут собраны и проверены все модули.
При этом подходе немедленно возникают два вопроса: 1. «Что делать, когда тестируемый модуль вызывает модуль более низкого уровня (которого в данный момент еще не существует)?» и 2. «Как подаются тестовые данные?»
Ответ на первый вопрос состоит в том, что для имитации функций недостающих модулей программируются модули-«заглушки», которые моделируют функции отсутствующих модулей.
Интересен и второй вопрос: в какой форме готовятся тестовые данные и как они передаются программе? Если бы головной модуль содержал все нужные операции ввода и вывода, ответ был бы прост: тесты пишутся в виде обычных для пользователей внешних данных и передаются программе через выделенные ей устройства ввода. Так, однако, случается редко. В хорошо спроектированной программе физические операции ввода вывода выполняются на нижних уровнях структуры, поскольку физический ввод-вывод -- абстракция довольно низкого уровня. Поэтому для того, чтобы решить проблему экономически эффективно, модули добавляются не в строго нисходящей последовательности (все модули одного горизонтального уровня, затем модули следую щего уровня), а таким образом, чтобы обеспечитъ функциониро вание операций физического ввода-вывода какможно быстрее. Когда эта цель достигнута, нисходящее тестирование получает значи тельное преимущество: все дальнейшие тесты готовятся в той же форме, которая рассчитана на пользователя.
Нисходящий метод имеет как достоинства, так и недостатки по сравнению с восходящим. Самое значительное достоинство --1 то, что этот метод совмещает тестирование модуля, тестирова ние сопряжений и частично тестирование внешних функций. С этим же связано другое его достоинство: когда модули ввода-вывода уже подключены, тесты можно готовить в удобном виде. Нисходящий подход выгоден также в том случае, когда есть сомнения относительно осуществимости программы в целом или когда в проекте программы могут оказаться серьезные дефекты.
Преимуществом нисходящего подхода очень часто считают отсутствие необходимости в драйверах; вместо драйверов вам просто следует написать «заглушки».
Нисходящий метод тестирования имеет, к сожалению, некоторые недостатки. Основным из них является то, что модуль редко тестируется досконально сразу после его подключения. Дело в том, что основательное тестирование некоторых модулей может потребовать крайне изощренных заглушек. Программист часто решает не тратить массу времени на их программирование, а вместо этого пишет простые заглушки и проверяет лишь часть условий в модуле. Он, конечно, собирается вернуться и закончить тестирование рассматриваемого модуля позже, когда уберет заглушки. Такой план тестирования -- определенно не лучшее решение, поскольку об отложенных условиях часто забывают.
Второй тонкий недостаток нисходящего подхода состоит в том, что он может породить веру в возможность начать программирование и тестирование верхнего уровня программы до того, как вся программа будет полностью спроектирована. Эта идея на первый взгляд кажется экономичной, но обычно дело обстоит совсем наоборот. Большинство опытных проектировщиков признает, что проектирование программы -- процесс итеративный. Редко первый проект оказывается совершенным. Нормальный стиль проектирования структуры программы предполагает по окончании проектирования нижних уровней вернуться назад и подправить верхний уровень, внеся в него некоторые усовершенствования или исправляя ошибки, либо иногда даже выбросить проект и начать все сначала, потому что разработчик внезапно увидел лучший подход. Если же головная часть программы уже запрограммирована и оттестирована, то возникает серьезное сопротивление любым улучшениям ее структуры. В конечном итоге за счет таких улучшений обычно можно сэкономить больше, чем те несколько дней или недель, которые рассчитывает выиграть проектировщик, приступая к программированию слишком рано.
Процесс и результаты тестирования
Тестирование правильности.
Тест 1. Запуск программы
Ожидаемый результат: Корректный запуск программы.
Результат: Программа запускается без ошибок.
Тест 2. Проверка кнопом меню («Обучение», «Тестирование», «Доп. материал», «О программе»), а так же кнопок вложенных модулей («Обучение», «Тестирование»).
Ожидаемый результат: Переход по кнопкам к соответствующим элементам программы.
Результат: Все кнопки выполняют соответствующие функции без ошибок.
Тест 3. Проверка за контролем наличия исходных данных (видеороликов, изображений, текста).
Ожидаемый результат: При ошибки чтения каких-либо данный, если они оказываются недоступными, должно выводиться соответствующее сообщение об ошибке.
Результат: Сообщение выводится.
Тест 4. Проверка контроля входных данных.
Ожидаемый результат: При незаполненных полях должно выводится соответствующее сообщение, должен присутствовать контроль за количеством входных данных.
Результат: Количество входных данных контролируются, не допускается ввод слишком больших строк, там где это не требуется, при незаполненных полях, если они требуют заполнения, выводится соответствующее сообщение.
Тест 5. Проверка корректного отображения процесса тестирования на сервере..
Ожидаемый результат: Во время тестирования все данные о тестируемых должны соответствовать действительности.
Результат: Данные о тестируемом (время начала/конца теста, вводимое имя/фамилия группа, номера правильных ответов) отображаются верно.
2.6 Программная документация
Руководство пользователя
После запуска программы выводится главное меню с выбором последующих действий. Пользователь может пройти обучение (нажав на кнопку «Обучение»), проверить полученные знания методом тестирования (кнопка «Тестирование»), просмотреть дополнительную информацию по теме (кнопка «Доп. информация») а так же ознакомиться с информацией о программе (кнопка «О программе») (рис. 3).
Рис. 3. Общий вид главного меню программы
Обучение
После нажатия кнопки «Обучение» пользователю показывается видеоролик, отражающий процесс разборки электродвигателя (рис. 4). По окончанию разборки пользователь может выбрать один из элементов двигателя для более подробного рассмотрения. По каждому элементу предоставляется описание элемента и видеоролик с выбранным элементом, позволяющий понять, как он выглядит в объеме.
Рис. 4. Показ видеоролика, отражающий процесс разборки электродвигателя
Некоторые из элементов электродвигателя делятся на составляющие, которым тоже надо описание (рис. 5).
Во время просмотра любого видеоролика можно приостановить видеоролик (кнопка «Пауза»), увеличить видеоролик в два раза (кликнув на область видеоролика) и вернуться в меню выбора элемента двигателя.
Так же пользователю предоставляется возможность выделить интересующий текст из описания элемента двигателя и скопировать в буфер обмена, после чего производить любые операции с этим текстом (копировать в другой документ и т.п.) (рис. 6).
Рис. 5. Выбор элемента двигателя для более подробного рассмотрения
Рис. 6. Вывод ролика и информации по конкретному элементу двигателя
Тестирование
Клиентская часть тестирования разделена на два пункта: настройка тестирования, само тестирование.
При настройке клиентской части тестирования могут изменяться стандартные значения полей «Имя пользователя», «Номер группы» и «Имя сервера», а так же выбирается файл базы вопросов (рис. 7). При создании нового файла базы вопросов следует выбрать этот файл из выпадающего списка. После изменения выдается запрос о сохранении.
Рис. 7 Модуль настройки параметров тестирования
При регистрации пользователь вносит свои данные (ФИО, номер группы) в программу и вносит в соответствующее (если поле пустое) имя компьютера, на котором запущен тест-сервер (рис. 8).
Рис. 8 Регистрация пользователя перед началом тестирования
Далее пользователь нажимает кнопку «Подключиться» и происходит процесс регистрации на сервере. На сервер отправляются данные о ФИО и номере группы пользователя.
После подключения к серверу пользователю отводится некоторое время для ознакомления с информацией по особенностям самой тестирующей программы или информацией по конкретному тесту. (рис. 9)
Рис. 9. Ожидание начала тестирования
Пользователь находится в ожидании запуска теста. В это время к серверу должны подключиться остальные пользователи. Администратор (преподаватель) проверяет правильность введенных данных пользователями и запускает тест, после чего одновременно на всех подключенных тестируемых компьютерах начитается тестирование (рис. 10).
Рис. 10. Процесс тестирования
Существует 2 типа вопросов: с выбором ответа и с вводом ответа с клавиатуры. Количество возможных ответов (при выборе ответа) может быть не более девяти. Возможные ответы чередуются. Так же существует возможность чередования вопросов, это функция включается при создании файла теста.
После ответа на каждый вопрос на сервер отсылаются данные о количестве баллов, набранных на данный момент пользователем, а так же данные о номере вопроса, на котором остановился пользователь.
По окончанию теста выводится сообщения об окончании тестирования.
Серверная часть тестирования
Данное тестирование является сетевым, поэтому существует серверная часть этого тестирования.
В окне тест-сервере отображается имя данного компьютера (правый верхний угол программы), окно процесса тестирования, количество подключенных пользователей и количество времени оставшегося до окончания тестирования (если включен таймер) (рис.11).
Рис. 11. Общий вид тест-сервера
Руководство программиста
Поскольку тестирование является сетевым, то для его проведения требуется серверная часть, которая должна быть размещены на сервере. В серверной части программы присутствует сам тест-сервер, а так же редактор базы вопросов для теста. В клиентской части - модуль главного меню, модули обучения и тестирования.
Поскольку базы тестов располагаются на клиентской части программы, то рекомендуется располагать эту часть программы на сервере в папке, с открытым доступом только на чтения. Таким образом пользователи не смогут внести изменения в работу самой программы или отредактировать вопросы. Доступ к серверной части обычного пользователя должен быть полностью ограничен.
Исходные коды программы не должны располагаться на каких-либо носителях, исключая копии для восстановления, в целях предотвращения взлома программы.
Начнем рассматривать программу с отдельных модулей. В отличии от программы, модуль не может быть автономно запущен на выполнение и содержит элементы, например, переменные и подпрограммы, которые допускается использовать в программе или других модулях. Для того чтобы можно было использовать в программе средства модуля, его необходимо подключить, указав имя этого модуля в разделе uses. Типичными примерами модулей являются System и SysUtils, содержащие большое количество стандартных подпрограмм. Для каждой формы приложения создается отдельный модуль.
Компилятор распознает модуль по его заголовку и создает в результате своей работы не исполняемый файл (.exe), а файл модуля с расширением dcu.
Модуль состоит из заголовка, в котором после ключевого слова unit указывается имя модуля, и четырех разделов: интерфейса (Interface), реализации (Implementation), инициализации (Initialization) и деинициализации (Finalization).
В разделе реализации располагается код подпрограмм, заголовки которых были приведены в разделе интерфейса. Порядок следования программ может не совпадать с порядком расположения их заголовков, приводимых в разделе интерфейса. Также допускается оставлять в заголовке только имя подпрограммы, т. к. список параметров и тип результата функции уже были предварительно указаны. В этом разделе можно также описывать типы, объявлять константы и переменные и описывать подпрограммы, которые используются только в этом модуле и за его пределами не видны. Раздел начинается со слова Implementation.
В разделе инициализации располагаются инструкции, выполняемые в начале работы программы, которая подключает данный модуль. Разделы инициализации модулей выполняются в том порядке, в котором они перечислены в списке раздела uses программы. Раздел начинается со слова Initialization.
При наличии раздела инициализации в модуле можно использовать раздел деинициализации, который начинается со слова Finalization и является необязательным. В этом разделе располагаются инструкции, выполняемые при завершении программы. Разделы деинициализации модулей выполняются в порядке, обратном порядку их перечисления в списке uses программы.
Для более удобной читаемость программы объекты разделены на классы, дочерние классы образованы от материнского класса TBaseSprite = class. Отдельный класс имеет только сама форма.
unit Player
type Tform_player = class(TForm)
procedure FormCreate(Sender: TObject);
открытие и проигрывание видеоролика с разборкой двигателя
procedure SkipButClick(Sender: TObject);
обработчик нажатие кнопки «Пропустить» во время проигрывания начального видеоролика
procedure ShowDetail(Sender: TObject);
проигрывание видеоролика двигателя и вывод описания по выбранному элементу двигателя
procedure BackButClick(Sender: TObject);
обработчик кнопки «Вернуться», которая возвращает к выбору элемента двигателя.
procedure Pause1Click(Sender: TObject);
обработчик кнопки «Пауза», приостанавливающая видеоролики
procedure MediaPlayer1Notify(Sender: TObject);
процедура для зацикленного проигрывания видеороликов
procedure UDPicClick(Sender: TObject; Button: TUDBtnType);
обработчик кнопки «Выбор элемента детали», переключается между элементами детали двигателя
procedure Image1MouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer);
процедура обрабатывающая перемещение мышки над картинкой с элементами двигателя для вывода названия элемента над которым находится мышка
procedure Image1MouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
процедура обработки поднятия левой кнопки мыши для выбора элемента двигателя
procedure FullScreenClick(Sender: TObject);
увеличение видеоролика в два раза
procedure FScreenOff(sender:tobject);
возврат видеоролика из увеличенного состояния в обычное
procedure Timer1Timer(Sender: TObject);
процедура таймера, использующая для посимвольного вывода текста описания элемента детали
procedure DetailInfoMouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
обработчик нажатия на область с выводом описания элемента детали для прекращения посимвольного вывода текста и показа текста целиком.
procedure ButtonCloseClick(Sender: TObject);
выход из программы
procedure ButtonMinimizeClick(Sender: TObject);
сворачивание программы
procedure ImageFon2MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
процедура отвечающая за перетаскивание программы за фоновое изображение
unit Opros
type TOpros_form = class(TForm)
procedure NextQue(Sender:TObject);
процедура вывод следующего вопроса на экран.
procedure AskButClick(Sender: TObject);
процедура нажатие кнопки ответ.
procedure EndQuestions;
процедура окончание всех вопросов.
procedure LoadQue (sender:tobject;var quefile:string);
процедура загрузки вопросов.
procedure SwapQue (i:integer);
процедура перемещение вопросов.
procedure SelectQue;
процедура перемещение вариантов ответа вопроса.
procedure PicButClick(Sender: TObject);
процедура отображения изображения, прикрепленного к вопросу.
procedure DrawRadioBox(numq:integer);
процедура вывода вариантов ответа.
procedure AskQueClick(Sender: TObject);
процедура обработки нажатия на один из вариантов.
3. Эксплуатация программных средств
3.1 Структура ЛВС учебных заведений
Большинство учебных заведений оснащены вычислительным центром. Рассмотрим структуру локальной вычислительной сети вычислительного центра на примере ЛВС вычислительного центра Челябинского энергетического колледжа (рис. 12)
Рис. 12 Структура ЛВС учебный заведений
3.2 Должностные инструкции техника-программиста
Общие положения
1. Техник-программист относится к категории специалистов.
2. На должность:
- техника-программиста назначается лицо, имеющее среднее профессиональное образование без предъявления требований к стажу работы;
- техника-программиста II категории - лицо, имеющее среднее профессиональное образование и стаж работы в должности техника-программиста не менее 2 лет;
- техника-программиста I категории - лицо, имеющее среднее профессиональное образование и стаж работы в должности техника-программиста II категории не менее 2 лет.
3. Техник-программист должен знать:
- Методы проектирования механизированной и автоматизированной обработки информации.
- Средства вычислительной техники, сбора, передачи и обработки информации и правила их эксплуатации.
- Технологию механизированной и автоматизированной обработки информации.
- Рабочие программы, инструкции, макеты и другие руководящие материалы, определяющие последовательность и технику выполнения расчетных операций.
- Виды технических носителей информации, правила их хранения и эксплуатации.
- Действующие системы счислений, шифров и кодов.
- Основные формализованные языки программирования.
- Основы программирования.
- Методы проведения расчетов и вычислительных работ.
- Методы расчета выполненных работ.
- Основы экономики, организации производства, труда и управления.
- Основы трудового законодательства.
- Правила внутреннего трудового распорядка.
- Правила и нормы охраны труда.
4. На время отсутствия техника-программиста (отпуск, болезнь, пр.) его обязанности исполняет лицо, назначенное в установленном порядке. Данное лицо приобретает соответствующие права и несет ответственность за качественное и своевременное исполнение возложенных на него обязанностей.
Должностные обязанности
Техник-программист:
1. Выполняет работу по обеспечению механизированной и автоматизированной обработки поступающей в вычислительный (информационно-вычислительный) центр (далее ВЦ (ИВЦ)) информации, разработки технологии решения экономических и других задач производственного и научно-исследовательского характера.
2. Принимает участие в проектировании систем обработки данных и систем математического обеспечения машины.
3. Выполняет подготовительные операции, связанные с осуществлением вычислительного процесса, ведет наблюдение за работой машин.
4. Составляет простые схемы технологического процесса обработки информации, алгоритмы решения задач, схемы коммутации, макеты, рабочие инструкции и необходимые пояснения к ним.
5. Разрабатывает программы решения простых задач, проводит их отладку и экспериментальную проверку отдельных этапов работ.
6. Выполняет работу по подготовке технических носителей информации, обеспечивающих автоматический ввод данных в вычислительную машину, по накоплению и систематизации показателей нормативного и справочного фонда, разработке форм исходящих документов, внесению необходимых изменений и своевременному корректированию рабочих программ.
7. Участвует в выполнении различных операций технологического процесса обработки информации (прием и контроль входной информации, подготовка исходных данных, обработка информации, выпуск исходящей документации и передача ее заказчику).
8. Ведет учет использования машинного времени, объемов выполненных работ.
9. Выполняет отдельные служебные поручения своего непосредственного руководителя.
Права
Техник-программист имеет право:
1. Знакомиться с проектами решений начальника ВЦ (ИВЦ) и руководителей структурных подразделений центра, касающимися его деятельности.
2. Вносить на рассмотрение руководства предложения по совершенствованию работы, связанной с предусмотренными настоящей инструкцией обязанностями.
3. В пределах своей компетенции сообщать(начальнику ВЦ (ИВЦ); начальнику производственного отдела ВЦ (ИВЦ); начальнику отдела разработок и внедрения ВЦ (ИВЦ); руководителю иного структурного подразделения ВЦ (ИВЦ))о всех выявленных в процессе осуществления должностных обязанностей недостатках в деятельности центра (его структурных подразделениях) и вносить предложения по их устранению.
4. Запрашивать лично или по поручению непосредственного руководителя от руководителей подразделений центра и специалистов информацию и документы, необходимые для выполнения его должностных обязанностей.
5. Привлекать специалистов всех (отдельных) структурных подразделений к решению задач, возложенных на него (если это предусмотрено положениями о структурных подразделениях, если нет - то с разрешения начальника ВЦ (ИВЦ).
6. Требовать от руководства центра оказания содействия в исполнении им его должностных обязанностей и прав.
Ответственность
Техник-программист несет ответственность:
1. За ненадлежащее исполнение или неисполнение своих должностных обязанностей, предусмотренных настоящей должностной инструкцией - в пределах, определенных действующим трудовым законодательством Российской Федерации.
2. За правонарушения, совершенные в процессе осуществления своей деятельности - в пределах, определенных действующим административным, уголовным и гражданским законодательством Российской Федерации.
3. За причинение материального ущерба - в пределах, определенных действующим трудовым и гражданским законодательством Российской Федерации.
3.3 Условия эксплуатации программы «Демонстрационно-обучающая программа по дисциплине «Электрические машины и трансформаторы» по теме «Асинхронные двигатели с короткозамкнутым ротором» для специальности 1001» Для каждой программы необходимы условия, в которых она будет эффективно работать, такие условия называются системными требованиями. Минимальные системные требования программы «Демонстрационно обучающая программа по дисциплине «Электрические машины и трансформаторы» по теме «Асинхронные двигатели с короткозамкнутым ротором» для специальности 1001»:
- центральный процессор класса не ниже Pentium III 800 МГц;
- объём оперативной памяти не менее 128 Mb;
- минимальная размер свободного места на жестком диске более 100Mb;
- стандартная клавиатура и стандартный манипулятор «мышь»;
- стандартный монитор с поддержкой разрешения экрана 1024x768;.
- видеоадаптер класса не ниже GeForce256;
- операционная система типа Windows 98, 2000, XP.
- видео-кодек DivX не ниже 5-ой версии.
4. Расчет себестоимости программного продукта Демонстрационно-обучающей программы по дисциплине «Электрические машины и трансформаторы» по теме «Асинхронные двигатели с короткозамкнутым ротором» для специальности 1001
Исходные данные:
1. Количество компьютеров - 2.
2. Количество дней работы над программой - 10.
3. Коэффициент использования ПК - 0,8.
4. Продолжительность рабочей смены - 5ч..
5. Тариф за потребление электроэнергии - 0,9 руб.\кВ.ч.
1. Полезный фонд времени работы ПК.
Фп = t* n пк* T * Ku , час, где
t - продолжительность одной смены работы на ПК - 5 ч.
nпк - количество компьютеров - 2.
T - количество дней работы над программой - 10.
Ku - коэффициент использования ПК - 0,8.
Фп = 5*2*10*0.8 = 80, часов
2. Стоимость потребляемой энергии.
Иэл = Р * Фп * Ц, руб, где
Рпк - мощность, потребляемая ПК - 0,3 кВт.
Фп - полезный фонд времени работы ПК - 80 ч.
Цруб - тариф электроэнергии за 1 кВтч - 0,9 руб.
Иэл = 0,3 * 80 * 0,9 = 21,6, руб
3. Стоимость эксплуатационных материалов Таблица 1
№ п\п |
Наименование |
Количество |
Цена за единицу, руб |
Сумма, руб |
|
1 |
Диск |
1 шт |
30 |
30 |
|
2 |
Ручка |
1 шт |
5 |
5 |
|
3 |
Бумага |
1 шт |
100 |
100 |
|
4 |
Картридж для принтера |
1 шт |
200 |
200 |
|
Итого |
335 |
Материальные затраты - всего
Имз = Иэл + Иэм руб, где
Иэл - стоимость потребляемой электроэнергии -21,600 руб.
Иэм - стоимость эксплуатационных материалов - 24635 руб.
Имз = 21,6 + 335 = 356,600 руб,
4. Оплата труда
4.1 Основная оплата труда за время работы над программой
Заработная плата программиста с высшей категорией составляет - 2424 руб,
Заработная плата программиста без категории- 1934 руб,
Дневная заработная плата программиста с высшей категорией-111 руб,
Дневная заработная плата программиста без высшей категории -88 руб,
Иопл.осн = Т * З руб, где
Т - количество дней работы над программой - 10,
З - зарплата двух программистов за 1 день - 199 руб.
Иопл.осн = 10 * 199 = 1990 руб,
Дополнительная зарплата.
Иопл.д = 0,4 * Иопл.осн руб, где
Иопл.осн - основная зарплата за время работы над программой - 1990руб.
Иопл.д = 0,4 * 1990 = 796 руб,
Оплата труда - всего
Иопл = Иопл.осн + Иопл.д руб, где
Иопл.осн - основная зарплата за время работы над программой - 1990 руб.
Иопл.д - дополнительная заработная плата - 796 руб.
Иопл = 1990 + 796 = 2786 руб,
4.2 Отчисления на социальные нужды отражают обязательные отчисления по установленным законодательством нормам, органам социального страхования, пенсионного фонда, государственного фонда занятости и медицинского страхования.
Исн = (Нсн / 100) * Иопл руб, где
Нсн - норма отчисления на социальные нужды 26 %
Иопл - оплата труда - 2786 руб.
Исн = (26 / 100) * 2786 = 724,360 руб,
4.3 Амортизационные отчисления:
Иа = (На / 100) * Соф руб, где
На - норма амортизационных отчислений на полное восстановление - 10,7%
Соф - основные фонды - 30000 руб.
Иа = (10,7 / 100) * 30000 = 3210 руб,
5. Прочие затраты
Включаются в этот экономический элемент затраты на услуги связи и Интернета.
Ипр=450 руб,
6. Общие издержки работы над программой.
Ио = Имз + Иопл + Исн + Иа + Ипр руб
Ио = 356,600 + 2786 + 724,36 + 3210 + 450 = 7526,96 руб.
7. Структура себестоимости программы
Таблица 2
№п/п |
Наименование статей |
Издержки за время работы, руб. |
Структура себестоимости, % |
|
1 |
Материальные затраты |
356,60 |
4,738 |
|
2 |
Оплата труда |
2786 |
37,014 |
|
3 |
Отчисления на социальные нужды |
724,36 |
9,623 |
|
4 |
Амортизационные отчисления |
3210 |
42,647 |
|
5 |
Прочие затраты |
450 |
5,978 |
|
Итого |
7526,96 |
100 |
Sn - Сумма по статьям издержек
Sn = 356,600 + 2786 + 724,36 + 3210 + 450 = 7526,96 руб.
Sмз = (356,600 / 7526,96) * 100 = 4,738%
Sопл = (2786 / 7526,96) * 100 = 37,014%
Sсн = (724,36 / 7526,96) * 100 = 9,623%
Sа = (3210 / 7526,96) * 100 = 42,647%
Sпр = (450 / 7526,96) * 100 = 5,978%
5. Техника безопасности при работе с ПК
5.1 Общие требования по технике безопасности
1. Инструкция предназначена для пользователей персональных компьютеров.
2. К работе с персональным компьютером допускаются лица: имеющие персональные навыки, изучившие руководство по эксплуатации персонального компьютера и знающие порядок включения и отключения электронных устройств; прошедшие вводный инструктаж, а также инструктаж по безопасности труда непосредственно на рабочем месте.
3. Профессиональные пользователи должны проходить обязательные предварительные (при поступлении на работу) и периодические медосмотры
4. К непосредственной работе с персональным компьютером допускаются лица, не имеющие медицинских противопоказаний.
5. Женщины со времени установления беременности и на период кормления ребенка грудью к выполнению всех видов работ, связанных с использованием персонального компьютера, не допускаются.
6. Работающие с персональным компьютером обязаны выполнять правила внутреннего распорядка, требования настоящей инструкции. Знать принцип работы компьютера и методику правильной его эксплуатации, знать возможные вредные производственные факторы, характерные для работы с компьютером (воздействие электромагнитного и электростатического попей, переутомление зрения, снижение его остроты и др.); сообщать руководителю работ или техническому персоналу обо всех неполадках в работе компьютера; знать приемы освобождения от действия электрического тока лиц, попавших под напряжение, и способы оказания им первой помощи, знать расположение средств пожаротушения и уметь ими пользоваться.
7. Следует иметь в виду, что:
- расстояние между рабочими столами с компьютерами в направлении тыла поверхности одного видеомонитора и экрана другого видеомонитора должно быть не менее 2 м, а расстояние между боковыми поверхностями видеомониторов - не менее 1.2м;
- для того чтобы освещение не создавало слепящих бликов на клавиатуре и других частях пульта, компьютер должен располагаться так, чтобы прямой свет не попадал на экран, иначе при работе с монитором будут быстро уставать глаза. Операторы не должны также сидеть лицом к окнам;
- верхний край экрана следует располагать на уровне глаз или чуть ниже;
- оптимальное расстояние от глаз до экрана 600-700 мм, но не ближе 500 мм;
- высота клавиатуры должна быть отрегулирована так, чтобы кисти рук держались прямо (возможно применение подставок для кистей рук);
- с целью снижения статического напряжения мышц шейно - плечевой области и спины для предупреждения развития утомления необходимо, чтобы рабочий стул кресло) позволял изменять позу, был подъемно - поворотным и регулируемым по высоте и углам наклона сидения и спинки от переднего сидения;
- кабели компьютера должны располагаться так, чтобы их нельзя было повредить неосторожным движением;
- для предотвращения образования и защиты от статического электричества, в помещении, где установлен компьютер, необходимо применять нейтрализаторы и увлажнители. Должна быть эффективная вентиляция и поддерживаться относительная влажность воздуха на уровне 40-60 % (можно разместить вблизи компьютера цветы или аквариум).
8. Для обеспечения оптимальной работоспособности и сохранения здоровья профессиональных пользователей, на протяжении рабочей смены должны устанавливаться регламентированные перерывы. Продолжительность непрерывной работы с персональным компьютером без регламентированного перерыва не должна превышать 2 часов.
9. При работе с персональным компьютером в ночную смену (c 22 до 6 часов), независимо от категории и вида трудовой деятельности, продолжительность регламентированных перерывов должна увеличиваться на 60 мин.
10. Невыполнение требований настоящей инструкции является нарушением производственной дисциплины. Виновные в этом несут ответственность, в порядке, установленном действующим законодательством.
5.2 Техника безопасности пи работе в компьютерном классе
- Строго выполнять правила техники безопасности и санитарно гигиенические нормы при работе.
- Выполнять команды преподавателя. Во время возникновения чрезвычайных ситуаций действовать по правилам общей техники безопасности, и обязательно обращаться к преподавателю.
- Приходить в кабинет всегда только в сменной обуви и без верхней одежды.
- Работать только чистыми сухими руками.
- Не размещать ни каких предметов на устройствах компьютера (мониторе, системном блоке, клавиатуре, мыши и т.д.).
- Не есть в кабинете, в том числе и за рабочими местами у компьютеров.
- За компьютером выполнять только те задания, которые предложены преподавателем.
- Не устанавливать никаких конфигураций в компьютере без разрешения преподавателя.
- Не пользоваться своими дискетами и компакт-дисками, без разрешения преподавателя.
- Закрывать все компьютерные окна и программы перед завершением своей работы, выключением компьютера.
Заключение
На текущий момент обучающие программы мало используются в современном образовании. Но у них есть множество плюсов, по сравнению с обычными способами изучения материалов. По прошествию времени обучающие программы будут внедрятся в образование и не исключено, что через определенное время всё образование будет основано на электронных пособиях, учебниках и обучающих программах. Обучающие программы - это еще один шаг на пути информатизации общества.
В дипломном проекте описаны все достоинства и недостатки разработанной программы, пошагово описаны способы и методы, которые использовались в ходе разработки.
Демонстрационно-обучающая программа по дисциплине «Электрические машины и трансформаторы» по теме «Асинхронные двигатели с короткозамкнутым ротором» для специальности 1001 отвечает поставленным требованиям. Программа успешно прошла тестирование. В дипломном проекте раскрыты возможности программы, а также рассмотрена теоретическая сторона поставленной задачи.
Литература
1. А.Я. Архангельский «Программирование Delphi 7», Москва, Издательство «БИНОМ»,2005г.;
2. С. Бобровский «Delphi 7», Санкт -Петербург, Издательство «ПИТЕР», 2003г.;
3. В.А. Благодатских, В.А. Волнин, К.Ф. Поскакалов «Стандартизация Разработки програмых средсв», учебное пособие, Москва, издательство «Финансы и статистика»,2003г.;
4. М. М. Кацман «Электрические машины», Москва, издательство «Высшая школа», 2000г;
5. С. Тайксейра, К. Пачеко «Delphi 5. Руководство программиста»
Приложение 1
Текст программы
unit opros_pas;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ExtCtrls, Jpeg, ComCtrls;
type
Tform_opros = class(TForm)
QNumLab: TLabel;
AskBut: TButton;
AskEd: TEdit;
ScoreLab: TLabel;
AskLab: TLabel;
QuePanel: TPanel;
VvedeniePanel: TPanel;
Vvedenie_v_testirovani: TMemo;
StartTesting: TButton;
Timer1: TTimer;
StatusBar1: TStatusBar;
PicBut: TButton;
VVT: TLabel;
QueRich: TRichEdit;
RadioGroup1: TPanel;
ScrollBox1: TScrollBox;
procedure FormCreate(Sender: TObject);
procedure NextQue(Sender:TObject);
procedure AskButClick(Sender: TObject);
procedure EndQuestions;
procedure StartTestingClick(Sender: TObject);
procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);
procedure LoadQue (sender:tobject;var quefile:string);
procedure SwapQue (i:integer);
procedure SelectQue;
procedure Timer(sec:integer);
procedure Timer1Timer(Sender: TObject);
procedure PicButClick(Sender: TObject);
function StrInStr(a,b:string):boolean;
procedure AskEdKeyPress(Sender: TObject; var Key: Char);
procedure DrawRadioBox(numq:integer);
procedure AskQueClick(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
type TQuest = record
Q : string;
A : array[1..9] of string;
P,N,M,T : byte;
Pic :string;
end;
var
que: array[1..100] of tquest;
form_opros: Tform_opros;
vr,score,maxq:byte;
numq:byte=0;
finish:boolean;
path:string;
time:integer;
pict:TPicture;
re:array of trichedit;
implementation
uses aut_pas, picview;
procedure Tform_opros.NextQue(Sender: TObject);
var i:byte;
begin
numq:=numq+1;
QNumLab.Caption:='Вопрос №'+inttostr(numq)+':';
QueRich.Clear;
QueRich.Lines.Add(que[numq].Q);
case QueRich.Lines.Count of
1: querich.Text:=#13#10#13#10+querich.text;
2,3: querich.Text:=#13#10+querich.text;
end;
ase que[numq].T of
0: begin
AskEd.Hide;
DrawRadioBox(numq);
RadioGroup1.Visible:=true;
end;
1: begin
AskEd.Text:='';
AskEd.Show;
RadioGroup1.Visible:=false;
end;
end;
if que[numq].P=1 then
begin
PicBut.show;
PicBut.SetFocus;
if FileExists(path+'\opros\'+que[numq].Pic) then //вставка картинки
pict.LoadFromFile(path+'\opros\'+que[numq].Pic)
else
pict.bitmap.Handle:=LoadBitmap(HInstance, 'NOPIC');
end
else
begin
picbut.Hide;
end;
end;
procedure Tform_opros.FormCreate(Sender: TObject);
begin
randomize;
Application.HintPause:=0;
Application.HintHidePause:=7500;
Form.Caption:='Выражаю благодарность всем тем, кто дочитал до этой строчки.';
Screen.HintFont.Name:='Times New Roman';}
VvedeniePanel.BringToFront;
path:=ExtractFilePath(Application.ExeName);
LoadQue(sender,quefile); //загрузка вопросов в массив que
pict:=tpicture.Create;
end;
procedure Tform_opros.AskButClick(Sender: TObject);
var s:string;
os:integer;
passed:char;
begin
//Проверка на выбранные ответы
case que[numq].t of
0: if radiogroup1.Tag=-1 then begin;showmessage('Выберите один из вариантов.');exit;end;
1: if AskEd.Text='' then begin;showmessage('Введите ответ.');asked.SetFocus;exit;end;
end;
passed:='N';
os:=score;
case que[numq].t of
0: if (radiogroup1.Tag+1=que[numq].m) then inc(score);
1:
begin
s:=asked.Text;
if length(s)>1 then
begin
while (s[length(s)]=' ')and(length(s)>1) do Delete(s,length(s),1);
while (s[1]=' ')and(length(s)>1) do Delete(s,1,1);
end;
if StrInStr(AnsiLowerCase(s),AnsiLowerCase(que[numq].a[1])) then inc(score);
end;
end; //окончание case of
if score=os+1 then passed:='Y';
//scorelab.caption:='Балл: '+inttostr(score);
if numq<maxq then
begin
buf:='#A'+chr(score)+chr(numq)+chr(maxq)+passed;
aut_form.ClientSocket1.Socket.SendBuf(buf,48);
nextque(sender)
end
else
begin
buf:='#C'+chr(score)+chr(numq)+chr(maxq)+passed;
aut_form.ClientSocket1.Socket.SendBuf(buf,48);
finish:=true;
EndQuestions;//кончились вопросы
end;
end;
procedure Tform_opros.EndQuestions;
var result:byte;
ms,s:string;
begin
Askbut.enabled:=false;
MessageDlg('Тестирование окончено. Результаты огласит преподаватель.',mtInformation,[mbOK],0);
{if score<>0 then //открывок кода закомментирован для отключения вывода оценки
begin
result:=round(3*score/numq);//вычисление оценки за опрос
case result of
0: s:='Неудовлетворительно';
1: s:='Удовлетворительно';
2: s:='Хорошо';
3: s:='Отлично!';
end;
ms:='Правильных ответов: '+inttostr(score)+' из '+inttostr(numq)+'. Ваша оценка: '+s+'.';
MessageDlg(ms,mtInformation,[mbOK],0);//вывод оценки
end
else MessageDlg('Вы не справились с опросом. У вас ни одного правильного ответа. Оценка: Неуд.',mtInformation,[mbOK],0);}
form_opros.close;
end;
procedure Tform_opros.StartTestingClick(Sender: TObject);
begin
StatusBar1.Show;
VvedeniePanel.visible:=false;
RadioGroup1.Enabled:=true;QueRich.Enabled:=true;AskEd.Enabled:=true;AskBut.Enabled:=true;
buf:='#S';
aut_form.ClientSocket1.Socket.SendBuf(buf,48);
nextque(self);
end;
procedure Tform_opros.FormCloseQuery(Sender: TObject;
var CanClose: Boolean);
var buf:string[47];
begin
if aut_form.ClientSocket1.active then
begin
if not(finish) then
begin
buf:='#E';
aut_form.ClientSocket1.Socket.SendBuf(buf,48);
end;
Aut_form.ClientSocket1.Active:=false;
end;
ut_form.close;
end;
procedure TForm_opros.LoadQue(Sender: TObject;var quefile:string);
var a,i,j:byte;
s:string;
qfile:textfile;
SList:TStringList;
xyz:byte;
begin
slist:=tstringlist.create;
AssignFile(qfile,PATH+'opros\'+quefile);
if FileExists(PATH+'opros\'+quefile+'_intro.txt') then Vvedenie_v_testirovani.Lines.LoadFromFile(PATH+'opros\'+quefile+'_intro.txt');
VVT.Caption:=Vvedenie_v_testirovani.Text;
reset(qfile);
while not(eof(qfile)) do //чтение файла в StringList
begin
readln(qfile,s);
inttostr(SList.Add(s));
end;
CloseFile(qfile);
if SList.Count=0 then begin showmessage('Файл вопросов неверный. Дальнейшее продолжение невозможно. Вызовите администратора.');halt;end;
s:=SList[0];
if ord(s[1])<>136 then begin showmessage('Файл вопросов неверный. Дальнейшее продолжение невозможно. Вызовите администратора.');halt;end;
xyz:=ord(s[2]);vr:=ord(s[3]);
delete(s,1,3);
StatusBar1.Panels[0].text:='Тема: '+s;
StatusBar1.Hint:='Тема: '+s;
for i:=1 to SList.Count-1 do //Код шифрования, xyz - смешение символа влево на заданную величину
begin
s:=SList[i];
for j:=1 to Length(s) do
begin
If (Ord(s[j])+xyz>=192)and(Ord(s[j])+xyz<=255) then
s[j]:=Chr(Ord(s[j])+xyz);
end;
SList[i]:=s;
end;
a:=0;i:=1;
while i<SList.Count do //Обработка StringList
begin
inc(a);
s:=SList[i];
while s='' do
begin
inc(i);
s:=SList[i];
if i=SList.Count then exit;
end;
que[a].N:=ord(s[2]); que[a].M:=ord(s[3]);
que[a].t:=ord(s[4]);que[a].p:=ord(s[5]);
inc(i);
if que[a].p=1 then begin que[a].pic:=SList[i];inc(i);end;
que[a].q:=SList[i];
inc(i);
case que[a].t of
0:
begin
for j:=1 to que[a].N do begin que[a].a[j]:=SList[i]; inc(i);end;
swapque(a);
end;
1:
begin
que[a].N:=1;
que[a].a[1]:=SList[i];
inc(i);
end;
end;
maxq:=a;
end;
if vr>0 then SelectQue; //выбираются случ. вопросы
end;
procedure TForm_opros.SelectQue; //код выбора вопросов
var i,m:byte;
x:set of byte;
temp:array [0..100] of tquest;
begin
x:=x-[0..255];
i:=0;
while i<vr do
begin
m:=(random(maxq)+1);
if not(m in x) then
begin
inc(i);
Include(x,m);
temp[i]:=que[m];
end;
end;
if i=vr then
begin
maxq:=i;
for i:=1 to vr do que[i]:=temp[i];
end
else
showmessage('Произошла ошибка в модуле выбора ответа SelectQue. Свяжитесь с администратором.');
end;
procedure TForm_opros.SwapQue(i:integer);//перестановка ответов, i - номер вопроса.
var temp,s:string;
a,b,j:integer;
begin
temp:=que[i].a[que[i].M];//запоминание правильного ответа
for a:=1 to que[i].n*10+2 do //само чередование
begin
b:=random(que[i].N-1)+1;
s:=que[i].a[b];
for j:=b to que[i].n-1 do
que[i].a[j]:=que[i].a[j+1];
que[i].a[que[i].n]:=s;
end;
for a:=1 to que[i].N do //выставляем "новый" верный ответ
if que[i].A[a]=temp then que[i].M:=a;
end;
procedure TForm_opros.Timer(sec:integer);
begin
if sec<=0 then
begin
statusbar1.Panels[1].Text:='Таймер выключен.';
Timer1.Enabled:=false;
end
else
begin
time:=sec;
statusbar1.Panels[1].Text:='Оставшееся время: '+inttostr(time div 60)+'мин. '+inttostr(time mod 60)+'сек.';
if not(timer1.enabled) then timer1.Enabled:=true;
end;
end;
procedure Tform_opros.Timer1Timer(Sender: TObject);
begin
time:=time-1;
statusbar1.Panels[1].Text:='Оставшееся время: '+inttostr(time div 60)+'мин. '+inttostr(time mod 60)+'сек.';
if time<=0 then
begin
statusbar1.Panels[1].Text:='Таймер выключен.';
Timer1.Enabled:=false;
end;
nd;
procedure Tform_opros.PicButClick(Sender: TObject);
begin
PictureView.Image1.Picture:=pict;
PictureView.Show;
end;
function Tform_opros.StrInStr(a,b:string):boolean;
var s:string;
begin
result:=false;
s:=b;
repeat
if pos('/',s)>0 then
begin
if copy(s,1,pos('/',s)-1)=a then begin result:=true;exit;end;
delete(s,1,pos('/',s));
end
else
begin
if a=s then result:=true;
end;
until length(s)=0;
end;
procedure Tform_opros.AskEdKeyPress(Sender: TObject; var Key: Char);
begin
if ord(key)=13 then AskBut.Click;
end;
procedure Tform_opros.DrawRadioBox(numq:integer);
Подобные документы
Основные характеристики современных автоматизированных обучающих систем. Требования к электронным образовательным ресурсам. Технологии создания электронных учебно-методических комплексов. Основные принципы применения компьютерных обучающих систем.
дипломная работа [2,1 M], добавлен 16.06.2015Методы и этапы создания автоматизированной обучающей системы по дисциплине "Программирование" для студентов ВУЗов. Описание и сравнение программ-аналогов. Выбор инструментальных средств и языка разработки. Проектирование интерфейса обучающей программы.
курсовая работа [4,4 M], добавлен 26.11.2010Анализ обучающих программ, систем для создания обучающих дисков, оценки качества обучающих систем, информационных технологий, состояния в области проектирования программных продуктов. Описание диаграммных методик. Разработка математической модели.
дипломная работа [1,7 M], добавлен 17.07.2009Роль компьютера в обучении. Реализация принципа наглядности в обучающих программах. Технология создания обучающей программы. Типы компьютерных тестов. Структуры линейной модели знаний. Графический экран системы Лого Миры. Форма записи алгоритма.
дипломная работа [3,8 M], добавлен 14.04.2014Информационные технологии в создании обучающих программ. Принципы построения тестирующих программ. Программы по высшей математике: ODE; Формула; "Математика". Методы решения дифференциальных уравнений в символьном виде. Модульность программного средства.
дипломная работа [488,2 K], добавлен 08.06.2011Разработка программного инструментария для разработки мультимедийных интерактивных обучающих систем, предназначенных для обучения правилам поведения в чрезвычайных ситуациях; интерактивной мультимедийной обучающей системы и редактора обучающих сценариев.
дипломная работа [3,0 M], добавлен 06.07.2012Использование обучающих программ для формирования знаний и умений по информатике. Главное окно среды программирования Delphi, окна дерева объектов и кода программы. Требования к оборудованию и описание обучающей программы "Информатика в играх и загадках".
курсовая работа [1,3 M], добавлен 03.05.2012Требования к обучающим электронным материалам, особенности использования программы "Осирис". Ее возможности, построение обучающих, тестирующих блоков. Просмотр результатов тестирований. Изучение электронного учебного материала по физике в среде "Осирис".
контрольная работа [2,5 M], добавлен 08.01.2010Общие сведения о миномётах, их конструкция, боевые качества и классификация. Структурное построение обучающих программ, их алгоритмы. Жизненные циклы программного продукта. Реализация функционирования программы и разработка пользовательского интерфейса.
курсовая работа [1,2 M], добавлен 06.11.2012Принципы построения автоматизированных обучающих систем, их классификация, обзор существующих вариантов. Описание социальной программы поддержки населения "Твой курс", проектирование информационной системы по обучению населения компьютерной грамотности.
курсовая работа [1,5 M], добавлен 12.09.2012