на тему рефераты Информационно-образоательный портал
Рефераты, курсовые, дипломы, научные работы,
на тему рефераты
на тему рефераты
МЕНЮ|
на тему рефераты
поиск
Программа психологического диагностирования на выявление типа темперамента
p align="left">{Сюда могут помещаться объявления типов, констант, переменных, функций и процедур, к которым будет доступ из других модулей, но которые не включаются в класс формы}

implementation // Реализация модуля

($R * .DFM}

{Сюда могут помещаться предложения uses, объявления типов, констант, переменных, к которым не будет доступа из других модулей. Тут же должны быть реализации всех объявленных в разделе interface функций и процедур, а также могут быть реализации любых дополнительных, не объявленных ранее функций и процедур.}

end.

Модуль начинается с ключевого слова unit, после которого пишется имя модуля. Оно совпадает с именем файла, в которым вы сохранили свой модуль. По умолчанию для первого модуля имя равно Unitl, для второго Unit2 -- и т.д.

Текст модуля состоит из двух основных разделов: interface -- открытый интерфейс модуля, и implementation -- реализация модуля. Все, что помещается непосредственно в раздел interface (типы, переменные, константы, функции, процедуры), может быть использовано другими модулями программы. Все, что помещается в раздел implementation -- внутреннее дело модуля. Внешние модули не могут видеть типы, переменные, константы, функции и процедуры, размещенные в разделе реализации.

В разделе interface после предложения uses, содержащего список подключаемых модулей, вы можете видеть заготовку объявления класса вашей формы, подготовленную Delphi. Имя класса вашей формы -- TForml. Класс содержит два раздела: private -- закрытый раздел класса, и public -- открытый раздел класса. То, что вы или Delphi объявите в разделе public, будет доступно для других классов и модулей. То, что объявлено в разделе private, доступно только в пределах данного модуля.

После завершения объявления класса формы можно увидеть строки

var

Forml: TForml;

Это объявляется переменная Forml класса TForml, т.е. объявляется форма как объекта класса TForml.

Затем следует пока пустой раздел реализации implementation, в котором содержится только директива компилятора.

В модуль можно ввести еще два раздела, кроме interface и implementation: разделы initialization и finalization

2 Специальная часть

2.1 Постановка задачи

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

Обработка результатов производится следующим образом: имеется типизированный файл, с общим количеством утверждений, равным 56(см. Приложение А) и вариантами ответов "Да" или "Нет". Эти утверждения делятся на группы: от 1 до 14 - первая группа, описывающая холерика, от 15 до 28 - вторая группа, описывающая сангвиника, от 29 до 42 - третья группа, описывающая флегматика, от 43 до 56 - четвертая группа, описывающая меланхолика. Пользователю предоставляется возможность отвечать на них либо "Да", либо "Нет". Далее подсчитывается количество положительных ("Да") и количество отрицательных ("Нет") ответов в каждой группе утверждений. В той группе, где количество положительных ("Да") ответов больше всего, тот тип темперамента и преобладает, т.е. является ярко выраженным, он выводится в отдельное окно (см. рис.1).

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

2.2 Схема алгоритма основной программы

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,

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

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

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

ЗАКЛЮЧЕНИЕ

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

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

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

Работа над данным курсовым проектом помогла разработчику почувствовать уверенность в своих силах как будущему специалисту.

СПИСОК ЛИТЕРАТУРЫ

1. Ресурсы сайта ww.wikipedia.ru

2. "Основы алгоритмизации и программирования", О. Л. Голицына, И. И. Попов, Москва, 2002 год, изд-во "Форум - Инфа - М"

3. "Windows XP", 2е издание, самоучитель, В. Холмогоров, изд-во "Питер", 2003 год

4. Учебник "Психология" под ред. А.А.Крылова - М: ПРОСПЕКТ, 2000

5. Мерлин В.С. Очерк теории темперамента. - М,1964.

6. "Программирование в Delphi 7" Архангельский А. Я.- М.: ООО "Бином-Пресс", 2004.

ПРИЛОЖЕНИЕ А

Вопросы к тесту

1. Неусидчивы, суетливы.

2. Невыдержанны, вспыльчивы.

3. Нетерпеливы.

4. Решительны и инициативны.

5. Упрямы.

6. Находчивы в споре.

7. Работаете рывками.

8. Склонны к риску.

9. Незлопамятны и необидчивы.

10. Обладаете быстрой, страстной речью.

11. Неуравновешенны, склонны к горячности.

12. Нетерпимы к недостаткам.

13. Неустанно стремитесь к новому.

14. Склонны к резким сменам настроения.

15. Веселы, жизнерадостны.

16. Энергичны, деловиты.

17. Часто не доводите дело до конца.

18. Склонны переоценивать себя.

19. Неустойчивы в интересах и склонностях.

20. Легко приспосабливаетесь к различным обстоятельствам.

21. Быстро включаетесь в новую работу и быстро переключаетесь.

22. Вам не нравится однообразие, буднично-кропотливая работа.

23. Вы общительны и отзывчивы.

24. Обладаете громкой, быстрой, отчётливой речью.

25. Сохраняете самообладание в неожиданных, сложных ситуациях.

26. Быстро засыпаете и просыпаетесь.

27. Часто несобранны, проявляете поспешность в решениях.

28. Склонны часто отвлекаться.

29. Спокойны и хладнокровны.

30. Последовательны и обстоятельны в делах.

31. Осторожны и рассудительны.

32. Умеете ждать.

33. Молчаливы, не любите попусту болтать.

34. Обладаете спокойной речью без резко выраженных эмоций.

35. Не растрачиваете попросту сил.

36. Придерживаетесь распорядка в жизни, системы в работе.

37. Маловосприимчивы к одобрению и порицанию.

38. Медленно включаетесь в новую работу и переключаетесь с одной на другую.

39. Ровны в отношениях со всеми.

40. Любите аккуратность и порядок.

41. С трудом приспосабливаетесь к новой обстановке.

42. Инертны, малоподвижны.

43. Стеснительны, застенчивы.

44. Теряетесь в новой обстановке.

45. Не верите в свои силы.

46. Легко переносите одиночество.

47. Чувствуете подавленность и растерянность при неудачах.

48. Склонны уходить в себя, замыкаться.

49. Быстро утомляетесь.

50. Обладаете слабой тихой речью, иногда снижающейся до шепота.

51. Невольно приспосабливаетесь к характеру собеседника.

52. Впечатлительны до слезливости.

53. Предъявляете высокие требования к себе и окружающим.

54. Склонны к подозрительности.

55. Болезненно чувствительны и легко ранимы.

56. Стремитесь вызвать сочувствие и помощь у окружающих

Страницы: 1, 2, 3



© 2003-2013
Рефераты бесплатно, курсовые, рефераты биология, большая бибилиотека рефератов, дипломы, научные работы, рефераты право, рефераты, рефераты скачать, рефераты литература, курсовые работы, реферат, доклады, рефераты медицина, рефераты на тему, сочинения, реферат бесплатно, рефераты авиация, рефераты психология, рефераты математика, рефераты кулинария, рефераты логистика, рефераты анатомия, рефераты маркетинг, рефераты релиния, рефераты социология, рефераты менеджемент.