Реферат по предмету "Компьютеры и цифровые устройства"


Программа психотестирования

Разработка программы психотестирования Введение Психология великая наука. Она позволяет узнать о человеке ВСЕ. Для получения такой информации используются психологические тесты исследуемому задаются вопросы и предлагаются варианты ответов. Он выбирает тот, который по смыслу ближе всех к его мнению. В конце теста ответы анализируются каждому варианту присвоено некоторое количество баллов они подсчитываются

и в зависимости от общего счета получается результат. Такие методы психологических исследований применяются довольно давно. Но в век компьютеров и всеобщего доступа к ним все чаще для тестирования стали применяться ЭВМ. Специализированная программа задает вопросы, принимает ответы, подсчитывает баллы и выдает результат. В Интернете имеются сайты, где все желающие могут узнать степень своей уверенности в себе, агрессивности,

организованности и многое другое. Подобные программы существуют и для локальных ПК, не подключенных ни к каким сетям. В данной курсовой работе представлена система психотестирования SuperPsy, разработанная в системе программирования Borland Delphi. В нее входит три теста, ответив на которые, человек получает обширные сведения о своем характере. В системе тесты не стационарны можно создать файлы с другими тестами и пользоваться ними.

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

файлов тестов все тесты, а также их результаты, используемые программой психотестирования, содержатся в отдельных файлах, что упрощает усовершенствование системы тестирования. 1 Внутренняя структура программы Проект Delphi называется SuperPsy. Он содержит три формы и один программный модуль, в котором описаны основные пользовательские типы и переменные, используемые в программе тестирования, а также в программах создания тестов.

Все модули программы приведены в табл. 1. Таблица 1.1 Здесь описано окно программы, которое видит пользователь сразу после ее запуска. Размещены процедуры выбора нужного теста.TestfrmFrmTestОкно тестирования окно, на котором появляются вопросы и варианты ответов. В этом модуле размещены процедуры загрузки тестов.

ResfrmFrmResЭто окно служит для вывода результата тестирования. Модуль не содержит важных процедур.TestTypesНетВ этом модуле собраны типы для описания тестов. Он общий для всех трех программ пакета. 1 Хранение информации теста Для хранения информации теста тексты вопросов, варианты ответов и т. п. используется пользовательский тип TTest TTestrecord textstring255текст вопроса questarray1 3 of string100варианты countarray1 3 of

byteочки за вариант end В такой записи хранится один вопрос. Весь тест содержится в массиве записей. При сохранении теста на диске используется типизированный файл этого типа. Программа создания тестов TestCreator тоже использует этот тип. 2 Хранение информации для возврата результов теста Подобно информации о тестах, информация результатов тоже хранится в записях.

Тип называется TResult TResultrecord min,maxintegerкол-во баллов textarray1 1000 of char текст результата end Подобно вопросам, результаты хранятся в массивах для сохранения на диске используются типизированные файлы. 3 Описание работы программы На форме frmMain размещены кнопки SpeedButton, у которых свойство Flat установлено в истину. Благодаря этому они прозрачны. Надписи, которые находятся на этих кнопках, на самом деле взяты из графических

файлов. Нажатие на любую кнопку вызывает соответствующий обработчик события, который, в свою очередь, присваивает глобальной переменной testfilenamestring, описанной в модуле TestTypes, имя файла теста, а потом запускает процедуру RunTest, показывающую форму frmTest. Дальше работают процедуры модуля этой формы. Процедура Load, описанная как метод, загружает из файла теста очередной вопрос с вариантами.

Обработчик события нажатия кнопки Далее проверяет наличие еще вопросов в файле и в случае позитивного ответа вызывает Load, в противном случае грузит из файла результатов нужную запись в Label1 формы вывода результатов frmRes. После этого прячет окно тестирования и показывает результат. Устройство программ создания тестов и результатов не нуждается в описании. 4 Инструкция для пользователя Исполняемый файл программы называется

SuperPsy.еxe. Запустив его, пользователь увидит окно, приглашающее выбрать нужный тест. Это окно показано на рис. 1 Здесь, на фоне неба как-бы висят названия тестов. При движении курсора мышки по кнопке, она приподнимается над общим фоном, как показано на рис. 1.1 Щелкнув левой кнопкой мыши, тестируемый выбирает интересующий его тест и попадает в окно тестирования, показанное на рис. 1. 2, стр. 10. Чтобы ответить на вопрос, достаточно щелкнуть на правильном с точки

зрения пользователя варианте ответа при этом все варианты тут-же заблокируются и станет доступной кнопка Далее. Для перехода к следующему вопросу надо нажать кнопку Далее. Рисунок 2 Окно тестирования 3 Создание тестов. Вспомогательные программы Как уже было сказано выше, в курсовую работу входят также две утилиты для создания тестов и результатов к ним. Первая называется

TestCreator, а вторая ResCreator, ТС и RC. 3. 1 Создание теста Программа ТС имеет единственное если не считать диалоговых открытия и сохранения файла окно. Оно представлено на рис. 1. 3, стр. 11. Рисунок 1. 3 Окно программы ТС При запуске вместо текста вопроса написана строка Текст вопроса, а вместо вариантов ответов Вариант1 2,3.

Мышкой можно выбирать радиобаттон, а потом вводить в поле текст варианта нужный вариант. 3. 2 Создание файла результатов Для этого предназначена утилитная программа RC. Result Creator. После запуска этой программы выводится окно, представленное на рис. 1. 4, стр. 12. Рисунок 1. 4 Окно программы Result Creator Как видно из рис. 1. 4, текст результата вводится в окне ввода типа

Memo. В верхние спинэдиты помещается минимальное и максимальное количесиво очков, которые должен набрать тестируемый, чтобы высветился именно этот вариант результатов. Спинэдит Вариант показывает, над каким вариантом результата ведется работа. Кнопки Сохранить и Загрузить вызывают стандартные диалоговые окна Windows для, соответственно, сохранения и загрузки файла результатов.

Сохраняя файл результатов, желательно давать ему расширение RTS. 2 Система меню Среда программирования Borland Delphi имеет два компонента для создания меню TMainMenu и TPopupMenu. Они делают программирование меню приложений несложной задачей. В данной курсовой работе будут описаны способы создания меню с обеими компонентами, а также представлены

примеры программ. 2. 1 TMainMenu Для того, чтобы создать меню, поместите компонент на форму, а потом щелкните по нему два раза левой кнопкой мышки. Появится специальное окно для ввода пунктов меню, пример которого представлен на рис. 2. 1. Рисунок 2. 1 Окно для ввода меню На рис. 2.1 показано окно для ввода пунктов меню, а также часть инспектора объектов со свойством Caption, которому нужно присвоить строку меню. Кроме того, можно изменить свойство

Name. 2. 1. 1 События Чтобы программа реагировала на выбор пункта меню, нужно создать специальный обработчик события, который будет вызываться каждый раз при щелчке мышки по пункту или при нажатии клавиши ENTER. Вставить обработчик события выбора меню можно несколькими способами двойной щелчек по пункту на окне редактирования меню, на форме можно, в крайнем случае, назначить событие на странице Events инспектора объектов. 2. 1. 2 Вложенные меню

Такие меню широко применяются во многих приложениях Windows и не только. Выбирая пункт меню, пользователь попадает в другое меню как правило, расположенное вертикально и может выбирать там. После ввода пункта горизонтального меню, оно принимает вид Рисунок 2. 2 Вложенное меню Теперь можно выделить мышкой пункт вложенного меню и вводить его параметры, как и для главного. Вложенным меню, в свою очередь, можно также назначать вложенные.

Самый удобный способ нажать правую кнопку мышки и выбрать из появившегося меню пункт Create Submenu. Создавать вложенные меню Windows позволяет до бесконечности на практике сколько хватит памяти или пока не надоест. 2. 1. 3 Дополнительные возможности Вместо обычного выполнения действия при выборе пункта меню, можно сделать так, чтобы он отмечался птичкой Рис. 2. 4. В этом случае данный пункт действует подобно элементу интерфейса

CheckBox. Чтобы в программе узнать, включен ли пункт, надо проверить свойство Checked. Рисунок 2. 4 Меню, отмеченное птичкой Во многих приложениях также применяется возможность закрытия доступа к определенному пункту меню, есло в данный момент он не может выполнится. Для этого служит свойство Enabled. Оно, как и Checked, имеет тип Boolean. На рис. 2.4 видно, что пункт Меню2 выделен жирным шрифтом.

Это результат установки еще одного логического свойства объекта Default. Еще одна важная возможность вставка разделительной линии. На рис. 2.5 стр. 16 она размещена между Меню1 и Меню2 Эту примочку используют в основном для отдления различных типов действия, вызываемого меню, например, часто в меню Файл помещают список нескольких открывавшихся ранее файлов, отделенный от остального меню

такими линиями. Прекрасным примером использования разделительных линий также может служить меню Файл программы Microsoft Word. Одной из самых удобных возможностей системы меню является возможность использования клавиш быстрого доступа, при одновременном нажатии клавиш Ctrl и Р текущий документ отправлется на печать. И не нужно отвлекаться, тратить время, снимать руку с клавиатуры Рассматриваемый нами компонент TMainMenu также обладает возможностью назначения клавиш

быстрого доступа. Для этого служит свойство ShortCut. В инспекторе объектов оно имеет раскрывающийся список, из которого можно выбрать нужную комбинацию клавиш. Если кому-то захочется сделать уж очень крутую программу, тут ему поможет возможность вставки картинок. 2. 2 TPopupMenu Это всплывающее меню, оно вызывается нажатием правой кнопки мыши. Как и MainMenu, этот компонент следует поместить на форму, для редактирования два раза щелкнуть.

Во всем, что касается создания пунктов, этот компонент идентичен MainMenu. Ну, разве что, сразу строится вертикальное меню. Для того, чтобы меню всплывало, нужно в свойстве PopupMenu формы указать его меню имя. 3 Пример программы Ниже будут представлены примеры программ, использующие такие компоненты, как меню. Кроме исходного кода будут иллюстрации. Пример представляет собой несложную программу, позволяющую

просматривать и редактировать текстовые файлы. Окно этой программы показано на рис. 2. 8. Рисунок 2. 8 Окно программы-примера Ниже будет представлен листинг программы unit Unit1 Главный модуль программы interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, Menus, StdCtrls type TForm1 classTForm MainMenu1

TMainMenuГлавное меню N1 TMenuItemМеню Файл N2 TMenuItemМеню Открыть N3 TMenuItemМеню Сохранить N4 TMenuItemМеню Выход N5 TMenuItemРазделительная линия N6 TMenuItem Меню Помощь N7 TMenuItemМеню О программе Memo1 TMemo OpenDialog1 TOpenDialog SaveDialog1 TSaveDialog PopupMenu1

TPopupMenuВсплывающее меню procedure N4ClickSender TObject procedure N7ClickSender TObject procedure N2ClickSender TObject procedure N3ClickSender TObject private Private declarations public Public declarations end var Form1 TForm1 implementation uses Unit2 R .DFM procedure TForm1.N4ClickSender TObject begin close end procedure

TForm1.N7ClickSender TObject begin aboutbox.show end procedure TForm1.N2ClickSender TObject begin if opendialog1.Execute then memo1.Lines.LoadFromFileopendialog1.file name end procedure TForm1.N3ClickSender TObject begin if savedialog1.Execute then memo1.Lines.SaveToFilesavedialog1.filena me end end. unit Unit2

Модуль, описывающий окно О программе interface uses Windows, SysUtils, Classes, Graphics, Forms, Controls, StdCtrls, Buttons, ExtCtrls type TAboutBox classTForm Panel1 TPanel ProgramIcon TImage ProductName TLabel Comments TLabel OKButton TButton procedure OKButtonClickSender

TObject private Private declarations public Public declarations end var AboutBox TAboutBox implementation R .DFM procedure TAboutBox.OKButtonClickSender TObject begin Hide end end. Данная программа демонстрирует использование меню. Она имеет главное меню и всплывающее, которое появляется при нажатии правой кнопки мышки.

Меню снабжены клавишами быстрого доступа, используется разделительная линия. Меню Открыть, Сохранить, Выход и О программе снабжены клавишами быстрого доступа. Всплывающее меню, имеющее два пункта Открыть и Сохранить. При их нажатии вызываются события соответствующих пунктов главного меню. Выводы В данной курсовой работе разработана система для психотестирования на

Borland Delphi 5. 0. Кроме основной программы, созданы две утилитные для создания тестов, которые хранятся в отдельных файлах. В процессе составления программы детально были изучены основные объекты графического интерфейсa Windows. В процессе выполнения второй части курсовой работы были детально изучены компоненты, позволяющие создавать систему меню. При рассмотрении этих компонентов приведена программа-пример. Приложение А Листинг программы. unit Mainfrm interface uses

Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, Buttons, ExtCtrls, TestTypes type TfrmMain classTForm Image1 TImage SpeedButton1 TSpeedButton SpeedButton2 TSpeedButton Image2 TImage SpeedButton3 TSpeedButton procedure runtest procedure SpeedButton1ClickSender

TObject procedure SpeedButton2ClickSender TObject procedure SpeedButton3ClickSender TObject procedure FormCloseSender TObject var Action TCloseAction private Private declarations public end var frmMain TfrmMain testcountinteger implementation uses Testfrm R .DFM procedure tfrmmain.runtest var ffile of ttest begin frmmain.hide assignfilef,testfilename try

resetf except showmessageФайл теста не найден exit end testnum1 while not eoff do begin try readf,testtestnum inctestnum except showmessageОшибка в файле теста frmmain.show exit end end closefilef frmTest.show end procedure TfrmMain.SpeedButton1ClickSender TObject begin testfilenameTime.tst runtest end procedure TfrmMain.SpeedButton2ClickSender TObject begin testfilenameAgress.tst runtest end procedure TfrmMain.SpeedButton3ClickSender TObject begin testfilenamehealth.tst runtest end procedure

TfrmMain.FormCloseSender TObject var Action TCloseAction begin if messagedlgВы действительно хотите выйти,mtwarning,mbyes,mbno,0mrno then actioncanone end end. unit Testfrm interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, ExtCtrls, StdCtrls, Buttons, testtypes type TfrmTest classTForm

Image1 TImage rb1 TRadioButton rb2 TRadioButton rb3 TRadioButton Label1 TLabel SpeedButton1 TSpeedButton procedure load procedure rb1ClickSender TObject procedure rb2ClickSender TObject procedure rb3ClickSender TObject procedure FormActivateSender TObject procedure SpeedButton1ClickSender TObject procedure FormCloseSender

TObject var Action TCloseAction private Private declarations public defquebyte end var frmTest TfrmTest implementation R .DFM uses mainfrm, Resfrm procedure tfrmtest.load begin label1.captiontestdefque.text rb1.Captiontestdefque.quest1 rb2.Captiontestdefque.quest2 rb3.Captiontestdefque.quest3 speedbutton1.enabledfalse rb1.Enabledtrue rb2.Enabledtrue rb3.Enabledtrue rb1.Checkedfalse rb2.Checkedfalse rb3.Checkedfalse if rb3.caption then rb3.hide else rb3.Show end procedure

TfrmTest.FormActivateSender TObject begin testcount0 defque1 load end procedure TfrmTest.rb1ClickSender TObject begin speedbutton1.Enabledtrue rb1.Enabledfalse rb2.Enabledfalse rb3.Enabledfalse inctestcount,testdefque.count1 end procedure TfrmTest.rb2ClickSender TObject begin speedbutton1.Enabledtrue rb1.Enabledfalse rb2.Enabledfalse rb3.Enabledfalse inctestcount,testdefque.count2 end procedure TfrmTest.rb3ClickSender

TObject begin speedbutton1.Enabledtrue rb1.Enabledfalse rb2.Enabledfalse rb3.Enabledfalse inctestcount,testdefque.count3 end procedure TfrmTest.SpeedButton1ClickSender TObject var ffile of TResult rtresult begin incdefque if defquetestnum then begin assignfilef,copytestfilename,1,lengthtes tfilename-3rts resetf while not eoff do begin readf,r if testcount in r.min r.max then begin frmres.label1.Captionr.text break end end closefilef frmtest.hide frmres.show end load end procedure

TfrmTest.FormCloseSender TObject var Action TCloseAction begin frmmain.show actioncahide end end. unit Resfrm interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls type TfrmRes classTForm Label1 TLabel Button1 TButton procedure Button1ClickSender TObject procedure FormCloseSender

TObject var Action TCloseAction private Private declarations public Public declarations end var frmRes TfrmRes implementation uses Mainfrm R .DFM procedure TfrmRes.Button1ClickSender TObject begin frmres.hide frmmain.show end procedure TfrmRes.FormCloseSender TObject var Action TCloseAction begin actioncahide frmmain.show end end. unit

TestTypes interface type TTestrecord textstring255 questarray1 3 of string100 countarray1 3 of byte end var testfilename string testarray1 100 of ttest testnumbyte implementation end. Листинг программы ТС unit Mainfrm interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, Spin, TestTypes type TfrmMain classTForm rb1

TRadioButton rb2 TRadioButton rb3 TRadioButton Edit1 TEdit Label1 TLabel SpinEdit1 TSpinEdit Label2 TLabel Edit2 TEdit Label3 TLabel Label4 TLabel Button1 TButton Button2 TButton SaveDialog1 TSaveDialog OpenDialog1 TOpenDialog StaticText1 TStaticText Label5 TLabel SpinEdit2

TSpinEdit Button3 TButton procedure Button2ClickSender TObject procedure Button1ClickSender TObject procedure FormCreateSender TObject procedure Edit1ChangeSender TObject procedure Edit2ChangeSender TObject procedure rb1ClickSender TObject procedure rb2ClickSender TObject procedure rb3ClickSender

TObject procedure SpinEdit1ChangeSender TObject procedure SpinEdit2ChangeSender TObject procedure Button3ClickSender TObject private Private declarations public varianttradiobutton nqbyte end var frmMain TfrmMain implementation R .DFM procedure TfrmMain.Button2ClickSender TObject var ffile of TTest ibyte begin if savedialog1.execute then begin assignfilef,savedialog1.Filename

rewritef for i1 to testnum do writef,testi closefilef end end procedure TfrmMain.Button1ClickSender TObject var ffile of ttest begin if opendialog1.execute then begin assignfilef,opendialog1.Filename resetf testnum1 while not eoff do begin readf,testtestnum inctestnum end statictext1.CaptionВсего вопросов inttostrtestnum closefilef spinedit1.value1 spinedit1changesender end end procedure TfrmMain.FormCreateSender TObject var ibyte begin testnum1 variantrb1 nq1 for i1 to 100 do begin testi.

quest1Вариант1 testi.quest2Вариант2 testi.quest3Вариант3 testi.count10 testi.count20 testi.count30 testi.textТекст вопроса end end procedure TfrmMain.Edit1ChangeSender TObject begin label2.Captionedit1.Text testspinedit1.value.textedit1.text end procedure TfrmMain.Edit2ChangeSender TObject begin variant.Captionedit2.Text testspinedit1.value.questnqedit2.text end procedure TfrmMain.rb1ClickSender TObject begin variantrb1 nq1 edit2.Textrb1.Caption spinedit2.Valuetestspinedit1.Value.

count 1 edit2.SetFocus end procedure TfrmMain.rb2ClickSender TObject begin variantrb2 nq2 edit2.Textrb2.Caption spinedit2.Valuetestspinedit1.Value.count 2 edit2.SetFocus end procedure TfrmMain.rb3ClickSender TObject begin variantrb3 nq3 edit2.Textrb3.Caption spinedit2.Valuetestspinedit1.Value.count 3 edit2.SetFocus end procedure TfrmMain.SpinEdit1ChangeSender TObject begin if spinedit1.value testnum then begin inctestnum statictext1.captionВсего вопросов inttostrtestnum

end label2.Captiontestspinedit1.value.text rb1.Captiontestspinedit1.value.quest1 rb2.Captiontestspinedit1.value.quest2 rb3.Captiontestspinedit1.value.quest3 rb1.Checkedtrue variantrb1 edit1.Texttestspinedit1.value.text edit2.texttestspinedit1.value.quest1 edit2.setfocus end procedure TfrmMain.SpinEdit2ChangeSender TObject begin testspinedit1.value.countnqspinedit2.val ue end procedure TfrmMain.Button3ClickSender TObject var ibyte begin if spinedit1.valuetestnum then begin dectestnum

spinedit1.valuespinedit1.value-1 exit end if testnum1 then exit for ispinedit1.value to testnum-1 do testitesti1 dectestnum spinedit1changesender statictext1.CaptionВсего вопросов inttostrtestnum end end. Листинг программы RС unit Mainfrm interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, testtypes, StdCtrls, Spin type TfrmMain classTForm

Memo1 TMemo SpinEdit1 TSpinEdit Label1 TLabel SpinEdit2 TSpinEdit Label2 TLabel Button1 TButton Button2 TButton SpinEdit3 TSpinEdit Label3 TLabel OpenDialog1 TOpenDialog SaveDialog1 TSaveDialog procedure Button1ClickSender TObject procedure Button2ClickSender TObject procedure

SpinEdit1ChangeSender TObject procedure SpinEdit2ChangeSender TObject procedure Memo1ChangeSender TObject procedure FormCreateSender TObject procedure SpinEdit3ChangeSender TObject private Private declarations public resarray1 100 of tresult varnumbyte noboolean end var frmMain TfrmMain implementation R .DFM procedure TfrmMain.Button1ClickSender

TObject var ffile of tresult ibyte begin if savedialog1.execute then begin assignfilef,savedialog1.filename rewritef for i1 to varnum-1 do writef,resi closefilef end end procedure TfrmMain.Button2ClickSender TObject var ffile of tresult begin if opendialog1.execute then begin assignfilef,opendialog1.filename resetf varnum1 while not eoff do begin readf,resvarnum incvarnum end memo1.textres1.text spinedit1.valueres1.min spinedit2.valueres1.max spinedit3.value1 closefilef end end procedure

TfrmMain.SpinEdit1ChangeSender TObject begin if no then exit resspinedit3.value.minspinedit1.value if spinedit2.value spinedit1.value then spinedit2.valuespinedit1.value end procedure TfrmMain.SpinEdit2ChangeSender TObject begin if no then exit resspinedit3.value.maxspinedit2.value end procedure TfrmMain.Memo1ChangeSender TObject var iinteger begin if not no then for i1 to lengthmemo1.text do resspinedit3.value.textimemo1.texti end procedure

TfrmMain.FormCreateSender TObject begin varnum1 nofalse end procedure TfrmMain.SpinEdit3ChangeSender TObject begin notrue if varnum spinedit3.value then varnumspinedit3.value memo1.textresspinedit3.value.text spinedit1.valueresspinedit3.value.min spinedit2.valueresspinedit3.value.max nofalse memo1.SetFocus end end.



Не сдавайте скачаную работу преподавателю!
Данный реферат Вы можете использовать для подготовки курсовых проектов.

Поделись с друзьями, за репост + 100 мильонов к студенческой карме :

Пишем реферат самостоятельно:
! Как писать рефераты
Практические рекомендации по написанию студенческих рефератов.
! План реферата Краткий список разделов, отражающий структура и порядок работы над будующим рефератом.
! Введение реферата Вводная часть работы, в которой отражается цель и обозначается список задач.
! Заключение реферата В заключении подводятся итоги, описывается была ли достигнута поставленная цель, каковы результаты.
! Оформление рефератов Методические рекомендации по грамотному оформлению работы по ГОСТ.

Читайте также:
Виды рефератов Какими бывают рефераты по своему назначению и структуре.