Програма для тестування знань з дисципліни "Програмування на мові С"

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

Кiровоградський Державний Технiчний Унiверситет

Кафедра програмного забезпечення

Дисципліна: «Програмування на мові C»













Курсова робота







тема: «Скласти та відлагодити програму для тестування знань з дисципліни «Програмування на мові С»»






Зміст



Вступ

1. Призначення та область використання

2. Технічні характеристики

2.1 Постановка задачі

2.2 Опис алгоритму

2.3 Опис та обґрунтування методу організації вхідних та вихідних даних

2.4 Опис та обґрунтування вибору складу технічних та програмних засобів

Висновки

Перелік літератури

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






Вступ



Для ефективної роботи систем керування різними пристроями їх підключають до комп’ютерів. З комп’ютера можуть видаватися різноманітні команди для пристрою, пристрій може передавати різні сигнали комп’ютеру про свій стан.

Для зв’язку використовуються спеціальні пристрої, такі як послідовні та паралельні адаптери. Послідовні передають дані по одному біту, паралельні – одночасно. Паралельні забезпечують більшу швидкість роботи, але вимагають більше з’єднувальних ліній.

У даній роботі розглянуто програму, яка приймає дані з зовнішнього пристрою через паралельний порт. Якщо дані не змінюються (там знаходиться якесь одне значення), то програма повідомляє про це.






1. Призначення та область використання



Програма призначена для тестування якості знань студентів при вивченні дисципліни «Програмування мовою С». Її можна використовувати як у навчальних цілях, так і як приклад програми, що працює з файлами та текстом.






2. Технічні характеристики



2.1 Постановка задачі



Використовуючи мову програмування С, необхідно скласти та підлагодити програму, яка б дозволяла протестувати знання користувача з дисципліни «Програмування на мові С» та виставити оцінку.



2.2 Опис алгоритму



1. Вивести на екран повідомлення про призначення програми.

2. Відкрити текстовий файл з запитаннями.

3. Якщо виникла помилка, то стоп.

4. Прочитати з файлу і вивести на екран запитання і варіанти відповідей.

5. Отримати з клавіатури відповідь користувача.

6. Якщо відповідь правильна, то збільшити лічильник правильних відповідей на 1.

7. Повторити з пункту 4 у циклі 10 разів.

8. Обчислити оцінку і вивести на екран результат тестування.

9. Кінець.



2.3 Опис та обґрунтування методу організації вхідних та вихідних даних



Вхідними даними до програми, по-перше, є файл c-ask, який містить запитання та відповіді. Кількість рядків у цьому файлі кратна чотирьом (запитання та 3 варіанти відповідей). Також вхідними даними є відповідь, яку користувач вводить з клавіатури.

Для отримання інформації з файлу використовуються такі функції з stdio.h:

fopen	– відкрити файл

fclose	– закрити файл

fgets	– прочитати рядок з файла

Для отримання коду клавіші використовується функція getch().

Вихідними даними в програмі є оцінка, яка з’явиться на екрані після закінчення тесту. Для виводу використовується функція printf().



2.4 Опис та обґрунтування вибору складу технічних та програмних засобів



Програма є невибагливою до системних ресурсів. Вона може працювати під керуванням операційної системи MS-DOS на комп’ютерах з процесором 8086 та старшим. Об’єм пам’яті може бути значно меншим за 640 КБайт.

Для компіляції програми використовується Turbo C.






Висновки



Отже, розроблена програма, яка тестує знання з дисципліни «Програмування на мові С». Можливо використовувати інші запитання, для цього треба відредагувати файл c-ask з запитаннями.






Перелік літератури



1. Конспект лекцій з дисципліни «Програмування на мові С»

2. Довідка (HELP) з середовища Turbo C фірми BORLAND.






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



#include <stdio.h>

#include <conio.h>



void main() {

FILE *f;

int i, j, co=0;

char c;

char s[81];

char key[10]= «3221321213»;



clrscr();

printf («Доброго дня! Зараз ви пройдете тестування на знання мови\n»);

printf («програмування С. Вам буде задано 10 запитань i на кожне дано\n»);

printf («три варiанти вiдповiдей. Щоб вiдповiсти, введiть потрiбну \n»);

printf («цифру. Бажаємо успiхiв!\n\n\n»);

f=fopen («c-ask», «r»);

if (f==NULL)

{

printf («Помилка вiдкриття файла c-ask! \n»);

return;

}

for (i=0; i<10; i++)

{

for (j=0; j<4; j++) {

fgets (s, 80, f);

puts(s);

}

printf («\nВведiть номер правильної вiдповiдi: \n»);

do {

c=getch();

} while (c!=0x31&&c!=0x32&&c!=0x33);

if (c==key[i])

{

printf («\n\nВiрно! \n\n»);

co++;

}

else printf («\nНевiрно! \n\n»);

}



fclose(f);

clrscr();

printf («Результат тесту: \n»);

printf («Задано 10 запитань\n»);

printf («Отримано % d вiрних вiдповiдей\n», co);

if (co<2) co=2;

printf («Оцiнка за 5-бальною системою:%d\n», (int) ((float) co/10*5));

printf («До побачення!\n»);



getch();

}