База знаний студента. Реферат, курсовая, контрольная, диплом на заказ

курсовые,контрольные,дипломы,рефераты

Автостоянки — Программирование, Базы данных

Содержание:

1. Введение                                                                                                                                                2

2. Постановка задачи                                                                                                                                3                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   

3. Структура выходных и входных данных                                                                                          4                                                                                                                                                                                                                                                                                                                                                                   

4. Диаграмма классов                                                                                                                               5                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   

5. Описание основных классов                                                                                                               6

  5.1 CColum                                                                                                                                               6                                                                                                                                                                                                                                                                                                                                                                   

  5.2 СRecord                                                                                                                                              7            

  5.3 СRow                                                                                                                                                  8                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            9

  5.4 CTable                                                                                                                                                 9

6. Алгоритм по шагам                                                                                                                              9

6.1 CTable(string&filename)                                                                                                                 9

6.2 CTable::AddRow(CRow&rr)                                                                                                          9    

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

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

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

6.6 CTable::Is()                                                                                                                                      10

7. Листинг программы                                                                                                                             11

8. Результат работы программы                                                                                                              49

9. Заключение                                                                                                                                            51

10. Литература                                                                                                                                           52

1.     Введение

Язык программирования служит двум связанным между собой целям: он дает программисту аппарат для задания действий, которые должны быть выполнены, и формирует концепции, которыми пользуется программист, размышляя о том, что делать. Первой цели идеально отвечает язык, который настолько "близок к машине", что всеми основными машинными аспектами можно легко и просто оперировать достаточно очевидным для программиста образом. С таким умыслом первоначально задумывался C. Второй цели идеально отвечает язык, который настолько "близок к решаемой задаче", чтобы концепции ее решения можно было выражать прямо и коротко. С таким умыслом предварительно задумывались средства, добавленные к C для создания C++.

Связь между языком, на котором мы думаем/программируем, и задачами и решениями, которые мы можем представлять в своем воображении, очень близка. По этой причине ограничивать свойства языка только целями исключения ошибок программиста в лучшем случае опасно. Как и в случае с естественными языками, есть огромная польза быть по крайней мере двуязычным. Язык предоставляет программисту набор концептуальных инструментов; если они не отвечают задаче, то их просто игнорируют. Например, серьезные ограничения концепции указателя заставляют программиста применять вектора и целую арифметику, чтобы реализовать структуры, указатели и т.п. Хорошее проектирование и отсутствие ошибок не может гарантироваться чисто за счет языковых средств.

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

2.     Постановка задачи

Написать информационную систему по учёту автомобилей. Организовать автостоянки по районам. Осуществлять поиск автомобилей на конкретной автостоянке и по всем автостоянкам по владельцу, по номеру автомобиля, по марке автомобиля.

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

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

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 ”- индефикатор района, в котором стоит автомобиль

4.     Диаграмма классов

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

{

   vectorrec;                        // Вектор ячеек  строке

   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.

            Запрещается:

                        -нарушать структуру файлов;

10.Литература.

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

2.MFC».           - БХВ-Петербург, 2002г.

3.

4.C++». – Бином, 2004.

Содержание: 1. Введение                                                                                                                                                2 2. Постановка задачи                                                     

 

 

 

Внимание! Представленная Курсовая находится в открытом доступе в сети Интернет, и уже неоднократно сдавалась, возможно, даже в твоем учебном заведении.
Советуем не рисковать. Узнай, сколько стоит абсолютно уникальная Курсовая по твоей теме:

Новости образования и науки

Заказать уникальную работу

Похожие работы:

Объектно-ориентированное программирование Автобусы и маршруты
Win32-приложение Картотека аудио дисков
Создание базы данных расписание
Разработка информационной системы Службы занятости
Сравнительные характеристики трёх наиболее эффективных алгоритмов рисования отрезка
Разработка программы, реализующей алгоритм шифрования ГОСТ 28147-89
Обработка данных в средах MathCAD и LabVIEW
Создание генератора сказок средствами Delphi
Задача о распределении средств между предприятиями
Программирование на языке Object Pascal в среде Delphi

Свои сданные студенческие работы

присылайте нам на e-mail

Client@Stud-Baza.ru