Крупник А. Изучаем Си./ А.Крупник – Питер:БХВ,2001 г.-233 с.

Введение

 

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

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

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

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

Запись исходных текстов программ при помощи языков программирования облегчает понимание и редактирование человеком. Этому, в частности, помогают комментарии, допустимые в синтаксисе большинства языков. Для выполнения на компьютере готовый текст программы преобразуется (компилируется) в машинный.

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

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

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

Задачами данного проекта являются:

1) Обеспечение универсальности функций тестирования.

2) Обеспечение стабильной работы.

3) Сделать программу максимально простой.

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

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

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

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

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

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

Основные преимущества программ для тестирования:есплатная программа тестирование студент

1) В некоторых программах такого рода в каждый пункт теста можно ввести не одно, а много понятий, за счет чего информационная емкость задания повышается;

2) Обеспечение стандартизации;

3) Обеспечение индивидуальности, самостоятельность, способствуют обучению детей процессуальному самоконтролю;

4) Обеспечение возможности преподавателю быстрой проверки знаний большого количества обучаемых по разным темам;

5) Тестирование - более справедливый метод, оно ставит всех учащихся в равные условия, как в процессе контроля, так и в процессе оценки, практически исключая субъективизм преподавателя.

6) Тестирование может включать в себя задания по всем темам курса. Это позволяет выявить знания учащегося по всему курсу, исключив элемент случайности при вытаскивании билета. При помощи тестирования можно установить уровень знаний учащегося по предмету в целом и по отдельным его разделам;

7) Способствуют большой накопляемости оценок;

8) Не создаёт тяжёлого чувства тревожности, как перед традиционной контрольной работой или экзаменом.

Тестирование имеет и ряд недостатков:

1) Исключение из процедуры контроля устного речевого компонента;

2) Снижение потребности выбора главного в прочитанном;

3) Тест не позволяет проверять и оценивать высокие, продуктивные уровни знаний, связанные с творчеством;

4) В тестировании присутствует элемент случайности (случайная ошибка, угадывание ответа);


1 Реализация поставленной задачи средствами Borland C++ Builder ХЕ 7

 

 

1.1 Описание работы с программой

 

C++ Builder представляет собой SDI-приложение, главное окно которого содержит настраиваемую инструментальную панель (слева) и палитру компонентов (справа). Помимо этого, по умолчанию при запуске C++ Builder появляются окно инспектора объектов (слева) и форма нового приложения (справа). Под окном формы приложения находится окно редактора кода.

Формы являются основой приложений C++ Builder. Создание пользовательского интерфейса приложения заключается в добавлении в окно формы элементов объектов C++ Builder, называемых компонентами. Компоненты C++ Builder располагаются на палитре компонентов, выполненной в виде многостраничного блокнота. Важная особенность C++ Builder состоит в том, что он позволяет создавать собственные компоненты и настраивать палитру компонентов, а также создавать различные версии палитры компонентов для разных проектов.

 

 

1.2 Компоненты C++ Builder

 

Компоненты разделяются на видимые (визуальные) и невидимые (невизуальные). Визуальные компоненты появляются во время выполнения точно так же, как и во время проектирования. Примерами являются кнопки и редактируемые поля. Невизуальные компоненты появляются во время проектирования как пиктограммы на форме. Они никогда не видны во время выполнения, но обладают определенной функциональностью (например, обеспечивают доступ к данным, вызывают стандартные диалоги Windows и др.)

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

Каждый компонент C++ Builder имеет три разновидности характеристик: свойства, события и методы.

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


1.3 Свойства компонентов

 

Свойства являются атрибутами компонента, определяющими его внешний вид и поведение. Многие свойства компонента в колонке свойств имеют значение, устанавливаемое по умолчанию (например, высота кнопок). Свойства компонента отображаются на странице свойств (Properties). Инспектор объектов отображает опубликованные (published) свойства компонентов. Помимо published-свойств, компоненты могут и чаще всего имеют общие (public), опубликованные свойства, которые доступны только во время выполнения приложения. Инспектор объектов используется для установки свойств во время проектирования. Список свойств располагается на странице свойств инспектора объектов. Можно определить свойства во время проектирования или написать код для видоизменения свойств компонента во время выполнения приложения.

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

 

 

1.4 События

 

Страница событий (Events) инспектора объектов показывает список событий, распознаваемых компонентом (программирование для операционных систем с графическим пользовательским интерфейсом, в частности, для Windows 95 или Windows NT пре полагает описание реакции приложения на те или иные события, а сама операционная система занимается постоянным опросом компьютера с целью выявления наступления какого-либо события). Каждый компонент имеет свой собственный набор обработчиков событий. В C++ Builder следует писать функции, называемые обработчиками событий, и связывать события с этими функциями. Создавая обработчик того или иного события, вы поручаете программе выполнить написанную функцию, если это событие произойдет.

Для того чтобы добавить обработчик событий, нужно выбрать на форме с помощью мыши компонент, которому необходим обработчик событий, затем открыть страницу событий инспектора объектов и дважды щелкнуть левой клавишей мыши на колонке значений рядом с событием, чтобы заставить C++ Builder сгенерировать прототип обработчика событий и показать его в редакторе кода. При этом автоматически генерируется текст пустой функции, и редактор открывается в том месте, где следует вводить код. Курсор позиционируется внутри операторных скобок { ... }. Далее нужно ввести код, который должен выполняться при наступлении события. Обработчик событий может иметь параметры, которые указываются после имени функции в круглых скобках.

 

 

1.5 Методы

 

Метод является функцией, которая связана с компонентом, и которая объявляется как часть объекта. Создавая обработчики событий, можно вызывать методы, используя следующую нотацию: ->, например:

Edit1->Show();

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

 

 

1.6 Менеджер проектов

 

Файлы, образующие приложение - формы и модули - собраны в проект. Менеджер проектов показывает списки файлов и модулей приложения и позволяет осуществлять навигацию между ними. Можно вызвать менеджер проектов, выбрав пункт меню View/Project Manager. По умолчанию вновь созданный проект получает имя Project1.cpp.

По умолчанию проект первоначально содержит файлы для одной формы и исходного кода одного модуля. Однако большинство проектов содержат несколько форм и модулей. Чтобы добавить модуль или форму к проекту, нужно щелкнуть правой кнопкой мыши и выбрать пункт New Form из контекстного меню. Можно также добавлять существующие формы и модули к проекту, используя кнопку Add контекстного меню менеджера проектов и выбирая модуль или форму, которую нужно добавить. Формы и модули можно удалить в любой момент в течение разработки проекта. Однако, из-за того, что форма связаны всегда с модулем, нельзя удалить одно без удаления другого, за исключением случая, когда модуль не имеет связи с формой. Удалить модуль из проекта можно, используя кнопку Remove менеджера проектов.

Если выбрать кнопку Options в менеджере проектов, откроется диалоговая панель опций проекта, в которой можно выбрать главную форму приложения, определить, какие формы будут создаваться динамически, каковы параметры компиляции модулей (в том числе созданных в Delphi, так как C++ Builder может включать их в проекты) и компоновки.

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

Разумеется, C++ Builder обладает встроенной системой контекстно-зависимой помощи, доступной для любого элемента интерфейса и являющейся обширным источником справочной информации о C++ Builder.

 

 

1.7 Создание приложений в C++ Builder

 

Первым шагом в разработке приложения C++ Builder является создание проекта. Файлы проекта содержат сгенерированный автоматически исходный текст, который становится частью приложения, когда оно скомпилировано и подготовлено к выполнению. Чтобы создать новый проект, нужно выбрать пункт меню File/New Application.

C++ Builder создает файл проекта с именем по умолчанию Project1.cpp, а также make-файл с именем по умолчанию Project1.mak. При внесении изменений в проект, таких, как добавление новой формы, C++ Builder обновляет файл проекта.

Проект или приложение обычно имеют несколько форм. Добавление формы к проекту создает следующие дополнительные файлы:

Файл формы с расширением .DFM, содержащий информацию о ресурсах окон для конструирования формы

Файл модуля с расширением .CPP, содержащий код на C++.

Заголовочный файл с расширением .H, содержащий описание класса формы.

Когда вы добавляете новую форму, файл проекта автоматически обновляется.

Для того чтобы добавить одну или более форм к проекту , выберите пункт меню File/New Form. Появится пустая форма, которая будет добавлена к проекту. Можно воспользоваться пунктом меню File/New, выбрать страницу Forms и выбрать подходящий шаблон из репозитория объектов.

Для того, чтобы просто откомпилировать текущий проект, из меню Compile нужно выбрать пункт меню Compile. Для того чтобы откомпилировать проект и создать исполняемый файл для текущего проекта, из меню Run нужно выбрать пункт меню Run. Компоновка проекта является инкрементной (перекомпилируются только изменившиеся модули).

Если при выполнении приложения возникает ошибка времени выполнения, C++ Builder делает паузу в выполнении программы и показывает редактор кода с курсором, установленным на операторе, являющемся источником ошибки. Прежде чем делать необходимую коррекцию, следует перезапустить приложение, выбирая пункт меню Run из контекстного меню или из меню Run, закрыть приложение и лишь затем вносить изменения в проект. В этом случае уменьшится вероятность потери ресурсов Windows.


2 Описание программы

 

2.1 Общие сведения

 

Тестирующая программа предназначена для проверки знаний учащихся.

Язык программирования С++

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

· Операционная система Windows XP/7

· Среда программирования Borland C++ Builder ХЕ 7

 

 

2.2 Назначение и область применения

 

Тестирующая программа предназначена для проверки знаний учащихся.

 

 

2.3 Функциональное назначение

 

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

 

 

2.4 Используемые технические и программные средства

Минимальные

Процессор не ниже Pentium-4

Оперативная память не менее 32 МБ

Свободная память на жестком диске не менее 300 Мб

Устройство считывания с компакт-диска +

Манипулятор «Мышь» +

Операционная система Windows /XP/7

 

2.5 Вызов и загрузка

Загрузка программы осуществляется с помощью ярлыка программы на рабочем или в меню Пуск «Tester.exe».

 

 

2.6 Входные данные

 

Входными данными для программы является текстовый документ с расширением .txt содержащий тест необходимый для прохождения.

 

2.7 Используемые компоненты

Создавая данную программу, я использовал такие компоненты как Button, Memo, Radiogroup, OpenDialog.

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

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

 

Button – используется для подтверждения ответа на вопрос и выводит следующий вопрос (рисунок 1). Если не выбран не один вариант ответа то выводиться окно с сообщением «Выберите один из вариантов ответа!» (рисунок 2).

Рисунок 1. Кнопка подтверждения ответа.

 

Рисунок 2. Сообщение об ошибке.

 

Код компонента:

 

void __fastcall TMF::ButtonNextClick(TObject *Sender)

{

if (AnswersBox->ItemIndex >= 0) {

if (CurrQueNumber < QueCountInExam) {

Next();

}

else

{

ShowResult();

}

}

else

{

ShowMessage("Выберите один из вариантов ответа!");

}

}

 

 

Memo – выводит на экран вопрос теста (рисунок 3).

Рисунок 3. Вопрос теста

 

RadioGroup - выводит на экран варианты ответа (рисунок 4).

 

Рисунок 4. Варианты ответа

 

MainMenu – меню программы. Имеет 3 раздела: файл, тестирование, настройка (Рисунок 5).

Файл – с помощью этого раздела открывается текстовый документ для последующего прохождения теста (Рисунок 6).

Тестирование – с помощью этого раздела меню начинается тестирование. Также можно остановить тестирование (Рисунок 7).

Настройка – в этом разделе меню можно задать количество вопросов. Также имеется опция смешивания вариантов ответа (рисунок 8).

 

Рисунок 5. Меню программы

 

Рисунок 6. Открытие текстового документа.

 

Рисунок 7. Начало тестирования.

 

Рисунок 8. Раздел настройки.

 

Код компонента

 

void __fastcall TMF::NOpenFileClick(TObject *Sender)

{

if (OpenFileDlg->Execute()) {

SourceData->LoadFromFile(OpenFileDlg->FileName);

CreateIndex();

MF->Caption = "Программа тестирования - " +

ExtractFileName(ChangeFileExt(OpenFileDlg->FileName, ""));

IsFileOpened = true;

}

}

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

void __fastcall TMF::NQue10Click(TObject *Sender)

{

QueCountInExam = 10;

NQue10->Checked = true;

}

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

void __fastcall TMF::NQue20Click(TObject *Sender)

{

QueCountInExam = 20;

NQue20->Checked = true;

}

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

void __fastcall TMF::NQue30Click(TObject *Sender)

{

QueCountInExam = 30;

NQue30->Checked = true;

}

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

void __fastcall TMF::NQue40Click(TObject *Sender)

{

QueCountInExam = 40;

NQue40->Checked = true;

}

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

void __fastcall TMF::NQue50Click(TObject *Sender)

{

QueCountInExam = 50;

NQue10->Checked = true;

}

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

void __fastcall TMF::NShuffleAnswersClick(TObject *Sender)

{

ShuffleAnswers = !ShuffleAnswers;

NShuffleAnswers->Checked = ShuffleAnswers;

}

 

2.8 Используемые библиотеки и функции

Библиотека визуальных компонентов (англ. Visual Component Library, VCL) — объектно-ориентированная библиотека для разработки программного обеспечения, разработанная компанией Borland (на данный момент поддерживается Embarcadero) для поддержки принципов визуального программирования. VCL входит в комплект поставки Delphi, C++ Builder и Embarcadero RAD Studio и является, по сути, частью среды разработки, хотя разработка приложений в этих средах возможна и без использования VCL. VCL предоставляет огромное количество готовых к использованию компонентов для работы в самых разных областях программирования, таких, например, как интерфейс пользователя (экранные формы и элементы управления — т. н. «контролы», «контроли»), работа с базами данных, взаимодействие с операционной системой, программирование сетевых приложений и прочее.

string.h — заголовочный файл стандартной библиотеки языка Си, содержащий функции для работы с нуль-терминированными строками и различными функциями работы с памятью.

Функции, объявленные в string.h, широко используются, так как являясь частью стандартной библиотеки, они гарантированно работают на всех платформах, поддерживающих Си. Кроме этого, строковые функции работают только с набором символов ASCII или его совместимыми расширениями, такими как ISO-8859-1; многобайтовые кодировки такие как UTF-8 будут работать, с отличием, что «длина» строки будет определяться как число байтов, а не число символов Юникода, которым они соответствуют. Несовместимые с ASCII строки обычно обрабатываются кодом описанным в wchar.h.

 

Функции

 

void ShowResult();

void Next();

int GetQueIDFEL(int QueID);

void PShuffleAnswers();

void LoadQAC(int QueID);

int GetCorrFromIndex(int QueID);

int GetAnsCountFromIndex(int QueID);

String TMF::GetAnsFromIndex(int QueID, int AnsID);

String GetQueFromIndex(int ID);

void CreateExamQueList();

bool IsInExamQueList(int Num);

void CreateIndex();

void StopTest();

void StartTest();


Заключение

 

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

Задачами данного проекта являлись:

1. Обеспечение универсальности функций тестирования (приведение программы к универсальному виду, о котором говорилось выше),

2. Обеспечение стабильной работы.

3. Сделать программу максимально простой.

Решение данной задачи помогло более глубоко и основательно изучить и укрепить на практике все тонкости и моменты среды программирования Borland C++ Builder ХЕ 7.

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

1. Работы с компонентами

2. Работы с циклами

3. Работы с различными типами переменных.

4. Работа с учебной литературой.

Программа написана на языке программирования С++, позволяющая проводить тестирование.

В дальнейшем планируется в данной программе осуществить выбор тестирования из списка. Добавить редактирование нужного вопроса или ответа.


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

1 Архангельский А.Я.C++ Builder 6./ А.Я.Архангельский-Питер:ДМК,2002 г. -263 с.

2 Литвиненко Н.А.Технология программирования на С++./ Н.А.Литвиенко-Питер:БХВ,2010 г.-281 с.

3 Мейерс С. Эффективное использование C++.50 рекомендаций по улучшению ваших программ и проектов. / С. Мейерс - Питер:ДМК,2006 г.-550 c.

4 Саттер А. Стандарты программирования на С++.101 правило и рекомендация. / А. Саттер - Вильямс,2005 г. – 286 c.

5 Шилдт Г. C++ Руководство для начинающих. / Г. Шилдт - Вильямс,2005 г.-395 c.

6 Шилдт Г. Искусство программирования на C++. / Г. Шилдт – Питер:БХВ,2005 г.-420 c.

Крупник А. Изучаем Си./ А.Крупник – Питер:БХВ,2001 г.-233 с.

8 Шлее Макс Профессиональное программирование на С++. / Макс Шлее – Питер:БХВ,2010 г.-883 с.