Автор: Пользователь скрыл имя, 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
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(
//рисунм галочки
var
DrawFlags: Integer;
begin
Canvas.TextRect(Rect, Rect.Left + 1, Rect.Top + 1, ' ');
//DrawFrameControl(Canvas.
DrawFlags := DFCS_BUTTONCHECK or DFCS_ADJUSTRECT;// DFCS_BUTTONCHECK
if Checked then
DrawFlags := DrawFlags or DFCS_CHECKED;
DrawFrameControl(Canvas.
end;
procedure TEdittest.FormClose(Sender: TObject; var Action: TCloseAction);
begin
Form1.Visible:=true;
Form1.Show;
end;
procedure
TEdittest.SpeedButton1Click(
begin
if DataModule2.Variant.
begin
DataModule2.Variant.Edit;
DataModule2.Variant.Open;
end;
DataModule2.Variant.
DataModule2.Variant.
DataModule2.Variant.Post;
end;
procedure
TEdittest.SpeedButton2Click(
begin
DataModule2.Vopros.Append;
DataModule2.Vopros.
DataModule2.Vopros.Post;
end;
procedure
TEdittest.SpeedButton3Click(
begin
if MessageDlg('Вы действительно хотите удалить текущую запись? ',
mtConfirmation, [mbYes, mbNo], 0)=mrYes then
DataModule2.Vopros.Delete;
end;
procedure
TEdittest.SpeedButton4Click(
begin
if MessageDlg('Вы действительно хотите удалить текущую запись? ',
mtConfirmation, [mbYes, mbNo], 0)=mrYes then
DataModule2.Variant.Delete;
end;
procedure
TEdittest.
DataCol: Integer; Column: TColumn; State: TGridDrawState);
begin
// Красим нечетные строки
IF TDBGrid(Sender).DataSource.
Then TDBGrid(Sender).Canvas.Brush.
TDBGrid(Sender).Canvas.Brush.
// Восстанавливаем
выделение текущей позиции
IF gdSelected IN State
Then Begin
TDBGrid(Sender).Canvas.Brush.
TDBGrid(Sender).Canvas.Font.
End;
// Просим GRID перерисоваться самому
TDBGrid(Sender).
end;
procedure
TEdittest.DBGrid2ColEnter(
begin
with TDBGrid(Sender) do
if (SelectedField.FieldName = 'Правильный')then
Options := Options - [dgEditing]
else
Options := Options + [dgEditing]
end;
procedure
TEdittest.
DataCol: Integer; Column: TColumn; State: TGridDrawState);
begin
// Красим нечетные строки
IF TDBGrid(Sender).DataSource.
Then TDBGrid(Sender).Canvas.Brush.
TDBGrid(Sender).Canvas.Brush.
// Восстанавливаем
выделение текущей позиции
IF gdSelected IN State
Then Begin
TDBGrid(Sender).Canvas.Brush.
TDBGrid(Sender).Canvas.Font.
End;
// Просим GRID перерисоваться самому
TDBGrid(Sender).
if (Column.FieldName = 'Правильный') then
if Column.Field.AsBoolean=true then
DrawGridCheckBox(TDBGrid(
else
DrawGridCheckBox(TDBGrid(
end;
procedure
TEdittest.DBGrid2MouseUp(
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(
DataCol: Integer; Column: TColumn; State: TGridDrawState);
begin
// Красим нечетные строки
IF TDBGrid(Sender).DataSource.
Then TDBGrid(Sender).Canvas.Brush.
TDBGrid(Sender).Canvas.Brush.
// Восстанавливаем
выделение текущей позиции
IF gdSelected IN State
Then Begin
TDBGrid(Sender).Canvas.Brush.
TDBGrid(Sender).Canvas.Font.
End;
// Просим GRID перерисоваться самому
TDBGrid(Sender).
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(
//варианты ответов
DataModule2.Variant.First;