РефератыИнформатика, программированиеРаРазработка прикладного программного обеспечения деятельности отдела аренды ЗАО "Сириус"

Разработка прикладного программного обеспечения деятельности отдела аренды ЗАО "Сириус"

Министерство
транспорта Российской Федерации


Федеральное
агентство железнодорожного транспорта


ГОУ ВПО
«Дальневосточный государственный университет путей сообщения»


Кафедра
«Информационные технологии и системы»


Курсовой
проект


Разработка
прикладного программного обеспечения деятельности отдела аренды ЗАО «Сириус»


Вариант 30


Выполнил:
Шолков И.Д.


220
группа


Проверил:
Гурвиц Г.А.


Хабаровск
2009


         Оглавление


1.   Задание
на курсовой проект


2.   Описание
процесса создания векторного плана этажа здания


2.1 Создание
приложения


2.2 Создание
чертежа


3.   Описание
предметной области и схемы модели данных


4.   Разработка
приложения


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




 


1.        
Задание
на курсовой проект

Разработать прикладное
программное обеспечение деятельности отдела аренды ЗАО «Сириус». После удачной
приватизации, когда у руководства этого предприятия оказалась большая часть
акций, дела некогда мощного предприятия пошли на спад. В настоящее время
основной статьей получения прибыли является сдача в аренду другим предприятиям
и организациям площадей, которыми владеет «Сириус». В его собственности имеется
12-этажное здание, которое состоит примерно из 300 помещений. Почти все они
сдаются в аренду. Один арендатор может арендовать несколько помещений, причем
срок аренды для каждого устанавливается отдельно. Величина арендной платы и ее
периодичность устанавливается арендодателем. Субаренда площадей запрещена.
Закрытые договоры не удаляются из БД для


отслеживания предыдущих арендаторов.



2.        
Описание
процесса создания векторного плана этажа здания

Моя работа связана с
отдельной поликлиникой, поэтому мне необходимо начертить план здания
поликлиники, нанести на неё различные чертёжные элементы и элементы интерьера.
Именно этот план послужит для создания графической опоры моей геоинформационной
системы.


Для разработки плана
здания воспользуемся графическим редактором AutoCAD.
Он предоставляет широкие возможности для графических решений. Целесообразность
очевидна из его функциональности.


2.1     
Создание
приложения

Создав проект AutoCAD
перед
нами появляется среда разработки.



Для начала установим
единицы измерения, для этого откроем вкладку Формат –>Единицы. И в окне
выберем сантиметры.



2.2     
Создание
чертежа

Весь план должен быть
выполнен в слоях, поэтому я выделил следующее разделение:


1.        
Схема
здания


2.        
Заполнение


3.        
Интерьер


4.        
Подписи


Для создания слоев
воспользуемся вкладкой ФОРМАТ -> СЛОЙ. В результате чего появится окно
Диспетчер свойств слоёв



Для
создания своих слоев существует соответствующая кнопка – Создать слой. Значок
галочки соответствует активному слою.


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


Далее
приступаем непосредственно к отрисовке плана здания.


После
проделанной работы получили следующий чертёж:



Не маловажно создать
ещё один слой. На это слое будут отображать блоки, которые необходимы для связи
пространственной информации с атрибутивной.


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


Далее необходимо
создать собственно блок.


Для этого на панели
инструментов нажимаем кнопку создать блок, после чего появляется диалоговое
окно создания блока:



В нём вводим имя блока,
выбираем объект(в нашем случае это красный квадрат) и нажимаем ОК. Всё, блок
создан.


Аналогичные операции
проделываем и с другими блоками.


3. 
Описание
предметной области и схемы модели данных

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


Поэтому данные
необходимо нормализовать.


В работе мы будем
использовать 3 нормальные формы баз данных.


Первая нормальная
форма. Условие нахождения базы в первой нормальной форме является разбиение её
на таблицы, которые не содержат повторяющихся полей.


Сделаем это с нашей
таблицей, получим следующие таблицы


Arendator


Rooms



Contract



Получили таблицы,
которые содержат информацию об арендаторах, помещениях и контрактах.


Казалось бы всё, данные
объединены в родственные группы. Но со стороны реляционных баз данных следует
разделить эти таблицы ещё на несколько новых. Это существенно упростит работу с
данными.


Создадим таблицу
идентификации улицы(Street),
создадим дополнительное поле в таблице Arendator
под названием Nbuild в будущем это
упростит ввод адреса.


Street



district:



Далее перейдём к
рассмотрению второй нормальной формы.


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


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


Расставим в каждой
таблицы данные ключи:


Arendator
– CustomerID


Rooms
– HallID


Contract
– TreatyID


Street
– Street


District
- District


Третья
нормальная
форма.
Условие
нахождения в третьей нормальной форме, это удовлетворение второй нормальной
форме и ни одно не ключевое поле не определяет ключевые поля.


Далее эти таблицы
создаются в MS
Access где они принимают
следующий вид:


Чтобы создать таблицу,
на вкладке Создание выбираем Таблица в итоге появляется новая таблица, входим в
режим конструктора и Access
просит ввести имя таблиц, вводим и начинаем создавать таблицу. Вписываем имя
поля определяем тип данных если надо расставляем индексы и определяем
возможность повторений.


 Аналогичный вид
принимают и остальные таблицы в зависимости от назначения полей.


Далее необходимо
создать ключевые поля. Для этого перейдём в конструктор таблицы. Там на вкладке
конструктор есть добавить ключевое поле. Выбираем наше ключевое поле в
соответствии с предыдущим разбиением и нажимаем добавить ключ. В итоге напротив
поля появится значок ключа.


Аналогичные операции
проводим и для всех остальных таблиц.


Следующий этап это определение
связей между таблицами. На вкладке Работа с базами данных нажмём на пиктограмму
Схема данных. Появится пространство в которое мы добавим все наши таблицы.


Получим следующее:



Для создания связи
выделим ключевое поле и перетащим его к соответствующему не ключевому полю
другой таблицы. В итоге появится окно (один-к-одному, один-многие,
многие-многие в зависимости от того разрешены или нет повторяющиеся значения)



Жмём Создать и связь
создана аналогично проделываем те же операции для других таблиц и получаем
следующую схему:



На этом этапе все
работы с базами завершены. Далее идёт их обычное заполнение.




 


4.        
Разработка
приложения

Настал самый тяжёлый
этап создания проекта. Этап разработки и ошибок. На данном шаге мы приступаем к
разработке самого приложения, которое позволит работать с базой с помощью
диалогового окна Windows.


Связь атрибутивной и
пространственной информации будет организовываться с помощью языка
программирования Visual
Basic for
Application (VBA).
Это разновидность языка VB,
так как он прикреплён к нашей среде разработки AutoCAD,
но в остальном он полностью синонимичен языку VB.


Как
принято в культурном мире, каждый человек при встрече обязан поприветствовать
другого... Не будем отступать от правил и начнём разработку с окна приветствия.


Для
этого зайдем на вкладку сервис->макросы->создать макрос


И
перед нами появилась среда разработки.


 

В левом верхнем углу
можно видеть дерево проекта, где отображены объекты AutoCAD
, формы и модули. Добавим форму следующим путём Insert->UserForm.
У нас появилась форма. По середине мы видим саму форму, а рядом находится
панель ToolBox на которой
размещены

элементы, необходимые для разработки приложения (Controls
«Контролы»)
Добавим на форму Label со словами
приветствия и 2 кнопки Commandbutton1(закрывает
форму и открывает стартовую форму) и Commandbutton2(закрывает
форму и закрывает рисунок AutoCad).


Програмный
код
формы


Private
Sub CommandButton1_Click()


Unload
Me


UserForm2.Show


End
Sub


Private
Sub CommandButton2_Click()


Unload
Me


ThisDrawing.Close


End
Sub


Стартовая
форма



//Выбор
базы


Private
Sub UserForm_Activate()


//Добавление базы из
папки расположения AutoCAD


TextBox1.Text
= ThisDrawing.Path + "mydatabase.accdb"


//Присвоение переменной
пути файла


path_db = TextBox1.Text


End Sub


//Запись в ComboBox
Имени пользователя


Private
Sub ComboBox1_MouseDown(ByVal Button As Integer, ByVal Shift As Integer, ByVal
X As Single, ByVal Y As Single)


ComboBox1.Text
= "Илья"


End
Sub


//Обработчик
нажатия
на
OptionButton


Private
Sub OptionButton1_Click()


// Меняем значение
переменной на ложь. Для второй OptionButton
тоже //самое, только присваиваем значение истина


chec
= False


End
Sub


Private
Sub CommandButton2_Click()


//Присвоение переменным
значений полей


a
= TextBox2.Text


n
= ComboBox1.Text


//проверка условия
входа базу


If
chec = True
Then


//Проверка пароля для
дальнейшей работы


If
(a = 11111) And (n = "Илья")
Then


//Установка
соединения
с
базой


Set
ThisDrawing.adoConnect = New ADODB.Connection


With
ThisDrawing.adoConnect


//Подключение
провайдера для работы с базами и привязка базы к чертежу


.ConnectionString
= "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" &
TextBox1.Text


.Open


End
With


Unload
Me


UserForm3.Show


Else


// Если пароль введён
не верно то выводится сообщение


MsgBox "Возможно
пользователь или пароль введёны не правильно!!! Пожалуйста введите пользователя
и пароль!!!", vbOKOnly + vbExclamation


End If


Else


Unload Me


End If


End Sub


Форма для регистратуры.



//Объявление глобальных
переменных


Private
Sub UserForm_Activate()


//
Установка
соединения


Set
ThisDrawing.adoConnect = New ADODB.Connection


With
ThisDrawing.adoConnect


.ConnectionString
= "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" &
ThisDrawing.Path & "rt.accdb"


.Open


End
With


//Установка переменной
выборки базы данных


Set
record = New ADODB.Recordset


record.ActiveConnection
= ThisDrawing.adoConnect


With
record


//Текст запроса к базе


//Остальные запросы
выполнены по аналогии с той лишь разницей, что //переменные будут другие,
поэтому дальше текст запроса рассматривать не //будем


.Source
= "Select * from Arendator where CustomerID =1"


.Open


End
With


//Функция обновления
выведенных данных прописана ниже


print_i


End
Sub


Public
Sub print_i()


//Присвоение текст
боксу значения ячейки выбранной из базы. Код //аналогичен для всех выводов


TextBox1.Text
= record!CustomerID


//Определение по
логическому полю физическое лицо или юридическое


If
(record!CustomerType = True) Then


TextBox2.Text
= "Физическое"


Else


TextBox2.Text
= "Юридическое"


End
If


//Передача переменной
Формы 4 параметра выборки для дальнейшего //использования


UserForm4.aa
= record1!CustomerID


End
Sub


//Переход по базам
осуществляется аналогично выполнению запроса в //активации формы. Опишем лишь
интересные моменты


//Если выборка
достигает конца записи, то параметр i
обнуляется


If
record.EOF
= True Then


i
= 0


CommandButton5_Click


//Иначе продолжается
выборка по запросам


Else


With
record


s
= i + 1


//передача параметра s
в качестве переменной запроса


.Source
= "Select * from Rooms where CustomerID =" & s


.Open


End With


//Далее идут запросы


//Обновление формы


print_i


i
= i + 1


End
If


End Sub



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



Форма
управления
слоями



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


Private
Sub UserForm_Initialize()


//Данный цикл выводит
существующие слои в ListBox


For
I = 2 To ThisDrawing.Layers.Count - 1


ListBox1.AddItem
(ThisDrawing.Layers.Item(I).Name)


Next
I


End
Sub


В результате выполнения
данного кода объект ListBox1
будет заполняться названиями существующих слоёв.


В обработчике кнопки «Отключить
слой» пропишем следующие строки:


Private Sub
CommandButton1_Click()


//проверка условия
выбранного поля


If
ListBox1.ListIndex = -1 Then


MsgBox
"Выберите
слой"


Else


//метод
для
отключения
слоя


ThisDrawing.Layers.Item(ListBox1.Text).LayerOn
= False


End
If


//обновление
формы


UserForm1.Refresh


End Sub


Этот участок кода
отвечает за выключение выбранного слоя.


Аналогичный код будет и
для кнопки «Включить слой». Разница будет лишь в методе:


ThisDrawing.Layers.Item(ListBox1.Text).LayerOn
= True


Теперь следует
рассмотреть код нажатия по блокам в среде AutoCAD.


//Объявление
глобальных
переменных


Public
adoConnect As ADODB.Connection


Public
path_db As String


Public
ID As Variant


Public
ID_A As Integer


Public
a As String


Public
n As String


//При загрузке
приложения автоматически открывается форма //приветсвтия


Private
Sub AcadDocument_Activate()


UserForm6.Show


End
Sub


//Обработчик нажатия на
блок


Private
Sub AcadDocument_SelectionChanged()


//определение
локальных
переменных


Dim
objGen As AcadEntity


Dim
i As
Integer


//Установка соединения
и подключение провайдера


Set
ThisDrawing.adoConnect = New ADODB.Connection


With
ThisDrawing.adoConnect


.ConnectionString
= "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" &
ThisDrawing.Path & "rt.accdb"


.Open


End
With


//Именно в этой части
кода осуществляется передача данных //переменной objGen
от блоков чертежа


If
ThisDrawing.PickfirstSelectionSet.Count > 0 Then


Set objGen =
ThisDrawing.PickfirstSelectionSet.Item(ThisDrawing.PickfirstSelectionSet.Count
- 1)


//Проверка
на
принадлежность
блоку


If
objGen.ObjectName = "AcDbBlockReference" Then


Select
Case objGen.Name


//По имени нажатого
блока определяются параметры которые нужно //передать дальше для выполнения
запросов


Case 1


ID_A
= 10


//Передача параметров
переменной формы 4


UserForm4.aa
= ID_A


UserForm4.Show


Case
2


ID_A
= 70


UserForm5.aa
= ID_A


UserForm5.Show


Case
3


UserForm3.Show


End
Select


End
If


//Снятие
всех
выделений


For
i = 0 To ThisDrawing.PickfirstSelectionSet.Count - 1


ThisDrawing.PickfirstSelectionSet.Item(i).Highlight
(False)


ThisDrawing.PickfirstSelectionSet.Item(i).Update


Next
i


ThisDrawing.SendCommand
(".Выбрать"
& vbCr)


End
If


End
Sub




 


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

1.  Гурвиц
Г.А.
Microsoft Access 2007. Разработка приложений на реальном
примере.- СПб.: БХВ-Петербург, 2007. – 672 с.: ил. +
CD-ROM


2.   AutoCAD
2007. Видео курс.- СПб.: БХВ-Петербург, 2007.

Сохранить в соц. сетях:
Обсуждение:
comments powered by Disqus

Название реферата: Разработка прикладного программного обеспечения деятельности отдела аренды ЗАО "Сириус"

Слов:1911
Символов:20692
Размер:40.41 Кб.