Разработка программы психотестирования. Реферат. Информатика, ВТ, телекоммуникации.

💣 👉🏻👉🏻👉🏻 ВСЯ ИНФОРМАЦИЯ ДОСТУПНА ЗДЕСЬ ЖМИТЕ 👈🏻👈🏻👈🏻
Вы можете узнать стоимость помощи в написании студенческой работы.
Помощь в написании работы, которую точно примут!
Похожие работы на - Разработка программы психотестирования
Нужна качественная работа без плагиата?
Не нашел материал для своей работы?
Поможем написать качественную работу Без плагиата!
Харьковский
государственный технический университет радиоэлектроники
« Основы программирования и
алгоритмические языки »
«Разработка программы психотестирования»
на курсовую работу по дисциплине « ОП и
АЯ »
Тема: « Разработка программы
психотестирования »
І. Используя визуальную среду программирования Delphi, разработать программу психотестирования, которая бы посредством
нескольких тестов определяла психологический портрет человека
Дата выдачи задания:
Дата защиты:
Данная курсовая работа
содержит:
·
в приложении дан исходный код программы.
КУРСОВАЯ РАБОТА, DELPHI, ИНТЕРФЕЙС, МЕНЮ, ОБЪЕКТ,ФАЙЛ, ПСИХОТЕСТ.
Реферат........................................................................................................................ 3
Содержание................................................................................................................. 4
Введение...................................................................................................................... 5
1 Описание программы............................................................................................... 6
1. 1 Внутренняя структура программы................................................................... 6
1. 1. 1 Хранение информации теста.................................................................... 7
1. 1. 2 Хранение информации для возврата результов теста.............................. 8
1. 1. 3 Описание работы программы................................................................... 8
1. 1. 4 Инструкция для пользователя.................................................................. 9
1. 3 Создание тестов. Вспомогательные программы........................................... 10
1. 3. 1 Создание теста........................................................................................ 10
1. 3. 2 Создание файла результатов................................................................... 11
2 Система меню........................................................................................................ 13
2. 1 TMainMenu....................................................................................................... 1 3
2. 1. 1 События.................................................................................................. 14
2. 1. 2 Вложенные меню.................................................................................... 14
2. 1. 3 Дополнительные возможности.............................................................. 15
2. 2 TPopupMenu.................................................................................................... 1 7
2. 3 Пример программы......................................................................................... 1 8
Выводы...................................................................................................................... 23
Список литературы.................................................................................................... 24
Приложение А............................................................................................................ 25
Психология – великая наука. Она позволяет узнать о
человеке ВСЕ. Для получения такой информации используются психологические тесты
– исследуемому задаются вопросы и предлагаются варианты ответов. Он выбирает
тот, который по смыслу ближе всех к его мнению. В конце теста ответы
анализируются: каждому варианту присвоено некоторое количество баллов; они
подсчитываются и в зависимости от общего счета получается результат.
Такие
методы психологических исследований применяются довольно давно. Но в век
компьютеров и всеобщего доступа к ним все чаще для тестирования стали
применяться ЭВМ. Специализированная программа задает вопросы, принимает ответы,
подсчитывает баллы и выдает результат. В Интернете имеются сайты, где все
желающие могут узнать степень своей уверенности в себе, агрессивности,
организованности и многое другое. Подобные программы существуют и для локальных
ПК, не подключенных ни к каким сетям.
В
данной курсовой работе представлена система психотестирования SuperPsy, разработанная в системе программирования Borland
Delphi. В нее входит три теста, ответив на которые,
человек получает обширные сведения о своем характере.
В
системе тесты не стационарны – можно создать файлы с другими тестами и
пользоваться ними. Для создания файлов тестов имеются две утилитные программы,
которые также описаны в работе.
Программа
имеет некоторые элементы художественного оформления, что важно, если учесть
специальность автора – ИПД.
В
данной курсовой работе представлена программа для психотестирования, которая
содержит три теста; она создает психологический портрет человека, ответившего
на все вопросы тестов.
Кроме
программы для тестирования курсовая работа включает в себя две программы для
создания файлов тестов (все тесты, а также их результаты, используемые
программой психотестирования, содержатся в отдельных файлах, что упрощает
усовершенствование системы тестиривания).
Проект
Delphi называется SuperPsy. Он содержит три формы и один
программный модуль, в котором описаны основные пользовательские типы и
переменные, используемые в программе тестирования, а также в программах
создания тестов. Все модули программы приведены в табл. 1. 1.
Таблица
1.1 Программные модули Delphi, составляющие программу
Здесь
описано окно программы, которое видит пользователь сразу после ее запуска.
Размещены процедуры выбора нужного теста.
Окно
тестирования – окно, на котором появляются вопросы и варианты ответов. В этом
модуле размещены процедуры загрузки тестов.
Это
окно служит для вывода результата тестирования. Модуль
не содержит важных процедур.
В этом модуле
собраны типы для описания тестов. Он общий для всех трех программ пакета.
Для
хранения информации теста (тексты вопросов, варианты ответов и т. п.)
используется пользовательский тип TTest:
text:string[255]; {текст вопроса}
quest:array[1..3]
of string[100]; {варианты}
count:array[1..3]
of byte; {очки за вариант}
В такой записи хранится один вопрос. Весь тест
содержится в массиве записей. При сохранении теста на диске используется
типизированный файл этого типа.
Программа
создания тестов – TestCreator тоже
использует этот тип.
Подобно
информации о тестах, информация результатов тоже хранится в записях. Тип
называется TResult:
min,max:integer; {кол-во
баллов}
text:array[1..1000] of char; {текст
результата}
Подобно вопросам, результаты хранятся в массивах; для
сохранения на диске используются типизированные файлы.
На форме frmMain
размещены кнопки SpeedButton, у
которых свойство Flat установлено
в «истину». Благодаря этому они прозрачны. Надписи, которые находятся на этих
кнопках, на самом деле взяты из графических файлов.
Нажатие
на любую кнопку вызывает соответствующий обработчик события, который, в свою
очередь, присваивает глобальной переменной testfilename:string,
описанной в модуле TestTypes, имя файла теста, а потом
запукает процедуру RunTest, показывающую форму frmTest.
Дальше
работают процедуры модуля этой формы. Процедура Load, описанная как метод, загружает из файла теста очередной вопрос
с вариантами. Обработчик события нажатия кнопки «Далее» проверяет наличие еще
вопросов в файле и в случае позитивного ответа вызывает Load, в противном случае – грузит из файла результатов нужную запись в Label1 формы вывода результатов frmRes. После этого прячет окно
тестирования и показывает результат.
Устройство
программ создания тестов и результатов не нуждается в описании.
Исполняемый
файл программы называется SuperPsy.еxe.
Запустив его, пользователь увидит окно, приглашающее выбрать
нужный тест. Это окно показано на рис. 1. 1
Рисунок
1. 1 – Первое окно программы (форма frmMain)
Здесь,
на фоне неба как-бы «висят» названия тестов. При движении курсора мышки по
кнопке, она приподнимается над общим фоном, как показано на рис. 1.1 Щелкнув
левой кнопкой мыши, тестируемый выбирает интересующий его тест и попадает в
окно тестирования, показанное на рис. 1. 2, стр. 10. Чтобы ответить на вопрос,
достаточно щелкнуть на правильном с точки зрения пользователя варианте ответа
(при этом все варианты тут-же заблокируются и станет доступной кнопка «Далее»).
Для перехода к следующему вопросу надо нажать кнопку «Далее».
Как
уже было сказано выше, в курсовую работу входят также две утилиты – для
создания тестов и результатов к ним. Первая называется TestCreator,
а вторая – ResCreator, ТС и RC.
Программа
ТС имеет единственное (если не считать диалоговых открытия и сохранения файла)
окно. Оно представлено на рис. 1. 3, стр. 11.
При
запуске вместо текста вопроса написана строка «Текст вопроса», а вместо
вариантов ответов – «Вариант1 (2,3)». Мышкой можно выбирать «радиобаттон», а
потом вводить в поле «текст варианта» нужный вариант.
Для
этого предназначена утилитная программа RC. (Result Creator). После
запуска этой программы выводится окно, представленное на рис. 1. 4, стр.
12.
Рисунок 1. 4 – Окно программы Result Creator
Как
видно из рис. 1. 4, текст результата вводится в окне ввода типа Memo. В верхние спинэдиты помещается минимальное и
максимальное количесиво очков, которые должен набрать тестируемый, чтобы
высветился именно этот вариант результатов. Спинэдит «Вариант № » показывает, над каким вариантом результата ведется работа.
Кнопки «Сохранить» и «Загрузить» вызывают стандартные диалоговые окна Windows для, соответственно, сохранения и
загрузки файла результатов.
Сохраняя
файл результатов, желательно давать ему расширение RTS.
Среда
программирования Borland Delphi имеет
два компонента для создания меню: TMainMenu и TPopupMenu. Они делают программирование меню
приложений несложной задачей. В данной курсовой работе будут описаны
способы создания меню с обеими компонентами, а также представлены примеры
программ.
На панели
инструментов этот компонент помечен значком: . Для того, чтобы создать меню,
поместите компонент на форму, а потом щелкните по нему два раза левой кнопкой
мышки. Появится специальное окно для ввода пунктов меню, пример которого
представлен на рис. 2. 1.
На
рис. 2.1 показано окно для ввода пунктов меню, а также часть инспектора
объектов со свойством Caption, которому
нужно присвоить строку меню. Кроме того, можно изменить свойство Name.
Чтобы
программа реагировала на выбор пункта меню, нужно создать специальный
обработчик события, который будет вызываться каждый раз при щелчке мышки по
пункту или при нажатии клавиши «ENTER».
Вставить
обработчик события выбора меню можно несколькими способами:
двойной щелчек по пункту на окне редактирования меню, на форме; можно, в
крайнем случае, назначить событие на странице «Events»
инспектора объектов.
Такие
меню широко применяются во многих приложениях Windows и не только. Выбирая пункт меню, пользователь
попадает в другое меню (как правило, расположенное вертикально) и может
выбирать там.
После ввода пункта горизонтального меню, оно принимает вид:
Теперь можно выделить мышкой пункт вложенного меню и
вводить его параметры, как и для главного.
Вложенным
меню, в свою очередь, можно также назначать вложенные. Самый удобный способ –
нажать правую кнопку мышки и выбрать из появившегося меню пункт «Create Submenu». После этих манипуляций наше меню примет
такой вид, как показано на рис. 2. 3.
Рисунок 2. 3 – Вложенные меню второго уровня
Создавать
вложенные меню Windows позволяет
до бесконечности (на практике – сколько хватит памяти или пока не надоест).
Вместо
обычного выполнения действия при выборе пункта меню, можно сделать так, чтобы
он отмечался «птичкой» (Рис. 2. 4). В этом случае данный пункт действует
подобно элементу интерфейса CheckBox.
Чтобы в программе узнать, «включен» ли пункт, надо проверить свойство Checked.
Рисунок 2. 4 – Меню, отмеченное “птичкой”
Во
многих приложениях также применяется возможность закрытия
доступа к определенному пункту меню, есло в данный момент он не может
выполнится. Для этого служит свойство Enabled. Оно, как и Checked, имеет
тип Boolean.
На
рис. 2.4 видно, что пункт «Меню2» выделен жирным шрифтом. Это результат
установки еще одного логического свойства объекта – Default.
Еще одна важная возможность – вставка разделительной
линии. На рис. 2.5 (стр. 16) она размещена между «Меню1» и
«Меню2»:
Эту «примочку» используют в основном для отдления
различных типов действия, вызываемого меню, например, часто в меню «Файл»
помещают список нескольких открывавшихся ранее файлов, отделенный от
остального меню такими линиями. Прекрасным примером использования
разделительных линий также может служить меню «Файл» программы Microsoft Word. Оно приведено для наглядности на рис. 2.
6.
Одной
из самых удобных возможностей системы меню является возможность использования
клавиш быстрого доступа, например, в меню на рис. 2. 6 при одновременном
нажатии клавиш Ctrl и Р текущий документ отправлется на
печать. И не нужно отвлекаться, тратить время, снимать руку с клавиатуры…
Рассматриваемый
нами компонент TMainMenu также обладает возможностью
назначения клавиш быстрого доступа. Для этого служит свойство ShortCut.
В инспекторе объектов оно имеет раскрывающийся список, из которого можно
выбрать нужную комбинацию клавиш. Пример такого списка представлен на рис. 2.
7.
Если
кому-то захочется сделать уж очень «крутую» программу, тут ему поможет
возможность вставки картинок.
Это
всплывающее меню, оно вызывается нажатием правой кнопки мыши. В палитре
компонентов его значок такой: . Как и MainMenu, этот компонент следует
поместить на форму, для редактирования два раза щелкнуть. Во всем, что касается
создания пунктов, этот компонент идентичен MainMenu. Ну, разве
что, сразу строится вертикальное меню.
Для того, чтобы меню «всплывало», нужно в
свойстве PopupMenu формы указать его (меню) имя.
Ниже будут представлены примеры программ,
использующие такие компоненты, как меню. Кроме исходного кода будут
иллюстрации.
Пример представляет собой несложную
программу, позволяющую просматривать и редактировать текстовые файлы. Окно этой
программы показано на рис. 2. 8.
Рисунок 2. 8
– Окно программы-примера
Ниже будет представлен листинг программы:
Windows, Messages, SysUtils, Classes, Graphics, Controls,
Forms, Dialogs, Menus, StdCtrls;
MainMenu1: TMainMenu; {Главное меню}
N1: TMenuItem; {Меню “Файл”}
N2: TMenuItem; {Меню “Открыть”}
N3: TMenuItem; {Меню “Сохранить”}
N4: TMenuItem; {Меню “Выход”}
N5: TMenuItem; {Разделительная линия}
N6: TMenuItem; {Меню “Помощь”}
N7: TMenuItem; {Меню “О программе”}
PopupMenu1: TPopupMenu; {Всплывающее меню}
procedure N4Click(Sender: TObject);
procedure N7Click(Sender: TObject);
procedure N2Click(Sender: TObject);
procedure N3Click(Sender: TObject);
procedure TForm1.N4Click(Sender: TObject);
procedure TForm1.N7Click(Sender: TObject);
procedure TForm1.N2Click(Sender: TObject);
if opendialog1.Execute then
memo1.Lines.LoadFromFile(opendialog1.filename)
procedure TForm1.N3Click(Sender: TObject);
if savedialog1.Execute then
memo1.Lines.SaveToFile(savedialog1.filename)
{Модуль, описывающий окно “О
программе”}
uses Windows, SysUtils, Classes, Graphics, Forms, Controls,
StdCtrls, Buttons, ExtCtrls;
procedure OKButtonClick(Sender: TObject);
procedure TAboutBox.OKButtonClick(Sender: TObject);
Данная
программа демонстрирует использование меню. Она имеет главное меню и
всплывающее, которое появляется при нажатии правой кнопки мышки. Меню снабжены
клавишами быстрого доступа, используется разделительная линия.
Меню «Открыть», «Сохранить», «Выход» и «О
программе» снабжены клавишами быстрого доступа. Всплывающее меню, имеющее два
пункта – «Открыть» и «Сохранить». При их нажатии вызываются события
соотвутствующих пунктов главного меню.
В
данной курсовой работе разработана система для психотестирования на Borland Delphi 5. 0. Кроме основной
программы, созданы две утилитные – для создания тестов, которые хранятся в
отдельных файлах.
В
процессе составления программы детально были изучены основные объекты
графического интерфейсa Windows.
В процессе
выполнения второй части курсовой работы были детально изучены компоненты,
позволяющие создавать систему меню. При рассмотрении этих компонентов приведена
программа-пример.
1. Культин
Н. Delphi
4. Программирование
на Object
Pascal. BHV, Санкт-Петербург,
1999. – 480 с., ил.
2. Дэн
Оузьер и др. Delphi
3. Освой
самостоятельно. М.: “Издательство БИНОМ”, 1998 г. – 560 с.: ил.
3.
Бондарев В. М., Рублинецкий В. И., Качко Е. Г. Основы программирования.
Харьков: Фолио; Ростов н/Д: Феникс, 1998 – 368 с.
Windows, Messages,
SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
procedure
SpeedButton1Click(Sender: TObject);
procedure
SpeedButton2Click(Sender: TObject);
procedure SpeedButton3Click(Sender:
TObject);
procedure
FormClose(Sender: TObject; var Action: TCloseAction);
showmessage('Файл
теста не найден!');
showmessage('Ошибка в файле теста');
procedure TfrmMain.SpeedButton1Click(Sender:
TObject);
procedure
TfrmMain.SpeedButton2Click(Sender: TObject);
procedure
TfrmMain.SpeedButton3Click(Sender: TObject);
procedure
TfrmMain.FormClose(Sender: TObject; var Action: TCloseAction);
if messagedlg('Вы
действительно хотите выйти?',mtwarning,[mbyes,mbno],0)=mrno then action:=canone
Windows, Messages,
SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
ExtCtrls, StdCtrls,
Buttons, testtypes;
procedure
rb1Click(Sender: TObject);
procedure rb2Click(Sender:
TObject);
procedure
rb3Click(Sender: TObject);
procedure
FormActivate(Sender: TObject);
procedure
SpeedButton1Click(Sender: TObject);
procedure
FormClose(Sender: TObject; var Action: TCloseAction);
label1.caption:=test[defque].text;
rb1.Caption:=test[defque].quest[1];
rb2.Caption:=test[defque].quest[2];
rb3.Caption:=test[defque].quest[3];
if rb3.caption='' then
rb3.hide else rb3.Show
procedure
TfrmTest.FormActivate(Sender: TObject);
procedure
TfrmTest.rb1Click(Sender: TObject);
inc(testcount,test[defque].count[1])
procedure
TfrmTest.rb2Click(Sender: TObject);
inc(testcount,test[defque].count[2])
procedure
TfrmTest.rb3Click(Sender: TObject);
inc(testcount,test[defque].count[3])
procedure
TfrmTest.SpeedButton1Click(Sender: TObject);
assignfile(f,copy(testfilename,1,length(testfilename)-3)+'rts');
if testcount in [r.min..r.max]
then begin
frmres.label1.Caption:=r.text;
procedure
TfrmTest.FormClose(Sender: TObject; var Action: TCloseAction);
Windows, Messages,
SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
procedure
Button1Click(Sender: TObject);
procedure
FormClose(Sender: TObject; var Action: TCloseAction);
procedure
TfrmRes.Button1Click(Sender: TObject);
procedure
TfrmRes.FormClose(Sender: TObject; var Action: TCloseAction);
quest:array[1..3] of
string[100];
Windows, Messages,
SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
procedure
Button2Click(Sender: TObject);
procedure
Button1Click(Sender: TObject);
procedure
FormCreate(Sender: TObject);
procedure
Edit1Change(Sender: TObject);
procedure Edit2Change(Sender:
TObject);
procedure
rb1Click(Sender: TObject);
procedure
rb2Click(Sender: TObject);
procedure
rb3Click(Sender: TObject);
procedure
SpinEdit1Change(Sender: TObject);
procedure
SpinEdit2Change(Sender: TObject);
procedure Button3Click(Sender:
TObject);
procedure
TfrmMain.Button2Click(Sender: TObject);
if
savedialog1.execute then begin
assignfile(f,savedialog1.Filename);
for i:=1 to
testnum do write(f,test[i]);
procedure
TfrmMain.Button1Click(Sender: TObject);
if
opendialog1.execute then begin
assignfile(f,opendialog1.Filename);
statictext1.Caption:='Всего
вопросов '+inttostr(testnum);
procedure
TfrmMain.FormCreate(Sender: TObject);
test[i].quest[1]:='Вариант1';
test[i].quest[2]:='Вариант2';
test[i].quest[3]:='Вариант3';
test[i].text:='Текст
вопроса'
procedure
TfrmMain.Edit1Change(Sender: TObject);
test[spinedit1.value].text:=edit1.text
procedure
TfrmMain.Edit2Change(Sender: TObject);
test[spinedit1.value].quest[nq]:=edit2.text
procedure
TfrmMain.rb1Click(Sender: TObject);
spinedit2.Value:=test[spinedit1.Value].count[1];
procedure
TfrmMain.rb2Click(Sender: TObject);
spinedit2.Value:=test[spinedit1.Value].count[2];
procedure
TfrmMain.rb3Click(Sender: TObject);
spinedit2.Value:=test[spinedit1.Value].count[3];
procedure
TfrmMain.SpinEdit1Change(Sender: TObject);
if
spinedit1.value>testnum then begin
statictext1.caption:='Всего вопросов '+inttostr(testnum)
label2.Caption:=test[spinedit1.value].text;
rb1.Caption:=test[spinedit1.value].quest[1];
rb2.Caption:=test[spinedit1.value].quest[2];
rb3.Caption:=test[spinedit1.value].quest[3];
edit1.Text:=test[spinedit1.value].text;
edit2.text:=test[spinedit1.value].quest[1];
procedure
TfrmMain.SpinEdit2Change(Sender: TObject);
test[spinedit1.value].count[nq]:=spinedit2.value
procedure
TfrmMain.Button3Click(Sender: TObject);
if
spinedit1.value=testnum then begin
spinedit1.value:=spinedit1.value-1;
for i:=spinedit1.value
to testnum-1 do test[i]:=test[i+1];
statictext1.Caption:='Всего вопросов '+inttostr(testnum)
Windows, Messages,
SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
procedure
Button1Click(Sender: TObject);
procedure
Button2Click(Sender: TObject);
procedure
SpinEdit1Change(Sender: TObject);
procedure
SpinEdit2Change(Sender: TObject);
procedure
Memo1Change(Sender: TObject);
procedure
FormCreate(Sender: TObject);
procedure
SpinEdit3Change(Sender: TObject);
procedure
TfrmMain.Button1Click(Sender: TObject);
if savedialog1.execute
then begin
assignfile(f,savedialog1.filename);
for i:=1 to varnum-1
do write(f,res[i]);
procedure
TfrmMain.Button2Click(Sender: TObject);
if opendialog1.execute
then begin
assignfile(f,opendialog1.filename);
procedure
TfrmMain.SpinEdit1Change(Sender: TObject);
res[spinedit3.value].min:=spinedit1.value;
if
spinedit2.value1. 1. 1 Хранение информации теста Реферат. Информатика, ВТ, телекоммуникации.
Основы Исследовательской Деятельности Реферат
Как Окружение Влияет На Личность Сочинение Вывод
Курсовая работа: Особенность построения судебной системы Российской Федерации
Реферат: «Статистический анализ демографических процессов в Оренбургской области» Дата выполнения: Апрель 2009. Страниц: 47
Реферат по теме Сравнительный анализ группаналитического и гештальт подхода в работе на ранних стадиях психотерапевтической группы
Реферат Общедидактические Принципы Логопедической Работы В Школе
Курсовая работа: Защита Москвы в Великой Отечественной войне. Скачать бесплатно и без регистрации
История Конституции Рф Реферат Плотно
Контрольная Работа На Тему Поисковые Системы Интернета
Сочинение О Простаковой Из Недоросль
Курсовая работа по теме Дзіцячы фальклор
Контрольная работа: Отмена крепостного права в России
Гдз По Физике 9 Класс Лабораторные Работы
Диссертация Дочери Путина
Статья: Специфика киноязыка. Стратегия исследования кинофильма методологический аспект
Контрольная работа по теме Политика ценовой дискриминации
Реферат: Интегральная телесная терапия - новый взгляд на процесс и результат
Контрольная работа по теме Прийоми варіювання геометричних задач
Курсовая Работа База Данных Библиотека Access
Сибирский федеральный округ
Отчет по практике: Работа на терапевтическом участке
Реферат: Ярослав Мудрый 3
Похожие работы на - Отношения между КНДР и Республикой Корея