Створення тестуючої програми

[ виправити ] текст може містити помилки, будь ласка перевіряйте перш ніж використовувати.

скачати

Зміст
Введення
РОЗДІЛ 1. Завдання програми
1.1 Постановка завдання
РОЗДІЛ 2. Огляд існуючих тестуючих програм та обгрунтування вибору теми
2.1 Тестуюча програма з англійської мови
РОЗДІЛ 3. Розробка програми
3.1 Використовувані методи
3.2 Алгоритм реалізації роботи
Висновок
Список літератури
Додаток 1
1.1 Код програми для створення файлу з питаннями і відповідями
1.2 Код програми для читання файлу з питаннями і введення відповідей
Додаток 2
2.1 Блок - схема програми

ВСТУП

Озираючись назад, в епоху становлення засобів обчислювальної техніки, можна умовно виділити ступені розвитку автоматизованих навчальних систем.
Перші, найбільш ранні, являли собою лише електронні версії друкованих видань і містили тільки текстову інформацію. Перевагою таких систем в порівнянні з паперовими аналогами, по суті, була лише інтеграція інформації.
Поступово, з розвитком обчислювальної техніки, їх стали міняти системи, якими можна було користуватися і як довідниками, тобто пошукові системи. Далі арсенал автоматизованих навчальних систем поповнюється статичної графікою, компонентами мультимедіа (звук і відео), комп'ютерною анімацією.
Таким чином, системи розвивалися в області інформаційних баз знань, що підтримують вже не тільки текстовий, а й аудіо - відеовоздействіе на учня.
Колосальний стрибок був зроблений і у сфері розвитку систем контролю, адже без них, по суті, навчальна система мало чим відрізняється від довідкового посібника. Отже, засоби контролю забезпечують введення відповіді учня, обробку отриманої інформації і видачу керуючого впливу (наприклад, ви вводите відповідь, а система схвалює або відкидає його).
Слідуючи далі по щаблях інтелектуалізації навчальних систем, можна помітити, як плавно механізми контролю перетікають в механізми аналізу висловлювань навчається. Відзначимо, однак, що не слід плутати їх з простим контролем як простий оцінки одиничного події з інтегральним оцінюванням, є результатом аналізу та систематизації безлічі різнорідних відповідей даних в різний час. Не вдаючись в теорію навчання, давайте розглянемо простий приклад. Адже чим по суті відрізняється засіб для створення навчального курсу від засобу для створення мультимедійних енциклопедій? Приблизно тим же, чим підручник відрізняється від лектора, провідного лекції в навчальному закладі.
Адже підручник дає відповіді на конкретні запитання, допомагає вирішувати конкретні завдання і дозволяє контролювати себе, заглядаючи на останню сторінку і звіряючи правильну відповідь з отриманим. А як бути тим, хто не знає, яке питання поставити або не може правильно його сформулювати? У класичних навчальних закладах для цього існує лектор, який дбайливо проводить студента по коридору знань, розуміє, з чого почати, і за відповідями студента, на основі власного досвіду, робить висновки про рівень знань студента в цілому (тобто дає йому інтегральну оцінку).
Іншими словами, аналіз висловлювань навчається дозволяє не тільки контролювати навчальний процес, а й визначає стратегію навчання в залежності від передісторії відповідей і виходячи з певного набору правил.
У свою чергу, з аналізу висловлювань учня виникає керуючий вплив на нього, яке в окремому випадку може бути і віддаленим. Останній метод, який називається дистанційною формою навчання, в даний час знаходиться в стадії становлення. Внаслідок даної обставини останнім часом технології автоматизованого навчання все більше тяжіють до Internet-технологій.

РОЗДІЛ 1. Завдання програми
1.1 Постановка Завдання
Необхідно створити тестуючу програму, яка буде перевіряти знання тестованого людини. При цьому має бути не менше двадцяти питань. При завершення тестування, програма повинна виводити оцінку тестованого.

РОЗДІЛ 2. Огляд існуючих тестуючих програм
2.1 Тестуюча програма з англійської мови
Існує безліч різноманітних програм, які проводять перевірку знань учнів, за різні предметів навчання. Всі навчальні програми можу бути написані на різних мовах програмування: Delphi, C + +, З Sharp, Turbo Pascal та ін
Наприклад: Тестуюча програма з англійської мови. Ця програма прописана мовою об'єктного програмування Delphi. У середовищі Delphi існують вже створені форми процедур, функцій та ін Ця мова полегшує роботу опису програм тим, що не потрібно пописувати форми. Але, як і у всіх інших мовах програмування, Delphi містить свої недоліки. Наприклад: якщо програміст вкаже форму процедури вручну, то компілятор її не побачить. Для цього потрібно в налаштуваннях відзначати, що зазначену форму потрібно прочитати.
Turbo Pascal - це основа всіх мов програмування, тому програма тестування з математики написана на цій мові.

РОЗДІЛ 3. Розробка програми
3.1 Використовувані методи
У програмі використовується наступний алгоритм роботи з даними;
Використання записів. Записи - це структура даних, що складається з фіксованого числа компонентів, званих полями запису. На відміну від масиву, компоненти (поля) записи можуть бути різного типу. Щоб можна було посилатися на той чи інший тип компонент записи, поля іменуються.
Використання файлової системи. Файл - це створюваний документ, при подальшому його використанні в програмі. Всі дані тестування зберігаються у файлі name.dat і завантажуються в програму за допомогою ініціалізації файлів. Для цього потрібно вказати напрямок передачі даних для цього файлу. У турбо Паскалі можна відкрити файл для читання. Записи інформації, а також для читання і запису одночасно.
Використання модуля CRT. Модуль CRT містить потужні підпрограми, які надають можливість повного управління PC. Підпрограми модуля CRT забезпечують контроль над текстовими режимами екрану, розширеними кодами клавіатури, квітами, вікнами і звуком.
Використання процедур. Процедура - це незалежна іменована частина програми, яку можна викликати з будь-якої частини програми по імені для виконання визначеної в ній послідовності дій.
3.2 Алгоритм реалізації роботи
Для реалізації алгоритму створимо дві програми:
1. Програма "Vvod" - це програма, яка створює файл з питаннями і відповідями;
2. Програма "Initialization" - при запуску програми з'являється повідомлення про початок тестування і виробляється ініціалізація файлу, тобто зчитування питань і дається можливість ввести свої відповіді на запитання.
1. "Vvod". Створюємо запис. Розділ запису складається з декількох ідентифікаторів полів, за ідентифікатором ставиться двокрапка, і опис типу полів.
Type rec = record
vopros: string;
otvet: string;
end;
Тут показано, що rec є запис з полями vopros, otvet стрігового типу.
· Vopros - буде містити питання;
· Otvet - буде містити відповідь;
Створимо змінні:
ü f - файл стрінгового типу;
ü x - цілого типу, використовується як лічильник, який використовується в циклі введення питань;
ü q - містить запис типу rec, для введення запису у файл;
Тіло програми:
На початку програми, лічильник х Обнуляємо: х: = 0. За допомогою операторів Assign і Rewrite створюється файл дана програма создоет запис у файл name.dat. Створюємо цикл з пост умовою (repeat).
Лічильнику х привласнимо крок +1: х: = х +1: тобто після кожного проходу циклу, х буде на одну одиницю більше. Для текстових файлів, відкритих процедурою RESET, можна використовувати процедуру WRITE або WRITELN. Потрібно використовувати стандартну процедуру REWRITE.

REWRITE (<Ф.П.>)
ініціює запис інформації у файл, пов'язаний з sq раніше з файлової змінної <f>. Процедурою REWRITE не можна ініціювати запис інформації в раніше існував дисковий файл: при виконанні цієї процедури старий файл знищується і ніяких повідомлень про це в програму не передається. Новий файл готується до прийому інформації та його покажчик приймає значення 0.
При запуску програми на екрані буде виводитися повідомлення "ввести питання". Після зчитування змінної q. vopros відбувається запис у файл і на екрані виводиться нове повідомлення "введіть відповідь" зчитування змінної q. otvet відбувається запис у файл. На екрані виводиться нове повідомлення "ввести питання".
Ці два повідомлення будуть виводитися на екран і записуватися в файл name.dat до тих пір, поки ви не введете двадцять питань і відповідей, тобто поки х не буде дорівнює n (Умова виходу з циклу: until x = n).
Після закінчення кількості сеансів введення, файл закривається. Функція close (f) - закриває файл, однак зв'язок файлів з ім'ям файлу, встановлена ​​раніше процедурою ASSIGN, зберігається. Виклик процедури Close необхідний при завершенні роботи з файлом. Якщо з якоїсь причини процедура Close не буде виконана, файл все - таки буде створений на зовнішньому пристрої, але вміст останнього буфера в нього не буде перенесено. Для вхідних файлів використання оператора закриття файлу необов'язково.
program Vvod;
type rec = record
vopros: string;
otvet: string;
end;
var f: file of string;
x: integer;
q: rec;
begin
x: = 0;
assign (f, 'name.dat');
rewrite (f);
repeat
x: = x +1;
writeln ('введіть питання');
readln (q.vopros);
write (f, q.vopros);
writeln ('введіть відповідь';);
readln (q.otvet);
write (f, q.otvet);
until x = n;
close (f);
end.
2 "Initialization"
На початку цієї програми на екран виводиться повідомлення процедури "Main Menu". Для початку тестування натисніть "y". Для редагування питань або виходу із програми натисніть "R". Щоб створити цю процедуру, потрібно в тілі основної програми підключити модуль "crt", описати константи, в описі змінних вказати ключ символьного типу:
uses crt;
const simbol: set of char = ['y', 'Y', 'n', 'N', 'r', 'R', 't', 'T'];
....
var ... key: char;
Procedure MainMenu (posmaster: word);
В описі констант ми вказуємо ['y', 'Y', 'n', 'N', 'r', 'R', 't', 'T'] - це символи вводяться з клавіатури. Далі починаємо цикл з пост умовою
Repeat
Ключа (key) привласнимо значення вважати ключ (readkey), при цьому умова виходу ключ зазначений у списку констант (until key in symbol):
key: = readkey until key in simbol;
По натисненню клавіші 'y', 'Y' - відбувається подальше зчитування. Спрацьовує процедура "Test".
case key of
'Y', 'Y': writeln;
...;
end;
По натисненню клавіші 'r', 'R' -
case key of
'R', 'r': begin
на екран виводиться повідомлення "Для завершення програми натисніть - n" "Для редагування питань-T". При натисканні "n" відбувається завершення програми і, всіх процедур і функцій.
case key of
'N', 'N': halt;
При натисканні "T" - відбувається редагування питань і відповідей.
case key of
'T', 'T': begin
...;
End;
Ви повинні вказати кількість питань, після чого буде здійснена перезапис файлу. Для цього в тілі основної програми потрібно вказати лічильник "x" - цілого типу, він вказує кількість питань; і лічильник "j" - для використання в якості умови виходу з циклу
until j = x;
Після пререзапісі файлу старі дані файлу не зберігаються. При повторному запуску програми використовується вже знову записані дані.
Процедура "umnogenie"
Ця процедура розроблена для виведення на екран повідомлення - попередження, про те що знак множення (shift +8) обов'язковий, інакше відповідь не буде счітатьс правильним.
Procedure umnogenie;
Begin
Writeln ('врахуйте, що при введенні відповіді знак множення "*" (shift +8) - обов'язковий');
Writeln ('інакше відповідь не буде вважатися правильним.');
Writeln ('Для продовження натисніть ENTER');
End.

Процедура "Test"
Створимо змінні:
· Readstring - змінна, для зчитування змінної стрінгового типу з файлу;
· Otv - мінлива стрінгового типу, для введення відповіді;
· Otvfile - мінлива відповіді з файлу, для порівняння правильності відповідей на запитання;
· Z, e, u - змінні цілого типу (лічильники). "Z" - Кількість питань; "е" - Лічильник правильних відповідей; "u" - Оцінка;
· Z1, z2, z3 - змінні дійсного типу, для визначення кількості правильних відповідей на оцінку.
Змінні z1, z2, z3 описуємо в тілі основної програми
Var ... z1, z2, z3: integer;
Ці змінні залежать від того скільки питань "x" ви ввели. Кількість питань ділимо на задані числові змінні. Вбудована функція "round" округлює отримані відповіді до найближчого цілого
z1: = round (x / 4);
z2: = round (x / 2);
z3: = round (x/1.3);
Змінні z, e, u також описуються в тілі основної програми.
Var ... z, e, u: integer;
Початок процедури: Обнуляємо лічильники "z", "е" (для коректної роботи програми).

e: = 0; z: = 0;
Далі за допомогою процедури "ASSIGN" пов'язуємо раніше оголошені файлові змінні з ім'ям вже існуючого файлу.
assign (f, 'name.dat');
C допомогою стандартної процедури RESET, инициализируем файл. Ініціювати файл означає вказати для цього файлу напрямок передачі даних.
reset (f);
При виконанні цієї процедури дисковий файл готується до читання інформації. У результаті спеціальна зміна-вказівник, пов'язана з цим файлом, буде вказувати на початок файлу, тобто на компонент з порядковим номером 0.
Починаємо цикл з передумовою: поки не кінець файлу, починаємо підпрограму.
While not eof (f) do begin
Логічна функція EOF (var f): Boolean повертає значення TRUE, коли при читанні досягнуто кінець файлу. Це означає, що вже прочитаний останній елемент у файлі або файл після відкриття виявився порожній.
Лічильник "z" - кількість питань, привласнимо крок +1 тобто після кожного проходу циклу, "z" буде на одну одиницю більше.
z: = z +1;

C допомогою оператора "clrscr" - очищаємо екрану, протягом усього ціла. Це для того, щоб нове питання виводився на місці попереднього.
Виводимо повідомлення про номер питання:
write ('питання', z ,':',' ');
За допомогою порцедури "read" - зчитуємо пов'язану змінну з файлу:
read (f, readstring);
read (f, namefile);
Далі на екран виводиться повідомлення ліченої змінної і повідомлення про можливість введення відповіді:
Writeln (readstring);
Write ('Відповідь'); Readln (otv); writeln;
Оператора "Readln (otv)" зчитує вводиться відповідь з клавіатури.
Для контролювання кількості правильних відповідей і виведення на
екран оцінки використовуємо алгоритм з розгалуженням.
"If" - оператор розгалуження.
If x> = 0 then y: = x else y =- x
Якщо введений відповідь буде відповідати зчитуваного відповіді з файлу, то кількість правильні відповідей буде збільшуватися, тим самим збільшується оцінка перевірки знань тестованого.

if otv = otvfile then begin e: = e +1; u: = u +1;
Для того щоб оцінка відповідала не кількості питань, а оцінками п'яти бальної системи, потрібно вказати умову: якщо кількість відповідей менше або дорівнює z1, ваша оцінка - 2 інакше, якщо відповідей більше z1, але менше або дорівнює z2, ваша оцінка - 3 інакше, якщо кількість відповідей більше z2, але менше або дорівнює z3, ваша оцінка - 4 інакше, ваша оцінка - 5;
if u <= z1 then p: = 2 else
If (u> z1) and (u <= z2) then p: = 3 else
If (u> z2) and (u <= z3) then p: = 4 else p: = 5;
Стандартною процедурою close (f) - закриваємо файл.
Для виведення на екран показання лічильників "e" "u", очистимо екран "clrscr". Кінець процедури.
Clrscr;
writeln ('правильні відповідей', e);
writeln ('Ваша оцінка', p);
end;
Починаємо тіло основної програми. Після кожного виконання циклу, очищаємо екран. Все тіло програми складається з процедур. Для виконання процедур потрібно їх виклик. Виклик здійснюється на ім'я даної процедури в тілі програми. Ім'я процедури сприймається як оператор. При його виконанні, виконується вся підпрограма. Посе процедури "umnogenie" прописуємо опрерато "readln", для виводу на екран попереджуючого повідомлення і затримки роботи процедури "Test". У кінці програми ставиться "end".

Висновок
Робота зроблена на мові програмування Turbo Pascal. Turbo Pascal є реалізацією Pascal'я. Найперша версія Pascal була розроблена на кафедрі інформатики Стенфордського університету швейцарським ученим Ніколаусом Віртом в 1968 році.
З моменту появи Pascal на ринку продуктів пройшло багато часу, перш ніж він отримав загальне визнання. У середині 80-х років американською фірмою Borland International Inc була створена реалізація мови Pascal, відома і до цього дня під ім'ям Turbo Pascal. Ця фірма об'єднала дуже швидкий компілятор з редактором тексту і додала до стандартного Паскалю потужне розширення, що сприяло успіху першої версії цієї мови.
Мова програмування Turbo Pascal, є потужною платформою (батьком) для інших мов програмування. З Turbo Pascal 'ля розвинулося безліч інших мов, тому він є складова частина всіх мов програмування.
У ході розробки тестуючої програми проводилося обробка даних запису у файл, створена програма для зчитування створеного файлу, розроблена підпрограма, що обробляється відповіді та оцінку тестованого.
При виконанні даної курсової роботи були придбані навички роботи з файлами і записами, вивчений синтаксис цієї мови програмування.
У ході виконання проекту даної курсової роботи:
· Були вивчені методи застосування записів у файл;
· Розроблений програмний код тестуючої програми.

Список літератури
1. Немнюгин С.А. Turbo Pascal. Програмування на мові високого
рівня: Підручник для вузів
2. С. М. Окулов - 2 глави зі шкільного підручника з інформатики;
3. C . А. Немнюгин - підручник TURBO PASCAL;
4. Delannoy C. Exercises en Turbo-Pascal, Eyrolles, Paris, 1990;
5. Епанешников А. Програмування в середовищі Turbo-Pascal 7.0 /
А. Епанешников, В. Епанешников. - М.: Діалог-МІФІ, 1993;
6. Фаронов В. В. Turbo Pascal 7.0. - М.: Надія, 2000;
7.Лукін С.М. Turbo Pascal 7.0. Самовчітель для початківців. - М.: "Діалог-МІФІ", 2002
8. . Пратт Т. Мови програмування: розробка та реалізація;
9. Брукшір Дж. Гленн. Введення в комп'ютерні науки. - М.:
Вільямс, 2001;
10. Miller LN Advanced programming: Design and Structure using
Pascal, Addison-Wesley publishing Company, 1986гіна, М. Г. Громада. - СПб.: Наука і техніка, 2001;
11 Вірт Н. Алгоритми і структури даних. - М.: Світ, 1989.
Т. Пратт, М. Зелковіц. - СПб.: Пітер, 2002;
12. Архангельський А. Я. Програмування в Delphi 7. - М.: Бі-
ном, 2005;
13. Самуйло С. В. Розробка програм в середовищі Турбо-Паскаля 7.0.
Лабораторний практикум. - Пенза, 1996;
14. Єсіпов О. С. Інформатика. Задачник;
15 Марченко А. І. Програмування в середовищі Turbo Pascal 7.0 / Т. 1. - М.: Світ, 1982;
16.А.Ф. Верлань, Н.В. Апатова "Інформатика 10-11кл.", Київ 2001
17. С. А. Немнюгин "Навчальний посібник", Санкт-Петербург 2004
18Фаронов В. В., серія: "В оригіналі", 2004 р ., Вид.: БХВ-Петербург
19. Коффман Е., серія: "Керівництво розробника.", 2002 р ., Вид.: Діалектика: Київ;
20. Кассера Вінфрід і Фолькер "Turbo Pascal 7.0" 2003 р ., Вид.: ДіаСофт;

Додаток 1
1.1 Код файлу для створення файлу з питаннями і відповідями
program Vvod;
type rec = record
vopros: string;
otvet: string;
end;
var f: file of string;
c: string; x: integer; q: rec;
begin
x: = 0;
assign (f, 'control.dat');
rewrite (f);
repeat
x: = x +1;
writeln ('Введіть питання');
readln (q.vopros);
write (f, q.vopros);
writeln ('введіть відповідь');
readln (q.otvet); write (f, q.otvet); until x = 20; close (f); end.
1.2 Код файлу для читання файлу з питаннями і введення відповідей
program initialization;
uses crt;
const simbol: set of char = ['y', 'Y', 'n', 'N', 'r', 'R', 't'];
type rec = record
vopros: string;
otvet: string;
end;
var f: file of string; z, e, u: integer; key: char;
z1, z2, z3: real;
x: integer; q: rec; j: integer;
Procedure MainMenu;
begin
writeln ('Для початку тестування натисніть - y');
writeln ('Для редагування питань або виходу із програми натисніть - R');
repeat
key: = readkey until key in simbol;
case key of
'Y', 'Y': writeln;
'R', 'R': begin clrscr;
writeln ('Для завершення програми натисніть - n');
writeln ('Для редагування питань-T');
repeat
key: = readkey until key in simbol;
case key of
'N', 'N': halt;
'T', 'T': begin
j: = 0;
assign (f, 'control.dat');
rewrite (f); clrscr;
writeln ('Введіть кількість питань');
readln (x);
repeat
j: = j +1;
writeln ('Введіть питання');
readln (q.vopros);
write (f, q.vopros);
writeln ('Введіть відповідь');
readln (q.otvet);
write (f, q.otvet);
until j = x;
close (f); begin halt; end;
end;
end; end; end; end;
procedure umnogenie;
begin
writeln ('Врахуйте що при введенні відповідей знак множення "*" (shift +8) обов'язковий');
writeln ('інакше відповідь не буде вважатися правильним');
writeln ('Для продовження натисніть - ENTER');
end;
Procedure Test;
var
readstring, otv, otvfile: string;
begin
e: = 0; z: = 0;
assign (f, 'control.dat');
reset (f);
While not eof (f) do begin
z: = z +1; clrscr;
write ('Питання', z, ':', '');
writeln; writeln; inc (x);
read (f, readstring);
read (f, otvfile);
writeln (readstring);
Write ('Відповідь'); Readln (otv);
if otv = otvfile then begin e: = e +1; end; end;
z1: = round (x / 4);
z2: = round (x / 2);
z3: = round (x/1.3);
if e <= z1 then u: = 2 else
if (e> z1) and (e <= z2) then u: = 3 else
if (e> z2) and (e <= z3) then u: = 4 else u: = 5;
close (f);
clrscr;
writeln ('Правильних відповідей', e);
writeln ('Ваша оцінка', u);
end;
begin clrscr;
MainMenu;
umnogenie; readln;
Test;
end.

Додаток 2
2.1 Блок - схема

Додати в блог або на сайт

Цей текст може містити помилки.

Програмування, комп'ютери, інформатика і кібернетика | Курсова
42.4кб. | скачати


Схожі роботи:
Створення ігрової програми Морський бій
Створення програми для роботи зі сканером
Створення банерів за допомогою програми Adobe PhotoShop 70
Створення програми та діяльність Укр і Рос партій на поч ХХ ст
Створення програми з використанням програмного продукту Turbo Assembler
Створення програми та діяльність Укр і Рос партій на поч ХХ ст
Створення програми для автоматизації процесу нарахування заробітної плати
Створення довідника Парфумерний магазин за допомогою програми Turbo Pascal
Створення клієнтської програми для користування базою данних MS ACCESS в Delphi 4 0
© Усі права захищені
написати до нас