ПЕРЕЛІК ДИСЦИПЛІН:
  • Адміністративне право
  • Арбітражний процес
  • Архітектура
  • Астрологія
  • Астрономія
  • Банківська справа
  • Безпека життєдіяльності
  • Біографії
  • Біологія
  • Біологія і хімія
  • Ботаніка та сільське гос-во
  • Бухгалтерський облік і аудит
  • Валютні відносини
  • Ветеринарія
  • Військова кафедра
  • Географія
  • Геодезія
  • Геологія
  • Етика
  • Держава і право
  • Цивільне право і процес
  • Діловодство
  • Гроші та кредит
  • Природничі науки
  • Журналістика
  • Екологія
  • Видавнича справа та поліграфія
  • Інвестиції
  • Іноземна мова
  • Інформатика
  • Інформатика, програмування
  • Юрист по наследству
  • Історичні особистості
  • Історія
  • Історія техніки
  • Кибернетика
  • Комунікації і зв'язок
  • Комп'ютерні науки
  • Косметологія
  • Короткий зміст творів
  • Криміналістика
  • Кримінологія
  • Криптология
  • Кулінарія
  • Культура і мистецтво
  • Культурологія
  • Російська література
  • Література і російська мова
  • Логіка
  • Логістика
  • Маркетинг
  • Математика
  • Медицина, здоров'я
  • Медичні науки
  • Міжнародне публічне право
  • Міжнародне приватне право
  • Міжнародні відносини
  • Менеджмент
  • Металургія
  • Москвоведение
  • Мовознавство
  • Музика
  • Муніципальне право
  • Податки, оподаткування
  •  
    Бесплатные рефераты
     

     

     

     

     

     

         
     
    Автостоянки
         

     

    Інформатика, програмування

    Автостоянки

    Вступ

    Мова програмування служить двом пов'язаних між собою цілям: він дає програмісту апарат для завдання дій, які повинні бути виконані, і формує концепції, якими користується програміст, розмірковуючи про те, що робити. Першою мети ідеально відповідає мова, яка настільки "близький до машини", що всіма основними машинними аспектами можна легко і просто оперувати досить очевидним для програміста чином. З таким наміром спочатку задумувалася C. Другий цілі ідеально відповідає мова, яка настільки "близький до розв'язуваної задачі ", щоб концепції її рішення можна було виражати прямо і коротко. З таким наміром попередньо замислювалися кошти, додані до C для створення C ++.

    Зв'язок між мовою, на якому ми думаємо/програмуємо, і завданнями та рішеннями, які ми можемо представляти в своїй уяві, дуже близька. З цієї причини обмежувати властивості мови тільки цілями виключення помилок програміста в кращому випадку небезпечно. Як і у випадку з природними мовами, є величезна користь бути принаймні двомовним. Мова надає програмісту набір концептуальних інструментів; якщо вони не відповідають завданню, то їх просто ігнорують. Наприклад, серйозні обмеження концепції покажчика змушують програміста застосовувати вектора і цілу арифметику, щоб реалізувати структури, покажчики і т.п. Гарне проектування і відсутність помилок не може гарантуватися чисто за рахунок мовних засобів.

    Cистема типів повинна бути особливо корисна в нетривіальних завданнях. Дійсно, концепція класів в C + + показала себе потужним концептуальним засобом.

    Постановка завдання

    Написати інформаційну систему з обліку автомобілів. Організувати автостоянки по районам. Здійснювати пошук автомобілів на конкретній автостоянці і по всіх автостоянок по власникові, за номером автомобіля, по марці автомобіля.

    Додавання, видалення автомобілів зі стоянок.

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

    3. Структура вихідних і вхідних даних

    Програма використовує 4 файлу для збереження інформації про райони, стоянках, автомобілях і марках машин. Кожен з файлів має структуру, представлену нижче:        

    Зсув у файлі         

    Опис             

    0х00         

    Індефікатор файлу ( "AM")             

    0х02         

    Кількість стовпців             

    0х03         

    Номер автоувелічівающегося стовпця             

    0х04         

    Номер останнього автоувеліченія             

    0x06         

    Опис полів бази (розмір, назва)             

    Область з даними (інформація про довжину береться з опису   полів).     

    Для зберігання інформації про марки машин використовується файл models.bas. Структура файлу представлена нижче:        

    id         

    model     

    "id" -- індефікатор марки машини

    "model "- Назва марки машини

    Для зберігання інформації про райони використовується файл districts.bas. Структура файлу представлена нижче:        

    id         

    district     

    "id" -- індефікатор району

    "district" -- назва району

    Для зберігання інформації про стоянках використовується файл stations.bas. Структура файлу представлена нижче:        

    id         

    station         

    sid     

    "id" -- індефікатор стоянки

    "station" -- назва стоянки

    "sid" -- індефікатор району, до якого належить стоянка

    . Для зберігання інформації про автомобілях використовується файл cars.bas. Структура файлу представлена нижче:        

    id         

    model         

    number         

    owner         

    cid         

    did     

    "id" -- індефікатор автомобіля

    " model "- модель автомобіля

    " number "- номер автомобіля

    " owner "- ім'я власника автомобіля

    " cid "- індефікатор стоянки, в якому стоїть автомобіль

    " did "- індефікатор району, в якому стоїть автомобіль

    Діаграма класів

    5 Опис класів.

    Далі наводиться опис 4 основних класів проекту, призначених для роботи з базою даних, інші є стандартними і призначені для відображення інформації.

    5.1 CColumn

    Клас призначений для завдання типів стовпців таблиці.

    class CColum

    (

    string name;// Назва поля

    unsigned int length;// Довжина поля (збігається з індефікатором типу)

    bool autoit;// Ключ. Показує, чи потрібно автоувеліченіе

    public:

    // Конструктор приймає назву поля і його тип

    CColumn (string & ss, unsigned int len);

    // Конструктор приймає назву поля, його тип і ключ автоувеліченія.

    CColumn (string & ss, unsigned int len, int aa);

    bool isauto ();// Являтся чи поле автоувелічівающіся

    string & getname (); //Повертає ім'я поля

    unsigned int gettype ();// Повертає тип поля

    );

    Слід відзначити, що автоувеліченіе застосовується лише до цілих типів.

    5.2 СRecord

    Клас призначений для зберігання однієї ячкейкі бази даних. Агрегується тільки класом Row.

    class СRecord

    (

    string name;// Назва поля

    string data;// Дані

    unsigned int type;// Тип поля

    public:

    void setname (string & nam);// Встановити ім'я поля

    void setdata (string & dat);// Встановити данне

    void settype (unsigned int & typ); //Встановити тип

    string & getname (); //Отримати ім'я поля

    string & getdata (); //Отримати дані

    unsigned int gettype ();// Отримати тип

    );

    5.3 CRow

    Клас призначений для зберігання і рядків даних, отриманих в результаті пошуку

    даних або внесення змін до таблиці.

    class CRow

    (

    vector rec;// Вектор осередків рядку

    int flag;// Прапор для оператора присвоєння (тимчасове зберігання)

    string name;// Ім'я для оператора присвоєння (тимчасове зберігання)

    unsigned int type;// Тип для оператора присвоєння (тимчасове зберігання)

    public:

    CRow (); //Конструктор

    void reset ();// Обнуляємо рядок

    void setrow (vector & v);// Запроваджує рядок у вигляді осередків

    vector & getrow (); //Запроваджує рядок у вигляді осередків

    string operator [] (string ss);// Повертає значення по ключу

    int operator () (string ss);// Повертає тип по ключу

    // Перша частина складеного оператора присвоєння

    Row & operator () (string ss, unsigned int typ);

    // Друга частина складеного оператора присвоєння

    void operator = (string dat);

    );

    5.4 CTable

    Основний клас проектів. Призначений для створення інтерфейсу для роботи з базою даних. Дозволяє створювати базу з будь-якою кількістю стовпців, додавати, видаляти, змінювати, шукати по точній рядку і частини рядка.

    class CTable

    (

    vector types;// Інформацію про типи

    string filename;// Назва файлу, з яким йде робота

    fpos_t startdata;// Початок області даних у файлі

    int getfullsize ();// Повертає довжину рядка

    public:

    CTable (string & filename); //Конструктор приймає назва файлу

    Is (); //Перевіряє існування бази

    vector GetCap ();// Повертає інформацію про типи

    int getrows ();// Повертає кількість рядків

    // Створення бази. Приймає вектор стовпців. Якщо буде більше одного автоувелічівающе-

    // гося стовпця, то вона застосовуватися тільки до перших

    bool CreateTable (vector & type);

    bool AddRow (CRow & rr);// Додає рядок

    // Здійснює пошук даних за точним збігом рядка

    // Запис, знайдених значень йде в масив finded

    void GetStr (vector & finded, string nam, string dat);

    // Здійснює поіс даних щодо входження рядка

    // Запис, знайдених значень йде в масив finded

    void GetCmp (vector & finded, string nam, string dat)

    bool DeleteData (string nam, string dat);// Видаляє рядок при точному збігом

    // Змінює рядок c ключем nam і значенням dat на rr.

    bool ChangeData (CRow & rr, string nam, string dat);

    );

    6 Алгоритм по кроків

    6.1 CTable (string & filename)

    1. Збереження значення змінної filename у внутрішній змінної класу filename.

    2. Перевірка існування файлу filename.

    3. Якщо файл існує, то вважати інформацію про поля таблиці, початку даних, поточне автоувеліченіе.

    6.2 CTable:: AddRow (CRow & rr)

    1. Відкриття файлу, заданого у змінній filename та занесення індефікатора файлу в FILE * file.

    2. Запис поточного автоувеліченія, збільшеного на 1.

    3. Зсув в кінець файлу file.

    4. Запис введеної рядка rr.

    6.3 CTable:: GetCmp (vector & finded, string nam, string dat)

    1. Відкриття файлу, заданого у змінній filename та занесення індефікатора файлу в FILE * file.

    2. Зсув на початок даних.

    3. Зчитування рядка з файлу і занесення в CRow ww.

    4. Порівняння ww [ "nam"] і dat.

    5. Якщо збігається, то додати рядок в vector finded.

    6. Якщо не збігаються, то перейти на пункт 2 (повторити, поки не буде досягнуто кінець файлу).

    6.4 CTable:: ChangeData (CRow & rr, string nam, string dat)

    1. Відкриття файлу, заданого у змінній filename та занесення індефікатора файлу в FILE * file.

    2. Зсув на початок даних.

    3. Зчитування рядка з файлу і занесення в CRow ww.

    4. Порівняння ww [ "nam"] і dat.

    5. Якщо співпадають, то зміститися на початок зчитаної рядки і записати рядок rr.

    6. Якщо не збігається, то перейти на пункт 2 (повторити, поки не буде досягнуто кінець файлу).

    6.5 CTable:: DeleteData (string nam, string dat)

    1. Відкриття файлу, заданого у змінній filename та занесення індефікатора в FILE * file.

    2. Зсув на початок даних.

    3. Зчитування рядка з файлу і занесення в CRow ww.

    4. Порівняння ww [ "nam"] і dat.

    5. Якщо співпадають, то визначити таку і записати на місці попередньої

    ( дія повторюється, поки не буде кінець файлу)

    6. Файл зменшити на один рядок.

    7. Якщо рядки в пункті 4 не співпали, то перейти на пункт 2 (повторити, поки не буде досягнуто кінець файлу).

    6.6 CTable:: Is ()

    1. Відкриття файлу, заданого у змінній filename та занесення індефікатора в FILE * file.

    2. Зчитування інформації за адресою 0x00 в buf

    3. Якщо вміст buf не дорівнює 'AM', то повернути false.

    4. Зчитування вмісту за адресою 0x02 в buf

    5. Якщо вміст дорівнює 0, то повернути false

    6. Повернути true;

    7 Лістинг програми

    8 Результат роботи програми

    Програма призначена для обліку автомобілів на стоянках міста, організованих за районам. Програма дозволяє:

    Додавати/змінювати/видаляти назви районів

    Додавати/змінювати/видаляти назви стоянок

    Додавати/змінювати/видаляти назви марок автомобілів

    Додавати/змінювати/видаляти дані про автомобілі

    Здійснювати пошук автомобілів по власникові, марки, номеру

    Здійснювати пошук автомобілів на конкретній стоянці, районі або по всіх стоянках міста

    Для зручності роботи передбачена підказка.

    Рис 1. Загальний вигляд програми

    Рис 2. Вікно для пошуку автомобілів.

    Рис 3. Вікно для редагування списку стоянок

    9 Висновок

    Для роботи програми необхідне виконання наступних вимог:

    Мінімальні вимоги:

    -- процесор Intel 200 МГц;

    -- оперативна пам'ять 64 Мб;

    -- WINDOWS 95/98/NT.

    Забороняється:

    -порушувати структуру файлів;

    Список літератури

    MSDN Library - технічна довідка для розробників програмного забезпечення. -- MicroSoft Corp., 2004.

    Ю. Тихомиров - «Самоучитель MFC». - БХВ-Петербург, 2002р.

    Е. Демидович - «Основи алгоритмізації та програмування на сі». - Бестпрінт, 2003.

    Б. Страуструп - «Мова програмування C + +». - Бином, 2004.

    Для підготовки даної роботи були використані матеріали з сайту http://referat.ru

         
     
         
    Реферат Банк
     
    Рефераты
     
    Бесплатные рефераты
     

     

     

     

     

     

     

     
     
     
      Все права защищены. Reff.net.ua - українські реферати ! DMCA.com Protection Status