ВСТУП
Розвиток обчислювальної техніки супроводжується створенням нових і вдосконаленням існуючих мов програмування—засобів спілкування програмістів з ЕОМ. Під мовою програмування розуміють правила подання даних і запису алгоритмів їх обробки, що автоматично виконуються ЕОМ. У більш абстрактному вигляді, – це засіб створення програмних моделей об'єктів і явищ зовнішнього світу. На сьогодні вже створено десятки різних мов (як примітивних, так і близьких до мови людини). Їх розвиток невпинно йшов від першої мови асемблера до мов високого рівня і до систем автоматизованого проектування. Під час розробки мов програмування за мету ставилося розробити мову, яка могла б виконувати всі необхідні для роботи функції і при цьому не була б складною у використанні. З часом мови програмування ставали все ефективнішими та зрозумілими навіть для рядових користувачів. За їх допомогою стало можливим одним рядком описувати функції, для опису яких мовами молодших поколінь потрібно було б сотні-тисячі рядків початкового коду.
Метою даної курсової роботи є розробка гри “Найрозумніший” , вона побудована на українсько-російській телепередачі, одна з версій британського телепроекту «Britain's Brainiest Kid» Для реалізаціх поставленої задачі обрано мову програмувння С. Серед універсальних мов високого рівня безперечним лідером є мови С/С++. До переваг належать: наявність операторів, які забезпечують базові програмні елементи; можливість програмування на низькому рівні з доступом до адрес оперативної пам’яті; великі бібліотеки службових підпрограм і класів. С/С++ - основні мови розробки операційних систем, компіляторів, тощо. В якості редактора використовується DEV-CPP, оскільки він поширюється за вільними ліцензіями , що суттєво спрощує для розробника процедуру ліцензування. Також використовується і вільно поширюваний компілятор мови С.
АНАЛІЗ ТЕХНІЧНОГО ЗАВДАННЯ
1.1 Найменування та область використання
В курсовій роботі розроблено гру «Найрозумніший» яка використовуватися в ігровій сфері у вигляді інтелектуальної гри.
Програмна розробка буде написана на мові програмування C під операційною системою Windows.
Дана програма не потребує потужного програмного забезпечення та особливих навиків роботи з ПК.
1.2 Призначення розробки
Експлуатаційне призначення даного програмного виробу полягає в використанні гри «Найрозумніший», для виведення питань та підрахунку правильних відповідей учасника.
Програмний виріб повинен бути написаний на мові програмування С.
1. 3 Вимоги до програмного забезпечення
Для створення даної програми необхідна мова програмування C. Використання цієї мови програмування дозволяє з допомогою мінімальних зусиль створити якісний програмний продукт.
Програми написані на C складаються з модулів або фрагментів, називаються функціями. Оптимальним для середовища є блочний метод побудови програм, який на відміну від лінійного дозволяє використовувати стандартні функції для написання.
Програма написана в цьому середовищі включає в себе ідентифікатори, ключові слова, функції, змінні, константи, вирази, директиви препроцесора і процесора, структури, масиви.
1.3.1 Вхідна інформація
Вхідні дані для даного програмного забезпечення – дані про учасника гри. Питання які використовуються для гри. Для чіткої організації вхідних даних у цій програмі створено одну структуру. Ця структура дає змогу в повному обсязі задовольнити потреби постановки задачі на курсову роботу.
1.3.2 Вихідна інформація
Вихідною інформацією програми є питання гри. Відповіді на запитання гри.
При виводі вихідною інформацією є питання відповіді на запитання та правильний результат.
1.3.3 Часові характеристики
Програмний виріб не має обмежених часових характеристик. Термін його використання залежить від терміну відповідності характеристик програмного забезпечення та вимогам користувача.
Але оскільки, він буде написаний на мові програмування С, а сама програма буде запускатися під операційною системою Windows, то час безперервної дії програмного виробу буде залежати від безперервної дії самої операційної системи Windows.
1.3.4 Вимоги до надійності
З метою надійного функціонування програмного виробу потрібно, щоб програма контролювала та оцінювала наявність файлів послідовного доступу, в який записані запитання гри, необхідні для повноцінної роботи програми.
Дана програма є досить надійною, що дозволяє безперешкодне її використання в ігровій сфері.
1.3.5 Умови експлуатації
Дана програма повинна виконувати наступні функції:
ввід даних учасника;
зчитування даних з файлу;
виведення необхідної інформації на екран;
перевірка правильності вибраної відповіді.
Програмне забезпечення не вимагає від користувача особливих навичок та знань. Користувач повинен лише володіти основними навичками роботи з персональним комп’ютером та використовуваною операційною системою( Windows 7, 8).
Для повноцінної роботи з програмою вона повинна знаходитися на жорсткому диску комп’ютера , флеш-носії чи іншому носії інформації.
При розробці гри забезпечуються наступні функціональні можливості:
грати гру;
перегляд правил гри;
переглядати довідкову інформації;
можливість виходу з програми;
перехід до головного меню після виконання операцій.
Вимоги до ПК для роботи з даною програмою є наступними:
Операційна система Windows 7/8;
Процесор 166 МГц і більше;
ОЗУ 128 Мб і більше;
Монітор із підтримкою розширення 640х480;
Вільне місце на жорсткому диску або іншому носії 5 Мб.;
Пристрій вводу – клавіатура.
1.4 Вимоги до програмної документації
Програмна документація гри містить такі пункти;
інструкція установки гри на комп’ютер користувача;
інструкцію з інсталяції гри;
опис основних технічних вимог.
Вся документація міститься в зрозумілому вигляді потрібному для коректної взаємодії користувача з програмним продуктом.
1.5 Стадії та етапи розробки
Курсова робота пройшла такі стадії розробки:
Формування вимог до поставленої задачі.
Складання загального алгоритму роботи програми.
Проектування та створення блок-схем функцій, необхідних для подальшої роботи.
Розробка та написання тексту програми в середовищі програмування C.
Тестування програми на різному апаратному та програмному забезпеченні.
Усунення помилок при роботі ПЗ.
Створення технічної документації
Після розробки програмного комплексу підготовлено таку документацію:
Інструкція з технічними характеристиками ПЗ.
Інструкція з вимогами до апаратних засобів.
Інструкція по основних функціях ПЗ.
Дана документація постачається разом із інсталяційним пакетом програми.
1.6 Порядок контролю та прийому
Тестування програми проводилось на комп'ютері з операційною системою Windows 7 Ultimate з процесором AMD A6 із частотою 2.2 ГГц, оперативній пам’яті 2048 Мб та відеоадаптері Vision
2 РОЗРОБКА ПРОГРАМНОГО ЗАБЕЗПЕЧЕННЯ
2.1 Постановка задачі та обґрунтування вхідних і вихідних даних
Метою курсового проекту є реалізація гри «Найрозумніший». В основі програмного забезпечення лежить структура, з якої можливо зчитувати запитання до гри .
Структура містить:
запитання.
4 варіанти відповідей.
Вхідні дані, які подаються в структуру при запуску програми та виборі певного пункту меню, вводяться ім’я.
2.2 Опис методів реалізації функцій
Дана програма складається з нижчеописаних основних функцій.
Функція main
При запуску програми запускається функція main, яка запускає на виконання функцію, що відповідає вибраному користувачем пунктові головного меню. Для виходу з програми необхідно вибрати пункт меню «Вихід». Блок-схема зображена на рисунку 2.1.
Рисунок 2.1 - Алгоритм виконання функції main
Функція menu()
Функція menu() дана функція запускає на екран меню гри з можливість вибору певної функції при натисканні певної кнопки клавіатури. Блок-схема зображена на рисунку 2.2
Рисунок 2.2 - Алгоритм виконання функції menu
Функція gra ()
Функція gra() запускається при виборі користувачем пункту меню «грати гру». Дана функція відкриває вікно вводу імені після чого запускається функція vop.
Функція vop ()
Функція vop () зчитує з бази питання для 1 рівня та виводить їх на екран. Дана функція зображена блок-схемою на рисунку 2.3.
Рисунок 2.3 – Алгоритм виконання функції vop()
Функція sens ()
Функція sens() підраховує кількість правильних відповідей і виводить на екран правильну відповідь, підраховує кількість правильних відповідей, і після успішного проходження 1 рівня запускається функція vop_2()Блок-схема виконання функції забражена на рисунку 2.4.
Рисунок 2.4 – Алгоритм виконання функції sens
Функція vop_2 ()
Функція vop_2 () зчитує з бази питання для 2 рівня та виводить їх на екран. Для цього використовуються файли довільного доступу.
Функція level_2 ()
Функція level_2 () підраховує кількість правильних відповідей і виводить на екран правильну відповідь у разі неправильної відповіді гра закінчується.
Функція pravyla ()
Функція pravyla () запускається при виборі користувачем пункту меню «Правила гри ». Дана функція виводить на екран правила гри. Блок-схема забражена на рисунку 2.2.
Рисунок 2.5 - Алгоритм виконання функції pravyla
Функція search ()
Функція search () запускається при виборі користувачем пункту меню « Довідка ». Дана функція виводить на екран інформацію про створення програми.
2. 3 Інформаційні зв’язки програмних компонентів
Програма, при завантаженні, звертається до функції видачі головного меню користувача. Після цього здійснюється зв’язок з іншими функціями.
Блок-схема забражена на рисунку 2.6.
Рисунок 2.6 - Ієрархічна структура інформаційних зв’язків програмних компонентів
2.4 Написання текстів програми
Оскільки програмним середовищем для розробки даної гри вибрано C, то автоматично зменшується трудомісткість та складність створення цього програмного виробу. Вибране середовище дає змогу програмісту використовувати, та створювати потрібні елементи для роботи.
В ході розробки спочатку формувалось початкове меню завантаження програми. Потім продумувались функції, які би змогли виконати поставлену задачу. Тепер маючи всі необхідні компоненти можна переходити безпосередньо до програмування, тексти кодів програми подані в додатку A. При написанні програмного коду в даній розробці по можливості спрощувалися алгоритми виконання операцій. Текст програми слід писати так щоб по можливості одні і ті ж самі дії не повторювалися в межах однієї функції.
При написанні кожного блоку програми враховувались можливості виникнення помилок, для цього перед виконанням тих чи інших дій перевірялась умова доступності і правильності вхідних та вихідних даних та результатів.
Після кожного етапу написання програми проводився тест на правильність виконання алгоритму дій.
На початку було написано код головного меню,в якому виводяться усі його пункти, зчитується введена користувачем інформація, та за допомогою конструкції вибору switch-case визначена функція,яку потрібно викликати.
3 ТЕСТУВАННЯ ТА НАЛАГОДЖЕННЯ ПРОГРАМИ
Інструкція з інсталяції програмного забезпечення
Даний гра не потребує інсталяції. Для функціонування гри її потрібно перенести на флеш-носій або жорсткий диск і забезпечити необхідний дисковий простір.
Програму необхідно переносити разом з файлом basa.dat та basa2.dat що є файлами послідовного доступу.
Інструкція з використання тестових наборів
Якщо є доступ до файлів, можемо проводити тестування програми. Для цього потрібно спробувати додати новий пункт меню до списку. Якщо програма видає помилку відкриття файлу, значить не має доступу до файлу, не має вільного простору або уже створений файл пошкоджений.
Також потрібно перевірити відповідність натискання введених цифр пунктам меню. Для цього потрібно ввести 1 має появитися меню вводу імені після цього повині висвітлитись питання. Після введення 2 можемо переглянути правила гри, після введення 3 перегляд довідкової інформації. Та 4 вихід з програми.
Інструкція з експлуатації програмного комплексу
В ході розробки програми спочатку формувалося головне меню, потім послідовно описувалися функції відповідно до складених алгоритмів. Після цього функції перевірялися на наявність помилок. Потім проводилося об’єднання основних і додаткових функції за допомогою головної функції main() і запуск програми на виконання.
На початку виконання програми на екран виводиться головне меню(див.рис.3.1). В вікні головного меню можна вибрати один з пунктів:
/
Рисунок 3.1 - Головне меню програми
Після вибору пінкту 2 появляються правила гри
/
Рисунок 3.2 – правила гри
Для початку гри у меню потрібно вибрати пункт 1. Після цього ввести імя (див.рис.3.3).
/
Рисунок 3.3 –Вікно вводу імені
Для виводу питань на екран потрібно після вводу імені натиснути Enter (див.рис.3.4).
/
Рисунок 3.4 – Вікно виводу питань
Для вводу відповіді і порівняння з правильною відповіддю (див.рис.3.5).
/
Рисунок 3.5 – Вивід вікна з порівнянням відповідей
ВИСНОВКИ
На курсовій роботі використовувались файли послідовного доступу функції, та з структурами.
У цій роботі був використаний майже ввесь матеріал який був вивчений протягом навчального року.
Даний курсовий проект був написаний на мові програмування С, в середовищі програмування DEV-CPP. Метою даної курсової роботи є розробка гри «Найрозумніший». В даній грі присутні такі функції як можливість грати гру, в якій присутні два рівні складності, перегляд правил гри, довідкової інформації, та вихід з гри.
В курсовому проекті використані файли послідовного доступу в яких записані запитання для гри, в програмі використані цикли для підрахунку правильних відповідей, а також виводу відповідних повідомлень. Учасник з легкістю може відповідати на запитання оскільки вони виводяться кирилицею.
Створена програма проста у використані і не потребує інсталяції, для її використання потрібно лише мати скопійованим на жорсткий диск чи просто на любому носії інформації файл з розширенням .exe і файли basa.dat та basa2.dat для виводу запитань.
ПЕРЕЛІК ПОСИЛАНЬ
Давидчук Р. Л. Основи програмування на С++. – К.: Технік, 1999. – 480 с..
Корриган Д. Компьютерная графика: Секреты и решения: Пер. с англ. – М.: Энтроп, 2005. – 352 с.
Марціяш Г. Я. Методичні вказівки до курсової роботи з дисципліни «Системне програмування». – Тернопіль: ТК ТНТУ імені Івана Пулюя, 2009. .
http:// cpp.anali3.info/
http://www.teacher.dn-ua.com/
http://electronics.dax.ru
http://void.net.ua/The_C_Programming_Language.html
ДОДАТОК А
Текст програми
#include <stdio.h>
#include <stdlib.h>
#include <dos.h>
#include <conio.h>
#include <string.h>
#include <locale.h>
int menu(void);
void gra(void);
void pravyla(void);
void search (void);
void vop();
void vop_2();
void sens();
void level_2();
struct pr
{
char p[100];
char var1[20];
char var2[20];
char var3[20];
char var4[20];
char vid[1];
}vp[5];
struct pr_2
{
char p[100];
char var1[20];
char var2[20];
char var3[20];
char var4[20];
char vid[1];
}vp_2[5];
int main(int argc, char *argv[])
{
int a;
while((a=menu())!=4){
switch(a){
case 1:
gra();
break;
case 2:
pravyla();
break;
case 3:
search();
break;
default:
system("cls");
!
printf("-------------------------------------------\n");
printf(" %s \n","Помилка : невiрна команда");
printf("-----------------------------------------\n");
getch();
}
}
return 0;
}
int menu(void){
system("cls");
int i;
setlocale (LC_ALL, ".1251"); !!!!!!!!!
printf("\n\n""дана програма підтримується операційними системами Windows 7,8");
printf("\n\n*********************");
printf("\n\n""ВАС ВIТАЄ ГРА НАЙРОЗУМНIШИЙ");
printf("\n\n""1-грати гру");
printf("\n\n""2-Правила гри");
printf("\n\n""3-Вихiд");
printf("\n\n*********************");
printf("\n#");
scanf("%d",&i);
return i;
};
void gra()
{
system("cls");
char name[10];
printf("\tВедiть iмя:\n");
scanf("%s",&name);
vop();
getch();
}
void vop(){
FILE *f; int i; char v[300],v1[20],v2[20],v3[20],vf4[20]; char mas[256]; int j,str;
if ((f=fopen("basa","a+"))==NULL)
printf("File not found\n");
else
{
for(i=0; i<18; i++) {
fscanf(f,"%s%s%s%s%s%s", vp[i].p,vp[i].var1,vp[i].var2,vp[i].var3,vp[i].var4,vp[i].vid);
// printf("%s %s %s %s %s \n", vp[i].p,vp[i].var1,vp[i].var2,vp[i].var3,vp[i].var4);
}
}
sens();
}
void sens() {
int i;
int v,pr_v=0;
char vv[1],*end;
for (i=0; i<18; i++) {
system("cls");
printf("РIВЕНЬ 1\n");
printf("\t%s\n",vp[i].p); //питання
printf("1)%s\t\t2)%s\n",vp[i].var1,vp[i].var2); //варіанти відповідей
printf("3)%s\t\t4)%s\n",vp[i].var3,vp[i].var4);
scanf("%d",&v);
int cc=strtol(vp[i].vid,&end,0);
printf("%d\n",cc);
if (v==cc){
printf("Вiдповiдь правельна\nДля наступного питання натиснiть Enter\n");
pr_v++;
}
Else
{
printf("Неправельна вiдповiдь!\nДля наступного питання натиснiть Enter\n");
}
getch();
}
system("cls");
printf("ВIТАЄМО!Ваш результат: %d\n",pr_v);
if (pr_v>=11){
vop_2();
}else{
printf("ГРУ ЗАКIНЧЕНО!!!");
}
}
void vop_2() {
FILE *f; int i; char v[300],v1[20],v2[20],v3[20],vf4[20]; char mas[256]; int j,str;
if ((f=fopen("basa2","a+"))==NULL)
printf("File not found\n");
else
{
for(i=0; i<6; i++) {
fscanf(f,"%s%s%s%s%s%s", vp_2[i].p,vp_2[i].var1,vp_2[i].var2,vp_2[i].var3,vp_2[i].var4,vp_2[i].vid);
// printf("%s %s %s %s %s \n", vp[i].p,vp[i].var1,vp[i].var2,vp[i].var3,vp[i].var4);
}
}
level_2();
}
void level_2()
{
int i;
int v,pr=0;
char vv[1],*end;
for (i=0; i<6; i++) {
system("cls");
printf("РIВЕНЬ 2\n");
printf("\t%s\n",vp_2[i].p); //питання
printf("1)%s\t\t2)%s\n",vp_2[i].var1,vp_2[i].var2); //варіанти відповідей
printf("3)%s\t\t4)%s\n",vp_2[i].var3,vp_2[i].var4);
scanf("%d",&v);
int cc=strtol(vp[i].vid,&end,0);
printf("%d\n",cc);
if (v==cc){
printf("Вiдповiдь правельна\nДля наступного питання натиснiть Enter\n");
pr++;
}
else
{
printf("Неправельна вiдповiдь!\nГРУ ЗАВЕРШЕНО !!!\n");
getch();
break;
}
}
if (pr==6) {
printf("ВIТАЄМО! ВИ ВИГРАЛИ ГРУ!!!!!");
}
}
void pravyla(void)
{
system("cls");
int n;
setlocale (LC_ALL, ".1251"); !!!!!!!!!
printf("\tгра ,,найрозумніший,,побудована на відомій телепередачі\n");
printf("\tв ній присутні 2 рівні...в 1 рівні вам потрібно відповісти \n");
printf("\t на 10 питань щоб пройти на наступний рівень \n");
printf("\tв рівні два вам потрібно відповісти на всі 6 запитань, \n");
printf("\tякщо ж не відповідаєте на запитання для вас гру закінчено!!! \n");
printf("\nДля виходу в головне меню натиснiть будь-яку клавiшу...");
getch();
}
void search(void){
printf("\nДля виходу натиснiть будь-яку клавiшу...");
getch();
}