Автор: Пользователь скрыл имя, 20 Февраля 2013 в 22:29, курсовая работа
Информатика-это техническая наука, систематизирующая приемы создания, хранения, обработки и передачи информации средствами вычислительной техники, а также принципы функционирования этих средств и методы управления ими.
Из этого определения видно, что информатика очень близка к технологии, поскольку отвечает на вопрос как…?
Как принимать и хранить информацию?
Как обрабатывать информацию и преобразовывать ее в форму, удобную для человека?
Как использовать вычислительную технику с наибольшей эффективностью?
Как использовать достижения других наук для создания новых средств вычислительной техники?
Как управлять техническими средствами с помощью программ?
Введение 3
Глава 1. Теоретическая часть 5
1.1. История 5
1.2. Обзор компонентов Borland Delphi 6
1.2.1. TMainMenu 6
1.2.2. TPanel 6
1.2.3. TImage 6
1.2.4. TLabel 6
1.2.5. TEdit 7
1.2.6. TButton 7
Глава 2. Программирование тестовой программы 8
2.1 Постановка задачи 8
2.2. Построение алгоритма 9
2.3. Анализ и тестирование 10
Заключение 14
Список литературы 15
procedure OtvetgotovClick(Sender: TObject); // принять
ответ
procedure FormCreate(Sender: TObject); // онформ.о форме
function resultat:integer; // вывод результата
procedure zapis_v_data_base; // запись результата в файл
function proverka:boolean;
procedure n7click(sender:tobject); //информация о прогр.
procedure otvetkeypress(sender:tobject;
private
{ Private declarations }
vse_voprosy:array[1..max_
ispol_voprosy:array[1..
schitano_voprosov:integer;
tek_vopros,nomer:integer;
file_s_voprosami:text;
otvety_na_voprosy:array[1..
public
student:tstudents;
students:array[1..200] of tstudents;
end;
var
Form1: TForm1;
s:tstrings;
implementation
{$R *.dfm}
function tform1.proverka:boolean; // проверка, проходили вы
тест или нет
var file_db:textfile;
n,vsego_proshli:integer;
str:string;
begin
if not fileexists(put_k_data_base+
begin
proverka:=false;
exit;
end;
assignfile(file_db,put_k_
reset(file_db);
if ioresult=0 then
begin
n:=0;
while not(eof(file_db))do
begin
n:=n+1;
readln(file_db,students[n].
delete(students[n].name,1,4);
readln(file_db,students[n].
delete(students[n].familiya,1,
readln(file_db,str);
readln(file_db,str);
readln(file_db,str);
readln(file_db,str);
end;
vsego_proshli:=n;
for n:=1 to vsego_proshli do
begin
if (students[n].name=student.name
(students[n].familiya=student.
begin
messagedlg('Извините, вы уже проходили
этот тест отойдите, пожалуйста, от омпьютера',mtinformation,[
proverka:=true;
exit;
end;
end;
end
else proverka:=false;
closefile(file_db);
end;
procedure tform1.otvetkeypress(sender:
// принять ответ
begin
if key=#13 then
otvetgotov.Click;
end;
procedure tform1.zapis_v_data_base; // запись результата
var file_db:textfile;
begin
if fileexists(put_k_data_base+
begin
assignfile(file_db,put_k_data_
append(file_db);
end
else
begin
assignfile(file_db,put_k_data_
rewrite(file_db);
end;
writeln(file_db,'Имя '+student.name);
writeln(file_db,'Фамилия '+student.familiya);
writeln(file_db,'Группа '+student.group);
writeln(file_db,'Дата '+datetostr(date));
writeln(file_db,'Время '+timetostr(time));
writeln(file_db,'Результат '+student.resultat);
writeln(file_db,' ');
{ flush(file_db);}
closefile(file_db);
end;
function tform1.resultat:integer; // вывод результата
var i,kol_vo_pravilnyh:integer;
begin
kol_vo_pravilnyh:=0;
for i:=1 to voprosov_v_teste do
begin
if form1.otvety_na_voprosy[i] then
kol_vo_pravilnyh:=kol_vo_
end;
resultat:=round(10*(kol_vo_
end;
procedure tform1.chtenie_voprosov; // считывание вопросов
label 1,2;
var
schyotchik,i,j:integer;
str:string;
b1,b2:boolean;
begin
str:=put_k_voprosam1;
b1:=FileExists(put_k_
b2:=FileExists(put_k_
if (b1) and (b2 )then
begin
str:=put_k_voprosam1;
end;
if (b1) and (not (b2))then
begin
str:=put_k_voprosam1;
end;
if (b2) and (not (b1)) then
begin
str:=put_k_voprosam2;
end;
if (not (b1))and(not (b2)) then
begin
showmessage('Не найден файл с вопросами');
halt;
end;
try
schyotchik:=0;
assignfile(file_s_voprosami,
reset(file_s_voprosami);
while not(seekeof(file_s_voprosami)) do
begin {n 001}
schyotchik:=schyotchik+1;
i:=0;
repeat
i:=i+1;
readln(file_s_voprosami,vse_
until vse_voprosy[schyotchik].
vse_voprosy[schyotchik].
for i:=1 to max_otvetov-1 do
begin
readln(file_s_voprosami,vse_
if vse_voprosy[schyotchik].
begin
for j:=i to max_otvetov do
vse_voprosy[schyotchik].
goto 1;
end;
end;
1:end; 2:
closefile(file_s_voprosami);
schitano_voprosov:=
if schitano_voprosov<voprosov_v_
begin
MessageDlg('Количество вопросов в тесте превышает количество вопросов в базе данных пожалуйста обновите Базу Данных',mterror,[mbok],0);
exit;
end;
except
MessageDlg('Неверен формат Базы Данных',mterror,[mbok],0);
end;
end;
procedure tform1.vivod_poley_voprosa; // границы вопроса
var sam_vopros:string;
i:integer;
begin
labelvopros.Visible:=true;
vopros.Visible:=true;
otvet.Visible:=true;
labelotvet.Visible:=true;
otvetgotov.Visible:=true;
sam_vopros:='';
for i:=1 to strok_v_voprose do
sam_vopros:=sam_vopros+vse_
if length(sam_vopros)>7*109 then
begin
//vopros.ScrollBars:=
vopros.Height:=100
end
else
begin
//vopros.ScrollBars:=ssnone;
vopros.Height:=17*(trunc(
end;
end;
procedure tform1.vivod_voprosa; // вывод вопроса на форму
label 1;
var i,j:integer;
begin
form1.vopros.Caption:='';
randomize;
labelvopros.Caption:='Вопрос №'+inttostr(tek_vopros);
1:nomer:=trunc(random(
if tek_vopros>=1 then
for i:=1 to tek_vopros do
begin
if (ispol_voprosy[i]=nomer) or (nomer>schitano_voprosov) then goto 1;
end
else nomer:=trunc(schitano_
ispol_voprosy[tek_vopros]:=
form1.vivod_poley_voprosa;
j:=1;
for i:=1 to strok_v_voprose do
begin
for j:=1 to Trunc(length(vse_voprosy[
if not((i=1) and (j=1)) then
vopros.Caption:=vopros.
else
vopros.Caption:=vopros.
end;
otvet.Text:='';
end;
procedure TForm1.CancelClick(Sender: TObject); // выход
begin
close;
end;
procedure TForm1.nachaloClick(Sender: TObject);//начать тест
begin
form2.ShowModal;
if not(form2.vvedenie_imeni) then exit
else
begin
student.name:=form2.name.Text;
student.familiya:=form2.
student.group:=form2.gruppa.
if form1.proverka then close;
end;
screen.Cursor:=crappstart;
form1.chtenie_voprosov;
screen.Cursor:=crdefault;
tek_vopros:=1;
form1.vivod_voprosa;
otvet.SetFocus;
N5.Enabled:=true;
end;
procedure TForm1.OtvetgotovClick(Sender: TObject); //принять
ответ
var i:integer;
begin
for i:=1 to max_otvetov-1 do
begin
if otvet.Text=vse_voprosy[nomer].
begin
messagedlg('Ответ правильный',mtconfirmation,[
otvety_na_voprosy[tek_vopros]:
tek_vopros:=tek_vopros+1;
otvet.SetFocus;
if tek_vopros=voprosov_v_teste+1 then
begin
messagedlg('Вы закончили тест и получили
(из 10 возможных баллов) - '+inttostr(form1.resultat),
student.resultat:=inttostr(
form1.zapis_v_data_base;
close;
end;
form1.vivod_voprosa;
exit;
end;
end;
if not(otvety_na_voprosy[tek_
begin
messagedlg('Ответ неправильный',mtconfirmation,[
otvety_na_voprosy[tek_vopros]:
tek_vopros:=tek_vopros+1;
if tek_vopros=voprosov_v_teste+1 then
begin
messagedlg('Вы закончили тест и получили
(из 10 возможных баллов) - '+inttostr(form1.resultat),
student.resultat:=inttostr(
form1.zapis_v_data_base;
close;
end;
form1.vivod_voprosa;
end;
otvet.SetFocus;
end;
procedure TForm1.FormCreate(Sender: TObject); //инф.о форме
var i,j:integer;
begin // цикл вывода вопроса на форму
for j:=1 to max_voprosov do
for i:=1 to strok_v_voprose do
begin
vse_voprosy[j].vopros[i]:='';
end;
for i:=1 to voprosov_v_teste do
begin
otvety_na_voprosy[i]:=false;
ispol_voprosy[i]:=0;
end;
if fileexists(put_k_parolu) then
begin
end;
end;
procedure tform1.n7click(sender:tobject)
begin
aboutbox.ShowModal; // открытие окна другой формы
end;
end.