Информационная система по продаже недвижимости
ПОЯСНИТЕЛЬНАЯ ЗАПИСКА
к курсовому проекту
на тему
ИНФОРМАЦИОННАЯ СИСТЕМА ПО ПРОДАЖЕ НЕДВИЖИМОСТИ
Исходные данные проекта
Реализовать информационную систему для компаний по продаже недвижимости. Программа должна иметь удобный пользовательский интерфейс с необходимыми пунктами меню. Работа с информацией должна производиться в окнах. Информация должна храниться в различных файлах. Необходимо хранить следующие сведения: данные о квартирах, частном секторе, нежилых помещениях, коммерческой недвижимости, а также о клиентах. Реализовать функции: добавление, удаление, редактирование данных.
Введение
Ключевым понятием 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 | Пользовательское соглашение
ПРОФЕССИОНАЛЬНАЯ ПОМОЩЬ СТУДЕНТАМ