Курсовой проект по дисциплине: «Основы программирования и алгоритмические языки»




Скачать 103.27 Kb.
НазваниеКурсовой проект по дисциплине: «Основы программирования и алгоритмические языки»
Дата публикации28.02.2014
Размер103.27 Kb.
ТипКурсовой проект
uchebilka.ru > Информатика > Курсовой проект
Реферат скачан с сайта allreferat.wow.ua


Разработка программы психотестирования

Министерство образования Украины Харьковский государственный технический университет радиоэлектроники Кафедра ПО ЭВМ Курсовой проект по дисциплине: «Основы программирования и алгоритмические языки» Тема: «Разработка программы психотестирования»|Работу выполнила: |Руководитель: ||Ст. гр. ИПД-99-1 | ||Пыхтина Елена | || |Работа защищена с оценкой: || | || | || |Комиссия: || |Доц. Ерохин А. Л. || |Доц. Четвериков Г. Г. || |Проф. Дударь З. В. | Харьков, 1999 г. ХГТУРЭ Кафедра ПО ЭВМ Задание на курсовую работу по дисциплине «ОП и АЯ» ст. гр. ИПД-99-1 Пыхтиной Елены Тема: «Разработка программы психотестирования»І. Используя визуальную среду программирования Delphi, разработатьпрограмму психотестирования, которая бы посредством нескольких тестовопределяла психологический портрет человекаІІ. Система менюДата выдачи задания: Дата защиты:Студент:Руководитель: Реферат Данная курсовая работа содержит: . 38 страниц; . 1 таблицу; . 11 иллюстраций; . в приложении дан исходный код программы. Ключевые слова:КУРСОВАЯ РАБОТА, DELPHI, ИНТЕРФЕЙС, МЕНЮ, ОБЪЕКТ,ФАЙЛ, ПСИХОТЕСТ. СодержаниеРеферат 3Содержание 4Введение 51 Описание программы 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 Создание файла результатов 112 Система меню 13 2. 1 TMainMenu 13 2. 1. 1 События 14 2. 1. 2 Вложенные меню 14 2. 1. 3 Дополнительные возможности 15 2. 2 TPopupMenu 17 2. 3 Пример программы 18Выводы 23Список литературы 24Приложение А 25 Введение Психология – великая наука. Она позволяет узнать о человеке ВСЕ. Дляполучения такой информации используются психологические тесты –исследуемому задаются вопросы и предлагаются варианты ответов. Он выбираеттот, который по смыслу ближе всех к его мнению. В конце теста ответыанализируются: каждому варианту присвоено некоторое количество баллов; ониподсчитываются и в зависимости от общего счета получается результат. Такие методы психологических исследований применяются довольно давно.Но в век компьютеров и всеобщего доступа к ним все чаще для тестированиястали применяться ЭВМ. Специализированная программа задает вопросы,принимает ответы, подсчитывает баллы и выдает результат. В Интернетеимеются сайты, где все желающие могут узнать степень своей уверенности всебе, агрессивности, организованности и многое другое. Подобные программысуществуют и для локальных ПК, не подключенных ни к каким сетям. В данной курсовой работе представлена система психотестированияSuperPsy, разработанная в системе программирования Borland Delphi. В неевходит три теста, ответив на которые, человек получает обширные сведения освоем характере. В системе тесты не стационарны – можно создать файлы с другимитестами и пользоваться ними. Для создания файлов тестов имеются двеутилитные программы, которые также описаны в работе. Программа имеет некоторые элементы художественного оформления, чтоважно, если учесть специальность автора – ИПД. 1 Описание программы В данной курсовой работе представлена программа дляпсихотестирования, которая содержит три теста; она создает психологическийпортрет человека, ответившего на все вопросы тестов. Кроме программы для тестирования курсовая работа включает в себя двепрограммы для создания файлов тестов (все тесты, а также их результаты,используемые программой психотестирования, содержатся в отдельных файлах,что упрощает усовершенствование системы тестиривания). 1 Внутренняя структура программы Проект Delphi называется SuperPsy. Он содержит три формы и одинпрограммный модуль, в котором описаны основные пользовательские типы ипеременные, используемые в программе тестирования, а также в программахсоздания тестов. Все модули программы приведены в табл. 1. 1. Таблица 1.1 Программные модули Delphi, составляющие программу|Имя модуля |Форма |Функции, которые выполняет ||Mainfrm |FrmMain | Здесь описано окно программы, которое || | |видит пользователь сразу после ее запуска. || | |Размещены процедуры выбора нужного теста. ||Testfrm |FrmTest | Окно тестирования – окно, на котором || | |появляются вопросы и варианты ответов. В || | |этом модуле размещены процедуры загрузки || | |тестов. ||Resfrm |FrmRes | Это окно служит для вывода результата || | |тестирования. Модуль не содержит важных || | |процедур. ||TestTypes |Нет |В этом модуле собраны типы для описания || | |тестов. Он общий для всех трех программ || | |пакета. | 1. 1. 1 Хранение информации теста Для хранения информации теста (тексты вопросов, варианты ответов и т.п.) используется пользовательский тип TTest: TTest=record text:string[255]; текст вопроса quest:array[1..3] of string[100]; варианты count:array[1..3] of byte; очки за вариант end; В такой записи хранится один вопрос. Весь тест содержится в массивезаписей. При сохранении теста на диске используется типизированный файлэтого типа. Программа создания тестов – TestCreator тоже использует этот тип. 1. 2 Хранение информации для возврата результов теста Подобно информации о тестах, информация результатов тоже хранится взаписях. Тип называется TResult: TResult=record min,max:integer; кол-во баллов text:array[1..1000] of char; текст результата end; Подобно вопросам, результаты хранятся в массивах; для сохранения надиске используются типизированные файлы. 1. 3 Описание работы программы На форме frmMain размещены кнопки SpeedButton, у которых свойствоFlat установлено в «истину». Благодаря этому они прозрачны. Надписи,которые находятся на этих кнопках, на самом деле взяты из графическихфайлов. Нажатие на любую кнопку вызывает соответствующий обработчик события,который, в свою очередь, присваивает глобальной переменнойtestfilename:string, описанной в модуле TestTypes, имя файла теста, а потомзапукает процедуру RunTest, показывающую форму frmTest. Дальше работают процедуры модуля этой формы. Процедура Load,описанная как метод, загружает из файла теста очередной вопрос свариантами. Обработчик события нажатия кнопки «Далее» проверяет наличие ещевопросов в файле и в случае позитивного ответа вызывает Load, в противномслучае – грузит из файла результатов нужную запись в Label1 формы выводарезультатов frmRes. После этого прячет окно тестирования и показываетрезультат. Устройство программ создания тестов и результатов не нуждается вописании. 1. 1. 4 Инструкция для пользователя Исполняемый файл программы называется SuperPsy.еxe. Запустив его,пользователь увидит окно, приглашающее выбрать нужный тест. Это окнопоказано на рис. 1. 1 [pic] Рисунок 1. 1 – Первое окно программы (форма frmMain) Здесь, на фоне неба как-бы «висят» названия тестов. При движениикурсора мышки по кнопке, она приподнимается над общим фоном, как показанона рис. 1.1 Щелкнув левой кнопкой мыши, тестируемый выбирает интересующийего тест и попадает в окно тестирования, показанное на рис. 1. 2, стр. 10.Чтобы ответить на вопрос, достаточно щелкнуть на правильном с точки зренияпользователя варианте ответа (при этом все варианты тут-же заблокируются истанет доступной кнопка «Далее»). Для перехода к следующему вопросу надонажать кнопку «Далее». [pic] Рисунок 1. 2 – Окно тестирования 3 Создание тестов. Вспомогательные программы Как уже было сказано выше, в курсовую работу входят также две утилиты– для создания тестов и результатов к ним. Первая называется TestCreator, авторая – ResCreator, ТС и RC. 3. 1 Создание теста Программа ТС имеет единственное (если не считать диалоговых открытияи сохранения файла) окно. Оно представлено на рис. 1. 3, стр. 11. [pic] Рисунок 1. 3 – Окно программы ТС При запуске вместо текста вопроса написана строка «Текст вопроса», авместо вариантов ответов – «Вариант1 (2,3)». Мышкой можно выбирать«радиобаттон», а потом вводить в поле «текст варианта» нужный вариант. 3. 2 Создание файла результатов Для этого предназначена утилитная программа RC. (Result Creator).После запуска этой программы выводится окно, представленное на рис. 1. 4,стр. 12. [pic] Рисунок 1. 4 – Окно программы Result Creator Как видно из рис. 1. 4, текст результата вводится в окне ввода типаMemo. В верхние спинэдиты помещается минимальное и максимальное количесивоочков, которые должен набрать тестируемый, чтобы высветился именно этотвариант результатов. Спинэдит «Вариант № » показывает, над каким вариантомрезультата ведется работа. Кнопки «Сохранить» и «Загрузить» вызываютстандартные диалоговые окна Windows для, соответственно, сохранения изагрузки файла результатов. Сохраняя файл результатов, желательно давать ему расширение RTS. 2 Система меню Среда программирования Borland Delphi имеет два компонента длясоздания меню: TMainMenu и TPopupMenu. Они делают программирование менюприложений несложной задачей. В данной курсовой работе будут описаныспособы создания меню с обеими компонентами, а также представлены примерыпрограмм. 2. 1 TMainMenu На панели инструментов этот компонент помечен значком: . Для того,чтобы создать меню, поместите компонент на форму, а потом щелкните по немудва раза левой кнопкой мышки. Появится специальное окно для ввода пунктовменю, пример которого представлен на рис. 2. 1. [pic] Рисунок 2. 1 – Окно для ввода меню На рис. 2.1 показано окно для ввода пунктов меню, а также частьинспектора объектов со свойством Caption, которому нужно присвоить строкуменю. Кроме того, можно изменить свойство Name. 2. 1. 1 События Чтобы программа реагировала на выбор пункта меню, нужно создатьспециальный обработчик события, который будет вызываться каждый раз прищелчке мышки по пункту или при нажатии клавиши «ENTER». Вставить обработчик события выбора меню можно несколькими способами:двойной щелчек по пункту на окне редактирования меню, на форме; можно, вкрайнем случае, назначить событие на странице «Events» инспектора объектов. 2. 1. 2 Вложенные меню Такие меню широко применяются во многих приложениях Windows и нетолько. Выбирая пункт меню, пользователь попадает в другое меню (какправило, расположенное вертикально) и может выбирать там. После ввода пункта горизонтального меню, оно принимает вид: [pic] Рисунок 2. 2 – Вложенное меню Теперь можно выделить мышкой пункт вложенного меню и вводить егопараметры, как и для главного. Вложенным меню, в свою очередь, можно также назначать вложенные.Самый удобный способ – нажать правую кнопку мышки и выбрать из появившегосяменю пункт «Create Submenu». После этих манипуляций наше меню примет такойвид, как показано на рис. 2. 3. [pic] Рисунок 2. 3 – Вложенные меню второго уровня Создавать вложенные меню Windows позволяет до бесконечности (напрактике – сколько хватит памяти или пока не надоест). 2. 1. 3 Дополнительные возможности Вместо обычного выполнения действия при выборе пункта меню, можносделать так, чтобы он отмечался «птичкой» (Рис. 2. 4). В этом случае данныйпункт действует подобно элементу интерфейса CheckBox. Чтобы в программеузнать, «включен» ли пункт, надо проверить свойство Checked. [pic] Рисунок 2. 4 – Меню, отмеченное “птичкой” Во многих приложениях также применяется возможность закрытия доступак определенному пункту меню, есло в данный момент он не может выполнится.Для этого служит свойство Enabled. Оно, как и Checked, имеет тип Boolean. На рис. 2.4 видно, что пункт «Меню2» выделен жирным шрифтом. Эторезультат установки еще одного логического свойства объекта – Default. Еще одна важная возможность – вставка разделительной линии. Нарис. 2.5 (стр. 16) она размещена между «Меню1» и «Меню2»: Рисунок 2. 5 – Меню с разделительной линией Эту «примочку» используют в основном для отдления различных типовдействия, вызываемого меню, например, часто в меню «Файл» помещают списокнескольких открывавшихся ранее файлов, отделенный от остального менютакими линиями. Прекрасным примером использования разделительных линийтакже может служить меню «Файл» программы Microsoft Word. Оно приведено длянаглядности на рис. 2. 6. Рисунок 2. 6 – Меню «Файл» Word'a Одной из самых удобных возможностей системы меню является возможностьиспользования клавиш быстрого доступа, например, в меню на рис. 2. 6 приодновременном нажатии клавиш Ctrl и Р текущий документ отправлется напечать. И не нужно отвлекаться, тратить время, снимать руку с клавиатуры… Рассматриваемый нами компонент TMainMenu также обладает возможностьюназначения клавиш быстрого доступа. Для этого служит свойство ShortCut. В инспекторе объектов оно имеет раскрывающийся список, из которогоможно выбрать нужную комбинацию клавиш. Пример такого списка представлен нарис. 2. 7. Рисунок 2. 7. – Раскрывающийся список комбинаций клавиш быстрого доступа Если кому-то захочется сделать уж очень «крутую» программу, тут емупоможет возможность вставки картинок. 2. 2 TPopupMenu Это всплывающее меню, оно вызывается нажатием правой кнопки мыши. Впалитре компонентов его значок такой: . Как и MainMenu, этот компонентследует поместить на форму, для редактирования два раза щелкнуть. Во всем,что касается создания пунктов, этот компонент идентичен MainMenu. Ну, развечто, сразу строится вертикальное меню. Для того, чтобы меню «всплывало», нужно в свойстве PopupMenu формыуказать его (меню) имя. 3 Пример программы Ниже будут представлены примеры программ, использующие такиекомпоненты, как меню. Кроме исходного кода будут иллюстрации. Пример представляет собой несложную программу, позволяющуюпросматривать и редактировать текстовые файлы. Окно этой программы показанона рис. 2. 8. [pic] Рисунок 2. 8 – Окно программы-примера Ниже будет представлен листинг программы:unit Unit1;Главный модуль программыinterfaceuses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,Menus, StdCtrls;type TForm1 = class(TForm) 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 N4Click(Sender: TObject); procedure N7Click(Sender: TObject); procedure N2Click(Sender: TObject); procedure N3Click(Sender: TObject); private Private declarations public Public declarations end;var Form1: TForm1;implementationuses Unit2;$R *.DFMprocedure TForm1.N4Click(Sender: TObject);begin close;end;procedure TForm1.N7Click(Sender: TObject);begin aboutbox.showend;procedure TForm1.N2Click(Sender: TObject);begin if opendialog1.Execute thenmemo1.Lines.LoadFromFile(opendialog1.filename)end;procedure TForm1.N3Click(Sender: TObject);begin if savedialog1.Execute then memo1.Lines.SaveToFile(savedialog1.filename)end;end.unit Unit2;Модуль, описывающий окно “О программе”interfaceuses Windows, SysUtils, Classes, Graphics, Forms, Controls, StdCtrls,Buttons, ExtCtrls;type TAboutBox = class(TForm) Panel1: TPanel; ProgramIcon: TImage; ProductName: TLabel; Comments: TLabel; OKButton: TButton; procedure OKButtonClick(Sender: TObject); private Private declarations public Public declarations end;var AboutBox: TAboutBox;implementation$R *.DFMprocedure TAboutBox.OKButtonClick(Sender: TObject);begin Hideend;end. Данная программа демонстрирует использование меню. Она имеет главноеменю и всплывающее, которое появляется при нажатии правой кнопки мышки.Меню снабжены клавишами быстрого доступа, используется разделительнаялиния. Меню «Открыть», «Сохранить», «Выход» и «О программе» снабженыклавишами быстрого доступа. Всплывающее меню, имеющее два пункта –«Открыть» и «Сохранить». При их нажатии вызываются события соотвутствующихпунктов главного меню. Выводы В данной курсовой работе разработана система для психотестирования наBorland Delphi 5. 0. Кроме основной программы, созданы две утилитные – длясоздания тестов, которые хранятся в отдельных файлах. В процессе составления программы детально были изучены основныеобъекты графического интерфейсa Windows. В процессе выполнения второй части курсовой работы были детальноизучены компоненты, позволяющие создавать систему меню. При рассмотренииэтих компонентов приведена программа-пример. Список литературы1. Культин Н. Delphi 4. Программирование на Object Pascal. BHV, Санкт-Петербург, 1999. – 480 с., ил.2. Дэн Оузьер и др. Delphi 3. Освой самостоятельно. М.: “ИздательствоБИНОМ”, 1998 г. – 560 с.: ил.3. Бондарев В. М., Рублинецкий В. И., Качко Е. Г. Основы программирования.Харьков: Фолио; Ростов н/Д: Феникс, 1998 – 368 с. Приложение А Листинг программы.unit Mainfrm;interfaceuses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, Buttons, ExtCtrls, TestTypes;type TfrmMain = class(TForm) Image1: TImage; SpeedButton1: TSpeedButton; SpeedButton2: TSpeedButton; Image2: TImage; SpeedButton3: TSpeedButton; procedure runtest; procedure SpeedButton1Click(Sender: TObject); procedure SpeedButton2Click(Sender: TObject); procedure SpeedButton3Click(Sender: TObject); procedure FormClose(Sender: TObject; var Action: TCloseAction); private Private declarations public end;var frmMain: TfrmMain; testcount:integer;implementationuses Testfrm;$R *.DFMprocedure tfrmmain.runtest;var f:file of ttest;begin frmmain.hide; assignfile(f,testfilename); try reset(f); except showmessage('Файл теста не найден!'); exit end; testnum:=1; while not eof(f) do begin try read(f,test[testnum]); inc(testnum); except showmessage('Ошибка в файле теста'); frmmain.show; exit end end; closefile(f); frmTest.show;end;procedure TfrmMain.SpeedButton1Click(Sender: TObject);begin testfilename:='Time.tst'; runtestend;procedure TfrmMain.SpeedButton2Click(Sender: TObject);begin testfilename:='Agress.tst'; runtestend;procedure TfrmMain.SpeedButton3Click(Sender: TObject);begin testfilename:='health.tst'; runtestend;procedure TfrmMain.FormClose(Sender: TObject; var Action: TCloseAction);begin if messagedlg('Вы действительно хотитевыйти?',mtwarning,[mbyes,mbno],0)=mrno then action:=canoneend;end.unit Testfrm;interfaceuses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, ExtCtrls, StdCtrls, Buttons, testtypes;type TfrmTest = class(TForm) Image1: TImage; rb1: TRadioButton; rb2: TRadioButton; rb3: TRadioButton; Label1: TLabel; SpeedButton1: TSpeedButton; procedure load; 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); private Private declarations public defque:byte; end;var frmTest: TfrmTest;implementation$R *.DFMuses mainfrm, Resfrm;procedure tfrmtest.load;begin label1.caption:=test[defque].text; rb1.Caption:=test[defque].quest[1]; rb2.Caption:=test[defque].quest[2]; rb3.Caption:=test[defque].quest[3]; speedbutton1.enabled:=false; rb1.Enabled:=true; rb2.Enabled:=true; rb3.Enabled:=true; rb1.Checked:=false; rb2.Checked:=false; rb3.Checked:=false; if rb3.caption='' then rb3.hide else rb3.Showend;procedure TfrmTest.FormActivate(Sender: TObject);begin testcount:=0; defque:=1; loadend;procedure TfrmTest.rb1Click(Sender: TObject);begin speedbutton1.Enabled:=true; rb1.Enabled:=false; rb2.Enabled:=false; rb3.Enabled:=false; inc(testcount,test[defque].count[1])end;procedure TfrmTest.rb2Click(Sender: TObject);begin speedbutton1.Enabled:=true; rb1.Enabled:=false; rb2.Enabled:=false; rb3.Enabled:=false; inc(testcount,test[defque].count[2])end;procedure TfrmTest.rb3Click(Sender: TObject);begin speedbutton1.Enabled:=true; rb1.Enabled:=false; rb2.Enabled:=false; rb3.Enabled:=false; inc(testcount,test[defque].count[3])end;procedure TfrmTest.SpeedButton1Click(Sender: TObject);var f:file of TResult;r:tresult;begin inc(defque); if defque=testnum then begin assignfile(f,copy(testfilename,1,length(testfilename)-3)+'rts'); reset(f); while not eof(f) do begin read(f,r); if testcount in [r.min..r.max] then begin frmres.label1.Caption:=r.text; break end end; closefile(f); frmtest.hide; frmres.show; end; loadend;procedure TfrmTest.FormClose(Sender: TObject; var Action: TCloseAction);begin frmmain.show; action:=cahideend;end.unit Resfrm;interfaceuses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls;type TfrmRes = class(TForm) Label1: TLabel; Button1: TButton; procedure Button1Click(Sender: TObject); procedure FormClose(Sender: TObject; var Action: TCloseAction); private Private declarations public Public declarations end;var frmRes: TfrmRes;implementationuses Mainfrm;$R *.DFMprocedure TfrmRes.Button1Click(Sender: TObject);begin frmres.hide; frmmain.showend;procedure TfrmRes.FormClose(Sender: TObject; var Action: TCloseAction);begin action:=cahide; frmmain.showend;end.unit TestTypes;interface type TTest=record text:string[255]; quest:array[1..3] of string[100]; count:array[1..3] of byte; end; var testfilename: string; test:array[1..100] of ttest; testnum:byte;implementationend.Листинг программы ТС:unit Mainfrm;interfaceuses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, Spin, TestTypes;type TfrmMain = class(TForm) 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 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); private Private declarations public variant:^tradiobutton; nq:byte; end;var frmMain: TfrmMain;implementation$R *.DFMprocedure TfrmMain.Button2Click(Sender: TObject);var f:file of TTest;i:byte;begin if savedialog1.execute then begin assignfile(f,savedialog1.Filename); rewrite(f); for i:=1 to testnum do write(f,test[i]); closefile(f) endend;procedure TfrmMain.Button1Click(Sender: TObject);var f:file of ttest;begin if opendialog1.execute then begin assignfile(f,opendialog1.Filename); reset(f); testnum:=1; while not eof(f) do begin read(f,test[testnum]); inc(testnum) end; statictext1.Caption:='Всего вопросов '+inttostr(testnum); closefile(f); spinedit1.value:=1; spinedit1change(sender) endend;procedure TfrmMain.FormCreate(Sender: TObject);var i:byte;begin testnum:=1; variant:=@rb1; nq:=1; for i:=1 to 100 do begin test[i].quest[1]:='Вариант1'; test[i].quest[2]:='Вариант2'; test[i].quest[3]:='Вариант3'; test[i].count[1]:=0; test[i].count[2]:=0; test[i].count[3]:=0; test[i].text:='Текст вопроса' end;end;procedure TfrmMain.Edit1Change(Sender: TObject);begin label2.Caption:=edit1.Text; test[spinedit1.value].text:=edit1.textend;procedure TfrmMain.Edit2Change(Sender: TObject);begin variant^.Caption:=edit2.Text; test[spinedit1.value].quest[nq]:=edit2.textend;procedure TfrmMain.rb1Click(Sender: TObject);begin variant:=@rb1; nq:=1; edit2.Text:=rb1.Caption; spinedit2.Value:=test[spinedit1.Value].count[1]; edit2.SetFocusend;procedure TfrmMain.rb2Click(Sender: TObject);begin variant:=@rb2; nq:=2; edit2.Text:=rb2.Caption; spinedit2.Value:=test[spinedit1.Value].count[2]; edit2.SetFocusend;procedure TfrmMain.rb3Click(Sender: TObject);begin variant:=@rb3; nq:=3; edit2.Text:=rb3.Caption; spinedit2.Value:=test[spinedit1.Value].count[3]; edit2.SetFocusend;procedure TfrmMain.SpinEdit1Change(Sender: TObject);begin if spinedit1.value>testnum then begin inc(testnum); statictext1.caption:='Всего вопросов '+inttostr(testnum) end; 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]; rb1.Checked:=true; variant:=@rb1; edit1.Text:=test[spinedit1.value].text; edit2.text:=test[spinedit1.value].quest[1]; edit2.setfocusend;procedure TfrmMain.SpinEdit2Change(Sender: TObject);begin test[spinedit1.value].count[nq]:=spinedit2.valueend;procedure TfrmMain.Button3Click(Sender: TObject);var i:byte;begin if spinedit1.value=testnum then begin dec(testnum); spinedit1.value:=spinedit1.value-1; exit end; if testnum=1 then exit; for i:=spinedit1.value to testnum-1 do test[i]:=test[i+1]; dec(testnum); spinedit1change(sender); statictext1.Caption:='Всего вопросов '+inttostr(testnum)end;end.Листинг программы RС:unit Mainfrm;interfaceuses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, testtypes, StdCtrls, Spin;type TfrmMain = class(TForm) Memo1: TMemo; SpinEdit1: TSpinEdit; Label1: TLabel; SpinEdit2: TSpinEdit; Label2: TLabel; Button1: TButton; Button2: TButton; SpinEdit3: TSpinEdit; Label3: TLabel; OpenDialog1: TOpenDialog; SaveDialog1: TSaveDialog; 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); private Private declarations public res:array[1..100] of tresult; varnum:byte; no:boolean; end;var frmMain: TfrmMain;implementation$R *.DFMprocedure TfrmMain.Button1Click(Sender: TObject);var f:file of tresult;i:byte;begin if savedialog1.execute then begin assignfile(f,savedialog1.filename); rewrite(f); for i:=1 to varnum-1 do write(f,res[i]); closefile(f) endend;procedure TfrmMain.Button2Click(Sender: TObject);var f:file of tresult;begin if opendialog1.execute then begin assignfile(f,opendialog1.filename); reset(f); varnum:=1; while not eof(f) do begin read(f,res[varnum]); inc(varnum) end; memo1.text:=res[1].text; spinedit1.value:=res[1].min; spinedit2.value:=res[1].max; spinedit3.value:=1; closefile(f) endend;procedure TfrmMain.SpinEdit1Change(Sender: TObject);begin if no then exit; res[spinedit3.value].min:=spinedit1.value; if spinedit2.value

Добавить документ в свой блог или на сайт

Похожие:

Курсовой проект по дисциплине: «Основы программирования и алгоритмические языки» iconКурсовой проект по дисциплине: «Основы программирования и алгоритмические языки»

Курсовой проект по дисциплине: «Основы программирования и алгоритмические языки» iconМетодические указания к выполнению контрольной работы по дисциплине...
Методические указания к выполнению контрольной работы по дисциплине «Основы программирования и алгоритмические языки» для студентов...

Курсовой проект по дисциплине: «Основы программирования и алгоритмические языки» iconПояснительная записка к курсовой работе по дисциплине: «Алгоритмические...

Курсовой проект по дисциплине: «Основы программирования и алгоритмические языки» iconЛекция 2 "Основы программирования и алгоритмические языки" Тема Процесс программирования
Вычислительный процесс – это решение задачи путем преобразования исходных данных в результат с помощью вычислителя, который действует...

Курсовой проект по дисциплине: «Основы программирования и алгоритмические языки» iconЛекция 5 "Основы программирования и алгоритмические языки" Тема Структура...
В лекции 4 (тема 4) говорилось, что концепция процедурного программирования состоит в том, что программа складывается из последовательности...

Курсовой проект по дисциплине: «Основы программирования и алгоритмические языки» iconЛекция 4 "Основы программирования и алгоритмические языки" Тема Составление...
Обычно это программа, которая просто выводит на экран одну строку. Например, на языке Pascal

Курсовой проект по дисциплине: «Основы программирования и алгоритмические языки» iconЛекция 6 "Основы программирования и алгоритмические языки" Тема Типи...
В этой лекции мы можем обобщить сведения о данных, которые стали нам известны из предыдущих лекций и учебника. Итак

Курсовой проект по дисциплине: «Основы программирования и алгоритмические языки» iconПояснительная Записка к Курсовой Работе по Дисциплине «Информатика. Основы Программирования»

Курсовой проект по дисциплине: «Основы программирования и алгоритмические языки» iconРеферат скачан с сайта allreferat wow ua Минимизация стоимостей перевозок...

Курсовой проект по дисциплине: «Основы программирования и алгоритмические языки» iconЛекция 3 "Основы программирования и алгоритмические языки" Тема Устройство компьютера
Электронная Вычислительная Машина (эвм) – это программируемое устройство для обработки информации, передаваемой с помощью электрических...

Вы можете разместить ссылку на наш сайт:
Школьные материалы


При копировании материала укажите ссылку © 2013
контакты
uchebilka.ru
Главная страница


<