Реферат по предмету "Программирование, Базы данных"


База данных пилотов Формулы 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
{
      stringfamely;
      stringname;
      stringfrace;
      intraces;
      intwons;
      intpouls;
      inttituls;
int blaps;
};        

«famely»: фамилия гонщика. Текстовоезначение.
«name»: Имя гонщика. Текстовоезначение.
«frace»: Дебютная гонка в формуле1. Текстовое значение.
«races»: Количество проведённыхгонок. Цифровое значение.
«wons»: Количество побед. Цифровоезначение.
«pouls»: Количество поул-позиций(первое место на старте). Цифровое значение.
«tituls»: Количество титуловчемпиона мира. Цифровое значение.
«blaps»: Количество Лучших кругов вгонке. Цифровое значение.

2.3.        Необходимые ресурсы.

Дляреализации проекта необходимо подключение следующих заголовочных файлов:
, , , , , , , .
Так-же,необходимы следующие windows — библиотеки: “comctl32.lib” и “comdlg.lib”
3.  Разработкапроекта.

3.1.        Классы: поля и методы.
Классявляется абстрактным типом данных, определяемым пользователем, и представляетсобой модель реального объекта в виде данных и функций для работы с ними.
Программаразбита на 2-акласса. 1-ый отвечает за базу данных, 2-ой за взаимодействия с ним.

Рассмотрим1-ый класс:

classReader
{
public:
      Reader(); // Конструктор / деструкотор
      ~Reader();

      boolopen_db(const char * file); // Открыть бд
      boolsave_db(const char * file,vectorracer); // Сохранитьбд
      voidclose_db(); // Закрытьбд

      boolread(); // ЧитатьБД
      voidnew_paragraph(); // Новыйпараграф
      stringparagraph; // Имяпараграфа

      intloadAsInt(string name);  // Загружаемпараметркакцелоечисло
      stringloadAsString(string name); // Загружаемпараметркакстроку

private:
      fstream db;// Фаилбд
};










 Рассмотрим 2-ой класс:
                       
class Application
{
public:
Application();
~Application();

      bool db_load(const char *file); // Загружаем базу данных
      void db_close();// Закрываем базу данных
      bool db_save(const char *file); // Сохраняем базу данных

      void db_add_item();// Добавляем новый элемент
      void db_delete_item(int number); // Удаляем определённый элемент

      void bd_sortby(int value); // Сортировка

      vectorRacer>racers; // База данныых на основе вектора
private:
      Reader reader; // Файловый менеджер
};

3.2.        Организация классов

Выбранный контейнер для хранения объектовстандартный  “vector” из “vector.h”.


3.3.        Интерфейс пользователя.


Интерфейспользователя состоит из 2 основных элементов:
·       -контекстного меню, посредством которого пользователь может открывать,закрывать, создавать новые базы данных, добавлять и удалять элементы БД,сортировать по всем параметрам записи и производить поиск записей поопределённым параметрам.
·       -основное окно, содержащее инструменты для редактирования элементов базы данных,просмотра элементов, просмотра результатов поиска и сортировки БД, а такжезадавать параметры поиска.


3.4.        Хранение данных.

Базаданных содержит в начале каждой записи заголовок (параграф) "racer". После негочерез пробел содержатся элементы записи. Каждая запись начинается с новойстроки.







4.Реализация проекта.

Вкачестве языка программирования используем  С++. Компилятор VisualC++ версии 6.
Программаразбита на несколько файлов:
·        main.cpp — реализация основных методов и классовприложения.
·        main.h — описание идентификаторов меню.
·        Rsrc.rc — фаил ресурсов.


"main.cpp"
#include «main.h»
#include

#include
#include
#include
#include
#include
#include
#include
#include
#pragma comment(lib,«comctl32.lib»)

using namespace std;










/* Описание гонщика */
struct Racer
{
   stringfamely;
   string name;
   string frace;
   int races;
   int wons;
   int pouls;
   int tituls;
   int blaps;
};



//------------------------------------
// Файловая система

class Reader
{
public:
       Reader();// Конструктор / деструкотор
       ~Reader();

       boolopen_db(const char * file); // Открыть бд
       boolsave_db(const char * file,vectorracer); // Сохранить бд
       voidclose_db(); // Закрыть бд

       boolread(); // Читать БД
       voidnew_paragraph(); // Новый параграф
       stringparagraph; // Имя параграфа

       intloadAsInt(string name);       // Загружаем параметры
       stringloadAsString(string name);

private:
       fstreamdb; // Фаил бд
};


Reader::Reader() {}; // Конструктор / деструктор
Reader::~Reader() { db.close(); };


/* Открываем бд  */
bool Reader::open_db(const char *file)
{
        db.open(file);
     if(!db)return false;
    
     return true;
};

/*Сохраняем базу данных */
bool Reader::save_db(const char *file,vectorracer)
{
       ofstreamsave;
       save.open(file,ios::trunc);// Открываем фаил
       if(!save)return false;

       for(inti=0;iЗаписываем данные
       {
             save
             save
             save
             save
             save
             save
             save
             save
             save
             if(i
       };

       save.close();// Закрываем фаил
       save.clear();
      
       returntrue;
};

/* Закрываем бд */
void Reader::close_db()
{
       db.close();
       db.clear();
};


/* Читаем параграф */
bool Reader::read()
{
       if(db.eof()|| !db) return false; // Конец файла
       else db>> paragraph;

       returntrue;
};

/* Читаем число */
int Reader::loadAsInt(string name) // Loading As Int
{
       string s;
       db>> s;
       name+="=";

       returnatoi(s.substr(name.size(),s.size()).c_str());
};


/* Читаем строку */
string Reader::loadAsString(string name) // Loading AsString
{
       string s;
       db>> s;
       name+="=";

       returns.substr(name.size(),s.size());
};


/*Переход на новый параграф */
voidReader::new_paragraph()
{
       db.ignore(1,'n');
};


//----------------------------------------------------------------------------------------
//Работа приложения


class Application
{
public:
       Application();
       ~Application();

       booldb_load(const char *file); // Загрузка бд
       void db_close(); //Закрыть  текущую бд
       bool db_save(constchar *file); // Сохранить бд

       void db_add_item(); //Добавить элемент
       voiddb_delete_item(int number); // Удалить элемент

       void bd_sortby(intvalue); // Сортировать по элементу
       int bd_findby(intvalue,string look); // Искать в элементе

       vectorracers; // Гонщики
private:
       inline intfind_name(string value);
      

// -----------------------------------------------
       Readerreader; // Файловая система
};


Application::Application() {}; // Конструктор / деструктор
Application::~Application() {};

bool Application::db_load(const char * file)
{
       if(reader.open_db(file))
       {
             racers.clear();// Очищаем вектор
             while(reader.read())
             {
                    Racerm_racer;
                    m_racer.famely= reader.loadAsString(«SurName»);
                    m_racer.name=  reader.loadAsString(«Name»);
                    m_racer.races= reader.loadAsInt(«Races»);
                    m_racer.wons= reader.loadAsInt(«Wons»);
                    m_racer.pouls= reader.loadAsInt(«Pouls»);
                    m_racer.frace= reader.loadAsString(«FirstRace»);
                    m_racer.tituls= reader.loadAsInt(«Tituls»);
                    m_racer.blaps= reader.loadAsInt(«BestLaps»);
                    reader.paragraph;
                    racers.push_back(m_racer);// Добавляем гонщика в аккумулятор
             };
             reader.close_db();// Закрываем фаил

             returntrue;
       };

       returnfalse;
};


/* Закрываем бд */
void Application::db_close()
{
       racers.clear(); // Очищаем списокгонщиков
};


/* Сохранение бд */
bool Application::db_save(const char * name)
{
       if(!reader.save_db(name,racers))return false;

       returntrue;
};


/* Добавить элемент */
void Application::db_add_item()
{
       Racertemp;
       temp.blaps= 0;
       temp.famely= «Mr.Unknown»;
       temp.frace= «When?»;
       temp.name= «Unknown»;
       temp.pouls= 0;
       temp.races= 0;
       temp.tituls= 0;
       temp.wons= 0;
       racers.push_back(temp);
};

/* Удалить элемент */
void Application::db_delete_item(int  number)
{
       if(number>= racers.size() || number

       vector::iteratorit = racers.begin();
       for(inti=0;i
      
       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)
{


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

Поделись с друзьями, за репост + 100 мильонов к студенческой карме :

Пишем реферат самостоятельно:
! Как писать рефераты
Практические рекомендации по написанию студенческих рефератов.
! План реферата Краткий список разделов, отражающий структура и порядок работы над будующим рефератом.
! Введение реферата Вводная часть работы, в которой отражается цель и обозначается список задач.
! Заключение реферата В заключении подводятся итоги, описывается была ли достигнута поставленная цель, каковы результаты.
! Оформление рефератов Методические рекомендации по грамотному оформлению работы по ГОСТ.

Читайте также:
Виды рефератов Какими бывают рефераты по своему назначению и структуре.

Сейчас смотрят :

Реферат Проблемы европейской валютной интеграции
Реферат Ишемия мезентериальных сосудов
Реферат Sinners In The Eyes Of A Prote
Реферат Европейское сообщество
Реферат Индивидуальное обучение детей младшего школьного возраста
Реферат Вознаграждения работникам по МСФО
Реферат Классификация физико-химических методов обработки и очистки Плазменные методы удаления материала
Реферат История зарубежной педагогики, Джуринский А.Н.
Реферат Проблемы смысла жизни, счастья, долга в романе "Евгений Онегин"
Реферат Август Леш и его книга: "Теория о размещении производственных сил"
Реферат Версии гибели АПЛ "Курск"
Реферат Заслон дикому туризму на Ольхоне
Реферат Применение технологий развивающего обучения на уроках информатики
Реферат Балякин, Андрей Борисович
Реферат Радіаційне забруднення на території України методи вимірювання вплив на людину Чорнобильська