Разработка прикладного алгоритма детских развивающих игр и его реализация на языке С++

Автор работы: Пользователь скрыл имя, 26 Октября 2013 в 18:57, курсовая работа

Краткое описание

Описание игр:
"Выбери неправильное слово":
Есть несколько файлов со словами разных групп. Выпадает 3 слова из одного файла и одно из другого.
(Файлы выбираются случайно, как и слова)
У каждого слова есть номер. Пользователю предлагается выбрать номер слова, которое не соответствует тематике.
На угадывание даётся две попытки. Если слово было выбрано правильно с первого раза - 100 баллов, если со второго - 50 баллов. В одном туре 3 группы слов.

Содержимое работы - 1 файл

Курсовик по С++.docx

— 169.42 Кб (Скачать файл)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Пояснительная записка

 

к курсовой работе

 

по дисциплине: «Программирование на языке С++»

по теме:

 

«Разработка прикладного алгоритма детских развивающих игр

и его  реализация на языке С++»

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Содержание

1. Постановка  задачи…………………………………………………………………..…3

2. Среда программирования Microsoft Visual C++……………………….4

3. Функции, используемые в программе……………………………………….5

4. Описание работы программы…………………………………………………….5

5. Код программы…………………………………………………………………………….6

6. Выводы………………………………….……………………………………….……………23

7. Список  используемой литературы…….…………………………….………23

 

 

  1. Постановка задачи

 

Задание: 

Создать приложение для детей.

1)Регистрация пользователя (запрос имени, проверка на корректность, поиск соответствующего файла);

2)Возможность  выбора из трёх игр - "Выбери  неправильное слово",  "Проверка  орфографии",  "Математические  чудеса".

 

Описание  игр:

"Выбери неправильное слово":

Есть несколько  файлов со словами разных групп. Выпадает 3 слова из одного файла и одно из другого.

(Файлы выбираются  случайно, как и слова)

У каждого  слова есть номер. Пользователю предлагается выбрать номер слова, которое  не соответствует тематике.

На угадывание даётся две попытки. Если слово было выбрано правильно с первого  раза - 100 баллов, если со второго - 50 баллов. В одном туре 3 группы слов. После  этого выпадает меню:

Продолжить  игру

Выйти

Показать  статистику

Перейти в  другую игру

 

"Проверка орфографии":

 

Из тех  же файлов случайным образом выбирается слово. Несколько букв заменяются на вопросительные знаки.

Пользователю  предлагается ввести слово полностью (с учётом пропущенных букв). Если слово введено верно - +100 баллов.

"Математические чудеса":

Есть два  уровня сложности:

1 - операции  с двумя переменными

2 - операции  тремя переменными

 

Есть возможность  выбора работы с дробными числами  на обоих уровнях.

Пользователю  выводится на экран равенство. Один из символов (число или математическая операция) заменен на вопросительный знак.

Задача пользователя - поставить в равенство пропущенный  символ так, что бы оно верно выполнялось.

 

 

  1. Среда программирования Microsoft Visual C++

 

Введение

 

C++ - это попытка  решения разработчиками языка  С задач объектно-ориентированного  программирования (Object Oriented Programming, OOP). Построенный на твердом фундаменте  С, С++ помимо ООР поддерживает  множество других полезных инструментов, не жертвуя при этом ни мощью, ни элегантностью, ни гибкостью С. С++ уже стал универсальным языком для программистов всего мира.

С++ был разработан сотрудником научно-исследовательского центра AT&T Bell Laboratories (Нью-Джерси, США) Бьярном Страуструпом в 1979 году. Первоначальное название «С с классами» было изменено на С++ в 1983 году. Начиная с 1980 года С++ претерпел две существенные модернизации: в 1985 и 1990 годах. Последняя третья модель связана с процессом стандартизации С++. Несколько лет назад началась работа по созданию единого международного стандарта по С++. Для этой цели был  сформирован объединенный комитет  по стандартизации ANSI (American National Standards Institute, Американский национальный институт стандартов) и ISO (International Standards Organization, Международная организация по стандартам) для языка С++. Первый рабочий проект указанного стандарта был предложен 25 января1994 года. Комитет ANSI/ISO по С++ фактически сохранил все основные черты языка, заложенные туда еще Страуструпом и  добавил несколько новых инструментов.

 

C++ - универсальный  язык программирования, задуманный  так, чтобы сделать программирование  более приятным для серьезного  программиста. За исключением второстепенных  деталей C++ является надмножеством  языка программирования C. Помимо  возможностей, которые дает C, C++ предоставляет  гибкие и эффективные средства  определения новых типов. Используя  определения новых типов, точно  отвечающих концепциям приложения, программист может разделять  разрабатываемую программу на  легко поддающиеся контролю части.  Такой метод построения программ  часто называют абстракцией данных. Информация о типах содержится  в некоторых объектах типов,  определенных пользователем. Такие  объекты просты и надежны в  использовании в тех ситуациях,  когда их тип нельзя установить  на стадии компиляции. Программирование  с применением таких объектов  часто называют объектно-ориентированным.  При правильном использовании  этот метод дает более короткие, проще понимаемые и легче контролируемые  программы.

 

Ключевым  понятием C++ является класс. Класс - это  тип, определяемый пользователем. Классы обеспечивают скрытие данных, гарантированную  инициализацию данных, неявное преобразование типов для типов, определенных пользователем, динамическое задание типа, контролируемое пользователем управление памятью  и механизмы перегрузки операций. C++ предоставляет гораздо лучшие, чем в C, средства выражения модульности  программы и проверки типов. В  языке есть также усовершенствования, не связанные непосредственно с  классами, включающие в себя символические  константы, inline- подстановку функций, параметры функции по умолчанию, перегруженные имена функций, операции управления свободной памятью и  ссылочный тип. В C++ сохранены возможности  языка C по работе с основными объектами  аппаратного обеспечения (биты, байты, слова, адреса и т.п.). Это позволяет  весьма эффективно реализовывать типы, определяемые пользователем. 

 
C++ и его стандартные библиотеки  спроектированы так, чтобы обеспечивать  переносимость. Имеющаяся на текущий  момент реализация языка будет  идти в большинстве систем, поддерживающих C. Из C++ программ можно использовать C библиотеки, и с C++ можно использовать  большую часть инструментальных  средств, поддерживающих программирование  на C.

 

Подключаемые  библиотеки

 

<iostream>

Частью стандартной библиотеки C++ является библиотека iostream – объектно-ориентированная  иерархия классов, где используется и множественное, и виртуальное  наследование. В ней реализована  поддержка для файлового ввода/вывода данных встроенных типов. Для использования  библиотеки iostream в программе необходимо включить заголовочный файл #include <iostream>.

 

Операции  ввода/вывода выполняются с помощью  классов istream (потоковый ввод) и ostream (потоковый вывод). Третий класс, iostream, является производным от них и  поддерживает двунаправленный ввод/вывод. Для удобства в библиотеке определены три стандартных объекта-потока:

  • cin – объект класса istream, соответствующий стандартному вводу. В общем случае он позволяет читать данные с терминала пользователя;
  • cout – объект класса ostream, соответствующий стандартному выводу. В общем случае он позволяет выводить данные на терминал пользователя;
  • cerr – объект класса ostream, соответствующий стандартному выводу для ошибок. В этот поток мы направляем сообщения об ошибках программы.

Вывод осуществляется, как правило, с помощью перегруженного оператора  сдвига влево (<<), а ввод – с  помощью оператора сдвига вправо (>>).

<string>

string - представляет из себя коллекцию, хранящую символы char в формате ASCII. Для того, чтобы использовать данную коллекцию,то есть для работы со строками, подключается библиотека  #include <string>.

string.h — заголовочный файл стандартной библиотеки языка Си, содержащий функции для работы с нуль-терминированными строками и различными функциями работы с памятью.

<stdlib.h>

stdlib.h — заголовочный файл стандартной библиотеки языка Си, который содержит в себе функции, занимающиеся выделением памяти, контроль процесса выполнения программы, преобразования типов и другие. Заголовок вполне совместим с C++ и известен в нём как cstdlib. Название «stdlib» расшифровывается как «standard library» (стандартная библиотека).

<Windows.h>

Заголовочный  файл, подключаемый к проекту для  возможности включения в программу  функций Windows.

<time.h>

time.h — заголовочный файл стандартной библиотеки языка программирования СИ, содержащий типы и функции для работы с датой и временем.

<ios>

Библиотека,  использующаяся для работы с файлами  в языке С++.

<io.h>

Данный  заголовочный файл содержит операции для работы с файлами на низком уровне, что предполагает использование  в функциях ввода-вывода так называемых файловых дескрипторов. Файловый дескриптор представляет собой целое 16 битное число, по которому операционная система  может однозначно определить открытый файл.

<stdio.h>

stdio.h (от англ. standard input/output header — стандартный заголовочный файл ввода/вывода) заголовочный файл стандартной библиотеки языка Си, содержащий определения макросов, константы и объявления функций и типов, используемых для различных операций стандартного ввода и вывода. Стандарт определяет такое понятие, как поток — последовательный набор информации, который может быть входным или выходным, может быть представлен как файлом, так и устройством (например, терминалом). Поток может быть текстовым или бинарным. Текстовый поток — поток символов, разделённых строками. Каждая строка заканчивается символом новой строки.

 

  1. Функции, используемые в программе

Функция GetStdHandle извлекает дескриптор для стандартного ввода данных, стандартного вывода или стандартной ошибки устройства:

HANDLE hStdOut = GetStdHandle(STD_OUTPUT_HANDLE);

Она необходима для работы функции SetColor.

Функция SetColor устанавливает текущий цвет рисования, в данном случае используется для закрашивания фона.

Функция SetConsoleTextAttribute(hStdOut, (WORD)((background << 4) | text))  устанавливает атрибуты символов, записанных в экранный буфер консоли, изменяет основной и фоновый цвет текста.

Функция SetConsoleCP(1251) используется для вывода на консоль русских букв.

Функция system("cls") очищает экран консоли.

Функция  fopen() открывает файлы для чтения.

fseek()    возвращает файловый указатель в начало файла.

 

 

  1. Описание Работы Программы

 

После компиляции программы открывается следующее  окно:

 

 

Рис. 1. Окно программы.

 

Пользователь  вводит логин, и входит в Меню игры:

 

 

Рис. 2. Меню.

 

После чего открывается  окно выбранной игры:

Рис. 3. Первый тур игры «Угадай слово».

 

В случае правильного  выбора на экране появляется следующая  картина:

 

 

Рис.4. Продолжение  игры. Второй тур.

 

 

  1. Код программы

 

 

#define _CRT_SECURE_NO_WARNINGS

#include <iostream>

#include <string>

#include <stdlib.h>

#include <Windows.h>

#include <time.h>

#include <ios>

#include <io.h>

#include <stdio.h>

using namespace std;

 

//Прототипы

void reg();                             // 1)Регистрация пользователя

void menu();        // 2)Возможность выбора из трёх игр

void slova();                           //  "Выбери неправильное слово"

void stat(char* st,int a);          //статистика

int load_word(FILE *file, char *word);  // загрузка слова

void orfograrphy();                   // "Проверка орфографии"

void matem();                          // Математические чудеса

 

template<typename T>T delen(T b); // для деления и умножения

void min_uravn(int t);                  // уравнения с 2-мя перем для  целых чисел

void min_uravn(double t);              

void max_uravn();                       // уравнения с 3-мя перем

 

template<typename T>T reshen(T a,T b,char znak); //для решения

double Dab(int g);                  //генерация double

char smena_znaka(char z);               // смена знака на противоположный

 

#define kol_vo_bukv 15    // кол-во букв в слове

FILE *statist;            // ук-ль на файл статистики

static int bal=0;         

const int kol_vo_f=6;     //  кол-во файлов со словами

char masFile[kol_vo_f][kol_vo_f]={"1.txt","2.txt","3.txt","4.txt","5.txt","6.txt"};

//- массив  имён файлов

char mr_znak[]={'-','+','*','/'}; //массив знаков

char login[kol_vo_bukv]={0};

int posil=-1;//переменная  для заполнения intами операндов  в сложных уравн

 

HANDLE hStdOut = GetStdHandle(STD_OUTPUT_HANDLE); //Необходимо для работы ф-и SetColor

//ф-я извлекает  Дескриптор HANDLE устройства стандартного  вывода

 

CONSOLE_SCREEN_BUFFER_INFO SCRN_INFO;

 

void Set1(int text, int background)

{ GetConsoleScreenBufferInfo(hStdOut, &SCRN_INFO); }

   

 

void Set2(int text, int background)

{

    FillConsoleOutputAttribute(hStdOut,

        FOREGROUND_RED | FOREGROUND_GREEN | FOREGROUND_BLUE //цвет

,

        SCRN_INFO.dwSize.X*SCRN_INFO.dwSize.Y,SCRN_INFO.dwCursorPosition,NULL);

Информация о работе Разработка прикладного алгоритма детских развивающих игр и его реализация на языке С++