Министерство образования и науки Российской Федерации
Федеральное агентство по образованию
Южно-Уральский государственный университет
Кафедра «Информатика»
ПОЯСНИТЕЛЬНАЯ ЗАПИСКА
к курсовой работе
по дисциплине «высокоуровневые методы информатики и программирования»
Тема: Быстрый счет
Выполнил: Плохов В.В.
Специальность:080801
Группа: ЭиУ - 263
Челябинск – 2007
1.Введение
2.Основная часть
2.1.Постановка задачи
2.2.Разработка объектной модели программы
2.3.Описание файлов проекта
2.4.Описание работы проекта
2.5.Некоторые общие моменты
3.Заключение
4.Список источников информации
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 Разработка окна таблицы рекордов.
При написании приложения использовались основные принципы ООП. Ниже перечислены используемые в программе классы:
1) classdatabase – “Пустой” класс, который содержит только статические методы, по работе с файлами базы данных.
Прототипы методов класса:
staticintadd_player(); - обеспечивает добавление новой сформированной записи в файл базы данных.
staticvoiddel_player(intn); - обеспечивает удаление записи из файла базы данных. Передаваемый целочисленный параметр n, указывает номер удаляемой строки содержащейся в базе данных.
static void init_list(); - обеспечивает инициализацию листа списка учетных записей из файла базы данных.
static void read_player(); - обеспечивает считывание параметров учетной записи из файла базы данных и формирует окно параметров игрока в системе управления учетными записями.
static void save_player(); - обеспечивает сохранение обновленных параметров игрока в файле базы данных.
2) classexercise– абстрактный класс, который содержит параметры генерируемого примера, а также содержит абстрактный метод генерации примера. Имеет двух потомков: withone, withtwo.
Параметры класса:
inta, intb, intc; – числовые значения формирующие элементы примера.
intansw; – числовое значение содержащее правильный ответ на сформированный пример.
intsign, intsign2; – числовые значения формирующие первый и второй знак примера соответственно.
Прототипы методов класса:
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) classspells– класс, содержащий информацию об уникальных способностях.
Параметры класса:
ints1,s2,s3; - содержат информацию о доступности для игрока уникальных способностей.
int wus1,wus2,wus3; - содержит информацию о том, были ли использованы заклинания в течении уровня.
Прототипы методов класса:
spells(); - конструктор, выполняет инициализацию доступности уникальных способностей и установку по умолчанию о том, что уникальные способности еще не были использованы.
6) classspecpooh: publicspells – класс, содержащий методы по активации заклинаний для персонажа Вини-Пух.
Прототипы методов класса:
specpooh(): spells() {} – вызывает конструктор родительского класса spells.
voidmagic1(void); - активирует уникальную способность №1.
void magic2(void); - активирует уникальную способность №2.
void magic3(void); - активирует уникальную способность №3.
7) class specpiglet: public spells – класс, содержащий методы по активации заклинаний для персонажа Пятачок.
Прототипы методов класса:
specpiglet(): spells() {} – вызывает конструктор родительского класса spells.
voidmagic1(void); - активирует уникальную способность №1.
void magic2(void); - активирует уникальную способность №2.
void magic3(void); - активирует уникальную способность №3
8) class spectigger: public spells – класс, содержащий методы по активации заклинаний для персонажа Тигра.
Прототипы методов класса:
spectigger(): spells() {} – вызывает конструктор родительского класса spells.
voidmagic1(void); - активирует уникальную способность №1.
void magic2(void); - активирует уникальную способность №2.
void magic3(void); - активирует уникальную способность №3
9)classplayer – класс, содержащий все необходимые сведения о текущем игроке.
Параметры класса:
charname[16]; - имя игрока.
intlevel; - количество уровней пройденных игроком.
intusetime; - среднее время, которое тратит на уровень игрок.
inthardness; - сложность.
inttype; - тип персонажа.
intb1; - доступность уникальной способности №1.
intb2; - доступность уникальной способности №2.
intb3; - доступность уникальной способности №3.
Прототипы методов класса:
void activate(); - обеспечивает инициализацию всех параметров выбранного игрока.
Файл проекта:
cursed2.bpr – файл проект BorlandC++ 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.