Разработка программы для работы с базой данных на алгоритмическом языке С++

Использование констант в качестве размера массивов и меток в инструкции case. Способы описания алгоритмов, графический способ их представления. Руководство пользователя для работы с программой. Оператор разрыва, продолжения и пошагового цикла в языке С++.

Рубрика Программирование, компьютеры и кибернетика
Вид статья
Язык русский
Дата добавления 18.12.2018
Размер файла 1,5 M

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Размещено на http://www.allbest.ru//

Размещено на http://www.allbest.ru//

Введение

Целью курсовой работы является составление программы - файл, содержащий сведения о студентах, на основе полученных знаний при изучении дисциплины «Информационные технологии 2».

Тема курсовой работы:

Разработка программы для работы с базой данных на алгоритмическом языке С++.

Актуальность курсовой работы:

Актуальность данной курсовой работы связана с тем, чтобы выяснить сведения о студентах, например, узнать есть ли однофамильцы или о количестве человек в группе. Каждый человек может пользоваться данной программой, так как она проста и очень полезна. Программа отличается быстротой и занимает мало памяти на электронном носителе информации.

база данные константа оператор

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

Основные этапы:

1. Анализ поставленной задачи;

2. Выбор, обоснованный и изложенный на основе метода поставленной задачи;

3. Построение алгоритма решения задач;

4. Создание и отладка программы;

5. Разработка комплекса тестов для проверки правильности работы программы;

6. Защита курсовой работы.

Выполнение курсовой работы следует начать с четкого уяснения поставленной задачи. Необходимо ответить на вопросы: «Что задано?», «Какой должен быть получен результат?», «Как получить результат?».

данной курсовой работе описывается программа, написанная в соответствии с поставленной задачей: «Программа для работы с календарем».

При решении задач этой группы необходимо:

Разработать пользовательское меню, которое будет содержать пункты «Справка», «Программа», «Выход»;

Разработать программу для вычисления примера;

Ответ должен быть получен достаточно быстро и предельно точно.

Условия задачи:

Сведения о студенте состоят из его имени, отчества, фамилии, номере группы. Дан файл, содержащий сведения о студентах. Выяснить:

a) имеются ли однофамильцы в Университете;

b) в каких группах более 15 студентов;

2. Математические методы и средства решения задачи

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

Средством решения задачи использовался алгоритмический язык С++.

C++ (читается си-плюс-плюс) -- компилируемый, статически типизированный язык программирования общего назначения. C++ широко используется для разработки программного обеспечения, являясь одним из самых популярных языков программирования. Область его применения включает создание операционных систем, разнообразных прикладных программ, драйверов устройств, приложений для встраиваемых систем, высокопроизводительных серверов, а также развлекательных приложений (игр). Существует множество реализаций языка C++, как бесплатных, так и коммерческих и для различных платформ. Например, на платформе x86 это GCC, Visual C++, Intel C++ Compiler, Embarcadero (Borland) C++ Builder и другие. C++ оказал огромное влияние на другие языки программирования, в первую очередь на Java и C#.

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

Доступ к возможностям стандартной библиотеки C++ обеспечивается с помощью включения в программу (посредством директивы #include) соответствующих стандартных заголовочных файлов. Всего в стандарте C++11 определено 79 таких файлов. Средства стандартной библиотеки объявляются как входящие в пространство имён std. Заголовочные файлы, имена которых соответствуют шаблону «cX», где X -- имя заголовочного файла стандартной библиотеки C без расширения (cstdlib, cstring, cstdio и пр.), содержат объявления, соответствующие данной части стандартной библиотеки C. Стандартные функции библиотеки C также находятся в пространстве имён std.

Достоинства языка С++:

Высокая совместимость с языком С;

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

Поддержка различных стилей программирования: традиционное императивное программирование (структурное, объектно-ориентированное), обобщенное программирование, функциональное программирование, порождающее метапрограммирование;

Автоматический вызов деструкторов объектов в адекватном порядке (обратном вызову конструкторов);

Перегрузка операторов позволяет кратко и емко записывать выражения над пользовательскими типами в естественной алгебраической форме;

Имеется возможность управления константностью объектов (модификаторы const, mutable, volatile);

Шаблоны С++ дают возможность построения обобщенных контейнеров и алгоритмов для разных типов данных. Попутно шаблоны дают возможность производить вычисления на этапе компиляции;

Возможность расширения языка для поддержки парадигм, которые не поддерживаются компиляторами напрямую;

Возможность встраивания предметно-ориентированных языков программирования в основной код;

Для С++ существует огромное количество учебной литературы, переведенной на всевозможные языки. Язык имеет низкий порог вхождения, но среди всех языков такого рода обладает наиболее широкими возможностями.

Недостатки С++:

Плохо продуманный синтаксис сужает спектр применимости языка (что, с учетом претензий на “универсальность”, делает его крайне неудобным в некоторых задачах);

Унаследованные от Си низкоуровневые свойства существенно тормозят и затрудняют прикладную разработку;

Язык не содержит многих важных возможностей;

Язык содержит опасные возможности, существенно снижающие качество программ сразу по всем показателям;

Языку присущи проблемы вычислительной производительности;

Производительность труда программистов на языке оказывается неоправданно низка, а продукт труда - низкокачественным.

Структура программы

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

Большая часть стандартной библиотеки языка Си производит впечатление удачно спроектированной. Некоторые отдельные части, дававшие преимущество в прошлом, могут провоцировать ошибки. Функции строкового ввода gets() (и применение scanf() для считывания вводимых строк) являются источником множества переполнений буфера, поэтому большинство руководств по программированию советуют избегать подобных приемов. Функция strcpy() также весьма печально знаменита. Еще одной неоднозначной функцией является strtok() - функция, разработанная как простейший лексический анализатор, но имеющая множество «подводных камней» и потому весьма трудная в использовании.

Выбор применения типа size_t вместо int для числа элементов, указанных для fread() и fwrite() является несовместимым с разработанной общей семантикой для size_t (для представления количества байтов). Stdio достаточно ограничен (слишком высокий уровень для использования во многих ситуациях) и стандарт не позволяет пользователю самостоятельно переназначать или расширять его свойства. В итоге, для множества приложений разрабатывается собственные библиотеки-обертки вокруг механизмов более низкого уровня и функций, реализуемых ОС, таких как POSIX. Например, stdio не работают с сигналами или асинхронными не пакетными режимами ввода-вывода, которые широко используются в сетевых серверах. В итоге, только серверы, использующие модель целого процесса для клиента, могут полностью полагаться на функции stdio для обслуживания их на POSIX-совместимых системах в пакетном режиме ввода-вывода.

Определенных функций стандартной библиотеки нужно избегать при разработке многопоточных приложений. Примитивы контроля потоков предназначались для оставшейся части ОС и игнорируют общие стандарты, как например, библиотеку потоков POSIX, ожидая, что программисты языка Си, самостоятельно об этом позаботятся, работая с повторным использованием и синхронизацией. Ни язык Си, ни его стандартная библиотека никак не проверяют подобные системно-специфичные результаты.

Операторы

Пустой оператор - это оператор, состоящий только из точки с запятой. Он может появиться в любом месте программы, где по синтаксису требуется оператор. Выполнение пустого оператора не меняет состояния программы.

Составной оператор - {...}

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

Оператор обработки исключений

try { <операторы> } catch (<объявление исключения>) { <операторы> } catch (<объявление исключения>) { <операторы> } ... catch (<объявление исключения>) { <операторы> };

Условный оператор

if (<выражение>) <оператор 1> [else <оператор 2>];

Оператор-переключатель

switch (<выражение>) { case <константное выражение 1>: <операторы 1>

case <константное выражение 2>: <операторы 2> ... case <константное

выражение N>: <операторы N> [default: <операторы>] };

Оператор-переключатель предназначен для выбора одного из нескольких альтернативных путей выполнения программы. Вычисление оператора-переключателя начинается с вычисления выражения, после чего управление передается оператору, помеченному константным выражением, равным вычисленному значению выражения. Выход из оператора-переключателя осуществляется оператором break. Если значение выражения не равно ни одному константному выражению, то управление передается оператору, помеченному ключевым словом default, если он есть.

Оператор цикла с постусловием

do <оператор> while <выражение>;

Оператор цикла с предусловием

while (<выражение>) <оператор>;

В языке C++ этот оператор отличается от классической реализации цикла с постусловием тем, что при истинности выражения происходит продолжение работы цикла, а не выход из цикла.

Оператор пошагового цикла

for ([<начальное выражение>]; [<условное выражение>]; [<выражение приращения>]) <оператор>;

Телооператора for выполняется до техпор, пока условное выражение не станет ложным (равным 0). Начальное выражение и выражение приращения обычно используются для инициализации и модификации параметров цикла и других значений. Начальное выражение вычисляется один раз до первой проверки условного выражения, а выражение приращения вычисляется после каждого выполнения оператора. Любое из трех выражений заголовка цикла, и даже все три могут быть опущены (не забывайте только оставлять точки с запятой). Если опущено условное выражение, то оно считается истинным, и цикл становится бесконечным.

Оператор пошагового цикла в языке С++ является гибкой и удобной конструкцией, поэтому оператор цикла с предусловием while используется в языке С++ крайне редко, т.к. в большинстве случаев удобнее пользоваться оператором for.

Оператор разрыва

break;

Оператор разрыва прерывает выполнение операторов while, do, for и switch. Он может содержаться только в теле этих операторов. Управление передается оператору программы, следующему за прерванным. Если оператор разрыва записан внутри вложенных операторов while,do, for, switch, то он завершает только непосредственно охватывающий его оператор.

Оператор продолжения

сontinue;

Оператор продолжения передает управление на следующую итерацию

операторах цикла while, do, for. Он может содержаться только в теле этих операторов. В операторах do и while следующая итерация начинается с вычисления условного выражения. В операторе for следующая итерация начинается с вычисления выражения приращения, а затем происходит вычисление условного выражения.

Оператор возврата

return [<выражение>];

Оператора возврата заканчивает выполнение функции, в которой он содержится, и возвращает управление в вызывающую функцию. Управление передается в точку вызывающей функции, непосредственно следующую за оператором вызова. Значение выражения, если она задано, вычисляется, приводится к типу, объявленному для функции, содержащей оператор возврата, и возвращается в вызывающую функцию. Если выражение опущено, то возвращаемое функцией значение не определено.

С формальной точки зрения операторы break, continue и return не являются операторами структурного программирования. Однако их использование в ограниченных количествах оправдано, когда они упрощают понимание программы и позволяют избегать больших вложенных структур.

Например, мы проверяем входные данные на аномалии. Если не использовать эти операторы, то всю обработку придется вложить в условный блок, что ухудшает читабельность программы. Вместо этого можно написать небольшой условный блок, который организует выход из функции при неверных исходных данных.

3. Описание данных

Программа на языке С++ состоит из директив препроцессора, указаний компилятору, объявлений переменных и/или констант, объявлений и определений функций.

Объявление переменной

Объявление переменной задает имя и атрибуты переменной. Атрибутами переменной могут быть тип, количество элементов (для массивов), спецификация класса памяти, а также инициализатор. Инициализатор - это константа соответствующего типа, задающая значение, которое присваивается переменной при создании.

Объявление переменной имеет следующий синтаксис: [<спецификация класса памяти>] <тип> <имя> [= <инициализатор>] [, <имя> [= <инициализатор>] …];

Константы

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

Чтобы объявить объект константой, в объявление нужно добавить ключевое слово const. Так как константе нельзя присваивать значения, она должна быть инициализирована.

Типичным является использование констант в качестве размера массивов и меток в инструкции case.

Включение файлов

Включение файлов производится с помощью директивы #include, которая имеет следующий синтаксис:

#include<путь>

#include"путь"

Угловые скобки здесь являются элементом синтаксиса. Директива #include включает содержимое файла, путь к которому задан, в компилируемый файл вместо строки с директивой. Если путь заключен в угловые скобки, то поиск файла осуществляется в стандартных директориях. Если путь заключен в угловые скобки, то поиск файла осуществляется в стандартных директориях. Если путь заключен в кавычки и задан полностью, то поиск файла осуществляется в заданной директории, а если путь полностью не задан - в текущей директории. С помощью этой директивы Вы можете включать в текст программы как стандартные, так и свои файлы.

Во включаемый файл можно поместить, например, общие для нескольких исходных файлов определения именованных констант и макроопределения. Включаемые файлы используются также для хранения объявлений внешних переменных и абстрактных типов данных, разделяемых несколькими исходными файлами.

В программе используются следующие данные:

Входные данные - a, b, c

Выходные данные - r, p

Промежуточные данные - n, m

4. Алгоритмы и блок-схема

Алгоритм - это описанная на некотором языке точная конечная система правил, определяющая содержание и порядок действий над некоторыми объектами, строгое выполнение которых дает решение поставленной задачи.

Алгоритм всегда рассчитан на конкретного исполнителя. В нашем случае таким исполнителем является ЭВМ. Для обеспечения возможности реализации на ЭВМ алгоритм должен быть описан на языке, понятном компьютеру, то есть на языке программирования.

Свойства алгоритмов

Детерминированность - (определенность, точность, однозначность). Это свойство заключается в том, что при задании одних и тех же исходных данных несколько раз алгоритм будет выполняться абсолютно одинаково и всегда будет получен один и тот же результат. Свойство детерминированности проявляется также и в том, что на каждом шаге выполнения алгоритма всегда точно известно, что делать дальше, а каждое действие однозначно понятно исполнителю и не может быть истолковано неопределенно. Благодаря этому свойству выполнение алгоритма носит механический характер.

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

Результативность (направленность) - означает, что выполнение алгоритма обязательно должно привести к решению поставленной задачи, либо к сообщению о том, что при заданных исходных величинах задачу решить невозможно. Алгоритмический процесс не может обрываться безрезультатно.

Дискретность - означает, что алгоритм состоит из последовательности отдельных шагов - элементарных действий, выполнение которых не представляет сложности. Именно благодаря этому свойству алгоритм может быть реализован на ЭВМ.

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

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

Способы описания алгоритмов

1. Словесный, т.е. записи на естественном языке, описание словами последовательности выполнения алгоритма.

2. Словесное описание - представляет структуру алгоритма на естественном языке (правил нет, произвольная форма).

Моя программа представляет собой файл, содержащий данные о студенте (ФИО, номер группы), позволяющая получать информацию об однофамильцах и количестве студентов в группе.

Алгоритм выполнения программы:

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

Для использования меню необходимо ввести число от 0 до 4 по пункту меню.

Если введенное число не лежит в промежутке от 0 до 4 - программа выдаст ошибку и вернется обратно в меню.

Если введенное число равно 1, то выйдет информация об однофамильцах, если 2 - информация о количестве человек в группе, 3 - вывод всей базы на экран, при выборе 4 - на экране появится информация о программе, при 0 - выход из программы.

При выборе «поиск однофамильцев» программа производит поиск одинаковых фамилий и выводит на экран их количество, где также можно выбрать между «вернуться в меню» и «выйти».

Если мы выбираем «количество человек в группе», то программа формирует информацию о какой-либо группе, а именно сколько студентов. Программа выводит на экран номер группы и количество человек (больше 15, меньше 15).

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

При выборе 4 - «информация» мы получаем список, который содержит информацию о программе, нужных расширениях, об структуре, позициях и под позициях.

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

Псевдокод (формально-словесный), аналогично пункту 1, плюс параллельная демонстрация используемых формул.

Псевдокод - шаги алгоритма и последовательность их выполнения задаются набором ключевых слов.

Эта форма ближе к реальным языкам программирования.

Псевдокод:

начать

вывод «Меню»:

вводим один из пунктов соответствующих операции (1..4) или 0.

если введено 1

то поиск в базе однофамильцев и вывод информацию о них, выход из программы

если введено 2

то поиск и вывод кол-во человек в группе и информацию о них, выход из программы

если введено 3

то вывод полной базы на экран, выход из программы

если введено 4

то вывод информации о программе, выход из программы

если введен 0

то выход из программы

конец

Выход.

Графический, т.е. с помощью блок-схем.

Графический способ представления алгоритмов является более компактным наглядным по сравнению со словесным. При графическом исполнении алгоритм изображается в виде последовательности связанных между собой блочных символов, каждый из которых соответствует выполнению одного из действий. Такое графическое представление называется схемой алгоритма или блок-схемой. В блок-схеме каждому типу действий (вводу исходных данных, вычислению значений выражений, проверке условий, управлению повторением действий, окончанию обработки и т.п.) соответствует геометрическая фигура, представленная в виде блочного символа. Блочные символы соединятся линиями переходов, определяющими очередность выполнения действий. Символы, наиболее часто употребляемые в блок-схеме.

5.Программа на алгоритмическом языке С++.

#include <iostream>

#include <windows.h>

#include <fstream>

#include <string>

#include <sstream>

using namespace std;

//структура базы

struct Student {

string stud;

string fam;

string name;

string oth;

string gr;

};

//элементы меню

int Menu_Item() {

int variant;

cout << "**********************************\n" << endl;

cout << "_______________MENU_______________" << endl;

cout << "1. Поиск однофамильцев\n"

<< "2. Количество человек в группе\n"

<< "3. Вывод базы на экран\n"

<< "4. Информация\n"

<< "0. Выйти\n" << endl;

cout << "**********************************\n" << endl;

cout << ">>> ";

cin >> variant;

return variant;

}

//элементы подменю

int pod_Menu_Item() {

int variant;

cout << "**********************************\n" << endl;

cout << "1. Вернуться в меню\n"

<< "0. Выйти\n" << endl;

cout << "**********************************\n" << endl;

cout << ">>> ";

cin >> variant;

return variant;

}

//очистка консоли

void Clear() {

system("cls");

}

void info() {

cout << "1. Для работы программы файл, содержащий базу должен иметь имя \'students\' и расширение \'.txt\' (\'students.txt\')\n"

<< "2. Структура базы следующая: \'студент#_Фамилия_Имя_Отчество_номегруппы_\'\n"

<< "3. Одна строка в файле - одна позиция в базе\n"

<< "4. Подпозиции (элементы позиций базы) разделяются нижним подчеркиванием \'_\', в том числе после последнего элемента\n"

<< "Создатель проекта: Загребина Евгения группа Б03-761-1\n" << endl;

}

//сообщение об ошибке

void Error(int var) {

string text;

switch (var) {

case 1:

text = "Файл \"students.txt\" не найден в папке с программой!";

break;

default:

text = "Введен несуществующий вариант!";

break;

}

Clear();

cerr << "Ошибка: " << text << endl;

system("pause");

Clear();

}

//считаем кол-во строк в файле(кол-во студентов)

int onFile_str() {

char *str = new char[1024];//буфер для считывания

int i = 0;//счетчик

ifstream base("students.txt");//открываем файл для чтения

if (!base.is_open()) {

Error(1);

return 0;

}

while (!base.eof())//начинаем считать

{

base.getline(str, 1024, '\n');//читаем файл до конца строки (\n) или до превышения лимита в 1024 символа в строке

i++;//счетчик

}

base.close();//закрываем поток (файл)

delete str;//удаляем значения нашего буфера для очистки памяти

return i;//возвращаем кол-во строк в файле

}

void Base_Out() {

int N = 0;

int j = 0;

string buf;

string buff;

const char ff = '_';

Student *student;//student ссылка на структуру

student = new Student[onFile_str()];//выделение памяти под массив структур

ifstream base("students.txt");

for (int i = 0; i < (onFile_str()*5); i++)

{

getline(base , buf , ff);

if (((N%5)==0) & (N!=0)) {

N = 0;

j++;

};

switch (N) {

case 0:

student[j].stud = buf;

break;

case 1:

student[j].fam = buf;

break;

case 2:

student[j].name = buf;

break;

case 3:

student[j].oth = buf;

break;

case 4:

student[j].gr = buf;

break;

}

N++;

}

cout << "Всего позиций в базе : " << onFile_str() << '\n' << endl;

for (int i = 0; i < onFile_str(); i++) {

cout << student[i].stud << ' '

<< student[i].fam << ' '

<< student[i].name << ' '

<< student[i].oth << ' '

<< student[i].gr << endl;

}

base.close();

}

void Base_Find_GroupOn() {

int N = 0;

int j = 0;

string gr;

string *grOn;

grOn = new string[onFile_str()];

const int over = 15;

int overOn = 0;

int overGr = 0;

string buf;

const char ff = '_';

Student *student;//student ссылка на структуру

student = new Student[onFile_str()];//выделение памяти под массив структур

ifstream base("students.txt");

for (int i = 0; i < (onFile_str() * 5); i++)

{

getline(base, buf, ff);

if (((N % 5) == 0) & (N != 0)) {

N = 0;

j++;

};

switch (N) {

case 4:

student[j].gr = buf;

break;

}

N++;

}

for (int i = 0; i < onFile_str(); i++) {

gr = student[i].gr;

for (int j = 0; j < onFile_str(); j++) {

if (student[j].gr == gr) {

overOn++;

}

}

for (int j = 0; j < i; j++) {

if (grOn[j] == gr) {

overGr++;

}

}

if ((overOn > over)&(overGr == 0)) {

grOn[i] = gr;

cout << "В группе \" " << gr << " \" больше 15 человек ( " << overOn << " студет (а/ов) )" << endl;

}

overOn = 0;

overGr = 0;

grOn[i] = gr;

}

}

void Base_Find_FamOn() {

int N = 0;

int j = 0;

string gr;

string *grOn;

grOn = new string[onFile_str()];

const int over = 15;

int overOn = 0;

int overGr = 0;

string buf;

const char ff = '_';

Student *student;//student ссылка на структуру

student = new Student[onFile_str()];//выделение памяти под массив структур

ifstream base("students.txt");

for (int i = 0; i < (onFile_str() * 5); i++)

{

getline(base, buf, ff);

if (((N % 5) == 0) & (N != 0)) {

N = 0;

j++;

};

switch (N) {

case 1:

student[j].fam = buf;

break;

}

N++;

}

for (int i = 0; i < onFile_str(); i++) {

gr = student[i].fam;

for (int j = 0; j < onFile_str(); j++) {

if (student[j].fam == gr) {

overOn++;

}

}

for (int j = 0; j < i; j++) {

if (grOn[j] == gr) {

overGr++;

}

}

if ((overOn > over)&(overGr == 0)) {

grOn[i] = gr;

cout << "Человек с фамилией \' " << gr << " \' : " << overOn << endl;

}

overOn = 0;

overGr = 0;

grOn[i] = gr;

}

}

//главный класс

int main()

{

SetConsoleCP(1251);// установка кодовой страницы win-cp 1251 в поток ввода и вывода

SetConsoleOutputCP(1251); //для коректного отображения кириллицы в консоли

int onSwitch_O;//будущее подменю

//метка начального входа

start:

Clear();

int onSwitch = Menu_Item();//выхов главного меню

switch (onSwitch) {

//первый пункт меню

case 1:

Clear();

//вывод однофамильцев

Base_Find_FamOn();

//метка первого подменю

start1:

onSwitch_O = pod_Menu_Item();//вызов подменю

switch (onSwitch_O) {

case 1:

//на метку начального входа

goto start;

break;

case 0:

//на метку выхода

goto start0;

break;

default:

//неправльный вариант меню

Error(-1);

goto start1;

break;

}

break;

//второй пункт главного меню

case 2:

Clear();

Base_Find_GroupOn();

//метка второго подменю

start2:

onSwitch_O = pod_Menu_Item();//вызов подменю

switch (onSwitch_O) {

case 1:

//на метку начального входа

goto start;

break;

case 0:

//на метку выхода

goto start0;

break;

default:

//неправльный вариант меню

Error(-1);

//на метку второго подменю

goto start2;

break;

}

break;

//третий пункт меню

case 3:

Clear();

Base_Out();

//метка третьего подменю

start3:

onSwitch_O = pod_Menu_Item();//вызов подменю

switch (onSwitch_O) {

case 1:

//на метку начального входа

goto start;

break;

case 0:

//на метку выхода

goto start0;

break;

default:

//неправильный выариант меню

Error(-1);

//на метку третьего подменю

goto start3;

break;

}

break;

case 4:

Clear();

info();

//метка третьего подменю

start4:

onSwitch_O = pod_Menu_Item();//вызов подменю

switch (onSwitch_O) {

case 1:

//на метку начального входа

goto start;

break;

case 0:

//на метку выхода

goto start0;

break;

default:

//неправильный выариант меню

Error(-1);

//на метку третьего подменю

goto start3;

break;

}

break;

//0 пункт меню (метка выхода)

case 0:

//метка 0 подменю (метка выхода)

start0:

exit(EXIT_SUCCESS);

break;

default:

//неправльный вариант меню

Error(-1);

//на метку начального входа

goto start;

break;

}

}

Тестовый пример.

Меню при запуске программы:

Первый пункт меню «Поиск однофамильцев»:

Второй пункт меню «Количество человек в группе»:

Третий пункт меню «Вывод базы на экран»:

Четвертый пункт меню «Информация»:

6. Руководство пользователя для работы с написанной программой

Для работы с программой используется Microsoft Visual Studio.

Microsoft Visual Studio - линейка продуктов компании Майкрософт, включающих интегрированную среду разработки программного обеспечения и ряд других инструментальных средств. Данные продукты позволяют разрабатывать как консольные приложения, так и приложения с графическим интерфейсом, в том числе с поддержкой технологии Windows Forms, а также веб-сайты, веб-приложения, веб-службы как в родном, так и в управляемом кодах для всех платформ, поддерживаемых Microsoft Windows, Windows Mobile, Windows CE, .NET Framework, Xbox, Windows Phone .NET Compact Framework и Microsoft Silverlight.

Visual Studio включает в себя редактор исходного кода с поддержкой технологии IntelSense и возможностью простейшего рефакторинга кода. Встроенный отладчик может работать как отладчик уровня исходного кода, так и как отладчик машинного уровня. Остальные встраиваемые инструменты включают в себя редактор форм для упрощения создания графического интерфейса приложения, веб-редактор, дизайнер классов и дизайнер схемы базы данных. Visual Studio позволяет создавать и подключать сторонние дополнения (плагины) для расширения функциональности практически на каждом уровне, включая добавление поддержки систем контроля версий исходного кода (как например, Subversion, Visual SourceSafe и Git), добавление новых наборов инструментов (например, для редактирования и визуального проектирования кода на предметно-ориентированных языках программирования или инструментов для прочих аспектов процесса разработки программного обеспечения (например, клиент Team Explorer для работы с Team Foundation Server).

Заключение

В ходе выполнения данной курсовой работы, я закрепила знания полученные в ходе изучения курса информатики, и разработала программу на алгоритмическом языке С++.

В ходе выполнения курсовой работы был проведен - анализ задания и постановка задачи программирования.

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

В ходе разработки программы были закреплены навыки работы с:

командами ввода - вывода на экран;

командами для реализации циклов;

командами проверки условий.

В результате выполнения курсовой работы ознакомились со всеми возможностями языка С++, закрепили практические навыки программирования в среде С++.

Список литературы

Березин Б.И. Начальный курс С и С++ / Б.И. Березин, С.Б Березин. -

М.: Диалог - МИФИ, 2014. - 280 с.

Иванов В.Б. Прикладное программирование на С/С++: с нуля до

мультимедийных и сетевых приложении / В.Б. Иванов. - М.: С0-ЛОН- Пресс, 2008. - 240 с.

Кнут Д. Искусство программирования. Т. 2. Получисленные алгоритмы. Случайные числа. Арифметика / Д. Кнут. - М.: Мир, 2001.

- 788 с.

Мамонова Т.Е. Информатика. Общая информатика. Основы языка С++: учеб. пособие / Т.Е. Мамонова; Томский политехнический университет. - Томск: Изд-во Томского политехн. Ун-та, 2011. - 202 с.

Подбельский В.В. Курс программирования на языке СИ++: учеб.пособие / В.В. Подбельский, С.С. Фомин. - М.: ДМК - Пресс, 2015.

384 с.

Романова Ю.Д. Информатика и информационные технологии / Ю.Д. Романова. - М.: Эскимо, 2008. - 592 с.

Си++. Объектно-ориентированное программирование. Задачи и упражнения: учеб. пособие для вузов / В.В. Лаптев, А.В. Морозова, А. В. Бокова. - СПб.: Питер, 2007. - 288 с.

Размещено на Allbest.ru


Подобные документы

  • Понятие массива и правила описания массивов в программах на языке С. Рассмотрение основных алгоритмов обработки одномерных массивов. Примеры программ на языке С для всех рассмотренных алгоритмов. Примеры решения задач по обработке одномерных массивов.

    учебное пособие [1,1 M], добавлен 22.02.2011

  • Разработка программных продуктов на языке программирования Borland Delphi. Применяемые таблицы и связи между ними. Пользовательский интерфейс работы с базой данных. Алгоритм работы программы "Футбольные команды и игроки". Защита от ввода неверных данных.

    курсовая работа [788,1 K], добавлен 22.06.2011

  • Создание программы для перевода кодов с языка Pascal на язык Си. Обработка программ операторами case, assign, rewrite и write. Способы объявления файла, комментария, переменных, логических и арифметических выражений. Виды синтаксических анализаторов.

    курсовая работа [461,0 K], добавлен 03.07.2011

  • Этапы подготовки и решения задач на компьютере. Способы предоставления алгоритмов. Простые типы данных и их обработка. Основы работы с графикой и графическими операторами в Visual Basic. Организация линейной программы. Процедуры и функции в языке Паскаль.

    дипломная работа [1,9 M], добавлен 25.10.2015

  • Организация вычислительных процессов и программирования на алгоритмическом языке. Создание программы "Калькулятор". Выбор языка и среды программирования. Функциональная схема работы программы, описание разработанных алгоритмов. Способы устранения ошибок.

    курсовая работа [434,1 K], добавлен 27.08.2012

  • Функциональные зависимости и нормализация отношений. Ограничения целостности данных. Описание таблиц на языке SQL. Интерфейс пользователя и надёжность программ обработки данных. Обработка данных с помощью запросов. Работа с данными из внешних источников.

    дипломная работа [1,6 M], добавлен 25.04.2015

  • Использование класса статических массивов структур и базы данных "ODER" при создании программы на языке С++. Основные формы выдачи результатов. Технические и программные средства. Тесты для проверки работоспособности алгоритма создания программы.

    курсовая работа [1,1 M], добавлен 17.03.2015

  • Создание программы для вычисления значения функции на основе определённой формулы. Уточнение структуры входных и выходных данных и определение ассемблерного формата их представления. Разработка алгоритмов для реализации работы программного обеспечения.

    курсовая работа [240,6 K], добавлен 17.06.2013

  • Программа перенесения данных из таблицы Word в таблицу базы данных. Алгоритм решения задачи в виде текстового описания. Описание базы данных (структура таблиц, схема). Копии с экрана форм для работы с базой данных при разработке их в конструкторе.

    контрольная работа [914,3 K], добавлен 26.03.2011

  • Словесный, графический, табличный, программный способы представления алгоритма. Основные конструкции в любом алгоритмическом языке. Теория обнаружения, различения и оценивания сигналов. Радиолокационные системы обнаружения. Система распознавания образов.

    презентация [4,8 M], добавлен 09.06.2015

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.