ПЕРЕЛІК ДИСЦИПЛІН:
  • Адміністративне право
  • Арбітражний процес
  • Архітектура
  • Астрологія
  • Астрономія
  • Банківська справа
  • Безпека життєдіяльності
  • Біографії
  • Біологія
  • Біологія і хімія
  • Ботаніка та сільське гос-во
  • Бухгалтерський облік і аудит
  • Валютні відносини
  • Ветеринарія
  • Військова кафедра
  • Географія
  • Геодезія
  • Геологія
  • Етика
  • Держава і право
  • Цивільне право і процес
  • Діловодство
  • Гроші та кредит
  • Природничі науки
  • Журналістика
  • Екологія
  • Видавнича справа та поліграфія
  • Інвестиції
  • Іноземна мова
  • Інформатика
  • Інформатика, програмування
  • Юрист по наследству
  • Історичні особистості
  • Історія
  • Історія техніки
  • Кибернетика
  • Комунікації і зв'язок
  • Комп'ютерні науки
  • Косметологія
  • Короткий зміст творів
  • Криміналістика
  • Кримінологія
  • Криптология
  • Кулінарія
  • Культура і мистецтво
  • Культурологія
  • Російська література
  • Література і російська мова
  • Логіка
  • Логістика
  • Маркетинг
  • Математика
  • Медицина, здоров'я
  • Медичні науки
  • Міжнародне публічне право
  • Міжнародне приватне право
  • Міжнародні відносини
  • Менеджмент
  • Металургія
  • Москвоведение
  • Мовознавство
  • Музика
  • Муніципальне право
  • Податки, оподаткування
  •  
    Бесплатные рефераты
     

     

     

     

     

     

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

     

    Інформатика, програмування

    Міністерство освіти України

    Харківський державний технічний університет радіоелектроніки

    Кафедра ПЗ ЕОМ

    Курсовий проект з дисципліни:

    «Основи програмування та алгоритмічні мови »

    Тема:

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


    | Роботу виконала: | Руководитель: |
    | Ст. гр. ИПД-99-1 | |
    | Пихтіна Олена | |
    | | Робота захищена з оцінкою: |
    | | |
    | | |
    | | Комісія: |
    | | Доц. Єрохін А. Л. |
    | | Доц. Четвериков Г. Г. |
    | | Проф. Дудар З. В. |

    Харків, 1999 р.

    ХДТУРЕ

    Кафедра ПЗ ЕОМ

    Завдання на курсову роботу з дисципліни « ОП та АЯ »ст. гр. ИПД-99-1 Пихтін Олени

    Тема: «Розробка програми псіхотестірованія»

    І. Використовуючи візуальне середовище програмування Delphi, розробитипсіхотестірованія програму, яка б за допомогою кількох тестіввизначала психологічний портрет людини

    ІІ. Система меню

    Дата видачі завдання: Дата захисту:

    Студент:


    Керівник:

    Реферат

    Дана дипломна робота містить:

    . 38 сторінок;

    . 1 таблицю;

    . 11 ілюстрацій;

    . у додатку дан вихідний код програми.

    Ключові слова:

    Курсова робота, 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 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

    Малюнок 1. 1 - Перше вікно програми (форма frmMain)

    Тут, на тлі неба як-би «висять» назви тестів. При русікурсору мишки по кнопці, вона піднімається над загальним тлом, як показанона рис. 1.1 Натиснувши лівою кнопкою миші, "тестовий вибирає зацікавивйого тест і потрапляє у вікно тестування, показане на рис. 1. 2, стор 10.
    Щоб відповісти на запитання, чи достатньо клацнути на правильному з точки зорукористувача варіанті відповіді (при цьому всі варіанти тут-же заблокують істане доступною кнопка «Далі»). Для переходу до наступного питання требанатиснути кнопку «Далі».

    Малюнок 1. 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». Після цих маніпуляцій наше меню візьметься за цевигляд, як показано на рис. 2. 3.

    Малюнок 2. 3 - Вкладені меню другого рівня

    Створювати вкладені меню Windows дозволяє до безкінечності (напрактиці - скільки вистачить пам'яті або поки не набридне).

    2. 1. 3 Додаткові можливості

    Замість звичайного виконання дії при виборі пункту меню, можназробити так, щоб він відзначався «пташкою» (Мал. 2. 4). У цьому випадку данийпункт діє подібно до елементу інтерфейсу CheckBox. Щоб у програмідізнатися, «включено» чи пункт, треба перевірити властивість Checked.

    Малюнок 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.

    Малюнок 2. 8 - Вікно програми-прикладу

    Нижче буде представлений лістинг програми:

    unit Unit1;

    (Головний модуль програми)

    interface

    uses
    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;

    implementation

    uses Unit2;

    ($ R *. DFM)

    procedure 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;

    (Модуль, що описує вікно "Про програму")

    interface

    uses 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 *. DFM)

    procedure 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; < p> interface

    uses
    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;

    implementation

    uses Testfrm;

    ($ R *. DFM)

    procedure 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;

    interface

    uses
    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 *. DFM) < p> uses 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;

    interface

    uses
    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;

    implementation

    uses Mainfrm;

    ($ R *. DFM)

    procedure 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;

    implementation

    end.


    Лістинг програми ТЗ:

    unit Mainfrm;

    interface

    uses
    Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, < br> 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 *. DFM)

    procedure 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;

    interface

    uses
    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; < p> 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 *. DFM)

    procedure 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

         
     
         
    Реферат Банк
     
    Рефераты
     
    Бесплатные рефераты
     

     

     

     

     

     

     

     
     
     
      Все права защищены. Reff.net.ua - українські реферати ! DMCA.com Protection Status