Швидкий рахунок

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

скачати

Міністерство освіти і науки Російської Федерації
Федеральне агентство з освіти
Південно-Уральський державний університет
Кафедра «Інформатика»
ПОЯСНЮВАЛЬНА ЗАПИСКА
до курсової роботи
з дисципліни «високорівневі методи інформатики та програмування»
Тема: Швидкий рахунок
Виконав: Плохов В.В.
Спеціальність: 080801
Група: ЕіУ - 263
Челябінськ - 2007

Зміст
1.Вступ
2.Основні частина
2.1.Постановка завдання
2.2.Разработка об'єктної моделі програми
2.3.Опісаніе файлів проекту
2.4.Опісаніе роботи проекту
2.5.Некоторие загальні моменти
3.Заключеніе
4.Список джерел інформації

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

2.Основні частина

2.1.Постановка завдання

Головним завданням є розробка закінченого додатка, що дозволяє в ігровій формі тренувати і покращувати навички усного рахунку. Оскільки програма головним чином орієнтована на користувача молодшого та середнього шкільного віку, то за головну тематичну ідею програми були взяті знамениті казкові персонажі із знаменитого твору Алана Олександра Мілна "Вінні-Пух і Всі-Всі-Всі", які виконані в стилістиці однойменного діснеївського мультфільму.
Необхідний для реалізації функціонал:
· Розробка системи управління обліковими записами, для можливості використання однієї програми безліччю користувачів.
o Розробка системи створення облікового запису.
o Розробка системи видалення облікового запису.
o Розробка системи активації облікового запису.
o Розробка алгоритмів взаємодії з базою даних.
o Розробка системи захисту від внесення помилкових параметрів в базу даних.
· Розробка формування таблиці рекордів, для можливості відстежування кращих результатів, серед гравців.
o Розробка математичної моделі для можливості збалансованого формування рейтингу між гравцями різних рівнів складності.
o Розробка алгоритму підрахунку кращих результатів в записах бази даних.
o Розробка алгоритму сортування кращих результатів в записах бази даних.
· Розробка рольової моделі.
o Розробка різних видів персонажів.
o Розробка унікальних здібностей кожного з персонажів.
o Розробка системи отримання нових здібностей.
· Розробка бази даних.
o Розробка синтаксису файлів бази даних.
o Розробка полів параметрів зберігаються в базі даних.
§ Ім'я
§ Персонаж
§ Кількість пройдених рівнів
§ Середній час проходження рівня
§ Статус унікальній здатності № 1
§ Статус унікальній здатності № 2
§ Статус унікальній здатності № 3
o Розробка алгоритмів забезпечують формування файлів бази даних.
· Розробка основного ігрового процесу.
o Розробка системи реалізації різних рівнів складності.
o Розробка генератора прикладів з урахуванням вибраної складності.
§ Підтримка операцій додавання.
§ Підтримка операцій віднімання.
§ Підтримка операцій множення.
§ Підтримка операцій ділення.
§ Забезпечення генерації прикладів з урахуванням обов'язковості цілочисельного позитивного, або цілочисельного негативної відповіді.
o Розробка таймера, контролюючого відлік ігрового часу.
o Розробка контролю правильності відповіді.
o Розробка системи "життів", для обмеження кількості невірних відповідей.
o Розробка впливу унікальних здібностей на ігровий процес.
· Розробка системи придбання нових унікальних здібностей.
o Розробка алгоритмів контролюючих доступність придбання здібностей.
o Розробка алгоритмів забезпечують запис про нові здібності в базу даних.
· Розробка довідкової системи та документації.
· Розробка графічної оболонки програми.
o Розробка головного меню.
o Розробка вікна управління обліковими записами.
o Розробка вікна основного ігрового процесу.
o Розробка вікна "Магазину", для придбання нових здібностей.
o Розробка вікна довідкової системи.
o Розробка вікна таблиці рекордів.

2.2.Разработка об'єктної моделі програми

При написанні програми використовувалися основні принципи ООП. Нижче перераховані використовуються в програмі класи:
1) class database - "Порожній" клас, який містить тільки статичні методи, по роботі з файлами бази даних.
Прототипи методів класу:
static int add_player (); - забезпечує додавання нової сформованої запису в файл бази даних.
static void del_player (int n); - забезпечує видалення запису з файлу бази даних. Рухаючись цілочисельний параметр n, вказує номер видаляється рядка міститься в базі даних.
static void init_list (); - забезпечує ініціалізацію листа списку облікових записів з файлу бази даних.
static void read_player (); - забезпечує зчитування параметрів облікового запису з файлу бази даних і формує вікно параметрів гравця в системі управління обліковими записами.
static void save_player (); - забезпечує збереження оновлених параметрів гравця у файлі бази даних.
2) class exercise - абстрактний клас, який містить параметри генерується прикладу, а також містить абстрактний метод генерації прикладу. Має двох нащадків: withone, withtwo.
Параметри класу:
int a, int b, int c; - числові значення формують елементи прикладу.
int answ; - числове значення містить правильну відповідь на сформований приклад.
int sign, int sign2; - числові значення формують перший і другий знак прикладу відповідно.
Прототипи методів класу:
virtual void generate (int h); - абстрактний метод.
3) class withone: public exercise - клас-нащадок, від предка exercise.
Прототипи методів класу:
void generate (int h); - формує приклад з однією дією (додавання, віднімання, множення, ділення). Використовує цілочисельну змінну h, для формування прикладу відповідно до рівня складності.
4) class withtwo: public exercise - клас-нащадок, від предка exercise.
Прототипи методів класу:
void generate (int h); - формує приклад з двома діями (додавання, віднімання, множення, ділення). Використовує цілочисельну змінну h, для формування прикладу відповідно до рівня складності.
5) class spells - клас, що містить інформацію про унікальні здібності.
Параметри класу:
int s1, s2, s3; - містять інформацію про доступність для гравця унікальних здібностей.
int wus1, wus2, wus3; - містить інформацію про те, чи були використані заклинання протягом рівня.
Прототипи методів класу:
spells (); - конструктор, виконує ініціалізацію доступності унікальних здібностей і типове встановлення про те, що унікальні здібності ще не були використані.
6) class specpooh: public spells - клас, що містить методи з активації заклинань для персонажа Віні-Пух.
Прототипи методів класу:
specpooh (): spells () {} - викликає конструктор батьківського класу spells.
void magic1 (void); - активує унікальну здатність № 1.
void magic2 (void); - активує унікальну здатність № 2.
void magic3 (void); - активує унікальну здатність № 3.
7) class specpiglet: public spells - клас, що містить методи з активації заклинань для персонажа Паць.
Прототипи методів класу:
specpiglet (): spells () {} - викликає конструктор батьківського класу spells.
void magic1 (void); - активує унікальну здатність № 1.
void magic2 (void); - активує унікальну здатність № 2.
void magic3 (void); - активує унікальну здатність № 3
8) class spectigger: public spells - клас, що містить методи з активації заклинань для персонажа Тигра.
Прототипи методів класу:
spectigger (): spells () {} - викликає конструктор батьківського класу spells.
void magic1 (void); - активує унікальну здатність № 1.
void magic2 (void); - активує унікальну здатність № 2.
void magic3 (void); - активує унікальну здатність № 3
9) class player - клас, що містить всі необхідні відомості про поточний гравця.
Параметри класу:
char name [16]; - ім'я гравця.
int level; - кількість рівнів пройдених гравцем.
int usetime; - середній час, який витрачає на рівень гравець.
int hardness; - складність.
int type; - тип персонажа.
int b1; - доступність унікальній здатності № 1.
int b2; - доступність унікальній здатності № 2.
int b3; - доступність унікальній здатності № 3.
Прототипи методів класу:
void activate (); - забезпечує ініціалізацію всіх параметрів вибраного гравця.

2.3.Опісаніе файлів проекту

Файл проекту:
cursed2.bpr - файл проект Borland C + + Builder
Файли з вихідними кодами:
1) cursed2.cpp - головний файл, виконує ініціалізацію та запуск програми. Створює форму головного меню form_main.
2) database.h - містить опис класу database.
3) database.cpp - містить опис методів класу database.
4) exercise.h - містить опис батьківського абстрактного класу exercise, а також опис класів-нащадків withone і withtwo.
5) exercise.cpp - містить опис методів класів-нащадків withone і withtwo.
6) gaming.h - містить опис класу Tform_gaming - форми ігрового процесу form_gaming.
7) gaming.cpp - містить опис методів класу Tform_gaming - форми ігрового процесу form_gaming.
8) help.h - містить опис класу Tform_help - форми довідки form_help.
9) help.cpp - містить опис методів класу Tform_help - форми довідки form_help.
10) main.h - містить опис класу Tform_main - форми головного меню form_main.
11) main.cpp - містить опис методів класу Tform_main - форми головного меню form_main.
12) market.h - містить опис класу Tform_market - форми магазину form_market.
13) market.cpp - містить опис методів класу Tform_market - форми магазину form_market.
14) player.h - містить опис класу player.
15) player.cpp - містить опис методів класу player.
16) profile.h - містить опис класу Tform_profile - форми профілів form_profile.
17) profile.cpp - містить опис методів класу Tform_profile - форми профілів form_profile.
18) records.h - містить опис класу Tform_records - форми рекордів form_records.
19) records.cpp - містить опис методів класу Tform_records - форми рекордів form_records.
20) spells.h - містить опис батьківського класу spells, а також опис класів-нащадків specpooh, specpiglet, spectigger.
21) spells.cpp - містить опис методів батьківського класу spells, а також опис методів класів-нащадків specpooh, specpiglet, spectigger.
22) gaming.dfm - файл форми ігрового процесу.
23) help.dfm - файл форми довідки.
24) main.dfm - файл форми головного меню.
25) market.dfm - файл форми магазину.
26) profile.dfm - файл форми профілів.
27) records.dfm - файл форми рекордів.
Файли з графікою:
1) cloud.jpg - хмарка для форми магазину.
2) creator.jpg - зображення творця для форми допомоги.
3) gamingbg.jpg - фонове зображення для форми ігрового процесу.
4) gb1.jpg - маленька піктограма унікальній здатності № 1 П'ятачка.
5) gb2.jpg - маленька піктограма унікальній здатності № 2 П'ятачка.
6) gb3.jpg - маленька піктограма унікальній здатності № 3 П'ятачка.
7) help.jpg - зображення для форми допомоги.
8) lgb1.jpg - велика піктограма унікальній здатності № 1 П'ятачка.
9) lgb2.jpg - велика піктограма унікальній здатності № 2 П'ятачка.
10) lgb3.jpg - велика піктограма унікальній здатності № 3 П'ятачка.
11) live.jpg - піктограма "життя" для форми ігрового процесу.
12) lpb1.jpg - велика піктограма унікальній здатності № 1 Вінні-Пуха.
13) lpb2.jpg - велика піктограма унікальній здатності № 2 Вінні-Пуха.
14) lpb3.jpg - велика піктограма унікальній здатності № 3 Вінні-Пуха.
15) ltb1.jpg - велика піктограма унікальній здатності № 1 Тигри.
16) ltb2.jpg - велика піктограма унікальній здатності № 2 Тигри.
17) ltb3.jpg - велика піктограма унікальній здатності № 3 Тигри.
18) main.jpg - фонове зображення для форми головного меню та форми профілю.
19) market.jpg - зображення продавця для форми магазину.
20) pb1.jpg - маленька піктограма унікальній здатності № 1 Вінні-Пуха.
21) pb2.jpg - маленька піктограма унікальній здатності № 2 Вінні-Пуха.
22) pb3.jpg - маленька піктограма унікальній здатності № 3 Вінні-Пуха.
23) piglet.jpg - велике зображення П'ятачка.
24) piglet-min.jpg - маленьке зображення П'ятачка.
25) pooh.jpg - велике зображення Вінні-Пуха.
26) pooh-min.jpg - маленьке зображення Вінні-Пуха.
27) records.jpg - фонове зображення для форми рекордів.
28) tb1.jpg - маленька піктограма унікальній здатності № 1 Тигри.
29) tb2.jpg - маленька піктограма унікальній здатності № 2 Тигри.
30) tb3.jpg - маленька піктограма унікальній здатності № 3 Тигри.
31) tigger.jpg - велике зображення Тигри.
32) tigger-min.jpg - маленьке зображення Тигри.
33) icon.ico - іконка програми.
Файли зі звуком:
1) alarm.wav - звук тривоги.
2) greentime.wav - звук підготовчих секунд.
3) spell.wav - звук заклинання.
Файл допомоги:
helper.rtf - файл містить довідку в rtf форматі.
Файли бази даних:
1) profiles.db - головний файл облікових записів, містить всю інформацію про гравців.
2) tmp.db - тимчасовий файл, що використовується для операцій обробки головного файлу облікових записів.
У скомпільованому вигляді, програма буде містити тільки наступні файли:
cursed2.exe, alarm.wav, greentime.wav, spell.wav, profiles.db, tmp.db, helper.rtf

2.4.Опісаніе роботи проекту


Малюнок SEQ Малюнок \ * ARABIC 1 - Головне меню, відразу після запуску програми.
Після запуску програми ви побачите перед собою головне меню. У ньому міститься 6 кнопок, і статус поточного профілю.
відкриває вікно керування обліковими записами.
відкриває вікно ігрового процесу, зараз вона неактивна, так як ваш поточний профіль не вибраний.
відкриває вікно магазину, зараз вона неактивна, так як ваш поточний профіль не вибраний.
відкриває вікно допомоги.
відкриває вікно рекордів.
завершує роботу програми.
відображає поточний профіль.

Малюнок SEQ Малюнок \ * ARABIC 2 - Профіль
викликає область вибору типу персонажа.
викликає область для активації профілю.
викликає область для видалення профілю.
повертає в головне меню.
відображає всі існуючі профілі.

Малюнок SEQ Малюнок \ * ARABIC 3 - Вибір персонажа
В області вибору нового персонажа дано зображення всіх трьох існуючих персонажів і їх опису, для вибору необхідно клікнути по вподобаному персонажу.

Малюнок SEQ Малюнок \ * ARABIC 4 - Створення нового персонажа
Після того, як ви вибрали тип персонажа, ви потрапите в область редагування його параметрів.
полі введення імені профілю.
відображає обраного персонажа.
відображає обрану складність гру.
повертає до області вибору персонажа.
заносить запис про профіль у базу даних.

Малюнок SEQ Малюнок \ * ARABIC 5 - Вибір профілю
Відображає всю інформацію про профіль, обраному в листі профілів.
неактивне поле, відображає ім'я обраного профілю.
відображає персонажа обраного профілю.
неактивне меню, відображає складність обраного профілю.
відображає кількість пройдених гравцем рівнів.
відображає середній час, який гравець витрачає на рівень.
відображає "Успішність" обраного профілю.
відображає доступність унікальних здібностей. Знак "-" означає, що здатність недоступна, знак "+" означає, що здатність доступна.
виконує активацію профілю і відключає блокування пунктів головного меню "Почати гру" і "Магазин".

Малюнок SEQ Малюнок \ * ARABIC 6 - Видалення профілю
Область видалення профілю, обраного для видалення в листі профілів практично повністю аналогічна області вибору профілю, єдина відмінність в кнопках.
видаляє всі записи про гравця з бази даних.

Малюнок SEQ Малюнок \ * ARABIC 7 - Головне меню, після активації профілю
після активації профілю в Поточному профілі відображається ім'я активованого профілю.

Малюнок SEQ Малюнок \ * ARABIC 8 - Вікно ігрового процесу, при початку гри
веде зворотний відлік часу до 0.
веде зворотний відлік розв'язаних прикладів до 0.
відображає ім'я гравця.
відображає складність гри.
відображає номер прохідного рівня.
полі введення відповідей, неактивно до моменту закінчення підготовчого етапу, який триває протягом 5 секунд після започаткував ігри.
відображає унікальні здібності гравця. Маленькі піктограми означають, що здатність недоступна, або вже була використана. Великі піктограми означають, що здатність може бути використана.
відображає кількість "життів" гравця.
повертає в головне меню.

Малюнок SEQ Малюнок \ * ARABIC 9 - вікно ігрового процесу, в перебігу гри
відображає поточний приклад.
поле введення приймає червоний колір, якщо ваш попередній відповідь був помилковий і зелений, якщо попередній відповідь був правильний.

Малюнок SEQ Малюнок \ * ARABIC 10 - Магазин при заході в нього
відображає можливе для покупки заклинання.
повертає в головне меню.
підтверджує вибір заклинання і заносить інформацію про його придбання в базу даних.

Малюнок SEQ Малюнок \ * ARABIC 11 - Магазин при виборі заклинання
відображає підказку до обраного заклинання.
відображає категорію навички (Активний або Пасивний).

Малюнок SEQ Малюнок \ * ARABIC 12 - Про гру
Містить керівництво користувача по всіх аспектах гри.
повертає в головне меню.

Малюнок SEQ Малюнок \ * ARABIC 13 - Рекорди
Відображає результати 10 кращих гравців.
повертає в головне меню.

2.5.Некоторие загальні моменти

1) З усіх заголовків вікон проекту була прибрана кнопка Maximize, для заборони зміни розмірів з метою збереження задуманих при дизайні пропорцій.
2) Був поставлений заборону на ручне зміна розмірів вікон, з тієї ж причини.
3) Для збереження загальної "мультяшну" стилістики скрізь був використаний текст зі шрифтом MS Comic Sans.
4) У події закриття всіх вікон був доданий передається за посиланням параметр Action = caFree, щоб звільнити пам'ять.
5) Для всіх форм була додана своя іконка. Ця ж іконка добавлена ​​і до виконуваного файлу самого додатка.
6) Для введення балансу між різними рівнями складності був введений параметр "Успішність", який з огляду на такі параметри як: складність гри, кількість пройдених рівнів, середній час витрачається на рівень, формує рейтинг гравця.
7) У підготовче час, таймер підсвічується зеленим кольором, і кожну секунду озвучує мелодійний звук.
8) При підході часу виділеного на рівень до кінця, таймер підсвічується червоним кольором, і кожну секунду грає тривожний сигнал.
9) З заголовка форми ігрового процесу була прибрана кнопка закриття, тому що при затиску й утриманні її, таймер зупинявся, що могло сприяти недобросовісній грі.
10) Програма зібрана з параметрами, що забезпечують незалежність програмного коду від середовища розробки, тобто володіє повною переносимістю.
11) Для програми створений інсталятор засобами WinRAR.

3.Заключеніе

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

4.Список джерел інформації
· "Програмування в C + + Builder 6 " , А.Я. Архангельський, Москва "Біном" 2006.
Додати в блог або на сайт

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

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


Схожі роботи:
Програма Провідник Відкриття об єктів у вікні провідника Швидкий перегляд Виділення об єктів
Банківський рахунок
Єдиний казначейський рахунок
Цей підступний 71-й рахунок
Банківський рахунок безготівкові розрахунки
Поняття про банківський рахунок
Поняття про банківський рахунок
Рахунок фактура з ПДВ Спірні ситуації
Вдосконалення стимулювання праці за рахунок поліпшення робочих м
© Усі права захищені
написати до нас