Информационная система по продаже недвижимости

 













ПОЯСНИТЕЛЬНАЯ ЗАПИСКА

к курсовому проекту

на тему

ИНФОРМАЦИОННАЯ СИСТЕМА ПО ПРОДАЖЕ НЕДВИЖИМОСТИ


Исходные данные проекта


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


Введение


Ключевым понятием C++ является класс. Класс - это тип, определяемый пользователем. Классы обеспечивают скрытие данных, гарантированную инициализацию данных, неявное преобразование типов для типов, определенных пользователем, динамическое задание типа, контролируемое пользователем управление памятью и механизмы перегрузки операций. C++ предоставляет гораздо лучшие, чем в C, средства выражения модульности программы и проверки типов. В языке есть также усовершенствования, не связанные непосредственно с классами, включающие в себя символические константы, inline- подстановку функций, параметры функции по умолчанию, перегруженные имена функций, операции управления свободной памятью и ссылочный тип. В C++ сохранены возможности языка C по работе с основными объектами аппаратного обеспечения (биты, байты, слова, адреса и т.п.). Это позволяет весьма эффективно реализовывать типы, определяемые пользователем.++ и его стандартные библиотеки спроектированы так, чтобы обеспечивать переносимость. Имеющаяся на текущий момент реализация языка будет идти в большинстве систем, поддерживающих C. Из C++ программ можно использовать C библиотеки, и с C++ можно использовать большую часть инструментальных средств, поддерживающих программирование на C.


1. Обзор методов и алгоритмов решения поставленной задачи


Файлом называют способ хранения информации на физическом устройстве. Файл - это понятие, которое применимо ко всему - от файла на диске до терминала.

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

Текстовый поток - это последовательность символов. При передаче символов из потока на экран, часть из них не выводится (например, символ возврата каретки, перевода строки).

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


1.1 Организация работы с файлами средствами C


Объявление файла*идентификатор;

Открытие файла:(имя физического файла, режим доступа)

Режим доступа - строка, указывающая режим открытия файла файла и тип файла. Типы файла: бинарный (b); текстовый (t):Файл открывается только для чтенияФайл открывается только для записи. Если соответствующий физический файл существует, он будет перезаписанФайл открывается для записи в конец (для дозаписи) или создается, если не существует+Файл открывается для чтения и записи.+Файл открывается для записи и чтения. Если соответствующий физический файл существует, он будет перезаписан+Файл открывается для записи в конец (для дозаписи) или создается, если не существует

Неформатированные файловый ввод-вывод

Запись в файл(адрес записываемой величины, размер одного экземпляра, количество записываемых величин, имя логического файла);

Чтение из файла(адрес величины, размер одного экземпляра, количество считываемых величин, имя логического файла);

Закрытие файла(имя логического файла);

Форматированный файловый ввод-вывод

)Функции fgetc() и fputc() позволяют соответственно осуществить ввод-вывод символа.

)Функции fgets() и fputs() позволяют соответственно осуществить ввод-вывод строки.

)Функции fscanf() и fprintf() позволяют соответственно осуществить форматированный ввод-вывод и аналогичный соответствующим функциям форматированного ввода-вывода, только делают это применительно к файлу.


1.2 Организация работы с файлами средствами C++


Файловый ввод-вывод с использованием потоков

Библиотека потокового ввода-вывода #include <fstream>

Связь файла с потоком выводаимя логического файла;

Связь файла с потоком вводаимя логического файла;

Открытие файла

имя логического файла.open(имя физического файла);

Закрытие файла

имя логического файла.close();


2. Обоснование выбранных методов и алгоритмов


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


Рисунок 2.1 Структура используемого списка.


При запуске приложения загружаются следующие файлы:

·Database\Commercial.cm

·Database\Flats.f

·Database\Houses.hs

·Database\Humans.hm

Данные о квартирах, частных домах и коммерческих зданий при запуске программы загружаются в компонент DataGridView. Данные о клиентах загружаются в список. Список имеет структуру показанную на рисунке 2.1. Данные хранятся в DataGridView и в списке на всём протяжении работы программы. Сохранение данных из DataGridView и списка происходит после нажатия соответствующего пункта меню.


3. Описание программы для программиста


Рисунок 3.1 Диаграмма классов


3.1 Класс FlatBase- базовый абстрактный класс помещений


Таблица 3.1 Поля класса FlatBase

ПолеТипОписаниеAddrwchar_tАдресSquarewchar_tПлощадьPricewchar_tЦенаIsTelboolФлаг телефонаFFILE *Указатель на файл

Таблица 3.2 Методы класса FlatBase

Метод классаТипОписаниеuninit()VoidСнимает привязку к файлуvirtual Size() = 0LongЧисто виртуальный метод вывода количества записей в файлеvirtualinput(int i, DataGridView^ dgv) = 0VoidЧисто виртуальный метод ввода данныхvirtualSaveToF() = 0VoidЧисто виртуальный метод сохранения в файлvirtual ReadFromF(int i) = 0BoolЧисто виртуальный метод чтения из файла i-й записиvirtual view(int i, DataGridView^ dgv) = 0VoidЧисто виртуальный метод просмотра данныхvirtualinit(char f = 'r') = 0VoidЧисто виртуальный метод привязки к файлу

.2 Класс Flat : public FlatBase-класс квартир


Таблица 3.3 Поля класса Flat

ПолеТипОписаниеNumOfRoomwchar_tКоличество комнатFloorwchar_tЭтажnalichremontaboolНаличие ремонтаIsEmptyboolПустая или жилая квартира

Таблица 3.4 Методы класса Flat

Метод классаТипОписаниеvirtual Size()LongВиртуальный метод вывода количества записей в файлеvirtualinput(int i, DataGridView^ dgv)VoidВиртуальный метод ввода данныхvirtualSaveToF()VoidВиртуальный метод сохранения в файлvirtual ReadFromF(int i)BoolВиртуальный метод чтения из файла i-й записиvirtual view(int i, DataGridView^ dgv)VoidВиртуальный метод просмотра данныхvirtual init(char f = 'r')VoidВиртуальный метод привязки к файлу

3.3 Класс House : public FlatBase. Класс частных домов


Таблица 3.5 Поля класса House

ПолеТипОписаниеNumOfFloorswchar_tКоличество этажейTypeOfHeatwchar_tТип отопленияNumOfFlatswchar_tКоличество квартирNumOfRoomswchar_tКоличество комнатSewersboolНаличие канализации

Таблица 3.6 Методы класса House

Метод классаТипОписаниеvirtual Size()LongВиртуальный метод вывода количества записей в файлеvirtualinput(int i, DataGridView^ dgv)VoidВиртуальный метод ввода данныхvirtualSaveToF()VoidВиртуальный метод сохранения в файлvirtual ReadFromF(int i)BoolВиртуальный метод чтения из файла i-й записиvirtual view(int i, DataGridView^ dgv)VoidВиртуальный метод просмотра данныхvirtual init(char f = 'r')VoidВиртуальный метод привязки к файлу

.4 Класс Commercial : publicFlatBase. Класс комерческих зданий


Таблица 3.7 Поля класса Commercial

ПолеТипОписаниеNumOfFloorswchar_tКоличество этажей

Таблица 3.8 Методы класса Commercial

Метод классаТипОписаниеvirtual Size()LongВиртуальный метод вывода количества записей в файлеvirtualinput(int i, DataGridView^ dgv)VoidВиртуальный метод ввода данныхvirtualSaveToF()VoidВиртуальный метод сохранения в файлvirtual ReadFromF(int i)BoolВиртуальный метод чтения из файла i-й записиvirtual view(int i, DataGridView^ dgv)VoidВиртуальный метод просмотра данныхvirtual init(char f = 'r')VoidВиртуальный метод привязки к файлу

3.5 Класс Human. Класс клиентов


Таблица 3.9 Поля класса Human

ПолеТипОписаниеFIOwchar_tФИОTelwchar_tТелефонAddrwchar_tАдресFFILE *Указатель на файл

Таблица 3.10 Методы класса Human

Метод классаТипОписаниеSize()LongМетод вывода количества записей в файлеSaveToF()VoidМетод сохранения в файлReadFromF(int i)BoolМетод чтения из файла i-й записиinit(char f = 'r')VoidМетод привязки к файлуuninit()VoidМетод снятия привязки с файлаInput(String^ fio, String^ tel, String^ adr)VoidМетод ввода данных в объектOutFIO()String^Метод вывода фамилииOutTel()String^Метод вывода телефонаOutAddr()String^Метод вывода адреса

.6 Класс-контейнер ContH. Класс список клиентов


Таблица 3.11 Поля класса-контейнера ContH

ПолеТипОписаниеNextContH *Указатель на следующий элемент списка клиентовPrevContH *Указатель на предыдущий элемент списка клиентовHHuman *Указатель на объект клиента

Таблица 3.12 Методы класса-контейнера ContH

Метод классаТипОписаниеContH()-Конструктор класса контейнераAdd(Human * h)ContH *Добавление элемента в список и возврат указателя на последний элементDel()ContH *Удаление последнего элемента списка и возврат указателя на предпоследнийNext()ContH *Переход на следующий элемент спискаPrev()ContH *Переход на предыдущий элемент спискаValue()Human *Возвращает указатель на объект класса клиентаItem(int i, ContH * B)ContH *Возвращает i-й указатель на объект списка относительноуказателя B

4. Описание алгоритмов решения задачи

информационный программа класс алгоритм

4.1 Метод long Flat::Size() - Количество записей в файле


1.Начало.

.Установка указателя на конец файла

.Установка указателя на начало файла

.Вычисление разности между началом и концом.

.Вычисление количества записей в файле

.Возврат количества записей. Конец


4.2 Метод System::Voidadd_click() - Кнопка добавить клиента


1.Начало.

.Выделение памяти под нового клиента

.Заполнение полей клиента

.Добавление клиента в конец списка

.Добавление фамилии в listBox1

.Конец.


4.3 МетодSystem::VoidbEdit2_Click() - Событие на нажатие кнопки изменения клиента


1.Начало.

.Если индекс выбранного клиента -1, сообщение об ошибке

.Если textBox1 только для чтения, снять флаг только для чтения

.Иначе меняем данные о клиенте

.Выводим новую фамилию в listBox1

.Конец.

4.4 Метод System::VoidbAdd1_Click()- Создание диалогового окна


1.Начало.

.Выделение памяти под форму

.Настройка свойств элементов управления

.Присваивание кнопке события

.


ПОЯСНИТЕЛЬНАЯ ЗАПИСКА к курсовому проекту на тему ИНФОРМАЦИОННАЯ СИСТЕМА ПО ПРОДАЖЕ НЕДВИЖИМОСТИ

Больше работ по теме:

КОНТАКТНЫЙ EMAIL: [email protected]

Скачать реферат © 2017 | Пользовательское соглашение

Скачать      Реферат

ПРОФЕССИОНАЛЬНАЯ ПОМОЩЬ СТУДЕНТАМ