по дисциплине «Технологии разработки программного обеспечения»

Министерство образования и науки Российской Федерации

Донской Государственный Технический Университет

Кафедра “Программное обеспечение вычислительной техники и

автоматизированных систем”

Лабораторная работа №3

на тему

«Разработка и отладка программного средства реализующего диалоговую форму проведения заданного теста»

по дисциплине

«Технологии разработки программного обеспечения»

Выполнил:

ст. гр. ВИ52

Проверил:

Ростов-на-Дону

2013

1 ЗАДАНИЕ

Разработать и отладить программное средство реализующее диалоговую форму проведения заданного теста.

Реализовать меню из шести пунктов. Все пункты меню должны быть на экране. В зависимости от необходимости можно вызвать каждый из них. Пункты должны иметь следующие названия: «Общая информация о тесте», «Инструкция по использованию», «Начать тест», «Подсчет числа баллов», «Результаты теста», «Выход». После выполнения пункта предусмотреть возможность возврата в главное меню.

2 ИНФОРМАЦИЯ О ТЕСТЕ

Тест «Занятость» определяет на сколько испытуемый склонен к труду. Тест взят из книги «Познай себя и других. Популярные тесты», 1996 года выпуска, страница 49.

Данный тест предполагает ответы «да» и «нет» на следующие вопросы:

1. Вы склонны детально беседовать со своими коллегами по работе, чем со своими друзьями.

2. Вы очень точны относительно деловых встреч.

3. Вам лучше отдыхается в субботу после полудня, чем в воскресенье.

4. Вы лучше себя чувствуете, когда работаете, чем бездельничаете.

НЕ нашли? Не то? Что вы ищете?

5. Вы тщательно планируете свое времяпровождение.

6. Вы раздражаетесь, когда ваши друзья заставляют вас ждать.

7. Ваши друзья считают, что с вами легко ладить.

8. Работая, вы часто забываете о близких.

9. Вы находите время для работы даже в самых трудных условиях.

10. Вы всегда до мельчайших подробностей планируете свои действия.

11. Вам нравится болтать в перерывах между совещаниями

12. Ваши друзья занимаются примерно таким же делом, как и вы.

13. Вы стараетесь работать даже когда бываете не здоровы.

14. Все, что вы читаете, относится к сфере вашей трудовой деятельности.

15. Вы остаетесь на работе позднее, чем ваши коллеги.

16. Просыпаясь ночью, вы думаете о работе.

17. Вы мечтаете о том, чтобы на работе не было неурядиц.

18. В играх вы такой же азартный как и на работе.

19. Отдых вам быстро надоедает.

20. В дни отдыха вы часто готовитесь к трудовой неделе.

За ответы «да» на вопросы, кроме седьмого («нет») и одиннадцатого («нет»), испытуемый получает по одному баллу.

Если испытуемый набрал 10 и менее баллов, то возможно имеется «Склонность к безделью», 11-15 баллов, то – «Деловитость», 16-20 баллов, то – «Работоголия».

3 ТЕКСТЫ ИСХОДНЫХ МОДУЛЕЙ

unit mainunit;

interface

uses

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

Dialogs, StdCtrls, ExtCtrls;

type

TForm1 = class(TForm)

Button1: TButton;

Panel1: TPanel;

Button2: TButton;

Button3: TButton;

Button4: TButton;

Button5: TButton;

Button6: TButton;

Panel3: TPanel;

Button8: TButton;

Memo2: TMemo;

Panel4: TPanel;

Button9: TButton;

Memo3: TMemo;

Button10: TButton;

Button11: TButton;

Panel5: TPanel;

Button12: TButton;

Memo4: TMemo;

Panel2: TPanel;

Button7: TButton;

Memo1: TMemo;

Panel6: TPanel;

Button13: TButton;

Memo5: TMemo;

procedure Button1Click(Sender: TObject);

procedure FormCreate(Sender: TObject);

procedure Button7Click(Sender: TObject);

procedure Button6Click(Sender: TObject);

procedure Button8Click(Sender: TObject);

procedure Button2Click(Sender: TObject);

procedure Button3Click(Sender: TObject);

procedure Button9Click(Sender: TObject);

procedure Button10Click(Sender: TObject);

procedure Button11Click(Sender: TObject);

procedure Button4Click(Sender: TObject);

procedure Button12Click(Sender: TObject);

procedure Button13Click(Sender: TObject);

procedure Button5Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form1: TForm1;

question: array [1..20] of string = (

'1. Вы склонны детально беседовать со своими коллегами по работе, чем со своими друзьями.',

'2. Вы очень точны относительно деловых встреч.',

'3. Вам лучше отдыхается в субботу после полудня, чем в воскресенье.',

'4. Вы лучше себя чувствуете, когда работаете, чем бездельничаете.',

'5. Вы тщательно планируете свое времяпровождение.',

'6. Вы раздражаетесь, когда ваши друзья заставляют вас ждать.',

'7. Ваши друзья считают, что с вами легко ладить.',

'8. Работая, вы часто забываете о близких.',

'9. Вы находите время для работы даже в самых трудных условиях.',

'10. Вы всегда до мельчайших подробностей планируете свои действия.',

'11. Вам нравится болтать в перерывах между совещаниями',

'12. Ваши друзья занимаются примерно таким же делом, как и вы.',

'13. Вы стараетесь работать даже когда бываете не здоровы.',

'14. Все, что вы читаете, относится к сфере вашей трудовой деятельности.',

'15. Вы остаетесь на работе позднее, чем ваши коллеги.',

'16. Просыпаясь ночью, вы думаете о работе.',

'17. Вы мечтаете о том, чтобы на работе не было неурядиц.',

'18. В играх вы такой же азартный как и на работе.',

'19. Отдых вам быстро надоедает.',

'20. В дни отдыха вы часто готовитесь к трудовой неделе.'

);

answer: array [1..20] of boolean;

num: Integer;

ended, evaled: boolean;

res: integer = 0;

resmsg: string;

implementation

{$R *.dfm}

procedure TForm1.Button10Click(Sender: TObject);

begin

if num<20 then

begin

answer[num] := true;

inc(num);

Memo3.Lines. Clear;

Memo3.Lines. Add(question[num]);

end

else

begin

answer[num] := true;

Memo3.Lines. Clear;

Memo3.Lines. Add('Тест завершен.');

ended := true;

Button10.Visible := false;

Button11.Visible := false;

end;

end;

procedure TForm1.Button11Click(Sender: TObject);

begin

if num<20 then

begin

answer[num] := false;

inc(num);

Memo3.Lines. Clear;

Memo3.Lines. Add(question[num]);

end

else

begin

answer[num] := false;

Memo3.Lines. Clear;

Memo3.Lines. Add('Тест завершен.');

ended := true;

Button10.Visible := false;

Button11.Visible := false;

end;

end;

procedure TForm1.Button12Click(Sender: TObject);

begin

Panel5.Visible := false;

end;

procedure TForm1.Button13Click(Sender: TObject);

begin

Panel6.Visible := false;

end;

procedure TForm1.Button1Click(Sender: TObject);

begin

if Panel2.Visible = true then

Panel2.Visible := false

else

Panel2.Visible := true;

end;

procedure TForm1.Button2Click(Sender: TObject);

begin

if Panel3.Visible = true then

Panel3.Visible := false

else

Panel3.Visible := true;

end;

procedure TForm1.Button3Click(Sender: TObject);

begin

if Panel4.Visible = true then

Panel4.Visible := false

else

Panel4.Visible := true;

num := 1;

ended := false;

Memo3.Clear;

Memo3.Lines. Add(question[num]);

Button10.Visible := true;

Button11.Visible := true;

end;

procedure TForm1.Button4Click(Sender: TObject);

var

i: integer;

begin

Memo4.Clear;

if Panel5.Visible = true then

Panel5.Visible := false

else

Panel5.Visible := true;

if ended then

begin

res := 0;

for i := 1 to 20 do

begin

if (i <> 7) AND (i <> 11) then

begin

if answer[i] = true then inc(res);

end

else

begin

if answer[i] = false then inc(res);

end;

end;

if res<=10 then

resmsg := 'Склонность к безделью';

if (res>=11) AND (res<=15) then

resmsg := 'Деловитость';

if (res>=16) AND (res<=20) then

resmsg := '"Работоголия"';

Memo4.Lines. Add('Баллы подсчитаны.');

evaled := true;

end

else

Memo4.Lines. Add('Тест незавершен.');

end;

procedure TForm1.Button5Click(Sender: TObject);

begin

Memo5.Clear;

if Panel6.Visible = true then

Panel6.Visible := false

else

Panel6.Visible := true;

if ended then

begin

if evaled then

begin

Memo5.Lines. Add('Максимальное количество балов: 20.');

Memo5.Lines. Add('');

Memo5.Lines. Add('Испытуемый набрал: ' + IntToStr(res));

Memo5.Lines. Add('');

Memo5.Lines. Add('Это соответствует: ' + resmsg);

end

else

Memo5.Lines. Add('Баллы неподсчитаны');

end

else

Memo5.Lines. Add('Тест незавершен.');

end;

procedure TForm1.Button6Click(Sender: TObject);

begin

Application. Terminate();

end;

procedure TForm1.Button7Click(Sender: TObject);

begin

Panel2.Visible := false;

end;

procedure TForm1.Button8Click(Sender: TObject);

begin

Panel3.Visible := false;

end;

procedure TForm1.Button9Click(Sender: TObject);

begin

Panel4.Visible := false;

end;

procedure TForm1.FormCreate(Sender: TObject);

begin

Panel1.Visible := true;

Panel1.Top := 0;

Panel1.Left := 0;

Panel2.Visible := false;

Panel2.Top := 0;

Panel2.Left := 0;

Panel3.Visible := false;

Panel3.Top := 0;

Panel3.Left := 0;

Panel4.Visible := false;

Panel4.Top := 0;

Panel4.Left := 0;

Panel5.Visible := false;

Panel5.Top := 0;

Panel5.Left := 0;

Panel6.Visible := false;

Panel6.Top := 0;

Panel6.Left := 0;

end;

end.