База данных пилотов Формулы 1
Российский Новый ниверситет
Пояснительная записка
к курсовой работе
по предмету Программирование
на тему:
База данных пилотов Формулы 1.
Выполнил студент гр. 424
культета ИС и КТ
Шнайдер Юрий Юрьевич
Руководитель: Маслянкин В.И.
Курсовая работа допущена к защите:
Москва
2006 г.
Содержание:
1. Введение. Цели и задачи курсовой работы.
2. Описание предметной области.
2.1. Постановка задачи
2.2. Объекты предметной области.
2.3. Необходимые ресурсы.
3. Разработка проекта.
3.1. Классы: свойства и методы.
3.2. Организация классов.
3.3. Интерфейс пользователя.
4. Реализация проекта.
5. Перспективы доработки программы.
1. Введение. Цели и задачи курсовой работы.
Эта программа написана для любителей гонок "формула 1". Используя её, пользователи могут найти различную информацию о пилоте, такую как количество титулов, побед, и т.п. База данных позволяет далять пилотов и добавлять новых, также найти пилота по определённому параметру.
2. Описание предметной области.
2.1. Постановка задачи.
Основные функции программы:
1. запоминать вводимые значения, показывать базу данных;
2. добавлять, редактировать данные;
3. осуществлять поиск в базе;
4. сортировать данные базы по запрашиваемому параметру;
5. далять и сохранять изменения в базе;
6. сохранять всю информацию, также иметь доступ к открытию информации.
2.2. Объекты предметной области.
Объекты принадлежащие, хранению и обработке:
struct Racer
{
int blaps; }; л л л лraces: Количество проведённых гонок. Цифровое значение. л л
л л 2.3.
Необходимые ресурсы. Для реализации проекта необходимо подключение следующих заголовочных файлов: <stdlib.h> , <algorithm>, <fstream>, <string>, <iostream>, <vector>, <commctrl.h>, <commdlg.h>. Так-же,
необходимы следующие 3. Разработка проекта. 3.1.
Классы: поля и методы. Класс является абстрактным типом данных, определяемым пользователем, и представляет собой модель реального объекта в виде данных и функций для работы с ними. Программа разбита на 2-а класса. 1-ый отвечает за базу данных, 2-ой за взаимодействия с ним. Рассмотрим
1-ый класс: class
Reader { public: Reader(); // Конструктор / деструкотор <~Reader(); private: }; Рассмотрим 2-ой класс: class Application { public: Application(); ~Application(); private: Reader reader; // Файловый менеджер }; 3.2.
Организация классов Выбранный контейнер для хранения объектов стандартныйа УvectorФ из Уvector.hФ. 3.3.
Интерфейс пользователя. Интерфейс пользователя состоит из 2 основных элементов:
<-
контекстного меню, посредством которого пользователь может открывать,
закрывать, создавать новые базы данных, добавлять и далять элементы БД,
сортировать по всем параметрам записи и производить поиск записей по определённым параметрам.
<-
основное окно, содержащее инструменты для редактирования элементов базы данных,
просмотра элементов, просмотра результатов поиска и сортировки БД, также задавать параметры поиска. 3.4.
Хранение данных. База данных содержит в начале каждой записи заголовок (параграф) "racer". После него через пробел содержатся элементы записи. Каждая запись начинается с новой строки. 4. Реализация проекта. В качестве языка программирования используем С++. Компилятор Visual C++ версии 6. Программа разбита на несколько файлов:
Rsrc.rc - фаил ресурсов. " #include "main.h" #include <windows.h> #include <stdlib.h> #include <algorithm> #include <fstream> #include <string> #include <iostream> #include <vector> #include <commctrl.h> #include <commdlg.h> #pragma comment(lib,"comctl32.lib") using namespace std; /* Описание гонщика */ struct Racer { }; //------------------------------------ // Файловая система class Reader { public: Reader();
// Конструктор / деструкотор <~Reader(); private: }; Reader::Reader() {}; // Конструктор / деструктор Reader::~Reader() { db.close(); }; /* Открываем бда */ bool Reader::open_db(const char *file) { аdb.open(file); return true; }; /*
Сохраняем базу данных */ bool Reader::save_db(const char *
file,vector<Racer> racer) { <{ <}; return
true; }; /* Закрываем бд */ void Reader::close_db() { db.close(); db.clear(); }; /* Читаем параграф */ bool Reader::read() { return
true; }; /* Читаем число */ int Reader::loadAsInt(string name) // Loading As Int { db
>> s; return
atoi(s.substr(name.size(),s.size()).c_str()); }; /* Читаем строку */ string Reader::loadAsString(string name) // Loading As
String { db
>> s; return
s.substr(name.size(),s.size()); }; /*
Переход на новый параграф */ void
Reader::new_paragraph() { db.ignore(1,'\n'); }; //
---------------------------------------------------------------------------------------- //
Работа приложения class Application { public: Application(); <~Application(); private: // ----------------------------------------------Reader
reader; // Файловая система }; Application::Application() {}; // Конструктор / деструктор Application::~Application() {}; bool Application::db_load(const char * file) { <{ racers.clear();
// Очищаем вектор <{ Racer
m_racer; reader.paragraph; racers.push_back(m_racer);
// Добавляем гонщика в аккумулятор <}; reader.close_db();
// Закрываем фаил return
true; <}; return
false; }; /* Закрываем бд */ void Application::db_close() { racers.clear(); // Очищаем список гонщиков }; /* Сохранение бд */ bool Application::db_save(const char * name) { return
true; }; /* Добавить элемент */ void Application::db_add_item() { Racer
temp; racers.push_back(temp); }; /* далить элемент */ void Application::db_delete_item(intа { racers.erase(it); }; // ----------------------------------------------- /* Сортировка */ bool sort_famely(Racer &one,Racer &two); bool sort_name(Racer &one,Racer &two); bool sort_frace(Racer &one,Racer &two); bool sort_blaps(Racer &one,Racer &two); bool sort_pouls(Racer &one,Racer &two); bool sort_races(Racer &one,Racer &two); bool sort_tituls(Racer &one,Racer &two); bool sort_wons(Racer &one,Racer &two); inline bool sort_famely(Racer &one,Racer &two) { return
false; }; inline bool sort_name(Racer &one,Racer &two) { return
false; }; inline bool sort_frace(Racer &one,Racer &two) { return
false; }; inline bool sort_blaps(Racer &one,Racer &two) { return
false; }; inline bool sort_pouls(Racer &one,Racer &two) { return
false; }; inline bool sort_races(Racer &one,Racer &two) { return
false; }; inline bool sort_tituls(Racer &one,Racer &two) { return
false; }; inline bool sort_wons(Racer &one,Racer &two) { return
false; }; void Application::bd_sortby(int value) { <{ return; return; return; return;