Разработка приложения 'Помощник экзаменатора'
Основные данные о работе
Версия
шаблона
|
2.1
|
Филиал
|
Нижегородский
филиал
|
Вид
работы
|
Курсовая
работа
|
Название
дисциплины
|
Программирование
на ЯВУ
|
Тема
|
Разработать
приложение «Помощник экзаменатора»
|
Фамилия
студента
|
Максимов
|
Имя
студента
|
Андрей
|
Отчество
студента
|
Владимирович
|
№
контракта
|
15000080601007
|
Содержание
Введение
.
Описание алгоритма
.1
Выбор состава технических и программных средств
.2
Разработка программы
.3
Спецификация программы
Описание
программы
Код
программы
Текст
программы. Часть 1
Текст
программы. Часть 2
Текст
программы. Часть 3
Заключение
Глоссарий
Список
использованной литературы
Приложение
А
Введение
Задание на курсовую работу по дисциплине
«Разработать приложение «Помощник экзаменатора»»
Назначение программы: Тестирование учеников.
Область применения: операционная система MS
Windows
По условию задания, необходимо разработать
приложение которое будет тестировать учеников. Вопросы хранятся в отдельном
файле.
1. Описание алгоритма
После запуска приложения необходимо выбрать сложность,
после чего при нажатии кнопки загружаются вопросы, на которые необходимо
ответить для прохождения теста. На тестирование даётся 5 минут. После загрузки
появляется первый вопрос, с момента появления вопроса начинается отсчёт
времени. По окончании 5 минут (из расчёта 5 минут на один тест) тест
блокируется, и по результатам ставиться оценка. Если тест сдан за 5 минут, то
тестирование закончено и выставляется оценка. Программа ставит «2» если менее
50% верных ответов, «3» если более 50% ответов верны, «4» если более 70% и «5»
если более 90% верно.
Так же предусмотрен вариант пробного
тестирование, результаты которого не учитываются при выставлении оценки. Если
введенный пароль верный (пароль: «пароль»). Во время пробного тестирования
верные ответы помечены красным цветом.
.1 Выбор состава технических и программных
средств
Для разработки данного проекта выбрана среда
программирования Delphi, т.к. она позволяет достаточно быстро создать
приложения для ОС Windows за счет упрощения разработки визуальной части
проекта.
Программа создавалась на персональном компьютере
следующих характеристик:
Процессор
Intel Pentium 4 3GHz500 Гб
ОЗУ DDR2 3 Гб
Видеокарта
Nvidia GeForce 430
ОС Windows 7
Так же полагаю, что для нормальной стабильной
работы данного приложения подойдут следующие технические параметры
персонального компьютера:
Процессор Pentium 100 (или выше)500 Мб (и выше)
ОЗУ не менее 32 Мб
ОС Windows 98 или выше
Представленных параметров будет вполне
достаточно для запуска разрабатываемого ПО. Дополнительного периферийного
оборудования не потребуется.
.2 Разработка программы
Для создания приложения «Экзаменатор» была
использована среда разработки Borland Delphi 6. Данный проект содержит одну
форму и 2 стандартных диалога PasswordDlg и AboutBox:
Рис.1
: Компонент Form1
Свойства
Caption
|
Экзаменатор
|
Position
|
poScreenCenter
|
Border
Style
|
bsSingle
|
2: Компонент RadioGroup1
Свойства
: Компонент BitBtn4
Свойства
Caption
|
Начать
|
ModalResult
|
mrAll
|
События
OnClickЗапуск
тестирования, загрузка вопросов
|
|
: Компонент BitBtn1
Свойства
CaptionПролистка
вопросов
|
|
ModalResult
|
mrOk
|
События
OnClick
|
Проверка
ответа, загрузка последующего вопроса
|
: Компонент MainMenu1
Свойства
Items
|
Фаил(N1)
Заново(N2) -------------(N3) Выход(N4) Настройки(N5) Тренировка(N6) Уровень
сложности(N7) О программе(N8) 1(N11) 2(N21) 3(N31) 4(N41) 5(N51)
|
События
N4Click
|
Выход
из приложения
|
N8Click
|
Вывод
информации о программе
|
N11Click
|
Выбор
уровня, используется для всех уровнях
|
N6Click
|
Ввод
пароля, запускает трен. режим
|
: Компонент BitBtn2
Свойства
Caption
|
Закончить
|
ModalResult
|
mrIgnore
|
События
OnClick
|
Выход
из программы
|
: Компонент RadioGroup2
Свойства
Caption
|
Информация
о тесте
|
: Компонент Timer1
События
OnTimer
|
Ведется
счет времени
|
: Компонент Timer1
Компоненты Label1-Label12 - отображают
информацию о тесте.
.3 Спецификация программы
Исполняемый файл программы «Экзаменатор» имеет
название Экзаменатор.exe и находится на диске А: в каталоге 5.1.4. Состав
проекта:
Наименование
|
Обозначение
|
Примечание
|
Project1.dpr
|
Файл
проекта
|
Связывает
между собой все файлы, из которых состоит проект
|
Project1.res
|
Файл
ресурсов
|
Содержит
пиктограммы, графические изображения
|
Unit1.pas
|
Файл
программного модуля Формы 1
|
Определяет
функциональность формы №1
|
Unit1.dfm
|
Файл
формы 1
|
Содержит
список всех компонентов, включенных в форму 1
|
Unit2.pas
|
Файл
программного модуля Формы 2
|
Определяет
функциональность формы №2
|
Unit2.dfm
|
Файл
формы 2
|
Unit3.pas
|
Файл
программного модуля Формы 3
|
Определяет
функциональность формы №3
|
Unit3.dfm
|
Файл
формы 3
|
Содержит
список всех компонентов, включенных в форму 3
|
Base.glf
|
Фаил
с вопросами
|
Файл,
содержащий список вопросов
|
Табл.1
.4 Описание и запуск программы
приложение программа
Общие сведения: приложение «Экзаменатор»
разработано в среде программирования Delphi 6.
Функциональное назначение программы: Прием
тестов у учеников
Используемые технические средства: при
разработке приложения «Экзаменатор» были использованы следующие технические и
программные средства:
Процессор Intel Pentium 4 3GHz
ОЗУ 3 Гб.
ОС Windows 7 Professional
Вызов и загрузка: для того, чтобы запустить
программу, необходимо запустить файл «Экзаменатор.exe»
После запуска программы выбираем сложность,
после чего при нажатии кнопки загружаются вопросы на которые надо отвечать.
Дается времени 5 минут. После загрузки появляется первый вопрос, время пошло.
По истечению времени тест блокируется, и по результатам ставиться оценка. Если
тест сдан за 5 минут, то тест останавливается и ставиться оценка. Программа
ставит «3» если больше 50% ответов правильны, «4» если больше 70%, «5» если
больше 90% и «2» если меньше 50%.
Так же предусмотрен вариант тренировки, если
введенный пароль правилен (пароль: «пароль»). Во время тренировки правильные
ответы помечены красным цветом.
2. Код программы
2.1 Текст программы.
Часть
1
Unit1;, Messages, SysUtils,
Variants, Classes, Graphics, Controls, Forms,, Menus, StdCtrls, Buttons,
ExtCtrls;= class(TForm): TRadioGroup;: TMainMenu;: TBitBtn;: TMenuItem;:
TMenuItem;: TMenuItem;: TMenuItem;: TMenuItem;: TMenuItem;: TMenuItem;:
TMenuItem;: TMenuItem;: TMenuItem;: TMenuItem;: TMenuItem;: TMenuItem;:
TGroupBox;: TLabel;: TLabel;: TLabel;: TBitBtn;: TBitBtn;: TLabel;: TLabel;:
TLabel;: TLabel;: TLabel;: TLabel;: TLabel;: TLabel;: TLabel;:
TTimer;N4Click(Sender: TObject);N8Click(Sender: TObject);N11Click(Sender:
TObject);BitBtn4Click(Sender: TObject);Timer1Timer(Sender: TObject);zagruz();vopr();prov(a:integer);BitBtn1Click(Sender:
TObject);protv();res();BitBtn2Click(Sender: TObject);N6Click(Sender:
TObject);N1Click(Sender: TObject);
{ Private declarations }
{ Public declarations
};=record:string;,o2,o3,o4:string;:integer;;: TForm1;:Ttime;:integer=0;:array
of q;:array of integer;:integer;:integer=0;,incor:integer;:boolean=false;
, unit2;
{$R *.dfm}
TForm1.N4Click(Sender: TObject);;;
procedure TForm1.N8Click(Sender:
TObject);.Showmodal;;
TForm1.N11Click(Sender:
TObject);(sender).Checked:=true;.Caption:=TMenuItem(sender).Caption;TMenuItem(sender).Tag=1
then label8.Caption:='50';TMenuItem(sender).Tag=2 then
label8.Caption:='60';TMenuItem(sender).Tag=3 then
label8.Caption:='70';TMenuItem(sender).Tag=4 then label8.Caption:='80';TMenuItem(sender).Tag=5
then label8.Caption:='90';;TForm1.BitBtn4Click(Sender:
TObject);.Caption:='0';.Caption:='0';
radiogroup1.Caption:='Подождите идет загрузка
вопросов';
if tren=false then showmessage('У
Вас
5 минут!'+#13+#13+'Удачи!!!');.Enabled:=false;;;.Caption:=s[vop[0]].ques;.Items.Strings[0]:=s[vop[0]].o1;.Items.strings[1]:=s[vop[0]].o2;.Items.strings[2]:=s[vop[0]].o3;.Items.strings[3]:=s[vop[0]].o4;tren=false
then:=now;.Enabled:=true;:=0;.Enabled:=false;;tren=true
then:=0;(RadioGroup1.Controls[s[vop[0]].pr-1]).font.color:=clred;.ItemIndex:=-1;;.Enabled:=true;;
.2 Текст
программы.
Часть
2
TForm1.Timer1Timer(Sender:
TObject);.Caption:=FormatDateTime('nn:ss',v-now);(i);i>=300
then.Enabled:=false;.Enabled:=false;.Enabled:=true;.Enabled:=true;tren=false
then res();:=false;.Enabled:=false;;;
Tform1.zagruz();:textfile;:string;(f,'base.glf');(f);:=0;not
eof(f)
do(s,i+1);(f,t);[i].ques:=t;(f,t);[i].o1:=t;(f,t);[i].o2:=t;(f,t);[i].o3:=t;(f,t);[i].o4:=t;(f,t);[i].pr:=strtoint(t);(i);;(f);:=0;;
procedure Tform1.vopr();c<=strtoint(label8.Caption)
do(vop,c+1);;:=random(high(s)-1);(a);;;
Tform1.prov(a:integer);:integer;r:=0
to c-1 doa=vop[r] then exit;[c]:=a;(c);;
TForm1.BitBtn1Click(Sender:
TObject);c>=high(vop)-1 thentren=false then protv();.Enabled:=false;.Enabled:=false;.Enabled:=true;.Enabled:=true;.Enabled:=false;tren=false
then res();;:=false;;tren=true
then(c);.Caption:=s[vop[c]].ques;.Items.Strings[0]:=s[vop[c]].o1;.Items.strings[1]:=s[vop[c]].o2;.Items.strings[2]:=s[vop[c]].o3;.Items.strings[3]:=s[vop[c]].o4;(RadioGroup1.Controls[s[vop[c]].pr-1]).font.color:=clred;s[vop[c]].pr<>s[vop[c-1]].pr
then
(RadioGroup1.Controls[s[vop[c-1]].pr-1]).font.color:=clblack;.ItemIndex:=-1;;
.3 Текст
программы.
Часть
3
tren=false
then();.Caption:=s[vop[c]].ques;.Items.Strings[0]:=s[vop[c]].o1;.Items.strings[1]:=s[vop[c]].o2;.Items.strings[2]:=s[vop[c]].o3;.Items.strings[3]:=s[vop[c]].o4;;;Tform1.protv();radiogroup1.ItemIndex+1=s[vop[c]].pr
then inc(cor) else
inc(incor);.Caption:=inttostr(cor);.Caption:=inttostr(incor);(c);;Tform1.res();,proc:real;('Тест
окончен');:=strtoint(label8.Caption);:=int(cor/(kol/100));proc<50
then label12.Caption:='2';proc>50 then label12.Caption:='3';proc>70 then
label12.Caption:='4';proc>90 then label12.Caption:='5';;
TForm1.BitBtn2Click(Sender: TObject);;;TForm1.N6Click(Sender:
TObject);.ShowModal;tren=true then bitbtn4.OnClick(self) else showmessage('Вы
вели
не'+'правильный
пароль');;TForm1.N1Click(Sender:
TObject);;.Unit2;
Windows, SysUtils, Classes,
Graphics, Forms, Controls, StdCtrls, , messages;
= class(TForm): TLabel;: TEdit;:
TButton;: TButton;OKBtnClick(Sender: TObject);
{ Private declarations }
{ Public declarations };
: TPasswordDlg;
unit1;
{$R *.dfm}
TPasswordDlg.OKBtnClick(Sender:
TObject);password.Text='пароль'
then unit1.tren:=true else unit1.tren:=false;;.Unit3;, Messages, SysUtils,
Variants, Classes, Graphics, Controls, Forms,, StdCtrls, Buttons, jpeg,
ExtCtrls;= class(TForm): TImage;: TLabel;: TLabel;: TLabel;: TLabel;:
TBitBtn;BitBtn1Click(Sender: TObject);
{ Private declarations }
{ Public declarations };: TForm3;
{$R
*.dfm}TForm3.BitBtn1Click(Sender: TObject);
begin;;.
Заключение
Условия выполнения программы: для работы
программы необходимы: компьютер на базе процессора Pentium 100 и выше, 32 Mb
RAM и больше, 500 Mb HDD и больше, ОС Windows 98 и выше.
Выполнение программы: для загрузки программы
необходимо запустить файл «Экзаменатор.exe», находящийся в папке с программой,
для завершения работы программы необходимо выбрать пункт «Файл -> Выход»
главного меню, или использовать «горячие клавиши» «Alt+F4» ну стандартный метод
закрытия приложения - щелкнуть по значку «X» (крестик) в правой части заголовка
окна программы
Сообщения оператору: при выборе пункта «О
программе» появляется сообщение с краткой информацией о программе и
разработчике.
Глоссарий
№
п/п
|
Понятие
|
Определение
|
1.
|
Delphi
|
императивный,
структурированный, объектно-ориентированный язык программирования.
|
2.
|
Алгоритм
|
точное
предписание исполнителю совеpшить определенную последовательность действий
для достижения поставленной цели за конечное число шагов.
|
3.
|
Блок-схема
|
4.
|
Матрица
|
двумерный
массив однотипных элементов. Положение элемента в матрицы определяется
номером строки и номером столбца.
|
5.
|
Машинный
язык
|
язык
программирования, элементами которого являются команды компьютера.
|
6.
|
Переменная
|
в
языках программирования - именованная часть памяти, в которую могут
помещаться разные значения переменной. Причем в каждый момент времени
переменная имеет единственное значение. В процессе выполнения программы
значение переменной может изменяться. Тип переменных определяется типом
данных, которые они представляют.
|
7.
|
Программа
|
последовательность
машинных команд, предназначенная для достижения конкретного результата.
|
8.
|
Семантика
|
в
программировании - система правил истолкования отдельных языковых
конструкций. Семантика определяет смысловое значение предложений
алгоритмического языка.
|
9.
|
Язык
высокого уровня
|
согласно
ГОСТ 19781-90 - язык программирования, понятия и структура которого удобны
для восприятия человеком. Языки высокого уровня отражают потребности
программиста, но не возможности системы обработки данных.
|
10.
|
Тип
данных
|
характеристика
набора данных, которая определяет: - диапазон возможных значений данных из
набора; - допустимые операции, которые можно выполнять над этими значениями;
- способ хранения этих значений в памяти.
|
Список использованных источников
1.
|
«
Алгоритмы: построение и анализ.» Кормен Т., Лейзерсон Ч., Ривест Р.
|
2.
|
«
Основы конструирования программ и языки программирования.» Скопин И.Н.
|
3.
|
«Delphi
5.0. Разработка корпоративных приложений.» - Александровский А. Д.
|
4.
|
«Алгоритмы
+ Структуры Данных = Программы.» Вирт Н.
|
5.
|
«Введение
в разработку и анализ алгоритмов.» Гудман С.
|
6.
|
«Введение
в разработку и анализ алгоритмов». Гудман С.
|
7.
|
«Дисциплина
программирования.» Дейкстра Э.
|
8.
|
Delphi
Russian Knowledge Base
|
9.
|
Справка
Delphi
|
10.
|
Юнита
«Алгоритмические языки и программирование»
|
Приложение
А
|
|
1.