2.2       Машинная реализация

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

v   Операции:

-          Документы;

-          Фильтрация;

-          Поиск;

-          Просмотр;

v   Цвет фона

-          По умолчанию;

-          Черный;

-          Красный;

-          Синий;

-          Голубой;

-          Зеленый;

-          Желтый

v   Выход

Запускаем Borland C++ Builder. Создаем новое приложение File -> New -> Application. Далее появляется форма (Form1). Установим на нее компонент MainMenu из библиотеки Standart. Щелкаем на нее двойным щелчком, и появится окно для ввода меню. Введем в него наше выше перечисленное меню.


Рис. 2

Создаем новую форму (Form2) для ввода нового абонента, на которой будет осуществляться ввод нового абонента. Для этого устанавливаем на форму по 3 компоненты DataSourse, Table, DBGrid и DBNavigator. В компоненте Table устанавливаем свойства DataBaseName – Abonent, а TableName – abonent.db, kod_abon.db и n_doc.db; в компоненте DataSourse свойство DataSet – Table; в компоненте DBGrid свойство DataSourse – DataSourse1,2,3. Для управления перемещением используем компоненту DBNavigator, причем используем только кнопки перемещения, заблокировав остальные (VisibleButton).Для работы установим основное свойство DataSource - DataSource. Установим также две кнопки (TButton) для ввода и редактирования записей.

Для улучшения внешнего вида расставим метки (Label) отображающие названия полей нашей таблицы на приложении, а также настроим таблицу DBGrid. Для этого выполним двойной щелчок на компоненте Table, что приведет к открытию окна. Указав на поле окна, и нажав на правую кнопку мыши, выберем пункт «Добавить все поля». Используя свойства Alignment, DisplayLabel (заголовок столбца), DisplayWidth (ширина столбца), DisplayValues(отображаемые значения), ReadOnly (только для чтения), Visible (видимость поля), делаем настройку окна приложения.

Для фильтрации данных мы создаем новую форму File -> New -> Form3. Далее устанавливаем на форму компоненты DataSourse, Table, DBGrid, DBNavigator, RadioGroup, Label, 2 компоненты Edit,.

Устанавливаем следующие свойства:

·      В компоненте DataSourse1: DataSet – Table1;

·      В компоненте Table1: DatabaseName - Abonent; TableName – abonent.db;

·      В компоненте DBGrid: DataSourse - DataSourse1;

·      В компоненте DBNavigator: DataSourse – DataSourse1;

·      В компоненте Label: Caption – “ Фильтрация данных”;

Далее в компоненте Table1 делаем свойство Active равным True.

Для поиска данных мы создаем новую форму File -> New -> Form3. Далее устанавливаем на форму компоненты DataSourse, Table, DBGrid, DBNavigator, Label и Edit.

Устанавливаем следующие свойства:

·      В компоненте DataSourse1: DataSet – Table1

·      В компоненте Table1: DatabaseName - Abonent; TableName – kod_abon.db

·      В компоненте DBGrid: DataSourse - DataSourse1

·      В компоненте DBNavigator: DataSourse - DataSourse1

·      В компоненте Label: Caption – “Поиск данных”

Далее в компоненте Table1 делаем свойство Active равным True.

Для печати и просмотра списка абонентов создаем новую форму File -> New -> Form5. В окно формы установим следующие компоненты: Table (DatabaseName - Abonent; TableName – kod_abon.db); QuickRep (DataSet – Table1); DataSourse (DataSet – Table1).

На верхней строке отчета размещаем компоненту QRSysData. В свойстве Data устанавливаем qrsData. C помощью QRLabel делаем заголовок (Caption – “Список абонентов”). Далее в отчет перенесем компоненту QRSubDetail, которая осуществляет циклический вывод записей на печать. Вставляем компоненты QRDText и задаем им свойства DataSet и DataField – Table1, и имена соответствующих полей, с помощью QRLabel.

Далее создаем главную форму, с которой будет вызываться модуль печати. Перенесем на форму две компоненты Button, обозначим их как «Печать» и «Просмотр». Выполним команду Alt+F11, выберем модуль формы нашего отчета и нажмем «ОК».

2.3      Описание работы программы

На диске D находим папку «Наида» Щелкаем дважды на файле Project1.exe. Откроется главное окно нашей программы:

·          Для ввода нового абонента открываем пункт меню Операции -> Документы. Перед нами откроется форма. Для того чтобы ввести данные о новом абоненте нажимаем на кнопку «Вставить». Появится новая строка. После ввода нажимаем кнопку «Записать». Подтверждаем изменения кнопкой «Ок».


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


Для того, чтобы профильтровать данные по дате выдачи и по коду абонента, выбираем команду Операции -> Фильтрация.

·          Для просмотра или печати нужного нам документа выполняем команду Документы -> Просмотр и печать …. Кликаем на документ и перед нами открывается окно. Для просмотра списка нажимаем на кнопку «Просмотр», а для печати – «Печать».



·          Для просмотра справки нажимаем на пункт меню «Справка»

·          Для выхода из программы нажимаем на пункт меню «Выход»


Заключение

В данном курсовом проекте я ознакомилась с возможностями С++ Вuilder, как системы управления базами данных разработанной мною программы “Учет абонентов библиотеки ”.

Также здесь разрабатывается база данных, в которой хранится и обрабатывается информация об учете абонентов.

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

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


Литература

1.    Курс лекций по дисциплине “Базы данных”

2.    Диго С..М. «Проектирование и использование БД». 1991 г.

3.    Хеннер Е.К., Могилев А.В., Пак Н.И. «Информатика». М.: «Учебное пособие для студентов пед. вузов», 1999 г.

4.    Основы языка С++ Builder 2004 г.

5.    Наумов А.Н «Системы управления базами данных и знаний» 1991 г.


Программа

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

#include <vcl.h>

#pragma hdrstop

#include "Unit11.h"

#include "Unit1.h"

#include "Unit10.h"

#include "Unit2.h"

#include "Unit3.h"

#include "Unit4.h"

#include "Unit5.h"

#include "Unit6.h"

#include "Unit7.h"

#include "Unit8.h"

#include "Unit9.h"

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

#pragma package(smart_init)

#pragma resource "*.dfm"

TForm1 *Form1;

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

__fastcall TForm1::TForm1(TComponent* Owner)

: TForm(Owner)

{

}

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

void __fastcall TForm1::N4Click(TObject *Sender)

{

Form1->Hide();

Form2->Show();

}

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

void __fastcall TForm1::N5Click(TObject *Sender)

{

Form1->Hide();

Form3->Show();

}

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

void __fastcall TForm1::N6Click(TObject *Sender)

{

Form1->Hide();

Form4->Show();

}

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

void __fastcall TForm1::N7Click(TObject *Sender)

{

Form1->Hide();

Form5->Show();

}

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

void __fastcall TForm1::N8Click(TObject *Sender)

{

Form1->Color=clBtnFace;

N8->Checked=true;

N9->Checked=false;

N10->Checked=false;

N11->Checked=false;

N12->Checked=false;

N13->Checked=false;

N14->Checked=false;

}

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

void __fastcall TForm1::N9Click(TObject *Sender)

{

Form1->Color=clBlack;

N8->Checked=false;

N9->Checked=true;

N10->Checked=false;

N11->Checked=false;

N12->Checked=false;

N13->Checked=false;

N14->Checked=false;

}

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

void __fastcall TForm1::N10Click(TObject *Sender)

{

Form1->Color=clRed;

N8->Checked=false;

N9->Checked=false;

N10->Checked=true;

N11->Checked=false;

N12->Checked=false;

N13->Checked=false;

N14->Checked=false;

}

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

void __fastcall TForm1::N11Click(TObject *Sender)

{

Form1->Color=clBlue;

N8->Checked=false;

N9->Checked=false;

N10->Checked=false;

N11->Checked=true;

N12->Checked=false;

N13->Checked=false;

N14->Checked=false;

}

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

void __fastcall TForm1::N12Click(TObject *Sender)

{

Form1->Color=clSkyBlue;

N8->Checked=false;

N9->Checked=false;

N10->Checked=false;

N11->Checked=false;

N12->Checked=true;

N13->Checked=false;

N14->Checked=false;

}

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

void __fastcall TForm1::N13Click(TObject *Sender)

{

Form1->Color=clGreen;

N8->Checked=false;

N9->Checked=false;

N10->Checked=false;

N11->Checked=false;

N12->Checked=false;

N13->Checked=true;

N14->Checked=false;

}

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

void __fastcall TForm1::N14Click(TObject *Sender)

{

Form1->Color=clYellow;

N8->Checked=false;

N9->Checked=false;

N10->Checked=false;

N11->Checked=false;

N12->Checked=false;

N13->Checked=false;

N14->Checked=true;

}

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

void __fastcall TForm1::N3Click(TObject *Sender)

{

Form1->Close();

}

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

void __fastcall TForm1::N15Click(TObject *Sender)

{

Form1->Hide();

Form11->Show();

}

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

void __fastcall TForm1::N2Click(TObject *Sender)

{

Form1->Hide();

Form5->Show();

}

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

void __fastcall TForm2::FormCreate(TObject *Sender)

{

Edit1->Text = Table1D_vidachi->AsString;

Edit2->Text = Table1N_doc->AsString;

Edit3->Text = Table1D_vozvrata->AsString;

Edit4->Text = Table1Flag_vozvrata->AsString;

Edit5->Text = Table1Shtraf->AsString;

Edit7->Text = Table2Kod_abon->AsString;

Edit8->Text = Table2Fam->AsString;

Edit9->Text = Table2Im->AsString;

Edit10->Text = Table2Otch->AsString;

Edit11->Text = Table2D_R->AsString;

Edit12->Text = Table2Adres->AsString;

Edit15->Text = Table3N_doc->AsString;

Edit16->Text = Table3Nazvanie->AsString;

Edit17->Text = Table3Avtor->AsString;

Edit18->Text = Table3Izdatelstvo->AsString;

Edit19->Text = Table3God_izdaniya->AsString;

}

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

void __fastcall TForm2::ArialBlack1Click(TObject *Sender)

{

Form2->Font->Name="Arial Black";

ArialBlack1->Checked=true;

TimesNewRoman1->Checked=false;

Cambria1->Checked=false;

Colibri1->Checked=false;

Monotypecorsiva1->Checked=false;

}

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

void __fastcall TForm2::TimesNewRoman1Click(TObject *Sender)

{

Form2->Font->Name="Times New Roman";

TimesNewRoman1->Checked=true;

ArialBlack1->Checked=false;

Cambria1->Checked=false;

Colibri1->Checked=false;

Monotypecorsiva1->Checked=false;

}

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

void __fastcall TForm2::Monotypecorsiva1Click(TObject *Sender)

{

Form2->Font->Name="Monotype Corsiva";

TimesNewRoman1->Checked=false;

ArialBlack1->Checked=false;

Cambria1->Checked=false;

Colibri1->Checked=false;

Monotypecorsiva1->Checked=true;

}

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

void __fastcall TForm2::Colibri1Click(TObject *Sender)

{

Form2->Font->Name="Colibri";

TimesNewRoman1->Checked=false;

ArialBlack1->Checked=false;

Cambria1->Checked=false;

Colibri1->Checked=true;

Monotypecorsiva1->Checked=false;

}

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

void __fastcall TForm2::Cambria1Click(TObject *Sender)

{

Form2->Font->Name="Cambria";

TimesNewRoman1->Checked=false;

ArialBlack1->Checked=false;

Cambria1->Checked=true;

Colibri1->Checked=false;

Monotypecorsiva1->Checked=false;

}

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

void __fastcall TForm2::Table1AfterScroll(TDataSet *DataSet)

{

Edit1->Text = Table1D_vidachi->AsString;

Edit2->Text = Table1N_doc->AsString;

Edit3->Text = Table1D_vozvrata->AsString;

Edit4->Text = Table1Flag_vozvrata->AsString;

Edit5->Text = Table1Shtraf->AsString;

}

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

void __fastcall TForm2::Button1Click(TObject *Sender)

{

AnsiString s;

const AnsiString s1=", ";

s="";

if (Table1D_vidachi->AsString!= Edit1->Text)

{

if (s !="") s+=s1;

s+= "Дата выдачи";

}

if(Table1N_doc->AsString!=Edit2->Text)

{

if (s !="") s+=s1;

s+="Номер документа";

}

if(Table1D_vozvrata->AsString!=Edit3->Text)

{

if (s !="") s+=s1;

s+="Дата возврата";

}

if(Table1Flag_vozvrata->AsString!=Edit4->Text)

{

if (s !="") s+=s1;

s+="Флаг возврата";

}

if(Table1Shtraf->AsString!=Edit5->Text)

{

if (s !="") s+=s1;

s+="Штраф";

}

if (s !="")

{

if ( Application->MessageBox(

("Действительно хотите ввести новые данные?"+s+"?").c_str(),

"Подтвердите изменение",

MB_YESNO+MB_ICONQUESTION)==IDYES)

{

Table1->Edit();

Edit1->Text = Table1D_vidachi->AsString;

Edit2->Text = Table1N_doc->AsString;

Edit3->Text = Table1D_vozvrata->AsString;

Edit4->Text = Table1Flag_vozvrata->AsString;

Edit5->Text = Table1Shtraf->AsString;

Table1->Post(); //запись данных

}}

}

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

void __fastcall TForm2::Button2Click(TObject *Sender)

{

Table1->Insert();

}

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

void __fastcall TForm2::Button3Click(TObject *Sender)

{

if ( Application->MessageBox(

"Действительно хотите удалить запись?",

"Подтвердите решение",

MB_YESNO+MB_ICONEXCLAMATION)==IDYES)

Table1->Delete(); // удаление данных

}

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

void __fastcall TForm2::N16Click(TObject *Sender)

{

Form2->Hide();

Form5->Show();

}

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

void __fastcall TForm2::DBNavigator1Click(TObject *Sender,

TNavigateBtn Button)

{

Edit1->Text = Table1D_vidachi->AsString;

Edit2->Text = Table1N_doc->AsString;

Edit3->Text = Table1D_vozvrata->AsString;

Edit4->Text = Table1Flag_vozvrata->AsString;

Edit5->Text = Table1Shtraf->AsString;

}

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

void __fastcall TForm3::RadioGroup1Click(TObject *Sender)

{

if (RadioGroup1->ItemIndex==0)

Table1->Filtered = false;

else

{

if (RadioGroup1->ItemIndex==1)

Table1->Filter="D_vidachi='"+ComboBox1->Text+"'";

else

{

if (RadioGroup1->ItemIndex==2)

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

Table1->Filtered = true;

}

} // фильтрация данных

}

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

void __fastcall TForm3::ComboBox1Change(TObject *Sender)

{

if (RadioGroup1->ItemIndex==1)

Table1->Filtered = false;

else

{

if (RadioGroup1->ItemIndex==1)

Table1->Filter="D_vidachi='"+ComboBox1->Text+"'";

else

{

if (RadioGroup1->ItemIndex==2)

Table1->Filter="D_vozvrata='"+ComboBox2->Text+"'";}

{

Table1->Filtered = false;

Table1->Filter="(D_vidachi='"+ComboBox1->Text+"')";

Table1->Filtered = true;

Edit1->Text = Table1D_vidachi->AsString;

Edit2->Text = Table1N_doc->AsString;

Edit3->Text = Table1D_vozvrata->AsString;

Edit4->Text = Table1Flag_vozvrata->AsString;

Edit5->Text = Table1Shtraf->AsString;

}}

}

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

void __fastcall TForm3::ComboBox2Change(TObject *Sender)

{

if (RadioGroup1->ItemIndex==2)

Table1->Filtered = false;

else

{

if (RadioGroup1->ItemIndex==1)

Table1->Filter="D_vidachi='"+ComboBox1->Text+"'";

else

{

if (RadioGroup1->ItemIndex==2)

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

{

Table1->Filtered = false;

Table1->Filter="(D_vozvrata='"+ComboBox2->Text+"')";

Table1->Filtered = true;

Edit1->Text = Table1D_vidachi->AsString;

Edit2->Text = Table1N_doc->AsString;

Edit3->Text = Table1D_vozvrata->AsString;

Edit4->Text = Table1Flag_vozvrata->AsString;

Edit5->Text = Table1Shtraf->AsString; }

}}

}

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

void __fastcall TForm3::Table1AfterScroll(TDataSet *DataSet)

{

Edit1->Text = Table1D_vidachi->AsString;

Edit2->Text = Table1N_doc->AsString;

Edit3->Text = Table1D_vozvrata->AsString;

Edit4->Text = Table1Flag_vozvrata->AsString;

Edit5->Text = Table1Shtraf->AsString;

}

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

void __fastcall TForm4::Button2Click(TObject *Sender)

{

TLocateOptions SearchOptions;

Table1->Locate("Fam",Edit2->Text,SearchOptions

<<loPartialKey<<loCaseInsensitive);

}

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

void __fastcall TForm4::Button1Click(TObject *Sender)

{

TLocateOptions SearchOptions;

Table1->Locate("Kod_abon",Edit3->Text,SearchOptions

<<loPartialKey<<loCaseInsensitive);

}

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

void __fastcall TForm4::FormCreate(TObject *Sender)

{

Edit7->Text = Table1Kod_abon->AsString;

Edit8->Text = Table1Fam->AsString;

Edit9->Text = Table1Im->AsString;

Edit10->Text = Table1Otch->AsString;

Edit11->Text = Table1D_R->AsString;

Edit12->Text = Table1Adres->AsString;

}

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

void __fastcall TForm5::Button1Click(TObject *Sender)

{

if ( Application->MessageBox(

"Вы действительно хотите вывести на пeчать этот список?",

"Потвердите решение",

MB_YESNO+MB_ICONEXCLAMATION)==IDYES)

{Form6->QuickRep1->Print(); }

}

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

void __fastcall TForm5::Button2Click(TObject *Sender)

{

Form6->QuickRep1->Preview();

}

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



Информация о работе «Автоматизированная система учета абонентов библиотеки»
Раздел: Информатика, программирование
Количество знаков с пробелами: 39579
Количество таблиц: 7
Количество изображений: 13

Похожие работы

Скачать
57700
0
11

... , содержащей в себе ведения книжного фонда, регистрация каталога и выдача книг, а также регистрация читателей. Для разработки автоматизированной системы была проектирована инфологическая модель БД библиотечного фонда "Национальной библиотеки им. В.И. Вернадского" и проведен анализ связей между основными объектами данной инфологической модели. Для реализации автоматизированной системы осуществлен ...

Скачать
172056
0
5

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

Скачать
162263
0
0

... улучшить справочно -библиографическую работу, повысить уровень поисковых возможностей, но и усовершенствовать издательскую деятельность. Состояние и проблемы автоматизации в вузовских библиотеках Урала. В уральском регионе насчитывается 49 вузовских библиотек, которые расположены в 14 городах 6 областей (Курганской, Оренбургской, Пермской, Свердловской, Тюменской, Челябинской). Компьютерная ...

Скачать
34158
4
0

... агентского договора с Ростелекомом. Со временем станет возможной интеграция баз данных биллинговой системы и технического учета, что значительно ускорит и сделает более качественным обслуживание потенциальных абонентов.   1.5. Обоснование проектных решений по автоматизированному решению экономико-информационных задач Федеральная служба по тарифам Российской Федерации 14 ноября 2006 года ...

0 комментариев


Наверх