Информационная система по учету автомобилей

Автор: Пользователь скрыл имя, 05 Декабря 2011 в 16:04, курсовая работа

Описание работы

Язык С++ , появившийся в начале 80-х годов, не только универсален, как язык Си, но и является средством объектного программирования, новейшей методикой проектирования и реализации программ. Главной целью создателя языка, доктора Бьерна Страустрапа, было оснащение языка С++ конструкциями, позволяющими увеличить производительность труда программистов и облегчить процесс овладения большими программными продуктами.

Содержание

ВВЕДЕНИЕ……………………………………………………………3
Постановка задачи……………………………………………5
Спецификация системы……………………………………..5
3. Структура входных и выходных данных………………………………….7
4. Диаграмма классов…………………………..……………………………..8
5. Описание классов………………………………...…………………..…....10
6. Алгоритмы по шагам и блок- схемы функций .…………………………13
7. Текст программы…………………………………………………………..15
8. Результаты работы………………………………………………………...34
ЗАКЛЮЧЕНИЕ………………………………………………………………….35
Список использованной литературы…………………………………………...36

Работа содержит 1 файл

ОтчётБадеев.doc

— 367.50 Кб (Скачать)

            if(!binary)

            {

                  if(File==NULL)

                  throw FileException("File is not opened");

                  *File << " ";

            }

      }

      bool isBinary() { return binary; } // Открыт ли бинарно

      bool eof() {  if(File==NULL) throw FileException("File is not opened"); return File->eof(); } // Конец файла

      __declspec(property(get = getStream, put = setStream)) fstream *Stream; // Свойство потока фалйа

      __declspec(property(get = isBinary, put = setBinary)) bool Binary; // Свойство бинарного открытия файла 

      T Read(); // Чтение одного элемента из файла

      int ReadInt(); // Чтение числа из файла

      T* ReadArray(int count); // Чтение массива, размером count, из файла

      Stack<T> ReadStack(); // Прочитать стэк из файла

      void Write(T obj); // Записать объект в файл

      void WriteInt(int obj); // Записать число в файл

      void WriteArray(T *obj, int count); // Записать массив в файл

      void WriteStack(Stack<T> obj); // Записать стэк в файл

   }; 
 
 
 

5  Алгоритмы по шагам и блок-схемы функций 

           5.1 Разработка алгоритма

       

     Алгоритм для функции открытия базы данных (void OpenDB(char *DBN)):

  1. Вычисляем пути для файлов с районами, стоянками, автомобилями
  2. Создаём 2 экземпляра класса FWriter, которые сразу же заполнят стэки из файлов. Далее алгоритм чтения файла:
    • Проверка бита ios_binary (для бинарного чтения)
    • Проверка, возможно ли открыть файл
    • Чтение числа, означающего количество следующих записей одного типа
    • Циклическое чтение из файла, и добавление в стэк
 

   Алгоритм  для функции поиска информации об автомобилях (void FindCars(int mod))

  1. Вводим вариант поиска автомобиля (по номеру, марке, владельцу)
  2. Просматриваем весь стэк автомобилей.
  3. Если клиент с необходимой информацией найден в стэке, то выводим на экран информацию об автомобиле.

Если автомобиль не найден, выводим соответствующее сообщение 
 
 
 
 
 
 
 
 
 
 
 
 
 

5.2 Блок-схемы некоторых  функций 

         Функция генерация нового идентификатора для стэка объектов  int GetNewId(Stack<T> *Q)): 
 

 

 
 

 
 
 

 

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

6 Текст программы

            Информационная система  учета автомобилей:

Classes.h:

#include <string.h>

#include <iostream> 

using namespace std; 

class District // Класс района

{

private:

      int id; // идентификатор

      char name[30]; // название района

public:

      int getId() { return id; } // функции доступа

      void setId(int Id) { id = Id; }

      char* getName() { return name; }

      void setName(char *Name) { strcpy(name, Name); }

      _declspec(property(get=getId, put=setId)) int Id;

      _declspec(property(get=getName, put=setName)) char* Name; 

      friend ostream& operator<<(ostream& s, District& d); // Перегрузка операторов ввода/вывода

      friend istream& operator>>(istream& s, District& d);

};

class Parking // Класс автостоянки

{

private:

      int id; // Идентификатор

      int district_id; // Идентификатор района

public:

      int getId() { return id; } // функции доступа

      void setId(int Id) { id = Id; }

      _declspec(property(get=getId, put=setId)) int Id; 

      int getDistrictId() { return district_id; }

      void setDistrictId(int Id) { district_id = Id; }

      _declspec(property(get=getDistrictId, put=setDistrictId)) int DistrictId; 

      friend ostream& operator<<(ostream& s, Parking& p); // Перегрузка операторов ввода/вывода

      friend istream& operator>>(istream& s, Parking& p);

};

class Auto // Класс автомобиля

{

private:

      int id; // идентификатор

      int parking_id; // идентификатор автостоянки

      int number; // номер машины

      char owner[30]; // имя владельца

      char brand[10]; // компания-производитель

      char model[10]; //  название модели

public:

      int getId() { return id; } // Функции доступа

      void setId(int Id) { id = Id; }

      _declspec(property(get=getId, put=setId)) int Id; 

      int getNumber() { return number; }

      void setNumber(int Number) { number = Number; }

      _declspec(property(get=getNumber, put=setNumber)) int Number; 

      int getParkingId() { return parking_id; }

      void setParkingId(int Id) { parking_id = Id; }

      _declspec(property(get=getParkingId, put=setParkingId)) int ParkingId; 

      char* getOwner() { return owner; }

      void setOwner(char *Owner) { strcpy(owner, Owner); }

      _declspec(property(get=getOwner, put=setOwner)) char* Owner; 

      char* getBrand() { return brand; }

      void setBrand(char *Brand) { strcpy(brand, Brand); }

      _declspec(property(get=getBrand, put=setBrand)) char* Brand; 

      char* getModel() { return model; }

      void setModel(char *Model) { strcpy(model, Model); }

      _declspec(property(get=getModel, put=setModel)) char* Model; 

Информация о работе Информационная система по учету автомобилей