по дисциплине «Технологии разработки программного обеспечения»
Министерство образования и науки Российской Федерации
Донской Государственный Технический Университет
Кафедра “Программное обеспечение вычислительной техники и
Лабораторная работа №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.


