Автор работы: Пользователь скрыл имя, 30 Января 2013 в 21:44, курсовая работа
Разработана структура и реализована программа для дежурного АТС НИИКИ ОЭП. Программа позволяет заменить собой журнал регистрации номеров, журнал регистрации абонентов и журнал повреждений. В базе данных имеется 5 таблиц.
В главной таблице организован поиск, сортировка и фильтрация по новому и старому номерам. Также ввод и изменение данных защищен от неверных манипуляций пользователя (при вводе ФИО и названия корпуса разрешены только русские буквы и клавиша backspace, при вводе числовых значений разрешены только цифры и клавиша backspace).
МИНИСТЕРСТВО ОБРАЗОВАНИЯ РОССИЙСКОЙ ФЕДЕРАЦИИ
Государственное образовательное учреждение высшего профессионального образования
СЕВЕРО-ЗАПАДНЫЙ ГОСУДАРСТВЕННЫЙ
ЗАОЧНЫЙ ТЕХНИЧЕСКИЙ
Курсовая работа по дисциплине:
«Прикладное программирование»
Тема: Приложения для работы с локальными базами данных
Работу выполнил:
студент 4 курса СЗТУ
Специальность: 220201.65
Макагон Петр Владимирович
Шифр: 4420200014
Работу принял: Матюхин С. А.
Дата:
Подпись:
Сосновый Бор
2008
Курсовой проект выполнен по направлению: базы данных.
Разработана структура и реализована программа для дежурного АТС НИИКИ ОЭП. Программа позволяет заменить собой журнал регистрации номеров, журнал регистрации абонентов и журнал повреждений.
Общий вид программы:
В базе данных имеется 5 таблиц .
В главной таблице организован поиск, сортировка и фильтрация по новому и старому номерам.
Также ввод и изменение данных защищен от неверных манипуляций пользователя (при вводе ФИО и названия корпуса разрешены только русские буквы и клавиша backspace, при вводе числовых значений разрешены только цифры и клавиша backspace).
Таблица tNumbers является головной. В
двух её полях записаны старый и
новый номера. Она связана по принципу
Master-Detail отношением
”один к N” по полю Number с таблицами tKoord
(таблица Координаты) и tAdres (таблица Адрес
абонента).Также предусмотрены сортировка
по старому и новому номерам, поэтому проставлен
вторичный индекс.
Также предусмотена фильтрация и вывод на номеров по запросу пользователя.
Таблица tNumbers (Номера)
Таблицы tAdres (Адрес абонента) и tKoord(Координаты) служат для отображения пути выделенного номера и адреса абонента выделенного номера. В программе эти таблицы отображены компонентами DBEdit, которые отображают лишь информацию для выделенного номера.
Таблица tKoord
Таблица tAdres
В таблицу tZayavki записывается выделенный номер с данными об абоненте и тип повреждения на линии. Который добавляется в таблицу двойным щелчком по одному из типов повреждений в таблице tPovr. Это действие организовано с помошью связи LookUp.
Таблица tZayavki(Заявки)
Таблица tPovr (Тип повреждения)
При нажатии на один из пунктор элемента RadioGroup выбирается типа сортировки записей в головной таблице.Колонка по которому идет сортировка окрашивается в стлозелеый цвет.
Поиск осуществляется по вводимому значению старого или нового номера.
Ввод ограничен по максимальному и минимальному значениям, а также путем разрешения для использования цифровых клавиш и клавиши backspace. При отсутствии в таблице введенного значения появляется диалоговое окно, которое сообщает что введенного номера не найдено.
Программа позволяет добавлять и удалять записи из таблиц tNumbers, tKoord, tAdres.Причем во всех полях для ввода разрешены только опредеенные клавиши(в зависимости от типа записи).
При удалении появляется лиалоговое окно, которое показывает пользователю номер подлежащий удалению и просит подтвердить удаление.
Режим редактирования записей
При нажатии на клавишу “карта магистралей ” открывается форма fKarta с прикрепленным изображением схемы магистралей НИИКИ ОЭП. На ней форме имеется клавиша закрытия этой формы.
Форма fKarta
На основной форме проекта находится клавиша “О программе”, при нажатии на которую открывается форма f Inf.
Форма fInf
Листинг программы.
//----------------------------
#include <vcl.h>
#pragma hdrstop
#include "uKurs.h"
#include "uKarta.h"
#include "uInf.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)
{
tNumbers->Open();
tAdres->Open();
tKoord->Open();
tPovr->Open();
tZayavki->Open();
pChange->Visible=false;
}
//----------------------------
void __fastcall TForm1::rgSortClick(TObject *Sender)
{
switch (rgSort->ItemIndex)
{
case 0:
{
tNumbers->IndexName=""; //Сортировка по новому номеру
gNumbers->Columns->Items[0]->
gNumbers->Columns->Items[1]->
break;
}
case 1:
{
tNumbers->IndexName="
gNumbers->Columns->Items[0]->
gNumbers->Columns->Items[1]->
break;
}
}
}
//----------------------------
void __fastcall TForm1::bbExitClick(TObject *Sender)
{
tNumbers->FlushBuffers();
tNumbers->Close();
tAdres->Close();
tKoord->Close();
tPovr->Close();
tZayavki->Close();
Close();
//закрытие программы без потери данных
}
//----------------------------
void __fastcall TForm1::rgFiltrClick(TObject *Sender)
{
tNumbers->Filtered=true;
switch (rgFiltr->ItemIndex)
{
case 0:
{
tNumbers->Filter="(Number>='"+
break;
} //фильтрация по новому номеру
case 1:
{
tNumbers->Filter="(OldNumber>=
break;
}//фильтрация по старому номеру
case 2:
{
tNumbers->Filtered=False;
} // отмена фильтрации
}
}
//----------------------------
void __fastcall TForm1::csePoiskNChange(
{
TLocateOptions Regim;
Regim<<loPartialKey;
tNumbers->Locate("Number",
//Поиск по новому номеру
}
//----------------------------
void __fastcall TForm1::csePoiskONChange(
{
TLocateOptions Regim;
Regim<<loPartialKey;
tNumbers->Locate("OldNumber",
//Поиск по старому номеру
}
//----------------------------
void __fastcall TForm1::bPoiskNClick(TObject *Sender)
{
TLocateOptions Regim;
Regim<<loPartialKey;
tNumbers->Locate("Number",
if (! tNumbers->GotoKey())
ShowMessage("Запись не найдена");
//Поиск по новому номеру
}
//----------------------------
void __fastcall TForm1::bPoiskONClick(TObject *Sender)
{
TLocateOptions Regim;
Regim<<loPartialKey;
tNumbers->Locate("OldNumber",
if (! tNumbers->GotoKey())
ShowMessage("Запись не найдена");
//Поиск по старому номеру
}
//----------------------------
void __fastcall TForm1::bDobClick(TObject *Sender)
{
tNumbers->Insert();
tNumbers->FieldByName("Number"
tNumbers->FieldByName("
tNumbers->Post();
tAdres->Insert();
tAdres->FieldByName("Korp")->
tAdres->FieldByName("Floor")->
tAdres->FieldByName("Room")->
tAdres->FieldByName("Fam")->
tAdres->FieldByName("Name")->
tAdres->FieldByName("Otch")->
tAdres->Post();
tKoord->Insert();
tKoord->FieldByName("NMag")->
tKoord->FieldByName("NPara")->
tKoord->FieldByName("PMag")->
tKoord->FieldByName("PPara")->
tKoord->FieldByName("KMag")->
tKoord->FieldByName("KPara")->
tKoord->Post();
}
//----------------------------
void __fastcall TForm1::eNVKeyPress(TObject *Sender, char &Key)
{
if((Key>='0')&&(Key<='9')||(
//разрешен ввод только цифр и клавиши backspace
return;
else Key=0;
}
//----------------------------
void __fastcall TForm1::eONVKeyPress(TObject *Sender, char &Key)
{
if((Key>='0')&&(Key<='9')||(
//разрешен ввод только цифр и клавиши backspace
return;
else Key=0;
}
//----------------------------
void __fastcall TForm1::eNMagVKeyPress(TObject *Sender, char &Key)
{
if((Key>='0')&&(Key<='9')||(
//разрешен ввод только цифр и клавиши backspace
return;
else Key=0;
}
//----------------------------
void __fastcall TForm1::eNParaVKeyPress(
{
if((Key>='0')&&(Key<='9')||(
//разрешен ввод только цифр и клавиши backspace
return;
else Key=0;
}
//----------------------------
void __fastcall TForm1::ePMagVKeyPress(TObject *Sender, char &Key)
{
if((Key>='0')&&(Key<='9')||(
//разрешен ввод только цифр и клавиши backspace
return;
else Key=0;
}
//----------------------------
void __fastcall TForm1::ePParaVKeyPress(
{
if((Key>='0')&&(Key<='9')||(
//разрешен ввод только цифр и клавиши backspace
return;
else Key=0;
}
//----------------------------
void __fastcall TForm1::eKMagVKeyPress(TObject *Sender, char &Key)
{
if((Key>='0')&&(Key<='9')||(
//разрешен ввод только цифр и клавиши backspace
return;
else Key=0;
}
//----------------------------
void __fastcall TForm1::eFloorVKeyPress(
{
if((Key>='0')&&(Key<='9')||(
//разрешен ввод только цифр и клавиши backspace
return;
else Key=0;
}
//----------------------------
void __fastcall TForm1::eKParaVKeyPress(
{
if((Key>='0')&&(Key<='9')||(
//разрешен ввод только цифр и клавиши backspace
return;
else Key=0;
}
//----------------------------
void __fastcall TForm1::eFamVKeyPress(TObject *Sender, char &Key)
{
if((Key>='А')&&(Key<='я')||(
// разрешен ввод только русских букв и клавиши backspace
return;
else Key=0;
}
//----------------------------
void __fastcall TForm1::eNameVKeyPress(TObject *Sender, char &Key)
{
if((Key>='А')&&(Key<='я')||(
// разрешен ввод только русских букв и клавиши backspace
return;
else Key=0;
}
//----------------------------
void __fastcall TForm1::eOtchVKeyPress(TObject *Sender, char &Key)
{
if((Key>='А')&&(Key<='я')||(
// разрешен ввод только русских букв и клавиши backspace
return;
else Key=0;
}
//----------------------------
void __fastcall TForm1::csePoiskNKeyPress(
{
if((Key>='0')&&(Key<='9')||(Ke
//разрешен ввод только цифр и клавиши backspace
return;
else Key=0;
}
//----------------------------
void __fastcall TForm1::csePoiskONKeyPress(
{
if((Key>='0')&&(Key<='9')||(
//разрешен ввод только цифр и клавиши backspace
return;
else Key=0;
}
//----------------------------
void __fastcall TForm1::cseOtNKeyPress(TObject *Sender, char &Key)
{
if((Key>='0')&&(Key<='9')||(
//разрешен ввод только цифр и клавиши backspace
return;
else Key=0;
}
//----------------------------
void __fastcall TForm1::cseDoNKeyPress(TObject *Sender, char &Key)
{
if((Key>='0')&&(Key<='9')||(
//разрешен ввод только цифр и клавиши backspace
return;
else Key=0;
}
//----------------------------
void __fastcall TForm1::cseOtOldNKeyPress(
{
if((Key>='0')&&(Key<='9')||(
//разрешен ввод только цифр и клавиши backspace
return;
else Key=0;
}
//----------------------------
void __fastcall TForm1::cseDoOldNKeyPress(
{
if((Key>='0')&&(Key<='9')||(
//разрешен ввод только цифр и клавиши backspace
return;
else Key=0;
}
//----------------------------
void __fastcall TForm1::eRoomVKeyPress(TObject *Sender, char &Key)
{
if((Key>='0')&&(Key<='9')||(
//разрешен ввод только цифр и клавиши backspace
return;
else Key=0;
}
//----------------------------
void __fastcall TForm1::bChangeClick(TObject *Sender)
{
pChange->Visible=true;
bChange->Visible=false;
rgFiltr->Visible=false;
GroupBox1->Visible=false;
GroupBox6->Visible=false;
}
//----------------------------
void __fastcall TForm1::bCloseVClick(TObject *Sender)
{
pChange->Visible=false;
bChange->Visible=true;
rgFiltr->Visible=true;
GroupBox1->Visible=true;
GroupBox6->Visible=true;
}
//----------------------------
void __fastcall TForm1::bDelClick(TObject *Sender)
{
if (MessageDlg("Подтвердите удаление записи \n<"
+ tNumbers->FieldByName("Number"
mtConfirmation,TMsgDlgButtons(
tNumbers->Delete();
Информация о работе Приложения для работы с локальными базами данных