Курсовая работа: Автоматизированная система учета абонентов библиотеки
Для фильтрации данных мы создаем новую форму 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();
}
//---------------------------------------------------------------------------