Реализация простейшей системы управления базами данных

Разработка приложения на языке программирования высокого уровня C++. Проектирование блок-схемы алгоритма работы программы. Тестирование системы управления базами данных. Реализация класса Database и Table. Сохранение базы данных в бинарный файл.

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

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

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

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

СОДЕРЖАНИЕ

ВВЕДЕНИЕ

ГЛАВА 1. ТЕОРЕТИЧЕСКИЕ ОСНОВЫ

1.1 Описание базы данных

ГЛАВА 2. ОБОСНОВАНИЕ ВЫБОРА СРЕДСТВ РЕАЛИЗАЦИИ ПРОГРАММЫ. ПРОЕКТИРОВАНИЕ СТРУКТУРЫ ПРОГРАММЫ

2.1 Выбор программных средств

2.2 Блок-схема алгоритма работы программы

ГЛАВА 3. РЕАЛИЗАЦИЯ И ТЕСТИРОВАНИЕ ПРОГРАММЫ

3.1 Реализация класса Database и Table

3.2 Тестирование программы

ЗАКЛЮЧЕНИЕ

СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ

ВВЕДЕНИЕ

К настоящему времени человечеством накоплено поистине гигантское количество информации об объектах и явлениях. Но эта информация не лежит мертвым грузом, она хранится в электронном виде и используется в базах данных. Базы данных - это часть информационных систем - программно-аппаратных комплексов, осуществляющих хранение и обработку огромных информационных массивов.

Цель курсовой работы -- реализовать простейшую систему управления базами данных (СУБД).

Задача: разработать приложение на языке программирования высокого уровня C++, в котором пользователь имел бы возможность:

· Создавать базу данных.

· Заполнение таблиц базы данных.

· Редактирование базы данных:

o Добавление таблицы

o Удаление таблицы

· Редактирование таблицы:

o Добавление записи

o Удаление записи

o Изменение записи

· Вывод базы данных:

o Вывод определенных таблиц

o Вывод всей базы данных

· Запись базы данных в файл.

· Считывание базы данных из файла.

Пользователь имеет возможность хождения по меню программы.

Программа должна отвечать следующим требованиям:

a. Иметь простой интерфейс.

b. Выполнять проверку корректности введённых данных.

В программе должна быть предусмотрена команда “0” , которая отображает список команд и их описание, а также команда “7” , которая выходит из программы.

ГЛАВА 1. ТЕОРЕТИЧЕСКИЕ ОСНОВЫ

программирование алгоритм управление бинарный

1.1 Описание базы данных

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

Программа, производящая манипуляции с информацией в базе данных, называется СУБД (система управления базами данных). Она может осуществлять выборки по различным критериям и выводить запрашиваемую информацию в том виде, который удобен пользователю. Основными составляющими информационных систем, построенных на основе баз данных, являются файлы БД, СУБД и программное обеспечение (клиентские приложения), позволяющие пользователю манипулировать информацией и совершать необходимые для решения его задач действия.

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

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

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

ГЛАВА 2. ОБОСНОВАНИЕ ВЫБОРА СРЕДСТВ РЕАЛИЗАЦИИ ПРОГРАММЫ. ПРОЕКТИРОВАНИЕ СТРУКТУРЫ ПРОГРАММЫ

2.1 Выбор программных средств

Язык С (читается "Си") создан в начале 70х годов, когда Кен Томпсон и Дэннис Ритчи из Bell Labs разрабатывали операционную систему UNDC Сначала они создали часть компилятора С, затем использовали се для компиляции остальной части компилятора С и, наконец, применили полученный в результате компилятор для компиляции UNIX. Операционная система UNIX первоначально распространялась в исходных кодах на С среди университетов и лабораторий, а получатель мог откомпилировать исходный код на С в машинный код с помощью подходящего компилятора С.

Распространение исходного кода сделало операционную систему UNIX уникальной; программист мог изменить операционную систему, а исходный код мог быть перенесен с одной аппаратной платформы на другую. Сегодня стандарт POSIX определяет стандартный набор системных вызовов UNIX, доступных в С, которые должны быть реализованы в версиях UNIX, являющихся POSIX-совместимыми. С был третьим языком, который разработали Томсон и Ритчи в процессе создания UNIX; первыми двумя были, разумеется, А и В.

По сравнению с более ранним языком -- BCPL, С был улучшен путем добавления типов данных определенной длины. Например, тип данных int мог применяться для создания переменной с определенным числом битов (обычно 16), в то время как тип данных long мог использоваться для создания целой переменной с большим числом битов (обычно 32). В отличие от других языков высокого уровня, С мог работать с адресами памяти напрямую с помощью указателей и ссылок. Поскольку С сохранил способность прямого доступа к аппаратному обеспечению, его часто относят к языкам среднего уровня или в шутку называют "мобильным языком ассемблера".

Что касается грамматики и синтаксиса, то С является структурным языком программирования. В то время как многие современные программисты мыслят в категориях классов и объектов, программисты на С думают в категориях процедур и функций. В С можно определить собственные абстрактные типы данных, используя ключевое слово struct. Аналогично можно описывать собственные целые типы (перечисления) и давать другие названия существующим типам данных при помощи ключевого слова typedef. В этом смысле С является структурным языком с зародышами объектно-ориентированного программирования. Широкое распространение языка C на различных типах компьютеров (иногда называемых аппаратными платформами) привело, к сожалению, ко многим вариациям языка. Они были похожи, но несовместимы друг с другом. Это было серьезной проблемой для разработчиков программ, нуждавшихся в написании совместимых программ, которые можно было бы выполнять на нескольких платформах. Стало ясно, что необходима стандартная версия C. В 1983г. ANSI (Американский Национальный Комитет Стандартов) сформировал технический комитет X3J11 для создания стандарта языка C (чтобы "обеспечить недвусмысленное и машинно-независимое определение языка"). В 1989 стандарт был утвержден. ANSI скооперировался с ISO (Международной Организацией Стандартов), чтобы стандартизовать C в международном масштабе; совместный стандарт был опубликован в 1990 году и назван ANSI/ISO 9899:1990. Этот стандарт усовершенствуется до сих пор и поддерживается большинством фирм разработчиков компиляторов.

Бьерн Страуструп высвободил объектно-ориентированный потенциал С путем перенесения возможностей классов Simula 67 в С. Первоначально новый язык носил имя "С с классами" и только потом стал называться C++. Язык C++ достиг популярности, будучи разработанным в Bell Labs, позже он был перенесен в другие индустрии и корпорации. Сегодня это один из наиболее популярных языков программирования в мире. C++ наследует как хорошие, так и плохие стороны С.

Бьерн Страуструп: "Я придумал C++, записал его первоначальное определение и выполнил первую реализацию. Я выбрал и сформулировал критерии проектирования C++, разработал его основные возможности и отвечал за судьбу предложений по расширению языка в комитете по стандартизации C++, - пишет автор самого популярного языка программирования. - Язык C++ многим обязан языку C, и язык C остается подмножеством языка C++ (но в C++ устранены несколько серьезных брешей системы типов C). Я также сохранил средства C, которые являются достаточно низкоуровневыми, чтобы справляться с самыми критическими системными задачами. Язык C, в свою очередь многим обязан своему предшественнику, BCPL; кстати, стиль комментариев // был взят в C++ из BCPL. Другим основным источником вдохновения был язык Simula67. Концепция классов (с производными классами и виртуальными функциями) была позаимствована из него. Средства перегрузки операторов и возможность помещения объявлений в любом месте, где может быть записана инструкция, напоминает Algol68.

Название C++ выдумал Рик Масситти. Название указывает на эволюционную природу перехода к нему от C. "++" - это операция приращения в C. Чуть более короткое имя C+ является синтаксической ошибкой; кроме того, оно уже было использовано как имя совсем другого языка. Знатоки семантики C находят, что C++ хуже, чем ++C. Названия D язык не получил, поскольку он является расширением C и в нем не делается попыток исцеляться от проблем путем выбрасывания различных особенностей. Изначально C++ был разработан, чтобы автору и его друзьям не приходилось программировать на ассемблере, C или других современных языках высокого уровня. Основным его предназначением было сделать написание хороших программ более простым и приятным для отдельного программиста. Плана разработки C++ на бумаге никогда не было; проект, документация и реализация двигались одновременно. Разумеется, внешний интерфейс C++ был написан на C++. Никогда не существовало "Проекта C++" и "Комитета по разработке C++". Поэтому C++ развивался и продолжает развиваться во всех направлениях, чтобы справляться со сложностями, с которыми сталкиваются пользователи, а также в процессе дискуссий автора с его друзьями и коллегами".

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

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

2.2 Блок-схема алгоритма работы программы

На рисунке 2.1 представлена блок-схема алгоритма работы программы.

Рис. 2.1 Блок-схема алгоритма работы программы

ГЛАВА 3. РЕАЛИЗАЦИЯ И ТЕСТИРОВАНИЕ ПРОГРАММЫ

3.1 Реализация класса Database и Table

Класс Database и Table - базовые классы, которые содержит необходимые методы и данные для решения поставленной задачи.

Класс Table моделирует работу с таблицами (создание, добавление, удаление полей, добавление / изменение / удаление записей), вывод на экран и запись в файл.

Класс содержит следующие поля: имя, массив записей, массив полей и массив типов полей

Табл. 3.1 Методы класса Table

Table(string _name)

Конструктор, создающий таблицу с названием, переданным как параметр.

string GetName()

Ф-ция возвращающая название таблицы.

int CountFields()

Ф-ция, возвращающая количество записей в таблице.

Types GetTypeField(int index)

Ф-ция возвращающая тип поля таблицы по индексу, переданному как параметр.

int GetCountRecord()

Ф-ция возвращающая количество записей в таблице.

void add_field(string field, Types type)

Ф-ция добаления поля таблицы. Принимает в качестве параметра название поля и тип.

void add_record(void* one,...)

Ф-ция добавления записи. Принимает переменное число параметров - значения полей записи, которую следует добавить в таблицу. Ф-ция основана на типе va_list и наборе функций для операций над ним va_start, va_arg и va_end, определенных в заголовочном файле stdarg.h.

vector<void*> records(vector<string> &v, vector<Types> &types)

Ф-ция возвращающая массив записей типа void *. Принимает в качестве параметров массив записей и массив типов полей.

void add_record(vector<string> &v, vector<Types> &types)

Ф-ция добавления записи. Принимает в качестве параметров массив записей и массив типов полей.

void delete_record(int index)

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

void modify_record(int index, void* one,...)

Ф-ция изменения записи по значению индекса. Принимает переменное число параметров - значения полей записи, которую следует изменить. Ф-ция основана на ф-циях библиотеки stdarg.h и работе с итератором.

void modify_record(int index, vector<string> &v, vector<Types> &types)

Ф-ция изменеия записи по ндексу, переданному в качестве параметра. Принимает в качестве параметров массив записей и массив типов полей.

void print_record(int index, int width)

Ф-ция вывода записи. Принимает в качестве параметров индекс записи и ширину ячейки таблицы. Ф-ция основана на работе с явным приведение типов (reinterpret_cast) и ф-ция библиотеки iomanip.h.

void print(int width)

Ф-ция вывода табдицы. Принимает в качестве парамеитра ширину ячейки таблицы.

void print_symbol(int width)

Ф-ция вывода границ таблицы. Принимает в качестве парметра ширину ячейки таблицы.

void print_cap(int width)

Ф-ция вывода шапки таблицы. Принимает в качестве параметра ширину ячейки таблицы.

string record_str(int index)

Ф-ция возвращающая запись в виде строки по индексу, переданному как параметр. Ф-ция основана на работе с явным приведением типов.

string fields_str()

Ф-ция возвращающая строку из названий полей таблицы и их типов.

bool write()

Ф-ция записи таблицы в файл. Возвращает верно, если запись таблицы завершилась успешно и неверно в противном случае. Ф-ция основана на работе с файловыми потоками библиотеки fstream.

bool write_fields()

Ф-ция записи названий полей таблицы и их типов. Ф-ция основана на работе с файловыми потоками.

Класс Database моделирует работу с БД: создание, добавление / удаление таблицы, вывод на экран и запись в файл. Класс содержит следующие поля: имя и массив таблиц.

Табл. 3.2 Методы класса Database

Database()

Конструктор, создающий базу данных без имени.

Database(string _name)

Конструктор, создающий БД с именем, переданным в качестве параметра.

bool read_fields(string name, Database &D)

Ф-ция чтения названя полей таблицы и их типов из файла, а также создание таблицы с именем, переданным в качестве параметра и добавление ее в БД, также переданную в качестве параметра. Возвращает верно, если чтение прошло успешно и неверно в противном случае. Ф-ция основана на работес файловыми потоками (seekg, tellg).

void add_table(Table &T)

Ф-ция добавления таблицы. Принимает в качестве параметра таблицу.

void delete_table(int index)

Ф-ция удаления таблицы по индексу, переданному в качестве параметра. Ф-ция основана на работе с итератором.

void print()

Ф-ция вывода базы данных на экран.

void print(int val)

Ф-ция вывода таблицы по индексу, переданному в качестве параметра.

void write()

Ф-ция записи БД в файл. Ф-ция основана на работе с файловыми потоками.

int GetTable(string name)

Ф-ция возвращающая таблицу по названию, переданному в качестве параметра и -1, если таблицы в БД нет.

bool read_records(string name, Database &D)

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

3.2 Тестирование программы

При запуске программы мы видим следующее:

Рис. 3.1 Меню программы

Введём команду “1”, чтобы создать базу данных:

Вводим название Базы Данных, указываем число таблиц, их имена и количество полей. Далее вводим название поля таблицы и выбираем его тип. Как только закончится ввод имен и типов полей таблицы, программа сообщит об успешном создании базы данных.

Рис. 3.2 Команда «Создание БД»

Далее введем команду “2”, чтобы заполнить нашу базу данных:

Рис. 3.3 Команда «Заполнение БД»

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

Далее введем команду “4”, чтобы вывести нашу базу данных:

Рис. 3.4 Команда «Вывод БД»

На экране база данных с таблицами. Так же можно вывести определенные таблицы.

Далее введем команду “5”, чтобы сохранить базу данных:

Рис. 3.5 Команда «Запись БД в файл»

Далее введем команду “6”, чтобы загрузить базу данных из файла:

Рис. 3.6 Команда «Считать БД из файла»

ЗАКЛЮЧЕНИЕ

Разработана простейшая система управления базами данных (СУБД), которая имеет набор необходимых функций для работы с ней. Данное программное обеспечение позволяет создавать базы данных, производить заполнение базы данных, вносить изменение в таблицах: добавлять, изменять и удалять запись, вывод таблиц и вывод всей базы данных, сохранение базы данных в бинарный файл, а также считывание из бинарного файла.

В данный момент программа проигрывает многим современным программам в области СУБД, так как для ее написания использовались базовые знания в этой области.

При написании курсовой работы были получены навыки оформления программной документации, а также большой практический опыт работы в Microsoft Word, Microsoft Visio, Microsoft Visual Studio 2010.

СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ

1. Сайт cppstudio.com [Электронный ресурс] - Режим доступа: http://cppstudio.com/post/439.html - Дата доступа: 09.05.2014.

2. Сайт interestprograms.ru [Электронный ресурс] - Режим доступа: http://www.interestprograms.ru/articles/historyprogramming/historycpp.htm l - Дата доступа: 10.05.2014.

3. Бьярне Страуструп. Программирование: принципы и практика использования C++, исправленное издание = Programming: Principles and Practice Using C++. -- М.: Вильямс, 2011.

4. Сайт cppstudio.com [Электронный ресурс] - Режим доступа: http://cppstudio.com/post/6964.html - Дата доступа: 09.05.2014.

5. Сайт cppstudio.com [Электронный ресурс] - Режим доступа: http://cppstudio.com/post/6110.html - Дата доступа: 09.05.2014.

6.. Сайт cppstudio.com [Электронный ресурс] - Режим доступа: http://cppstudio.com/post/8475.html - Дата доступа: 09.05.2014.

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


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

  • Реализация приложения "Книжный магазин" средствами систем управления базами данных. Проектирование структуры базы данных, определение сущности и атрибутов. Логическое проектирование базы данных и реализация базы данных в СУБД Microsoft Office Access.

    курсовая работа [7,8 M], добавлен 13.02.2023

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

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

  • Классификация систем управления базами данных. Выбор операционной системы, языка программирования, среды разработки (IDE) и дополнительных компонент. Разработка интерфейса и функций программы по управлению складом, её тестирование и исходный код файлов.

    курсовая работа [487,3 K], добавлен 25.12.2015

  • Проектирование системы управления базами данных. Особенности реализации в MS SQL. Разработка пользовательского интерфейса. Тестирование и отладка приложения. Руководство пользователя и системного администратора. Анализ и методы разработки приложений.

    курсовая работа [867,9 K], добавлен 16.07.2013

  • Устройства внешней памяти. Система управления базами данных. Создание, ведение и совместное использование баз данных многими пользователями. Понятие системы программирования. Страницы доступа к данным. Макросы и модули. Монопольный режим работы.

    реферат [27,5 K], добавлен 10.01.2011

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

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

  • Основные классифицирующие признаки системы управления базами данных. Модель данных, вид программы и характер ее использования. Средства программирования для профессиональных разработчиков. Организация центров обработки данных в компьютерных сетях.

    презентация [6,8 K], добавлен 14.10.2013

  • Система управления базами данных как составная часть автоматизированного банка данных. Структура и функции системы управления базами данных. Классификация СУБД по способу доступа к базе данных. Язык SQL в системах управления базами данных, СУБД Microsoft.

    реферат [46,4 K], добавлен 01.11.2009

  • Исследование характеристик и функциональных возможностей системы управления базами данных Microsoft Office Access. Определение основных классов объектов. Разработка базы данных "Делопроизводство". Создание таблиц, форм, запросов, отчетов и схем данных.

    реферат [1,3 M], добавлен 05.12.2014

  • Стадии обработки документов в туристическом агентстве, проектирование базы данных. Реализация программного продукта с помощью объектно-ориентированного языка программирования Borland Delphi 7.0. и системы управления базами данных Microsoft Access 2003.

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

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