Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 02.06.2013, 18:41   #1
Staswww
Новичок
Джуниор
 
Регистрация: 02.06.2013
Сообщений: 1
Печаль Программа-тест.

Программа тестовик. Должна считывать вопросы и ответы из постороннего файла. Прогу скачал из интернета. нет я не ленивый, просто еще студент и своих знаний не хватает. помогите разобраться, как должен быть устроен документ base.GLF... почему глф не знаю.
Заранее благодарю!

Полный листинг программы.
type
q=record
ques:string;
o1,o2,o3,o4:string;
pr:integer;
end;
var
Form1: TForm1;
v:Ttime;
i:integer=0;
s:array of q;
vop:array of integer;
a:integer;
c:integer=0;
cor,incor:integer;
tren:boolean=false;
implementation

uses
unit3, unit2;
{$R *.dfm}

procedure TForm1.N4Click(Sender: TObject);
begin
Close;
end;
procedure TForm1.N8Click(Sender: TObject);
begin
form3.Showmodal;
end;

procedure TForm1.N11Click(Sender: TObject);
begin
TMenuItem(sender).Checked:=true;
label4.Caption:=TMenuItem(sender).C aption;
if TMenuItem(sender).Tag=1 then label8.Caption:='50';
if TMenuItem(sender).Tag=2 then label8.Caption:='60';
if TMenuItem(sender).Tag=3 then label8.Caption:='70';
if TMenuItem(sender).Tag=4 then label8.Caption:='80';
if TMenuItem(sender).Tag=5 then label8.Caption:='90';
end;
procedure TForm1.BitBtn4Click(Sender: TObject);
begin
label10.Caption:='0';
label11.Caption:='0';
radiogroup1.Caption:='Подождите идет загрузка вопросов';
if tren=false then showmessage('У Вас 5 минут!'+#13+#13+'Удачи!!!');
n5.Enabled:=false;
zagruz;
vopr;
radiogroup1.Caption:=s[vop[0]].ques;
radiogroup1.Items.Strings[0]:=s[vop[0]].o1;
radiogroup1.Items.strings[1]:=s[vop[0]].o2;
radiogroup1.Items.strings[2]:=s[vop[0]].o3;
radiogroup1.Items.strings[3]:=s[vop[0]].o4;
if tren=false then
begin
v:=now;
timer1.Enabled:=true;
c:=0;
bitbtn4.Enabled:=false;
end;
if tren=true then
begin
c:=0;
TRadioButton(RadioGroup1.Controls[s[vop[0]].pr-1]).font.color:=clred;
radiogroup1.ItemIndex:=-1;
end;
bitbtn1.Enabled:=true;
end;

2.2 Текст программы. Часть 2

procedure TForm1.Timer1Timer(Sender: TObject);
begin
label9.Caption:=FormatDateTime('nn: ss',v-now);
inc(i);
if i>=300 then
begin
bitbtn1.Enabled:=false;
bitbtn2.Enabled:=false;
bitbtn4.Enabled:=true;
n5.Enabled:=true;
if tren=false then res();
tren:=false;
timer1.Enabled:=false;
end;
end;

procedure Tform1.zagruz();
var
f:textfile;
t:string;
begin
assignfile(f,'base.glf');
reset(f);
i:=0;
while not eof(f) do
begin
setlength(s,i+1);
readln(f,t);
s[i].ques:=t;
readln(f,t);
s[i].o1:=t;
readln(f,t);
s[i].o2:=t;
readln(f,t);
s[i].o3:=t;
readln(f,t);
s[i].o4:=t;
readln(f,t);
s[i].pr:=strtoint(t);
inc(i);
end;
closefile(f);
i:=0;
end;
procedure Tform1.vopr();
begin
while c<=strtoint(label8.Caption) do
begin
setlength(vop,c+1);
randomize;
a:=random(high(s)-1);
prov(a);
end;
end;

Procedure Tform1.prov(a:integer);
var
r:integer;
begin
for r:=0 to c-1 do
if a=vop[r] then exit;
vop[c]:=a;
inc(c);
end;

procedure TForm1.BitBtn1Click(Sender: TObject);
begin
if c>=high(vop)-1 then
begin
if tren=false then protv();
bitbtn1.Enabled:=false;
bitbtn2.Enabled:=false;
bitbtn4.Enabled:=true;
n5.Enabled:=true;
timer1.Enabled:=false;
if tren=false then res();
exit;
tren:=false;
end;
if tren=true then
begin
inc(c);
Radiogroup1.Caption:=s[vop[c]].ques;
radiogroup1.Items.Strings[0]:=s[vop[c]].o1;
radiogroup1.Items.strings[1]:=s[vop[c]].o2;
radiogroup1.Items.strings[2]:=s[vop[c]].o3;
radiogroup1.Items.strings[3]:=s[vop[c]].o4;
TRadioButton(RadioGroup1.Controls[s[vop[c]].pr-1]).font.color:=clred;
if s[vop[c]].pr<>s[vop[c-1]].pr then
TRadioButton(RadioGroup1.Controls[s[vop[c-1]].pr-1]).font.color:=clblack;
radiogroup1.ItemIndex:=-1;
end;

2.3 Текст программы. Часть 3

if tren=false then
begin
protv();
Radiogroup1.Caption:=s[vop[c]].ques;
radiogroup1.Items.Strings[0]:=s[vop[c]].o1;
radiogroup1.Items.strings[1]:=s[vop[c]].o2;
radiogroup1.Items.strings[2]:=s[vop[c]].o3;
radiogroup1.Items.strings[3]:=s[vop[c]].o4;
end;
end;
procedure Tform1.protv();
begin
if radiogroup1.ItemIndex+1=s[vop[c]].pr then inc(cor) else inc(incor);
label10.Caption:=inttostr(cor);
label11.Caption:=inttostr(incor);
inc(c);
end;
procedure Tform1.res();
var
kol,proc:real;
begin
showmessage('Тест окончен');
kol:=strtoint(label8.Caption);
proc:=int(cor/(kol/100));
if proc<50 then label12.Caption:='2';
if proc>50 then label12.Caption:='3';
if proc>70 then label12.Caption:='4';
if proc>90 then label12.Caption:='5';
end;

procedure TForm1.BitBtn2Click(Sender: TObject);
begin
close;
end;
procedure TForm1.N6Click(Sender: TObject);
begin
PasswordDlg.ShowModal;
if tren=true then bitbtn4.OnClick(self) else showmessage('Вы вели не'+'правильный пароль');
end;
procedure TForm1.N1Click(Sender: TObject);
begin
end;
end.

Последний раз редактировалось Staswww; 02.06.2013 в 19:47.
Staswww вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Считывания русского текста из файла apeorin Общие вопросы C/C++ 14 02.12.2012 16:34
Считывания массива из файла Daleaids Общие вопросы C/C++ 4 23.12.2011 15:41
Процедура считывания из файла Black_butterfly Помощь студентам 0 29.05.2011 16:51
Сохранение инф из файла данных в список kate311893 Общие вопросы C/C++ 1 27.11.2010 17:14
потоки сохранение и считывания файла [C++] ArniLand Общие вопросы C/C++ 1 27.05.2010 23:27