Тестирующая программа на языке Delphi

Автор: Пользователь скрыл имя, 26 Декабря 2011 в 23:13, курсовая работа

Описание работы

В данной курсовой работе была создана тестирующая программа по предмету «Основы алгоритмизации программирования». Она представляет собой опросник из 10 вопросов (случайно выбранных из базы «Access»), определяющих уровень знаний по заданной теме.

Содержание

ВВЕДЕНИЕ 3
1. ПОСТАНОВКА ЗАДАЧИ 4
1.1. Формализация задачи 4
1.2. Задача 4
1.3. Необходимость автоматизации 5
2. ВЫЧИСЛИТЕЛЬНАЯ СИСТЕМА 6
2.1 Среда разработки 6
2.2 Пользовательский интерфейс. 6
2.3 Аппаратные требования программы. 7
3. АЛГОРИТМ РЕШЕНИЯ ЗАДАЧИ И ЕГО ОПИСАНИЕ 8
3.1. Алгоритм программы 8
3.2. Используемые процедуры 9
3.3. Описание компонентов 9
4. ПРИМЕНЕНИЕ ПРОГРАММЫ 12
4.1. Область применения 12
4.2. Описание программы 12
4.3. Инструкции по работе с программой 13
ЗАКЛЮЧЕНИЕ 16

Работа содержит 1 файл

Пояснительная записка.docx

— 413.60 Кб (Скачать)

        DBGrid1: TDBGrid;

        Label1: TLabel;

        DBGrid2: TDBGrid;

        Label2: TLabel;

        SpeedButton1: TSpeedButton;

        SpeedButton2: TSpeedButton;

        SpeedButton3: TSpeedButton;

        SpeedButton4: TSpeedButton;

        procedure DrawGridCheckBox(Canvas: TCanvas; Rect: TRect; Checked: boolean);

        procedure DBGrid2DrawColumnCell(Sender: TObject; const Rect: TRect;

          DataCol: Integer; Column: TColumn; State: TGridDrawState);

        procedure DBGrid2ColEnter(Sender: TObject);

        procedure DBGrid2MouseUp(Sender: TObject; Button: TMouseButton;

          Shift: TShiftState; X, Y: Integer);

        procedure DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect;

          DataCol: Integer; Column: TColumn; State: TGridDrawState);

        procedure SpeedButton1Click(Sender: TObject);

        procedure SpeedButton2Click(Sender: TObject);

        procedure SpeedButton3Click(Sender: TObject);

        procedure SpeedButton4Click(Sender: TObject);

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

      private

        { Private declarations }

      public

        { Public declarations }

      end;

    var

      Edittest: TEdittest;

    implementation

    uses DM, Unit1;

    {$R *.dfm} 

    procedure TEdittest.DrawGridCheckBox(Canvas: TCanvas; Rect: TRect; Checked: boolean);

    //рисунм  галочки

    var

      DrawFlags: Integer;

    begin

      Canvas.TextRect(Rect, Rect.Left + 1, Rect.Top + 1, ' ');

      //DrawFrameControl(Canvas.Handle, Rect, DFC_BUTTON, DFCS_BUTTONPUSH or DFCS_ADJUSTRECT);

      DrawFlags := DFCS_BUTTONCHECK or DFCS_ADJUSTRECT;// DFCS_BUTTONCHECK

      if Checked then

        DrawFlags := DrawFlags or DFCS_CHECKED;

      DrawFrameControl(Canvas.Handle, Rect, DFC_BUTTON, DrawFlags);

    end; 

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

    begin

      Form1.Visible:=true;

      Form1.Show;

    end; 

    procedure TEdittest.SpeedButton1Click(Sender: TObject);

    begin

    if DataModule2.Variant.RecordCount>0 then

    begin

      DataModule2.Variant.Edit; 

      DataModule2.Variant.Open;

    end;

    DataModule2.Variant.Append;

    DataModule2.Variant.FieldValues['Правильный']:=false;

    DataModule2.Variant.Post;

    end; 

    procedure TEdittest.SpeedButton2Click(Sender: TObject);

    begin

      DataModule2.Vopros.Append;

      DataModule2.Vopros.FieldValues['Вопрос']:=' ';

      DataModule2.Vopros.Post;

    end; 

    procedure TEdittest.SpeedButton3Click(Sender: TObject);

    begin

    if MessageDlg('Вы действительно хотите удалить текущую запись? ',

      mtConfirmation, [mbYes, mbNo], 0)=mrYes then

      DataModule2.Vopros.Delete;

    end; 

    procedure TEdittest.SpeedButton4Click(Sender: TObject);

    begin

    if MessageDlg('Вы действительно хотите удалить текущую запись? ',

      mtConfirmation, [mbYes, mbNo], 0)=mrYes then

      DataModule2.Variant.Delete;

    end; 

    procedure TEdittest.DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect;

      DataCol: Integer; Column: TColumn; State: TGridDrawState);

    begin

       // Красим нечетные строки

          IF TDBGrid(Sender).DataSource.DataSet.RecNo mod 2 = 1

          Then TDBGrid(Sender).Canvas.Brush.Color:=$00FFC6C6 else

      TDBGrid(Sender).Canvas.Brush.Color:=$00FFD7EB; 

          // Восстанавливаем  выделение текущей позиции курсора

          IF  gdSelected   IN State

          Then Begin

        TDBGrid(Sender).Canvas.Brush.Color:=clWindow;

        TDBGrid(Sender).Canvas.Font.Color:=clWindowText;

          End;

          // Просим GRID перерисоваться  самому

          TDBGrid(Sender).DefaultDrawColumnCell(Rect,DataCol,Column,State);

    end; 

    procedure TEdittest.DBGrid2ColEnter(Sender: TObject);

    begin

        with TDBGrid(Sender) do

        if (SelectedField.FieldName = 'Правильный')then

          Options := Options - [dgEditing]

        else

          Options := Options + [dgEditing]

    end; 

    procedure TEdittest.DBGrid2DrawColumnCell(Sender: TObject; const Rect: TRect;

      DataCol: Integer; Column: TColumn; State: TGridDrawState);

    begin

       // Красим нечетные строки

          IF TDBGrid(Sender).DataSource.DataSet.RecNo mod 2 = 1

          Then TDBGrid(Sender).Canvas.Brush.Color:=$00FFC6C6 else

      TDBGrid(Sender).Canvas.Brush.Color:=$00FFD7EB; 

          // Восстанавливаем  выделение текущей позиции курсора

          IF  gdSelected   IN State

          Then Begin

        TDBGrid(Sender).Canvas.Brush.Color:=clWindow;

        TDBGrid(Sender).Canvas.Font.Color:=clWindowText;

          End;

          // Просим GRID перерисоваться  самому

          TDBGrid(Sender).DefaultDrawColumnCell(Rect,DataCol,Column,State);

        if (Column.FieldName = 'Правильный') then

        if Column.Field.AsBoolean=true then

          DrawGridCheckBox(TDBGrid(Sender).Canvas, Rect, True)

        else

          DrawGridCheckBox(TDBGrid(Sender).Canvas, Rect, False);

    end; 

    procedure TEdittest.DBGrid2MouseUp(Sender: TObject; Button: TMouseButton;

      Shift: TShiftState; X, Y: Integer);

    begin

      with TDBGrid(Sender) do begin

         if (SelectedField.FieldName = 'Правильный') then

         begin

         DataModule2.Variant.Edit;

         SelectedField.Value:= not SelectedField.Value;

         DataModule2.Variant.Post;

        end;

      end;

    end; 

    end. 
 

    UNIT UNIT3;

    interface

    uses

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

      Dialogs, Grids, DBGrids, StdCtrls, ComCtrls, ExtCtrls;

    type

      Tabout = class(TForm)

        Label1: TLabel;

        Image1: TImage;

        procedure DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect;

          DataCol: Integer; Column: TColumn; State: TGridDrawState);

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

      private

        { Private declarations }

      public

        { Public declarations }

      end;

    var

      about: Tabout;

    implementation

    uses DM, Unit1;

    {$R *.dfm} 

    procedure Tabout.DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect;

      DataCol: Integer; Column: TColumn; State: TGridDrawState);

    begin

       // Красим нечетные строки

          IF TDBGrid(Sender).DataSource.DataSet.RecNo mod 2 = 1

          Then TDBGrid(Sender).Canvas.Brush.Color:=$00FFC6C6 else

      TDBGrid(Sender).Canvas.Brush.Color:=$00FFD7EB; 

          // Восстанавливаем  выделение текущей позиции курсора

          IF  gdSelected   IN State

          Then Begin

        TDBGrid(Sender).Canvas.Brush.Color:=clWindow;

        TDBGrid(Sender).Canvas.Font.Color:=clWindowText;

          End;

          // Просим GRID перерисоваться  самому

          TDBGrid(Sender).DefaultDrawColumnCell(Rect,DataCol,Column,State);

    end; 

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

    begin

      Form1.Visible:=true;

      Form1.Show;

    end; 

    end. 
 

    UNIT UNIT4;

    interface

    uses

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

      Dialogs, StdCtrls;

    type

      TPassdi = class(TForm)

        Label1: TLabel;

        Edit1: TEdit;

        Button1: TButton;

        procedure Button1Click(Sender: TObject);

      private

        { Private declarations }

      public

        { Public declarations }

      end;

    var

      Passdi: TPassdi;

    implementation

    uses Unit2;

    {$R *.dfm} 

    procedure TPassdi.Button1Click(Sender: TObject);

    begin

    if Edit1.Text = 'Шило' then

      begin

        Edittest.Show;

        Passdi.Close;

      end;

    end; 

    end. 
 

    UNIT TESTIROVANIE;

    interface

    uses

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

      Dialogs, StdCtrls, DBCtrls;

    type

      Ttesti = class(TForm)

        GroupBox1: TGroupBox;

        RadioButton1: TRadioButton;

        RadioButton2: TRadioButton;

        RadioButton3: TRadioButton;

        RadioButton4: TRadioButton;

        Button2: TButton;

        Label2: TLabel;

        Label1: TLabel;

        DBText1: TDBText;

        Button1: TButton;

        procedure Button2Click(Sender: TObject);

        procedure Button1Click(Sender: TObject);

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

      private

        procedure Vopros(nomer:integer);

      public

        { Public declarations }

      end;

    var

      testi: Ttesti;

      mass: array of integer; //массив над которым будем извращаться

    implementation

    uses DM, Unit1;

    {$R *.dfm} 

    procedure FillArray(var A: array of Integer);

    var

      I, S, R: Integer;

    begin

      for I := 0 to High(A) do

        A[I] := I;

      for i := High(A) downto 0 do

      begin

        R := Random(I);

        S := A[R];

        A[R] := A[I];

        A[I] := S;

      end;

    end; 

    procedure Ttesti.Vopros(nomer:integer);

    begin

    DataModule2.Vopros.Locate('Номер',mass[nomer],[]);

    //варианты  ответов

    DataModule2.Variant.First;

Информация о работе Тестирующая программа на языке Delphi