Рефераты. База данных пилотов Формулы 1

База данных пилотов Формулы 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

{

      string famely;

      string name;

      string frace;

      int races;

      int wons;

      int pouls;

      int tituls;

int blaps;

};        


«famely»: фамилия гонщика. Текстовое значение.

«name»: Имя гонщика. Текстовое значение.

«frace»: Дебютная гонка в формуле 1. Текстовое значение.

«races»: Количество проведённых гонок. Цифровое значение.

«wons»: Количество побед. Цифровое значение.

«pouls»: Количество поул-позиций (первое место на старте). Цифровое значение.

«tituls»: Количество титулов чемпиона мира. Цифровое значение.

«blaps»: Количество Лучших кругов в гонке. Цифровое значение.


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

Для реализации проекта необходимо подключение следующих заголовочных файлов:

<stdlib.h> , <algorithm> , <fstream> , <string> , <iostream>, <vector> , <commctrl.h> , <commdlg.h>.

Так-же, необходимы следующие windows - библиотеки: “comctl32.lib” и “comdlg.lib”

3.  Разработка проекта.

 

3.1.         Классы: поля и методы.

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

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


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


class Reader

{

public:

      Reader(); // Конструктор / деструкотор

      ~Reader();


      bool open_db(const char * file); // Открыть бд

      bool save_db(const char * file,vector<Racer> racer); // Сохранить бд

      void close_db(); // Закрыть бд


      bool read(); // Читать БД

      void new_paragraph(); // Новый параграф

      string paragraph; // Имя параграфа


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

      string loadAsString(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); // Сортировка

      vector<Racer> racers; // База данныых на основе вектора

private:

      Reader reader; // Файловый менеджер

};

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

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



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

Интерфейс пользователя состоит из 2 основных элементов:

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

·        - основное окно, содержащее инструменты для редактирования элементов базы данных, просмотра элементов, просмотра результатов поиска и сортировки БД, а также задавать параметры поиска.



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

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

 

 

 

 

 

 

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

В качестве языка программирования используем  С++. Компилятор Visual C++ версии 6.


Программа разбита на несколько файлов:

·        main.cpp - реализация основных методов и классов приложения.

·        main.h - описание идентификаторов меню.

·        Rsrc.rc - фаил ресурсов.



"main.cpp"

 

#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

{

   string famely;

   string name;

   string frace;

   int races;

   int wons;

   int pouls;

   int tituls;

   int blaps;

};




//------------------------------------

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


class Reader

{

public:

       Reader(); // Конструктор / деструкотор

       ~Reader();


       bool open_db(const char * file); // Открыть бд

       bool save_db(const char * file,vector<Racer> racer); // Сохранить бд

       void close_db(); // Закрыть бд


       bool read(); // Читать БД

       void new_paragraph(); // Новый параграф

       string paragraph; // Имя параграфа


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

       string loadAsString(string name);


private:

       fstream db; // Фаил бд

};



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,vector<Racer> racer)

{

       ofstream save;

       save.open(file,ios::trunc); // Открываем фаил

       if(!save) return false;


       for(int i=0;i<racer.size();i++) // Записываем данные

       {

             save << "racer ";

             save << "SurName=" << racer[i].famely;

             save << " Name=" << racer[i].name;

             save << " Races=" << racer[i].races;

             save << " Wons=" << racer[i].wons;

             save << " Pouls=" << racer[i].pouls;

             save << " FirstRace=" << racer[i].frace;

             save << " Tituls=" << racer[i].tituls;

             save << " BestLaps=" << racer[i].blaps;

             if(i<racer.size()-1) save << endl;

Страницы: 1, 2, 3, 4, 5



2012 © Все права защищены
При использовании материалов активная ссылка на источник обязательна.