Автор работы: Пользователь скрыл имя, 09 Января 2013 в 11:50, курсовая работа
Широкая потребность в автоматизированной обработке массовой информации на ЭВМ выдвинула потребность и в специализированных языках обработки данных. Такие средства обычно включаются в состав систем управления базами данных (СУБД). Пакеты СУБД дают возможность пользователям осуществлять непосредственное управление данными, а программистам быстро разрабатывать более совершенные программные средства их обработки - приложения. В базе данных отражается информация об определенной предметной области. Предметной областью (ПО) называется часть реального мира, представляющая интерес для данного исследования (использования).
16
Устанавливается связь «один ко многим», то есть для некоторого главного типа существует несколько подчиненных типов объектов. Иначе, главный тип именуется исходным типом, а подчиненные – порожденными. У подчиненных типов могут быть в свою очередь подчиненные типы. Наивысший в иерархии узел (совокупность атрибутов) называют корневым.
Сетевая модель данных строится по принципу «главный и подчиненный тип одновременно», то есть любой тип данных одновременно может одновременно порождать несколько подчиненных типов (быть владельцем набора) и быть подчиненным для нескольких главных (быть членом набора).
Реляционная модель данных объекты и связи между ними представляются в виде таблиц, при этом связи тоже рассматриваются как объекты. Все строки, составляющие таблицу в реляционной базе данных должны иметь первичный ключ. Все современные средства СУБД поддерживают реляционную модель данных.
Разработка инфологической модели экологических законов.
В общем виде для данной курсовой работы инфологическая модель будет выглядеть следующим образом:
Рис. 1
Экологические законы |
|
Номер закона |
Дата принятия |
Название статьи |
Краткое содержание |
17
Даталогическая модель.
Датологическая модель выбирается в соотвествии с инфологической моделью СУБД.
Датологическая модель экологических законов описывается в таблице №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
Описание функций программного приложения.
На нашей форме расположены следующие команды:
Описание формы и используемых компонентов.
Открыть 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='"+
Table2->Filtered = true;
Edit12->Text = Table2Nom_St->AsString;
Edit13->Text = Table2Name_St->AsString;
Edit14->Text = Table2Soderganie->AsString;
}
//----------------------------
void __fastcall TForm1::DBNavigator1Click(
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='"+
Table2->Filtered = true;
Edit12->Text = Table2Nom_St->AsString;
Edit13->Text = Table2Name_St->AsString;
Edit14->Text = Table2Soderganie->AsString;
}
//----------------------------
void __fastcall TForm1::RadioGroup1Click(
{
if (RadioGroup1->ItemIndex==0)
{ Table1->Filtered = false; Table2->Filtered = false; }
else
{
if (RadioGroup1->ItemIndex==1)
{
Table2->Filter="Name_Zak='"+
Table1->Filter="Nom_Zak='"+
}
else
if (RadioGroup1->ItemIndex==2)
{
Table2->Filter="Name_Zak='"+
Table1->Filter="Name_Zak='"+
}
else
{
Table1->Filtered = false;
Table1->Filter="(Kol_St>='"+
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='"+
Table2->Filtered = true;
Edit11->Text=IntToStr(
if(Edit4->Text>Edit11->Text)
IntToStr(CSpinEdit2->MaxValue)
Table1->Next();
}
Table1->Filter="(Kol_St>='"+
}
Edit1->Text = Table1Nom_Zak->AsString;
Edit2->Text = Table1Name_Zak->AsString;
Edit15->Text = Table1Data->AsString;
Информация о работе Учёт в экологическом законодательстве (База данных)