Смекни!
smekni.com

Программа психологического диагностирования на выявление типа темперамента (стр. 4 из 5)


2.3 Схема алгоритма программы по обработке результатов


2.4 Текст программы с комментариями

unit Unit1;

interface

uses

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

Dialogs, StdCtrls, ExtCtrls, ComCtrls;

type

TForm1 = class(TForm)

memo1: TMemo;

Button1: TButton;

Button2: TButton;

Button3: TButton;

RadioGroup1: TRadioGroup;

RadioButton1: TRadioButton;

RadioButton2: TRadioButton;

Panel1: TPanel;

Label1: TLabel;

Button4: TButton;

procedure Button2Click(Sender: TObject);

procedure Button3Click(Sender: TObject);

procedure Button1Click(Sender: TObject);

procedure Button4Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

tip=record

vop:string[100];

ot1:string[20];

ot2:string[20];

end;

var

f1:file of tip;

a:tip;

Form1: TForm1;

j1,i1,k1,t,g,m,min,min1,en:integer;

ms1:array [1..100] of integer;

s:integer;

m1: array [1..4] of integer;

implementation

uses Unit2;

{$R *.dfm}

procedure sozdanie(s:string); {процедура по созданию файла с вопросами}

begin

if k1<>5 then

begin

g:=1;

t:=0;

i1:=0;

end;

assign(f1,'input.dat');

reset(f1);

j1:=filesize(f1);

if not eof(f1) then

begin

if i1<j1 then

begin

seek(f1,i1);

read(f1,a);

form1.memo1.Lines.Text:=a.vop;

form1.RadioButton1.Caption:=a.ot1;

form1.RadioButton2.Caption:=a.ot2;

i1:=i1+1;

end;

if form1.radiobutton1.Checked then ms1[g]:=ms1[g]+1;

{обработка результатов}

if (t=14) or (t=28) or (t=42)then g:=g+1;

end;

if eof(f1) then en:=5;

k1:=5;

close(f1);

t:=t+1;

end;

procedure TForm1.Button2Click(Sender: TObject);

begin

close;

end;

procedure TForm1.Button3Click(Sender: TObject);

begin

form2.visible:=true;

end;

procedure TForm1.Button1Click(Sender: TObject);

begin if fileexists('input.dat')=true then begin

RadioGroup1.Visible:=true;

RadioButton1.Visible:=true;

RadioButton2.Visible:=true;

sozdanie('input.dat');

if en=5 then

panel1.Visible:=true;

begin

min:=ms1[1];

min1:=1;

form1.Label1.Caption:=InttoStr(min);

for m:=2 to 4 do

if ms1[m]>min then

begin

min1:=m;

min:=ms1[g];

end;

case min1 of

1:form1.Label1.Caption:='Холерик';

2:form1.Label1.Caption:='Сангвиник';

3:form1.Label1.Caption:='Флегматик';

4:form1.Label1.Caption:='Меланхолик';

end;

end;

end

else showmessage('создайте файл') ;

end;

procedure TForm1.Button4Click(Sender: TObject);

begin

case min1 of

1:showmessage('Вы холерик'+#13+'Отличается повышенной возбудимостью, действия прерывисты. Ему свойственны резкость и стремительность движений, сила, импульсивность, яркая выраженность эмоциональных переживаний. Темперамент проявляет в инициативнсти, энергичности, принципиальности');

2:showmessage('Вы сангвиник'+#13+'Быстро приспосабливается к новым условиям, быстро сходится с людьми, общителен. Чувства легко возникают и сменяются, эмоциональные переживания, как правило неглубоки. Мимика богатая, подвижная, выразительная. Несколько непоседлив, нуждается в новых впечатлениях');

3:showmessage('Вы флегматик'+#13+'Характеризуется сравнительно низким уровнем активности поведения. Обладает медлительностью и спокойствием в действиях, мимике и речи, ровностью ,постоянством, глубиной чувств. Настойчивый и упорный, он редко выходит из себя. Экономит силы, попусту их не тратит');

4:showmessage('Вы меланхолик'+#13+'Реакция часто не соответствует силе раздражителя, присутствует глубина и устойчивость чувств при слабом их выражении. Ему трудно долго на чем-нибудь сосредоточиться. Ему свойственна сдержанность и речи и движений, застенчивость, робость, нерешительность');

end;

end;

end.

unit Unit2;

interface

uses

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

Dialogs, StdCtrls, ExtCtrls, ComCtrls;

type

TForm2 = class(TForm)

Memo1: TMemo;

Button1: TButton;

Button2: TButton;

Button3: TButton;

Panel1: TPanel;

Button4: TButton;

UpDown1: TUpDown;

procedure Button1Click(Sender: TObject);

procedure Button2Click(Sender: TObject);

procedure Button4Click(Sender: TObject);

procedure Button3Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

tip=record

vop:string[100];

ot1:string[20];

ot2:string[20];

end;

var

f2:file of tip;

a2:tip;

del:Boolean;

Form2: TForm2;

j2:integer;

implementation

uses Unit1;

{$R *.dfm}

procedure sozdanie(s:string);

begin

assign(f2,'input.dat');

rewrite(f2);

close(f2);

end;

procedure sozdanie2(s:string);

begin

assign(f2,'input.dat');

reset(f2);

j2:=filesize(f2);

seek(f2,j2);

a2.vop:=form2.Memo1.Lines.Text;

a2.ot1:='Да';

a2.ot2:='Нет';

write(f2,a2);

close(f2);

unit1.k1:=1;

end;

procedure TForm2.Button1Click(Sender: TObject);

begin

if fileexists('input.dat')=false

then

begin

sozdanie('input.dat');

showmessage('file create');

end

else showmessage('file exist');

end;

procedure TForm2.Button2Click(Sender: TObject);

begin

if fileexists('input.dat')=true

then

begin

del:=deletefile('input.dat');

showmessage('file delete');

end

else showmessage('file not found');

end;

procedure TForm2.Button4Click(Sender: TObject);

begin

if fileexists('input.dat')=true

then

begin

sozdanie2('input.dat');

showmessage('Данные успешно добавлены');

end

else showmessage('file not found');

end;

procedure TForm2.Button3Click(Sender: TObject);

begin

close;

end;

end.

2.4 Описание процесса отладки

При разработке программы данного курсового проекта большее время занял процесс отладки. Он свелся к установлению причины возникновения ошибок и их устранению.

Большинство ошибок возникает на этапе программирования. Ошибки такого класса бывают синтаксическими, семантическими и логическими.

1) Синтаксические ошибки. Они появляются на этапе компиляции и возникают в связи с нарушением синтаксических правил языка Паскаль(пропущенные знаки пунктуации, ссылки на неописанные переменные, присваивание переменой значений неверного типа и т.д.).

Если компилятор встречает в тексте программы оператор или команду, которую он не может интерпретировать, он выводит сообщение об ошибке.

2) Семантические ошибки. К их возникновению приводит нарушение семантических правил написания программ на языке Турбо Паскаль (например, попытка программы выполнить деление на ноль).

3) Логические ошибки. Это ошибки, связанные с неправильным применением тех или иных алгоритмических конструкций. Такие ошибки не обнаруживаются на этапе компиляции и не приводят к аварийному завершению программы. На их наличие указывает неправильная работа программы и выдача ею некорректных результатов.

Для работы со встроенным отладчиком Delphi 4 его интегрированная среда разработки (IDE) предлагает целую серию установок, большинство из которых лучше не трогать, а оставить, как есть (по умолчанию). Однако если изменять установки, то выберать команду Tools/Options и в появившемся диалоговом окне Environment Options щелкнуть на вкладке Preferences.

Интегрированная среда Delphi предоставляет пользователю несколько команд пошаговой отладки доступных в меню Run. Run. Выбор этой команды запускает приложение на выполнение в обычном режиме. Можно использовать ее как для запуска приложения, так и для продолжения его работы после какого-либо прерывания выполнения (например, по точке останова). Если включена опция Break on Exception, то использовать команду для продолжения работы после получения сообщения об исключительной ситуации. Step Over. Когда точка выполнения находится на строке содержащей вызов процедуры или функции, использовать эту команду для выполнения строки, включая вызовы в один шаг, без прохождения отдельных строк вызываемых функций. Точка выполнения перемещается при выполнении на следующую строку. Trace Into. В отличие от предыдущей команды, эта опция отработает пошаговую отладку вызываемых процедур и функций. Другими словами, если, например, в строке вызывается некая процедура, то при выполнении этой команды точка выполнения перейдет на первую строку процедуры. Однако если в строке нет таких вызовов, значит, последние две команды идентичны. Внимательность нужна при пошаговой трассировке обработчика события OnPaint. Поскольку при пошаговой отладке окно редактора размещается поверх других окон, требуется перерисовка окна приложения, для чего вызывается обработчик события OnPaint. Можно попасть в замкнутый круг, точнее в бесконечный цикл вызовов одного и того же обработчика. Тем не менее, стоит лишь проследить, чтобы окна приложения и редактора не перекрывались, и проблема разрешится сама собой.

Trace to Next Source Line. Иногда один код вызывает другой код косвенно, например, при вызове функции, которая запускает обработчик события, или при вызове функции Windows API, которая, в свою очередь, запускает функцию косвенного вызова. Поскольку такие вызовы косвенные, отладчик не видит вызова и не отслеживает пошагового выполнения таких вызовов. Однако использование описываемой команды приводит к отслеживанию таких вызовов и останову отладчика на первой строке вызываемой таким образом функции или процедуры. Run to Cursor. Зачастую вовсе не хочется тратить время в поисках ошибки, местоположение которой с какой-то точностью известно, пошагово добираться до нужного места через сотни, а то и тысячи строк кода. В таком случае достаточно поместить курсор на нужную строку программы в окне редактирования и использовать команду Run to Cursor. Эти действия эквивалентны временному помещению точки останова в необходимой вам строки программы, и после выполнения предшествующего строке кода работа программы приостанавливается. Если пытаться выполнить программу до позиции курсора, который находится в строке, не содержащей отладочной информации, то появится сообщение об ошибке.


2.5 Результат работы программы

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

(Рис.1)

2.6 Инструкция по выполнению программы

Программа данного курсового проекта воспроизводит на экран дисплея результаты теста.

Программа запускается двойным щелчком левой кнопки мыши по файлу Progect.exe,

От пользователя требуется: отвечать на вопросы да или нет.

На экран дисплея выведется тип темперамента. При нажатии кнопки "Подробнее" идет развернутое описание темперемента.

Для выхода из программы нажать кнопку "Выход".


ЗАКЛЮЧЕНИЕ

На современном этапе развития образовательной системы немалая роль отводится компьютерной технике, которая призвана сделать процесс обучения более интересным и занимательным.

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