Алгоритм тестирования программы быстрой сортировки
Исторические предпосылки разработки тестирования. Виды электронных тестов и их роль в программировании. Этапы разработки программы для решения задачи быстрой сортировки. Пользовательский интерфейс, отладка, алгоритм программы. Файл теста в формате XML.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | курсовая работа |
Язык | русский |
Дата добавления | 27.01.2014 |
Размер файла | 1,5 M |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
Введение
тестирование программа сортировка
Актуальность
1) Практическое обоснование необходимости в программе
2) Имеются ли аналогичные программы и чем оригинальна ВАША
3) Актуальность задачи, которую решает ВАША программа
Объект: Технологии, методы и средства разработки программ на С++ в среде Visual Studio
Предмет: Алгоритмы быстрой сортировки
Цель: Разработка программы для решения задачи быстрой сортировки
Задачи:
1) Проанализировать методы и алгоритмы сортировки данных
2) Дать обзор средств и технологий программирования ….
3) Описать требования к программе, архитектуру и алгоритм программы
4) Разработать программный код и документацию
Глава 1. Основы теста
1.1 Историческая справка
Предыстория тестирования уходит в глубину веков, она связана с испытанием различных способностей, знаний, умений и навыков. Уже в середине третьего тысячелетия до нашей эры в Древнем Вавилоне проводились испытания выпускников в школах, где готовились писцы. Профессионально подготовленный писец был центральной фигурой месопотамской цивилизации, благодаря обширным по тем временам знаниям, он был обязан знать все четыре арифметических действия, уметь измерять поля, распределять рационы, делить имущество, владеть искусством пения и игры на музыкальных инструментах.
Кроме того, проверялось умение разбираться в тканях, металлах, растениях и др. В Древнем Египте только тот обучался искусству жреца, кто был способен выдержать систему определенных испытаний. Вначале кандидат в жрецы проходил собеседование, в процессе которого выяснялись его биографические данные, уровень образованности; кроме того, оценивались внешность, умение вести беседу. Затем следовали проверки умения трудиться, слушать и молчать, испытания огнем, водой, страхом преодоления мрачных подземелий в полном одиночестве и др.
В настоящее время тестирование широко применяется для оценки уровня знаний в учебных заведениях, при приеме на работу, для оценки квалификации персонала учреждений, т. е. практически во всех сферах деятельности человека. Испытуемому предлагается ряд вопросов, на которые он должен ответить.
Обычно к каждому вопросу дается несколько вариантов ответа, из которых надо выбрать правильный. Каждому варианту ответа соответствует некоторая оценка. Общий балл, на основе которого делается вывод об уровне подготовленности испытуемого, получается суммированием оценок за ответы.
1.2 Что такое тест
Возможности применения компьютера в учебном процессе, весьма многообразны. Он может служить для моделирования изучаемых явлений или систем, для реализации учебных игр, применяться для выполнения вычислений, для редактирования текстов, в качестве различного рода тренажеров, как инструмент автоматизации проектирования, программируемого управления экспериментами, как информационно-поисковая или экспертная система и, наконец, как средство практического обучения самой компьютерной технике и программированию.
В настоящее время уже создано множество средств обучения с помощью компьютера. Их можно квалифицировать следующим образом: компьютерные учебники, предметно-ориентированные среды (микромиры, моделирующие программы, учебные пакеты), лабораторные практикумы, тренажеры, контролирующие программы.
Тестирование - это процесс оценки соответствия личностной педагогической моделей знаний. Главная цель тестирования -обнаружении взаимного несоответствия этих моделей и оценка уровня их несоответствия.
Тестирование проводится с помощью специальных тестов, состоящих из определённого набора уровня несоответствия. Тестовое задание - это чёткое и ясное задание по конкретной предметной области, требующее однозначного определяемого ответа или выполнения определённого алгоритма действий.
Тест - набор взаимосвязанных тестовых заданий, позволяющих оценить соответствие знаний ученика, экспертной модели знаний предметной области. Класс эквивалентности - множество тестовых заданий, таких, что выполнение учащимся из них гарантирует выполнение других.
Тестовое пространство - множество различных тестовых заданий по всем модулям модели знаний.
Полный тест - подмножество тестового пространства, обеспечивающего объективную оценку соответствия между личностной и экспертной моделями знаний.
Эффективный тест - оптимальный по объёму и времени полный тест.
Тестирование выступает как педагогическое средство обучающей системы и может быть использовано как метод (технология) контроля образовательного процесса, позволяющий оценить уровень знаний, умений и навыков обучаемого.
Построение компьютерных тестов можно осуществить по следующим последовательным шагам:
1) Формализация экспертной целевой модели знаний;
2) Нисходящее проектирование тестового пространства;
3) Формирование и наполнение тестовых заданий;
4) Формирование полного компьютерного теста;
5) Тестовый эксперимент;
6) Выбор эффективного теста;
7) Анализ, корректировка и доводка теста до вида эксплуатации.
1.3 Виды электронных тестов
Для создания тестов по предметной области существуют и разрабатываются специальные инструментальные программы - оболочки, позволяющие вырабатывать компьютерные тесты путём формирования базы данных из набора тестовых заданий.
Инструментальные программы, позволяющие разрабатывать компьютерные тесты, можно разделить на два класса: универсальные и специализированные.
Универсальные программы содержат тестовую оболочку как составную часть. Среди них можно назвать системы «Адонис» (Москва), «Фея» (Томск), «Linkway». Специализированные тестовые оболочки предназначены исключительно для формирования тестов. Это «Аист», «Тестум», и др.
В большинстве случаев тестовые оболочки построены на принципах однозначного распознавания ответов тестируемого: выбор, шаблонный ответ, конструирование ответа. Однако во многих тестовых заданиях, особенно по математическим дисциплинам, необходимо решать проблему распознавания вариативных ответов.
Другим важным свойством тестовых оболочек должно быть наличие возможности передачи результатов и протокола тестирования какому-либо статистическому пакету для дальнейшей обработки, что в существующих тестовых оболочках представлено не полно.
По всей видимости, для решения этих и других проблем создания эффективных тестов целесообразно разрабатывать интегрированные программные среды, включающие в себя пакеты с различными инструментальными средствами. Так, например, для создания математических тестов была разработана интегрированная среда, в которой сопряжены система компьютерной алгебры (СКА) и интерактивная система Link Way.
1.4 Тест как форма контроля знаний
Различают два метода контроля - субъективный и объективный. Субъективный метод контроля означает выявление, измерение и оценку знаний, умений, навыков, исходящую из личных представлений экзаменатора. Этот метод оценки знаний пригоден для итогового контроля, так как не обладает необходимой точностью и воспроизводимостью результатов. Под объективным контролем подразумевают контроль, который обладает необходимой точностью, воспроизводимостью результатов. Инструментом, который позволяет объективно оценивать качество усвоения, является критериально-ориентировочный тест, сочетающий в себе контрольное задание и эталон, по которому можно судить по качеству усвоения.
Тесты - это задание, состоящее из ряда вопросов и нескольких вариантов ответа на них для выбора в каждом случае одного верного. С их помощью можно получить, например, информацию об уровне усвоения элементов знаний, о сформированности умений и навыков учащихся по применению знаний в различных ситуациях. Тест тем принципиально отличается от привычного контроля знаний, что к нему (заданию) заранее приготовлен эталон, с которым сравнивают ответ студента.
Достоинство:
Главное достоинство тестовой проверки в скорости, а традиционной проверки посредством дидактических материалов - в ее основательности.
Недостатки:
Если результаты своей работы учащийся представляет только номера ответа, тут учитель не видит характера хода решения - мыслительная деятельность учащегося и результат может быть только вероятностным. Гарантии наличия у учащегося знаний нет;
К недостаткам тестов также относят возможность угадывания.
Если, например, тестовое задание содержит только два ответа, один из которых правильный, то половину ответов на такие тестовые задания можно угадать.
Виды тестов:
Тесты бывают разных видов:
Тесты с однозначным выбором ответа. На каждое задание предлагается несколько вариантов ответа, из которых только один верный.
Тест с многозначным ответом. В варианты ответа может быть внесено более верного ответа, но в разных видах.
Тесты на дополнение. В этих тестах задания оформляются с пропущенными словами или символами. Пропущенное место должно быть заполнено.
Тесты перекрестного выбора. В них предлагается сразу несколько заданий и несколько ответов к ним. Количество ответов рекомендуется планировать несколько больше, чем заданий. Эти тесты также могут быть однозначными и многозначными.
Глава 2. Этапы разработки программы
Определение требований к программе - один из важнейших этапов. На этом этапе подробно описывается исходная информация, и формулируются требования к результату. Кроме того, описывается поведение программы в особых случаях.
При разработке программы, предназначенной для работы в Windows, требования к ней могут включать пункты о желаемом виде диалоговых окон программы. На этапе разработки алгоритма необходимо определить последовательность действий, которые надо выполнить для достижения поставленной цели, получения результата.
Если задача может быть решена различными способами, и, следовательно, возможны различные варианты алгоритма решения, то, программист, используя некоторый критерий, выбирает наиболее подходящее решение. Затем составляется подробное составление алгоритма.
2.1 Постановка задачи
Поставленная задача заключалась в следующем. Необходимо создать программу для проведения текстовых проверок знаний в форме тестирования.
2.2 Язык программирования C#
C# (произносится си-шарп) -- язык программирования, сочетающий объектно-ориентированные и контекстно-ориентированные концепции. Разработан в 1998--2001 годах группой инженеров под руководством Андерсa Хейлсбергa в компании Microsoft как основной язык разработки приложений для платформы Microsoft .NET.
В последнее время в общем объеме вновь создаваемого программного обеспечения различного назначения увеличивается доля .NET-приложений - программ, ориентированных на платформу Microsoft .NET. Это объясняется, прежде всего, новыми возможностями, которые предоставляет платформа прикладным программам, а также тем, что технология .NET поддерживается новейшими операционными системами.
Microsoft .NET - это технология, в основе которой лежит идея универсального программного кода, который может быть выполнен любым компьютером, в не зависимости от используемой операционной системы. Универсальность программного кода обеспечивается за счет предварительной (выполняемой на этапе разработки) компиляции исходной программы в универсальный промежуточный код(CIL -код,
Common Intermediate Language), который во время загрузки транслируется в выполняемый. Преобразование промежуточного кода в выполняемый осуществляет JIT-компилятор(от Jast In Time - в тот же момент, «на лету»), являющийся элементом виртуальной выполняющей системы(Virtual Execution System, VES). Работу .NET-приложений в операционной системе Windows обеспечивает Microsoft .NET Framework.
Среда разработки Microsoft Visual C# является инструментом разработки .NET приложений для Windows. В ней интегрированы удобный дизайнер форм, специализированный редактор кода, отладчик, мастер публикации и другие инструменты, необходимые программисту.
C# относится к семье языков с C-подобным синтаксисом, из них его синтаксис наиболее близок к C++ и Java. Язык имеет строгую статическую типизацию, поддерживает полиморфизм, перегрузку операторов, указатели на функции-члены классов, атрибуты, события, свойства, исключения, комментарии в формате XML. Переняв многое от своих предшественников -- языков C++, Delphi, Modula и Smalltalk -- С#, опираясь на практику их использования, исключает некоторые модели, зарекомендовавшие себя как проблематичные при разработке программных систем: так, C# не поддерживает множественное наследование классов (в отличие от C++) или вывода типов (в отличие от Haskell).
2.3 Пользовательский интерфейс
Программа тестирования запускается из командной строки где параметром теста служит файл в формате XML. При запуске теста, показывается название программы и кнопка “ОК”. После нажатия этой кнопки начинается сам тест, при этом откроется новое окно, а старое закроется. После нажатии кнопки “ОК” на форме отобразится вопрос и три варианта ответа, выбор варианта ответа производится кликом
мыши. Продолжение тестирования производится кнопкой “ОК”, при этом на форме будут отображаться новые вопросы и три варианта ответа. По окончании теста, программа подсчитывает общее количество правильных ответов, а так же общее количество правильных ответов по разделам и выставляет на их основе оценку тестируемого.
Глава 3. Тестирование программы
Отладка ПС (программные средства) это деятельность, направленная на обнаружение и исправление ошибок в ПС с использованием процессов выполнения его программ. Тестирование ПС это процесс выполнения его программ на некотором наборе данных, для которого заранее известен результат применения или известны правила поведения этих программ. Указанный набор данных называется тестовым или просто тестом. Таким образом, отладку можно представить в виде многократного повторения трех процессов: тестирования, в результате которого может быть констатировано наличие в ПС ошибки, поиска места ошибки в программах и документации ПС и редактирования программ и документации с целью устранения обнаруженной ошибки. Другими словами:
Отладка = Тестирование + Поиск ошибок + Редактирование
В зарубежной литературе отладку часто понимают только как процесс поиска и исправления ошибок (без тестирования), факт наличия которых устанавливается при тестировании. Иногда тестирование и отладку считают синонимами. В нашей стране в понятие отладки обычно включают и тестирование, поэтому мы будем следовать сложившейся традиции.
Тестирование - процесс многократного повторения программы с целью обнаружения ошибок. Тестирование - составная часть отладки.
Отладка имеет место тогда, когда программа со всей
очевидностью работает неправильно. Поэтому отладка начинается всегда в предвидении отказа программы. Если же оказывается, что программа работает верно, то она тестируется. Часто случается так, что после прогона тестов программа вновь подвергается отладке. Таким образом, тестирование устанавливает факт наличия ошибки, а отладка выявляет ее причину.
Основная цель выделения отладки и тестирования как отдельных этапов создания программы заключается в том, чтобы обратить внимание обязательности обеих стадий и на необходимость специального планирования временных затрат по каждой из них в отдельности.
Нельзя гарантировать, что тестированием можно установить наличие каждой имеющейся в ПС ошибки. Поэтому возникает две задачи. Первая задача: подготовить такой набор тестов и применить к ним ПС, чтобы обнаружить в нем по возможности большее число ошибок. Однако чем дольше продолжается процесс тестирования (и отладки в целом), тем большей становится стоимость ПС. Отсюда вторая задача: определить момент окончания отладки ПС (или отдельной его компоненты). Признаком возможности окончания отладки является полнота охвата пропущенными через ПС тестами (т.е. тестами, к которым применено ПС) множества различных ситуаций, возникающих при выполнении программ ПС, и относительно редкое проявление ошибок в ПС на последнем отрезке процесса тестирования. Последнее определяется в соответствии с требуемой степенью надежности ПС, указанной в спецификации его качества.
Существуют следующие методы тестирования ПС:
Статическое тестирование - ручная проверка программы за столом.
Детерминированное тестирование - при различных комбинациях исходных данных.
Стохастическое - исходные данные выбираются произвольно, на выходе определяется качественное совпадение результатов или примерная оценка.
Имеется два подхода к тестированию:
Структурное тестирование - метод «белого ящика», тестируется логика программы, внутренняя структура программы.
Функциональное тестирование - метод «черного ящика»- тестируется спецификация, т.е. вход/выход без учета знаний о ее структуре.
В нашей стране различаются два основных вида отладки (включая тестирование): автономную и комплексную отладку ПС.
Автономная отладка ПС означает последовательное раздельное тестирование различных частей программ, входящих в ПС, с поиском и исправлением в них фиксируемых при тестировании ошибок. Она фактически включает отладку каждого программного модуля и отладку сопряжения модулей.
Комплексная отладка означает тестирование ПС в целом с поиском и исправлением фиксируемых при тестировании ошибок во всех документах (включая тексты программ ПС), относящихся к ПС в целом. К таким документам относятся определение требований к ПС, спецификация качества ПС, функциональная спецификация ПС, описание архитектуры ПС и тексты программ ПС.
(D:\University\ТП\курсач\TEST_4\exam\bin\Debug\exam.exe spb.xml)
Рис.1 Запуск программы из командной строки, где exam.exe-файл программы, spb.xml- файл теста
Рис. 2 Заглавное окно программы
(D:\University\ТП\курсач\TEST_4\exam\bin\Debug\exam.exe)
Рис.3 Тестирование программы на отсутствие параметра в командной строке
(D:\University\ТП\курсач\TEST_4\exam\bin\Debug\exam.exe ssd.xml)
Рис.4 Тестирование программы на отсутствие файла указанном в командной строке
Рис.5 Тестирование программы на ошибку чтения файла изображения текущего вопроса
Рис.6 Тестирование программы при 100% варианте неправильных ответов
Рис.7 Тестирование программы при 100% варианте правильных ответов
Рис.8 Тестирование программы при выборе только первого варианта ответа на все вопросы
Рис.9 Тестирование программы при выборе только второго варианта ответа на все вопросы
Рис.10 Тестирование программы при выборе только третьего варианта ответа на все вопросы
Глава 4. Алгоритм и листинг программы
4.1 Алгоритм программы
4.2 Листинг программы
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace WindowsFormsApplication1
{
public partial class Form1 : Form
{
string fpath; // путь к файлу теста
string fname; // файл теста
// XmlReader обеспечивает чтение данных xml-файла
System.Xml.XmlReader xmlReader;
string qw; // вопрос
// варианты ответа
string[] answ = new string[3];
string pic; // путь к файлу иллюстрации
int right; // правильный ответ (номер)
int otv; // выбранный ответ (номер)
int n; // количество правильных ответов
int nv; // общее количество вопросов
int mode; // состояние программы:
// 0 - начало работы;
// 1 - тестирование;
// 2 - завершение работы
int nv_5; //PWL
int nv_10;
int nv_15;
int nv_20;
int nv_25;
string qw_5;
string qw_10;
string qw_15;
string qw_20;
string qw_25;
int nv_temp;
int n1;
// конструктор формы
// (см. также Program.cs )
public Form1(string[] args)
{
InitializeComponent();
radioButton1.Visible = false;
radioButton2.Visible = false;
radioButton3.Visible = false;
// имя файла теста должно быть указано
// в качестве парамета команды запуска программы
if (args.Length > 0)
{
// указано только имя файла теста
if (args[0].IndexOf(":") == -1) {
fpath = Application.StartupPath + "\\";
fname = args[0];
}
else
{
// указан путь к файлу теста
fpath = args[0].Substring(0,args[0].LastIndexOf("\\")+1);
fname = args[0].Substring(args[0].LastIndexOf("\\")+1);
}
try
{
// получаем доступ к xml-документу
xmlReader = new System.Xml.XmlTextReader(fpath + fname);
xmlReader.Read();
mode = 0;
n = 0;
// загрузить заголовок теста
this.showHead();
// загрузить описание теста
this.showDescription();
}
catch(Exception exc)
{
pictureBox1.Visible = false;
label1.Text = "Ошибка доступа к файлу " +
fpath + fname;
MessageBox.Show("Ошибка доступа к файлу.\n" +
fpath + fname + "\n",
"Экзаменатор",
MessageBoxButtons.OK,
MessageBoxIcon.Error);
mode = 2;
}
}
else
{
pictureBox1.Visible = false;
label1.Text =
"Файл теста необходимо указать " +
"в команде запуска программы.\n" +
"Например: 'exam economics.xml' " +
"или 'exam c:\\spb.xml'.";
mode = 2;
}
}
// выводит название (заголовок) теста
private void showHead()
{
// ищем узел <head>
do xmlReader.Read();
while(xmlReader.Name != "head");
// считываем заголовок
xmlReader.Read();
// вывести название теста в заголовок окна
this.Text = xmlReader.Value;
pictureBox1.Image =
new Bitmap("begin.jpg");
// выходим из узла <head>
xmlReader.Read();
}
// выводит описание теста
private void showDescription()
{
// ищем узел <description>
do
xmlReader.Read();
while(xmlReader.Name != "description");
// считываем описание теста
xmlReader.Read();
// выводим описание теста
label1.Text = xmlReader.Value;
// выходим из узла <description>
xmlReader.Read();
// ищем узел вопросов <qw>
do
xmlReader.Read();
while(xmlReader.Name != "qw");
// входим внутрь узла
xmlReader.Read();
}
// читает вопрос из файла теста
private Boolean getQw() {
// считываем тэг <q>
xmlReader.Read();
if (xmlReader.Name == "q")
{
// здесь прочитан тэг <q>,
// атрибут text которого содержит вопрос, а
// атрибут src - имя файла иллюстрации.
// извлекаем значение атрибутов:
qw = xmlReader.GetAttribute("text");
pic = xmlReader.GetAttribute("src");
if (!pic.Equals(string.Empty)) pic = fpath + pic;
// входим внутрь узла
xmlReader.Read();
int i = 0;
// считываем данные узла вопроса <q>
while (xmlReader.Name != "q")
{
xmlReader.Read();
// варианты ответа
if (xmlReader.Name == "a")
{
// запоминаем правильный ответ
if (xmlReader.GetAttribute("right") == "yes")
right = i;
// считываем вариант ответа
xmlReader.Read();
if (i < 3) answ[i] = xmlReader.Value;
// выходим из узла <a>
xmlReader.Read();
i++;
}
}
// выходим из узла вопроса <q>
xmlReader.Read();
return true;
}
// если считанный тэг не является
// тэгом вопроса <q>
else
return false;
}
// выводит вопрос и варианты ответа
private void showQw() {
// выводим вопрос
label2.Text = qw;
// иллюстрация
if (pic.Length != 0)
{
try
{
pictureBox1.Image =
new Bitmap(pic);
pictureBox1.Visible = true;
radioButton1.Top = pictureBox1.Bottom + 16;
}
catch
{
if (pictureBox1.Visible)
pictureBox1.Visible = false;
label1.Text +=
"\n\n\nОшибка доступа к файлу " + pic + ".";
radioButton1.Top = label1.Bottom + 8;
}
}
else
{
if (pictureBox1.Visible)
pictureBox1.Visible = false;
radioButton1.Top = label1.Bottom;
}
// показать варианты ответа
radioButton1.Text = answ[0];
radioButton2.Top = radioButton1.Top + 24;;
radioButton2.Text = answ[1];
radioButton3.Top = radioButton2.Top + 24;;
radioButton3.Text = answ[2];
radioButton4.Checked = true;
button1.Enabled = false;
}
// щелчок на кнопке выбора ответа
// функция обрабатывает событие Click
// компонентов radioButton1 - radioButton3
private void radioButton1_Click(object sender, EventArgs e)
{
if ((RadioButton)sender == radioButton1) otv = 0;
if ((RadioButton)sender == radioButton2) otv = 1;
if ((RadioButton)sender == radioButton3) otv = 2;
button1.Enabled = true;
}
// щелчок на кнопке Ok
private void button1_Click_1(object sender, EventArgs e)
{
switch (mode)
{
case 0: // начало работы программы
radioButton1.Visible = true;
radioButton2.Visible = true;
radioButton3.Visible = true;
this.getQw();
this.showQw();
mode = 1;
button1.Enabled = false;
radioButton4.Checked = true;
break;
case 1:
nv++;
// правильный ли ответ выбран
if (otv == right) { n++; n1++; }
switch (nv) //PWL
{
case 5: nv_temp = n; nv_5 = nv_temp; qw_5 = qw; nv_temp = 0; n1=0; break;
case 10: nv_temp = n1; nv_10 = nv_temp; qw_10 = qw; nv_temp = 0; n1=0; break;
case 15: nv_temp = n1; nv_15 = nv_temp; qw_15 = qw; nv_temp = 0; n1=0; break;
case 20: nv_temp = n1; nv_20 = nv_temp; qw_20 = qw; nv_temp = 0; n1=0; break;
case 25: nv_temp = n1; nv_25 = nv_temp; qw_25 = qw; nv_temp = 0; n1=0; break;
}
if (this.getQw()) this.showQw();
else {
// больше вопросов нет
radioButton1.Visible = false;
radioButton2.Visible = false;
radioButton3.Visible = false;
pictureBox1.Visible = false;
// обработка и вывод результата
this.showLevel();
// следующий щелчок на кнопке Ok
// закроет окно программы
mode = 2;
}
break;
case 2: // завершение работы программы
this.Close(); // закрыть окно
break;
}
}
// выводит оценку
private void showLevel()
{
// ищем узел <levels>
do
xmlReader.Read();
while (xmlReader.Name != "levels");
// входим внутрь узла
xmlReader.Read();
// читаем данные узла
while (xmlReader.Name != "levels")
{
xmlReader.Read();
if (xmlReader.Name == "level")
// n - кол-во правильных ответов,
// проверяем, попадаем ли в категорию
if (n >= System.Convert.ToInt32(
xmlReader.GetAttribute("score")))
break;
}
// выводим оценку
label2.Text = " ";
label1.Text =
"Тестирование завершено.\n" +
"Всего вопросов: " + nv.ToString() + ". " +
"Правильных ответов: " + n.ToString() + ".\n" +
xmlReader.GetAttribute("text");
label3.Text =
qw_5 + " - правильных ответов " + nv_5 + " из 5" + ".\n" +
qw_10 + " - правильных ответов " + nv_10 + " из 5" + ".\n" +
qw_15 + " - правильных ответов " + nv_15 + " из 5" + ".\n" +
qw_20 + " - правильных ответов " + nv_20 + " из 5" + ".\n" +
qw_25 + " - правильных ответов " + nv_25 + " из 5" + ".\n";
}
private void pictureBox1_Click(object sender, EventArgs e)
{
}
}
}
4.3 Файл теста в формате XML
<?xml version="1.0" encoding="utf-8"?>
<test>
<head>Экзаменатор</head>
<description> </description>
<qw>
<q text="Общие вопросы " src="01.jpg">
<a right="no">ASII</a>
<a right="yes">Unicode</a>
<a right="no">KOI-8</a>
</q>
<q text="Общие вопросы " src="02.jpg">
<a right="yes">Всегда</a>
<a right="no">Никогда</a>
<a right="no">Только при работе с Internet</a>
</q>
<q text="Общие вопросы " src="03.jpg" >
<a right="no">Button</a>
<a right="yes">Click</a>
<a right="no">Mouse</a>
</q>
<q text="Общие вопросы " src="04.jpg" >
<a right="yes">Да</a>
<a right="no">Нет</a>
<a right="no">Можно только один раз</a>
</q>
<q text="Общие вопросы " src="05.jpg" >
<a right="no">Справочная система для C#</a>
<a right="no">Модуль для работы с Internet</a>
<a right="yes">Библиотека классов</a>
</q>
<q text="Типы данных " src="11.jpg" >
<a right="no">520H</a>
<a right="yes">-520</a>
<a right="no">52,2</a>
</q>
<q text="Типы данных " src="12.jpg" >
<a right="no">32 байта</a>
<a right="yes">32 бита</a>
<a right="no">32 Кбит</a>
</q>
<q text="Типы данных " src="13.jpg" >
<a right="no">Цифры и знаки препинания использовать нельзя</a>
<a right="no">Нельзя использовать знаки препинания</a>
<a right="yes">Любые символы алфавита, цифры и знаки препинания</a>
</q>
<q text="Типы данных " src="14.jpg" >
<a right="yes">bool</a>
<a right="no">logical</a>
<a right="no">digital</a>
</q>
<q text="Типы данных " src="15.jpg" >
<a right="yes">-128..127</a>
<a right="no">0..255</a>
<a right="no">-2^63..2^63</a>
</q>
<q text="Синтаксис и компоненты " src="21.jpg" >
<a right="yes">В любых случаях</a>
<a right="no">Нельзя использовать русские символы</a>
<a right="no">Только, если установлена русская версия C#</a>
</q>
<q text="Синтаксис и компоненты " src="22.jpg" >
<a right="yes">\n</a>
<a right="no">\f</a>
<a right="no">\r</a>
</q>
<q text="Синтаксис и компоненты " src="23.jpg" >
<a right="yes">//</a>
<a right="no">**</a>
<a right="no">\\</a>
</q>
<q text="Синтаксис и компоненты " src="24.jpg" >
<a right="yes">ListBox</a>
<a right="no">GroupBox</a>
<a right="no">TextBox</a>
</q>
<q text="Синтаксис и компоненты " src="25.jpg" >
<a right="no">CheckBox</a>
<a right="yes">GroupBox</a>
<a right="no">ComboBox</a>
</q>
<q text="Операторы и функции " src="31.jpg" >
<a right="no">Бесконечный цикл</a>
<a right="no">Один раз</a>
<a right="yes">Ни разу</a>
</q>
<q text="Операторы и функции " src="32.jpg" >
<a right="no">Celling(n)</a>
<a right="no">Sign(n)</a>
<a right="yes">Sqrt(n)</a>
</q>
<q text="Операторы и функции " src="33.jpg" >
<a right="no">@</a>
<a right="yes">?</a>
<a right="no">$</a>
</q>
<q text="Операторы и функции " src="34.jpg" >
<a right="no">Сложение по MOD 2</a>
<a right="no">Декременту</a>
<a right="yes">Инкременту</a>
</q>
<q text="Операторы и функции " src="35.jpg" >
<a right="yes">%</a>
<a right="no">$</a>
<a right="no">#</a>
</q>
<q text="Классы " src="41.jpg" >
<a right="no">class_open</a>
<a right="yes">class</a>
<a right="no">cls</a>
</q>
<q text="Классы " src="42.jpg" >
<a right="no">Только строчные, пробелы допускаются</a>
<a right="no">Любые строчные и прописные, пробелы допускаются</a>
<a right="yes">Любые строчные и прописные, пробелы не допускаются</a>
</q>
<q text="Классы " src="43.jpg" >
<a right="no">Class {}</a>
<a right="no">Name Class {}</a>
<a right="yes">Class Name{}</a>
</q>
<q text="Классы " src="44.jpg" >
<a right="yes">Да</a>
<a right="no">Да, если это единственный класс в проекте</a>
<a right="no">Нет</a>
</q>
<q text="Классы " src="45.jpg" >
<a right="yes">Один раз при первом создании экземпляра класса</a>
<a right="no">Строгий порядок вызова не определен</a>
<a right="no">Статических конструкторов в C# нет</a>
</q>
</qw>
<levels>
<level score="25" text="Оценка - ОТЛИЧНО."/>
<level score="20" text="Оценка - ХОРОШО."/>
<level score="15" text="Оценка - УДОВЛЕТВОРИТЕЛЬНО."/>
<level score="0" text="Оценка - НЕ УДОВЛЕТВОРИТЕЛЬНО"/>
</levels>
</test>
Заключение
В настоящее время в нашу жизнь широко внедряются информационные технологии. На сегодняшний день, наверное, не осталось такой области, где бы они ни применялись. Данная программа тестирования может применяться для оценки уровня знаний по любому предмету в школах, ВУЗах, техникумах или для оценки собственных познаний. Пользовательский интерфейс данной программы делает её простой, понятной и доступной.
Литература
1. Культин Н.Б. “Visual C# в задачах и примерах” Спб.: БХВ-Петербург, 2009.
2. Зубкова Т.М. “Технология разработки программного обеспечения: Учебное пособие” - Оренбург: ГОУ ОГУ, 2004.
3. Карли Уотсон, Кристиан Нейгел, Якоб Хаммер Педерсен, Джон Д.Рид, Морган Скиннер, Эрик Уайт ”Visual C# 2008 - Базовый курс”: «Диалектика» Москва- Спб-Киев - 2009.
4. Панкратова Л.П., Челак Е.Н. Контроль знаний по информатике: тесты, контрольные задания, экзаменационные вопросы, компьютерные проекты. - Спб.: БХВ-Петербург, 2004.
5. Лабор В.В. ”Си Шарп: Создание приложений для Windows” - Минск: «Харвест», 2003.
Размещено на Allbest.ru
Подобные документы
Понятие алгоритма и сортировки. Способы и алгоритмы сортировки массивов. Быстрая сортировка Хоара. Описание алгоритма "быстрой сортировки". Реализация на языке программирования. Анализ наихудшего разбиения. Вероятностные алгоритмы быстрой сортировки.
курсовая работа [291,5 K], добавлен 22.03.2012Исследование основных особенностей алгоритмов быстрой и поразрядной сортировки данных. Построение графиков зависимости времени сортировки от количества элементов в файле и от степени перемешенности элементов. Описания сортировки чисел и строковых данных.
лабораторная работа [1,2 M], добавлен 23.07.2012Обработка массивов элементов любого типа как главное назначение алгоритмов сортировки. Анализ наиболее используемых алгоритмов сортировки: пузырьком, выбором, вставками, методом Шелла и быстрой сортировкой. Основные требования к алгоритмам сортировки.
реферат [189,8 K], добавлен 06.12.2014Содержательная и формальная (математическая) постановка задачи. Разработка алгоритма решения задачи. Структуры программы и алгоритмы программных модулей, их описание. Решение задачи на конкретном примере. Разработка системы тестов и отладка программы.
курсовая работа [882,1 K], добавлен 24.11.2014Математическая постановка задачи для алгоритмизации, рекуррентная зависимость. Алгоритм решения задачи, блок-схема программы. Тестовые данные для тестирования программы. Результаты, соответствующие для первых вводимых данных и листинг программы.
контрольная работа [27,0 K], добавлен 09.05.2012GetMatrDop как процедура определяет значение элемента транспонированной матрицы дополнений. Знакомство с этапами разработки в среде Turbo Pascal программы сортировки элементов, находящихся на главной диагонали матрицы. Особенности тестирования программы.
курсовая работа [780,4 K], добавлен 20.11.2014Проектирование программы в среде Delphi для тестирования знаний студентов по программированию, с выводом оценки по окончанию тестирования. Разработка экранных форм и алгоритма программы. Описание программных модулей. Алгоритм процедуры BitBtn1Click.
курсовая работа [365,0 K], добавлен 18.05.2013Разработка программы для тестирования студентов в интегрированной среде разработки Lazarus. Создание формы, отображение графического изображения, выхода, ответа, завершения теста. Процесс выбора ответа студентом. Исходный вид программы тестирования.
курсовая работа [388,4 K], добавлен 23.12.2014Особенности разработки программы и выбор методов решения задачи. Составление алгоритма, распределение регистров программы и формирование файлов. Описание процедуры очистки памяти, сложения, вычитания, умножения. Тестирование и листинг программы.
лабораторная работа [51,2 K], добавлен 14.05.2011Разработана программа решения двух задач на языке программирования Turbo Pascal. Спецификация задания. Описание входных и выходных данных. Математическая постановка задачи. Алгоритм ее решения. Описание и блок-схема программы. Результаты тестирования.
курсовая работа [275,8 K], добавлен 28.06.2008