Курсовая работа: Разработка программы с помощью языка программирования Delphi
140.
'MOD', 'DIV', '/', 'ODD', 2);
141.
BasaV. AddTest ('Какая из приведенных инструкций проверка на
четность?',
142.
'MOD', 'DIV', '/', 'ODD', 3);
143.
BasaV. AddTest ('Укажите функцию округления по правилам
арифметики:',
144.
'TRUNC()', 'FRAC()', 'ROUND()',
'INT()', 2);
145.
BasaV. AddTest ('Укажите функцию выделения дробной части числа:',
146.
'TRUNC()', 'FRAC()', 'ROUND()',
'INT()', 1);
147.
BasaV. AddTest ('Укажите функцию округления к нулю с целочисленным
результатом:',
148.
'TRUNC()', 'FRAC()', 'ROUND()',
'INT()', 0);
149.
BasaV. AddTest ('Укажите функцию округления к нулю с вещественным
результатом:',
150.
'TRUNC()', 'FRAC()', 'ROUND()',
'INT()', 3);
151.
BasaV. AddTest ('Укажите функцию открытия существующего файла:',
152.
'ASSIGNFILE()', 'REWRITE()',
'RESET()', 'CLOSEFILE()', 2);
153.
BasaV. AddTest ('Укажите функцию создания нового файла и открытия
его для записи:',
154.
'ASSIGNFILE()', 'REWRITE()',
'RESET()', 'CLOSEFILE()', 1);
155.
randomize;
156.
end;
157.
// ***************************
158.
// активизация формы с тестами
159.
// ***************************
160.
procedure TFormTest. FormActivate
(Sender: TObject);
161.
var ln:integer;
162.
begin
163.
fName:=SFam+' ('+SGr+')'+'.txt';
164.
assignfile (f, fName);
165.
rewrite(f);
166.
BNewTest. Visible:=false;
167.
// перемешивание базы вопросов
168.
BasaV. Mix;
169.
// количество правильных ответов
170.
Ratio:=0;
171.
// текущий вопрос 0
172.
curN:=0;
173.
// отображаем первый вопрос на форме
174.
StaticText1. Caption:=BasaV.test[curN].vopr;
175.
RGroup1. Items[0]:=BasaV.test[curN].ans[0];
176.
RGroup1. Items[1]:=BasaV.test[curN].ans[1];
177.
RGroup1. Items[2]:=BasaV.test[curN].ans[2];
178.
RGroup1. Items[3]:=BasaV.test[curN].ans[3];
179.
RGroup1. ItemIndex:=0;
180.
Ln:=Length (BasaV.test);
181.
LbNom. Caption:= IntToStr
(curN+1) + ' из ' + IntToStr(Ln);
182.
end;
183.
// ***************************
184.
// обработчик нажатия на кнопку «Принять ответ»
185.
// ***************************
186.
procedure TFormTest. BitBtn1Click
(Sender: TObject);
187.
var
188.
sRes, S:string;
189.
ln:byte;
190.
begin
191.
// проверка ответа
192.
Ln:=Length (BasaV.test);
193.
if (CurN<ln) then
194.
begin
195.
// записываем лог ответов в файл
196.
S:= BasaV.test[curN].vopr + '
(ответил: – '+
197.
BasaV.test[curN].ans
[RGroup1. ItemIndex]+')';
198.
writeln (f, S);
199.
// проверяем, правильно ли был сделан ответ
200.
if (RGroup1. ItemIndex =
BasaV.test[curN].Korans) then
201.
Ratio:= Ratio +1;
202.
CurN:=CurN+1;
203.
if CurN=ln then // была последняя запись
204.
begin
205.
// сообщение с результатом
206.
sRes:= 'Итоговая оценка: '+FloatToStr (Ratio*12/ln);
207.
// запись результа в файл
208.
writeln (f, Sfam+Sgr);
209.
writeln (f, sRes);
210.
CloseFile(f);
211.
end;
212.
end;
213.
if CurN>=ln then
214.
begin
215.
sRes:= 'Итоговая оценка: '+FloatToStr (Ratio*12/ln);
216.
Application. MessageBox
(PAnsiChar(sRes), PAnsiChar (SFam+Sgr));
217.
BNewtest. Visible:=true;
218.
exit;
219.
end;
220.
// отображаем следующий вопрос на форме
221.
StaticText1. Caption:=BasaV.test[curN].vopr;
222.
RGroup1. Items[0]:=BasaV.test[curN].ans[0];
223.
RGroup1. Items[1]:=BasaV.test[curN].ans[1];
224.
RGroup1. Items[2]:=BasaV.test[curN].ans[2];
225.
RGroup1. Items[3]:=BasaV.test[curN].ans[3];
226.
RGroup1. ItemIndex:=0;
227.
LbNom. Caption:= IntToStr (curN+1)
+ ' из ' + IntToStr(Ln);
228.
end;
229.
// ***************************
230.
// закрыте формы с тестами
231.
// ***************************
232.
procedure
TFormTest.BNewTestClick (Sender: TObject);
233.
begin
234.
Close;
235.
end;
236.
// ***************************
237.
// активизация формы с авторизации
238.
// ***************************
239.
procedure TFormTest. FormClose
(Sender: TObject; var Action: TCloseAction);
240.
begin
241.
FormAvto. Show;
242.
end;
243.
244.
end.
Приложение В
Моя программа
выполняет тестирование студентов по программированию. При открытии программы
появляется окно (рис В.1), тестирования в котором нужно вести Фамилию Имя и
Группу. Тестирование состоит из 20 вопросов, в каждом вопросе четыре варианта
ответа необходимо выбрать один правильный (рис В.2). В конце тестирования
появляется окно в котором выводится бал за количество ответов по 12 бальной
системе (рис В.3).

Рисунок В.1 – Окно
авторизации

Рисунок В.2 – Внешний вид
формы FormTest

Рисунок В.3 – Итог
|