Учёт в экологическом законодательстве (База данных)

Автор работы: Пользователь скрыл имя, 09 Января 2013 в 11:50, курсовая работа

Краткое описание

Широкая потребность в автоматизированной обработке массовой информации на ЭВМ выдвинула потребность и в специализированных языках обработки данных. Такие средства обычно включаются в состав систем управления базами данных (СУБД). Пакеты СУБД дают возможность пользователям осуществлять непосредственное управление данными, а программистам быстро разрабатывать более совершенные программные средства их обработки - приложения. В базе данных отражается информация об определенной предметной области. Предметной областью (ПО) называется часть реального мира, представляющая интерес для данного исследования (использования).

Вложенные файлы: 1 файл

Курсовая по БД Эмин 2.doc

— 392.00 Кб (Скачать файл)

16

Устанавливается связь  «один ко многим», то есть для некоторого главного типа существует несколько  подчиненных типов объектов. Иначе, главный тип именуется исходным типом, а подчиненные – порожденными. У подчиненных типов могут быть в свою очередь подчиненные типы. Наивысший в иерархии узел (совокупность атрибутов) называют корневым.

Сетевая модель данных строится по принципу «главный и подчиненный тип одновременно», то есть любой тип данных одновременно может одновременно порождать несколько подчиненных типов (быть владельцем набора) и быть подчиненным для нескольких главных (быть членом набора).

Реляционная модель данных объекты и связи между ними представляются в виде таблиц, при этом связи тоже рассматриваются как объекты. Все строки, составляющие таблицу в реляционной базе данных должны иметь первичный ключ. Все современные средства СУБД поддерживают реляционную модель данных.

 

Разработка  инфологической модели экологических законов.

В общем виде для данной курсовой работы инфологическая модель будет выглядеть следующим образом:

Рис. 1

Экологические законы

Номер закона


 

Название закона


 

Дата принятия





 



Кем принят


 

Количество статей


 

Статья


 

Название статьи





 

Номер статьи


 

Краткое содержание




 

 


 

 

 

17

 

Даталогическая  модель.

Датологическая модель выбирается в соотвествии с инфологической моделью СУБД.

Датологическая модель экологических законов описывается в таблице №1:    

                                                                                                                                 Таб.№1                                                                                                                                    

№ п/п

Наименование

Назначение

Тип

Размерность

1

Nom_Z

Номер закона

Символьный

10

2

Name_Z

Название закона

Символьный

60

3

Data

Дата принятия

Дата

8

4

Prinal

Кем принят

Символьный

40

5

Kol_St

Количество статей

Числовой

5

6

Name_St

Название статей

Символьный

35


 

Датологическая модель статей законов описывается в таблице №2:

Таб. №2.

№ п/п

Наименование

Назначение

Тип

Размерность

1

Name_St

Название статей

Символьный

35

2

Nom_St

Номер статьи

Числовой

6

3

Soderganie

Краткое содержание

Символьный 

50


 

Схема таблиц.

Откроем Пуск->Программы->Borland C++ Builder 6->BDE Administrator. Создадим БД: Object->New и назовем ее «Экологические законы».

Откроем Пуск->Программы->Borland C++ Builder 6->Database Desktop. В ней создадим две таблицы (New->Table), которые назовем:

1.Закон.db

Индексы:

  120-FZ, FZ ob oxrane atmosfernogo vozduxa, 02.04.1999, Gos.Dyma, 16,00, Pravovie osnobi oxrani vozdyxa.

121-FZ, Zakon o nedrax, 04.01.1997, Gos.Dyma, 10,00, Oxrana nedr v RF.

122_FZ, FZ ob ikologicheskoi ikspertize, 19.07.1995, Gos.Dyma, 5,00., Ob ikologicheskoi ikspertize

        123-FZ, Lesnoi kodeks, 22.01.1997, Gos.Dyma, 8,00, Regylirovanie lesnix otnoshenii.

       124-FZ, FZ o radicionoi bezopastnosti nasilenia, 22.01.1997, Gos.Dyma, 12,00, Obespechenie bezopastnosti nasileni.

         15-FZ, Ikologicheskaa programma, 06.06.2001, Gos.Dyma, 15,00, Cpecialnie ikologicheskie programmi.

         7-FZ FZ ob oxrane okrygaiyshei sredi,10.01.2002, Gos.Dyma, 20,00,Oxrana okrygaiyshei sredi

2. Статья. db 

Индексы:

18

    Pravovie osnobi oxrani vozdyxa, 16,00, Reabilitacia zagreznenix ychastkov teritorii.

        Oxrana nedr v RF, 13,00, Pravo gragdan po otnoshenii k okrygaishei srede.

        Ob ikologicheskoi ikspertize, 15,00, Oxrana zdoravia cheloveka ot zagriznenia.

        Regylirovanie lesnix otnoshenii, 12,00, Ob razionalnom ispolzovanii nedr.

        Obespechenie bezopastnosti nasileni, 17,00, Kak oxranat okrygaiyshiy sredy.

        Cpecialnie ikologicheskie programmi, 11,00, Kak zashishat vozdyx ot zagreznenia.

        Oxrana okrygaiyshei sredi,14,00, Ispolzovanie, oxrana i vosproizvodstvo lesov.

 

Проектирование  приложения.

 

Внешний вид приложения.

19

 Описание функций программного приложения.

На нашей форме расположены следующие команды:

  1. Ввод, редактировать и удалить. Для ввода, удаления, и редактирования используем компоненты Button и в свойстве Caption пишем нужную нам команду. Дважды щелкнув на этих кнопках, т. е. приведя в действие событие OnClick, запишем в редакторе кода код программы.
  2. Фильтрация и поиск. Для того, чтобы провести фильтрацию мы размешаем на форме компоненту RadioGroup и в свойстве Items пишем названия полей, по которым будем проводить фильтрацию. Фильтрация проведена по трем значениям: по номеру закона, по названию закона и по количеству статей. Для фильтрации по номеру и названию закона используем компоненты ComboBox и в свойсве Items компоненты ComboBox пишем номера и названия законов. Чтобы провести фильтрацию по количеству статей используем две компоненты CSpinEdit. В ее свойстве Value первой компоненте CSpinEdit указываем минимальное количество статей, а во второй компоненте максимальное количество. А также в свойствах MaxValue и MinValue указываем максимальное и минимальное количество статей. Поиск проводим по номеру и названию закона. Для этого используем компоненту Edit.
  3. Вывод. Для вывода используем компоненту QuikRep и связываем ее с таблицей с помощью свойства DataSet. Для вывода законов на ней ставим компоненту QRSubDetail. На ней ставим компоненту QRDBText. В ее свойстве DataSet указываем нашу таблицу и в свойстве DataField указываем выводимое поле.

 

Описание формы  и используемых компонентов.

Открыть C++ Builder (Пуск->Программы->Borland C++ Builder 6-> C++ Builder 6). Создадим новое приложение Файл->Новый->Приложение. Занесем на форму две компоненты Table и две компоненты DataSourse.. В первой компоненте Table в свойстве DatabaseName – Экологические законы, в свойстве TableName – Закон. db, во второй соответственно Экологические законы и Статья. db. Дважды щелкнув по компонентам  Table, в открывшемся окошке нажав правой кнопкой мыши выбрать пункт «Добавить все поля». В свостве DataSet компоненты DataSourse укажем нужную таблицу. Перенесем компоненты Edit - для отображения данных, DBGrid и DBNavigator – передвижения по записям. Для отображения надписей перенесем на форму компоненту Label и в свойстве Caption запишем нужное слово.

Создадим вторую форму. Перенесем на нее компоненту QuickRep. Свяжем ее с первой формой и в свойстве DataSet напишем Form1->Table1.В свойстве Bands в подсвойстве Has Title укажем True и перенесем на нее компоненты QRLabel, указав в свойстве Caption нужное поле. Перенесем на форму также компоненту QRSubDetail и в свойстве DataSet напишем Form1->Table1. Перенесем на компоненту QRSubDetail компоненты QRDBText под компонентой QRLabel. В ее свойстве  DataSet напишем Form1->Table1, а в свойстве DetailField выберем нужное поле. Для перехода на эту

20

форму на форме1 на странице Вывод документа установлена компонента DBGrid. Выбрав один из пунктов (печать/просмотр) можно перейти на вторую форму, которая отобразит список законов, которая выглядит следующим образом:

 

Схема карта  работы с программой.

   Данная программа  позволяет осуществлять следующие  операции:

ввод и удаление данных, вывод данных, редактирование баз данных, поиск данных. Рассмотрим более подробно некоторые из них.

  Операция Ввода данных: 

Откроем страницу Ввод и  редактирование. Операция ввода позволяет вводить в базы данных следующие данные: № закона, название закона, дату издания, кеб был принят закон и др. Выбрав необходимую базу, появляется окно ввода данных. Внеся необходимую информацию необходимо нажать «Ввести », добавится пустая строка, введя необходимые данные и нажав «Редактировать» вся информация запишется в выбранную базу. Нажав «Удалить», можно удалить данный закон. «Просмотр» - дает возможность увидеть внесенные изменения. «Печать» - выводит на принтер.

   Операция поиска данных по заданному критерию поиска.

Откроем страницу Фильтрация и поиск. Поиск осуществляется по № Закона и по названию закона. Введя в поле ввода № закона (название) будут высвечиваться все

данные об этом законе. Фильтрация осуществляется по № закона, названию закона

21

и количеству статей. Выбрав нужный закон (количество статей) данные об этом законе отображаются на форме.

Для того, чтобы работали кнопки ввода, редактирования и удаления необходимо для события OnClick. (двойной щелчок по этим кнопкам), что приведет к открытию редактора кода, где необходимо написать нужную часть программу. Для окон поиска необходимо программу написать для собатия OnChange.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

22

                                                  Текст программы.

 

#include <vcl.h>

#pragma hdrstop

 

#include "Unit1.h"

#include "Unit2.h"

#include "Unit3.h"

#include "Unit4.h"

#include "Unit5.h"

//---------------------------------------------------------------------------

#pragma package(smart_init)

#pragma link "CSPIN"

#pragma resource "*.dfm"

TForm1 *Form1;

//---------------------------------------------------------------------------

__fastcall TForm1::TForm1(TComponent* Owner)

        : TForm(Owner)

{

}

//---------------------------------------------------------------------------

void __fastcall TForm1::FormCreate(TObject *Sender)

{

 Edit1->Text = Table1Nom_Zak->AsString;

Edit2->Text = Table1Name_Zak->AsString;

Edit16->Text = Table1Data->AsString;

Edit3->Text = Table1Prinal->AsString;

Edit4->Text = Table1Kol_St->AsString;

Edit7->Text = Table1Nom_Zak->AsString;

Edit8->Text = Table1Name_Zak->AsString;

Edit15->Text = Table1Data->AsString;

Edit9->Text = Table1Prinal->AsString;

Edit10->Text = Table1Kol_St->AsString;

Table2->Filtered = false;

Table2->Filter="Name_Zak='"+Edit2->Text+"'";

Table2->Filtered = true;

 

Edit12->Text = Table2Nom_St->AsString;

Edit13->Text = Table2Name_St->AsString;

Edit14->Text = Table2Soderganie->AsString;      

}

//--------------------------------------------------------------------------- 23

 

void __fastcall TForm1::DBNavigator1Click(TObject *Sender,

      TNavigateBtn Button)

{

  Edit1->Text = Table1Nom_Zak->AsString;

Edit2->Text = Table1Name_Zak->AsString;

Edit15->Text = Table1Data->AsString;

Edit3->Text = Table1Prinal->AsString;

Edit4->Text = Table1Kol_St->AsString;

Edit7->Text = Table1Nom_Zak->AsString;

Edit8->Text = Table1Name_Zak->AsString;

Edit16->Text = Table1Data->AsString;

Edit9->Text = Table1Prinal->AsString;

Edit10->Text = Table1Kol_St->AsString;

Table2->Filtered = false;

Table2->Filter="Name_Zak='"+Edit2->Text+"'";

Table2->Filtered = true;

Edit12->Text = Table2Nom_St->AsString;

Edit13->Text = Table2Name_St->AsString;

Edit14->Text = Table2Soderganie->AsString;     

}

//---------------------------------------------------------------------------

void __fastcall TForm1::RadioGroup1Click(TObject *Sender)

{

  if (RadioGroup1->ItemIndex==0)

        { Table1->Filtered = false;  Table2->Filtered = false; }

  else

  {

    if (RadioGroup1->ItemIndex==1)

     {

 

     Table2->Filter="Name_Zak='"+Edit2->Text+"'";

    

     Table1->Filter="Nom_Zak='"+ComboBox2->Text+"'";

     }

else

  if (RadioGroup1->ItemIndex==2)

    {

    Table2->Filter="Name_Zak='"+ComboBox3->Text+"'";

    Table1->Filter="Name_Zak='"+ComboBox3->Text+"'";

       }

else

{

Table1->Filtered = false; 

Table1->Filter="(Kol_St>='"+IntToStr(CSpinEdit1->Value)+"')";

Table1->Filtered = true;

Table1->First();

while(Table1->Eof)

{

Edit1->Text = Table1Nom_Zak->AsString;

Edit2->Text = Table1Name_Zak->AsString; 24

Edit15->Text = Table1Data->AsString;

Edit3->Text = Table1Prinal->AsString;

Edit4->Text = Table1Kol_St->AsString;

Table2->Filtered = false;

Table2->Filter="Name_Zak='"+Edit2->Text+"'";

Table2->Filtered = true;

Edit11->Text=IntToStr(CSpinEdit2->MaxValue);

if(Edit4->Text>Edit11->Text)

IntToStr(CSpinEdit2->MaxValue)=Edit4->Text;

Table1->Next();

}

Table1->Filter="(Kol_St>='"+IntToStr(CSpinEdit1->Value)+"')and (Kol_St<='"+IntToStr(CSpinEdit2->Value)+"')";

}

Edit1->Text = Table1Nom_Zak->AsString;

Edit2->Text = Table1Name_Zak->AsString;

Edit15->Text = Table1Data->AsString;

Информация о работе Учёт в экологическом законодательстве (База данных)