Рефераты. Программа для тестовых проверок знаний

  if Ca = Answer then

    inc(Scores)

  else

    inc(Wrong);

Оператор Inc увеличивает значение указанной переменной на 1. Если да то +1 к правильным если нет, то +1 к неправильным.


3.1 Процедура работы таймера времени

 

procedure TForm2.Timer1Timer(Sender: TObject);

begin

Count:=Count+1;

TimeLabel.Caption:=ss2nn(Count);

end;

Начальное значение переменной Count – 0, с каждой секундой значение переменной увеличивается на 1, затем функцией ss2nn значение переводится в секунды + минуты (если нужно) и результат выводится на TimeLabel. На рисунке 2 приведена иллюстрация, демонстрирующая работу программы.

Рисунок 2 – Внешний вид программы

 

3.2 Форма с результатами тестирования (Form3/Unit3)


После того как программа закончила тестирование, она подсчитывает результаты, создает и показывает форму с результатами тестирования. Вид формы для результатов тестирования в дизайнере форм Delphi приведен на рисунке 3.



Рисунок 3 - Вид формы  для результатов тестирования в дизайнере форм Delphi

 

Кнопка “Ok” на Form3 закрывает программу.


Процедуры.

Процедура – обработчик создания формы с результатами тестирования описана в предыдущем модуле (Unit2). Рассмотрим работу таймера, который собственно выставляет оценку.

procedure TForm3.Timer1Timer(Sender: TObject);

begin

if (Gauge1.Progress < 40) then label7.Caption:='2';

if (Gauge1.Progress  >= 40 )and (Gauge1.Progress <60) then  label7.Caption:='3';

if (Gauge1.Progress >=60) and (Gauge1.Progress <=90)

then label7.Caption:='4'; if Gauge1.Progress >90 then label7.Caption:='5'; end;

Заключение

В настоящее время в нашу жизнь широко внедряются информационные технологии. На сегодняшний день, наверное, не осталось такой области, где бы они ни применялись. Данная программа может применяться для оценки уровня знаний по русскому языку в школах, ВУЗах, техникумах или для оценки собственных познаний в культуре правописания.Её пользовательский интерфейс делает её простой, понятной и доступной.








                

 

 











Список использованных источников

1.     Бобровский С.И. Delphi 5 – М.: Питер, 2002.

2.     Гаевский A. Разработка программных приложений на Delphi 6 – М.: Киев, 2000.

3.     Зуев В. A. Turbo Pascal 6.0, 7.0. М.: Москва, 1998.

4.     Коцюбинский А.О., Грошев С.В. Язык программирования Delphi 5 – М.: Москва, 1999.

5.     Леонтьев В.И. Delphi 5 – М.: Москва, 1999.

6.     Моисеев А.С. Object Pascal – М.: Москва, 2000.

7.     Немнюгин С.А. Программирование – М.: Питер, 2000.

8.     Ремизов Н. C. Delphi – М.: Питер, 2000.

 



















Приложение А

Модуль формы с вопросами.

 

program Project1;

uses

  Forms,

  Unit2 in 'Unit2.pas' {Form2},

  Unit3 in 'Unit3.pas' {Form3};

{$R *.res}

begin

  Application.Initialize;

  Application.CreateForm(TForm2, Form2);

  Application.Run;

end.


unit Unit2; // модуль главной формы

interface

 

uses

  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

  Dialogs, StdCtrls, ExtCtrls, Buttons, IniFiles, XPMan;

type

  TForm2 = class(TForm)

    Panel1: TPanel;

    Label1: TLabel;

    BitBtn1: TBitBtn;

    Panel2: TPanel;

    Label5: TLabel;

    Label6: TLabel;

    Label7: TLabel;

    Label8: TLabel;

    Label9: TLabel;

    Button1: TButton;

    Panel3: TPanel;

    Label2: TLabel;

    RadioButton1: TRadioButton;

    Label3: TLabel;

    RadioButton2: TRadioButton;

    Label4: TLabel;

    RadioButton3: TRadioButton;

    RadioButton4: TRadioButton;

    Label11: TLabel;

    Timer1: TTimer;

    Label10: TLabel;

    TimeLabel: TLabel;

    XPManifest1: TXPManifest;

    procedure FormCreate(Sender: TObject);

    procedure BitBtn1Click(Sender: TObject);

    procedure Button1Click(Sender: TObject);

    procedure FormClose(Sender: TObject; var Action: TCloseAction);

    procedure Timer1Timer(Sender: TObject);

  private

    { Private declarations }

    {Обьявляем необходимые переменные}

    QuestNum: Integer;

    QuestCount: Integer;

    Scores: Integer;

    Wrong: Integer;

    ProgPath : string;

  public

  res : Integer;

  {Функция для перевода секунд в минуты + секунды}

  function ss2nn(Seconds: Integer): String;

  procedure ShowQuestion{!!!Главная процедура для загрузки и показа

                            вопросов и ответов}

  end;

var

  Form2: TForm2;

  Ini: TIniFile;

  Count : integer;

implementation

 

uses Unit3;

{$R *.dfm}

{ TForm2 }

function TForm2.ss2nn(Seconds: Integer): String;

var

  nMin, nSec: Integer;

begin

  {Проверяем, меньше чем 1/Min}

  if Seconds < 60 then Result := '0 минут ' + IntToStr(Seconds) + ' секунд'

  else begin

    {Определяем минуты}

    nMin := Seconds div 60;

    {Определяем секунды}

    nSec := Seconds - (nMin * 60);

    {Возвращаем результат}

    Result := IntToStr(nMin) + ' минут ' + IntToStr(nSec) + ' секунд';

  end;

end;

procedure TForm2.ShowQuestion;

var

  Count, i: Integer;

begin

  if (QuestNum > QuestCount) and (QuestNum > 0) then

  begin

  {если кол-во вопросов больше чем уже показанных и кол-во вопросов

  >0 то выполняем следушее....}

    Form3 := TForm3.Create(self);//создаем форму с результатами тестирования

    res := (Scores * 100) div QuestCount;// узнаем кол-во правильных ответов

    Form3.Gauge1.Progress := res; // выводим правильные ответы на графике в %

    Form3.Gauge2.Progress := 100-res; //выводим кол-во неправильных ответов

    //сколько всего вопросов....

    Form3.Label5.Caption := 'Вопросов в тесте: '+IntToStr(QuestCount);

    //пишем на label кол-во правильных ответов

    Form3.Label3.Caption := IntToStr(Scores);

    //тоже самое, только неправильные

    Form3.Label4.Caption := IntToStr(Wrong);

    Timer1.Enabled:=False; //выключаем таймер времени

    Form3.TimeLabel.Caption:=TimeLabel.Caption; //выводим время на label времени

    Form3.ShowModal;// наконец показываем форму с результатами

    Form2.close; //закрываем форму с вопросами

  end;

 

  //загружаем текст вопроса

  Label1.Caption := Ini.ReadString('Вопрос №' + inttostr(QuestNum), 'Текст вопроса', 'Вопрос отсутствует');

  //загружаем варианты ответов

  RadioButton1.Caption := Ini.ReadString('Вопрос №' + inttostr(QuestNum), 'Текст кнопки 1', 'ERROR');

Страницы: 1, 2, 3, 4



2012 © Все права защищены
При использовании материалов активная ссылка на источник обязательна.