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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 08.05.2009, 23:10   #1
zipo
Новичок
Джуниор
 
Аватар для zipo
 
Регистрация: 08.05.2009
Сообщений: 1
Восклицание программа для тестирования(Delphi)

Есть тестовая программка, и есть несколько проблемок:

1. Когда на экран выводится вопрос, он выводится не полностью ну вообщем в вопросе не хватает 1-2 слова как когда.

2. Помогите сделать так чтобы варианты ответа выводились в разброс.

3. Как сделать так чтобы в конце выскакивало окошко с оценкой по 5 бальной шкале.


ПОМОГИТЕ, КТО, ЧЕМ МОЖЕТ

Код:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, XPMan, ExtCtrls, StdCtrls;

type
  TForm1 = class(TForm)
    St1: TStaticText;
    St2: TStaticText;
    St3: TStaticText;
    St4: TStaticText;
    Rg1: TRadioGroup;
    Label1: TLabel;
    Label2: TLabel;
    Label3: TLabel;
    Label4: TLabel;
    Label5: TLabel;
    Timer1: TTimer;
    XPManifest1: TXPManifest;
    procedure FormShow(Sender: TObject);
    procedure Rg1Click(Sender: TObject);
    procedure Timer1Timer(Sender: TObject);
    procedure FormCreate(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;
  const k=8;
var
  Form1: TForm1;
   n,osh,c:byte;
z:set of byte;
v,v1,v2,o,o1,o2,o3:string ;
pr: byte;
i,a,f:integer;
t,s:string;
implementation

{$R *.dfm}
procedure vopros;
begin
{Список вопросов, вариантов ответов и номер правильного 
ответа}
{Переменные v1 и v2 используются в случае длинного вопроса}
v:='';v1:=''; v2:='';
Case n of
1:begin
v:=' Укажите единицу измерения температуры в системе СИ.';
o1:=' Градус';
o2:=' Кельвин';
o3:=' Джоуль';
pr:=2;
end;
2:begin
v:='Какую жидкость использовали для жидкостных термометров?';
o1:='азот';
o2:='воду';
o3:='спирт или ртуть';
pr:=3;
end;
3:begin
v:=' В чем измеряется сила тока?';
o1:=' амперах';
o2:=' ваттах';
o3:=' вольтах';
pr:=1;
end;
4:begin
v:=' Какой ученый был сожжен на костре за пропаганду идей гелиоцентризма?';
o1:=' Д. Бруно';
o2:=' Н. Коперник';
o3:=' И. Ньютон';
pr:=2;
end;
5:begin
v:=' Какова естественная форма жидкости?';
o1:=' шар';
o2:=' форма сосуда';
o3:=' у жидкости нет никакой собственной формы';
pr:=3;
end;
6:begin
v:=' Вода закипит в кастрюле быстрее если:';
o1:=' крышка закрыта';
o2:=' крышка открыта';
o3:=' одинаково при закрытой или открытой крышке';
pr:=1;
end;
7:begin
v:=' Какого цвета кажется вода в чистом глубоком озере?';
o1:=' голубая';
o2:=' зеленая';
o3:=' черная';
pr:=1;
end;
8:begin
v:=' Из чего делают бензин?';
o1:=' из нефти';
o2:=' из природного газа';
o3:=' из воды';
pr:=1;
end;
end;
end;
procedure TForm1.FormShow(Sender: TObject);
begin
{Вывод первого кадра на экран}
i:=i+1;
str(i,t);
t:='Вопрос  '+t;
st1.Caption:=t;
n:=random(k)+1;
z:=z+[n];
vopros;
st2.Caption:=v;
st3.Caption:=v1;
st4.Caption:=v2;
rg1.items.Strings[0]:=o1;
rg1.items.Strings[1]:=o2;
rg1.items.Strings[2]:=o3;
end;

procedure TForm1.Rg1Click(Sender: TObject);
begin
c:=rg1.ItemIndex+1;
if c=pr then
label1.caption:='Правильно'
else
begin osh:=osh+1;
label1.caption:='Ошибка'
end;
str(i,t);
label3.caption:=t;
str(osh,t);
label5.caption:=t;
rg1.ItemIndex:=-1;
timer1.Enabled:=true;
end;

procedure TForm1.Timer1Timer(Sender: TObject);
begin
label1.caption:='';
timer1.Enabled:=false;
{Выявление номера  выбранного ответа и его проверка}
rg1.ItemIndex:=-1;
i:=i+1;
if i>k then 
begin
st1.Caption:='';
st2.caption:='';
st3.caption:='';
st4.caption:='';
rg1.Visible:=false;
label1.Caption:='Ваши результаты:';
end
else 
begin
st1.SetFocus;
str(i,t);
t:='Вопрос  '+t;
st1.Caption:=t;
{выбор номера случайного неповторяющегося вопроса}
repeat
n:=random(k)+1;
until not (n in z);
z:=z+[n];
vopros;
st2.Caption:='';
st3.Caption:='';
st4.Caption:='';
st2.Caption:=v;{вывод вопроса}
st3.Caption:=v1;
st4.Caption:=v2;
{вывод ответов на экран}
rg1.items.Strings[0]:=o1;
rg1.items.Strings[1]:=o2;
rg1.items.Strings[2]:=o3;
end;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
osh:=0;
randomize;
z:=[];
i:=0;
end;

end.
Исходник test.rar
Знаю zippo пишется с двумя буквами рр (просто, когда регился не правильно набрал)

Последний раз редактировалось zipo; 08.05.2009 в 23:14.
zipo вне форума Ответить с цитированием
Старый 12.05.2009, 17:21   #2
2009
Пользователь
 
Регистрация: 01.03.2009
Сообщений: 31
По умолчанию

Там где у тебя
Код:
label1.caption:='Правильно'
сделай счетчик

А в конце проги напиши что-то типа этого:
Код:
showmessage('Тест завершен'+#13+'Ваша оценка: '+inttostr(m));
2009 вне форума Ответить с цитированием
Старый 26.05.2012, 15:31   #3
йцу123221
Новичок
Джуниор
 
Регистрация: 26.05.2012
Сообщений: 1
По умолчанию

получилось переделать?
как сделать чтобы вопросы тоже выводились рандомно?
йцу123221 вне форума Ответить с цитированием
Старый 26.05.2012, 17:58   #4
s-andriano
Старожил
 
Аватар для s-andriano
 
Регистрация: 08.04.2012
Сообщений: 3,229
По умолчанию

Цитата:
Сообщение от йцу123221 Посмотреть сообщение
как сделать чтобы вопросы тоже выводились рандомно?
Перетасовать из вначале.
s-andriano вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Программа тестирования произвольных чисел Мерсенна (2^p-1) метода Люка-Лемера Виктор Смирнов Софт 11 21.04.2012 20:13
помогите написать программу на Delphi для тестирования kovin Помощь студентам 10 05.01.2011 15:16
Помогите. Программа для тестирования. SergeyVS Помощь студентам 3 20.05.2010 17:50
Программа Тестирования. Spiker01 Паскаль, Turbo Pascal, PascalABC.NET 3 06.01.2009 13:14
прога для тестирования veyder21 Общие вопросы .NET 5 28.12.2008 15:21