Разработка приложений для баз данных

Автор работы: Пользователь скрыл имя, 10 Марта 2013 в 13:19, курсовая работа

Описание

Цель курсовой работы - закрепление знаний и умений, полученных на лекционных и практических занятиях при изучении дисциплин «Базы данных» и «Разработка приложений для баз данных».
Задача курсовой работы - разработка законченного программного модуля автоматизированной системы обработки информации и управления.

Содержание

1. Описание предметной области 4
2. Описание системы 5
а) Реляционная модель данных 5
б) Таблица атрибутов 6
3. Проектирование базы данных 7
а) ER-диаграмма 7
б) Диаграмма экземпляров 7
в) Схема таблиц и связей 8
г) Проверка на НФБК 8
д) Концептуальная схема базы данных 9
е) Ссылочная целостность 9
ж) Реализация SQL-команд 10
4) Архитектура системы 11
а) Архитектура СУБД 11
б) СУБД 12
в) Метод связи приложения и базы данных 12
г) Язык программирования 13
5) Разработка программы 14
а) Разработка меню 14
б) Разработка пункта «Справочники» 15
в) Разработка пункта «Запросы» 17
г) Разработка пункта «Отчеты» 25
6) Список использованной литературы 29

Работа состоит из  1 файл

курсовая.doc

— 900.00 Кб (Скачать документ)

end;

 

ComboBox3.Items.Clear;

ComboBox3.Items.Add('Семья');

ComboBox3.Items.Add('Хочу сказать');

ComboBox3.Items.Add('Максимум');

ComboBox3.Items.Add('Монстр общения');

end;

Программируем кнопку «Добавить»:

procedure TForm7.Button1Click(Sender: TObject);

var i:integer;

    s:string;

begin

DataModule3.ADOTable1.Open;

DataModule3.ADOCommand1.Parameters.ParamByName('fio').Value:=edit1.text;

DataModule3.ADOCommand1.Parameters.ParamByName('dr').Value:=edit2.text;

if RadioGroup1.ItemIndex=0 then DataModule3.ADOCommand1.Parameters.ParamByName('pol').Value:='м'

                          else DataModule3.ADOCommand1.Parameters.ParamByName('pol').Value:='ж';

DataModule3.ADOCommand1.Parameters.ParamByName('ad').Value:=edit3.text;

DataModule3.ADOCommand1.Parameters.ParamByName('mail').Value:=edit4.text;

DataModule3.ADOCommand1.Parameters.ParamByName('pasp').Value:=edit5.text;

DataModule3.ADOCommand1.Execute;

DataModule3.ADOTable1.Close;

DataModule3.ADOTable4.Open;

DataModule3.ADOCommand8.Parameters.ParamByName('kl').Value:=edit1.text;

DataModule3.ADOCommand8.Parameters.ParamByName('tel').Value:=ComboBox2.text;

DataModule3.ADOCommand8.Parameters.ParamByName('men').Value:=ComboBox1.text;

DataModule3.ADOCommand8.Parameters.ParamByName('zak').Value:=Edit7.Text;

if Edit8.Text<>''

then DataModule3.ADOCommand8.Parameters.ParamByName('deist').Value:=Edit8.Text

else DataModule3.ADOCommand8.Parameters.ParamByName('deist').Value:=Null;

DataModule3.ADOCommand8.Execute;

DataModule3.ADOTable4.Close;

 

DataModule3.ADOTable3.Open;

DataModule3.ADOCommand2.Parameters.ParamByName('tar').Value:=ComboBox3.Text;

DataModule3.ADOCommand2.Parameters.ParamByName('tel').Value:=ComboBox2.Text;

DataModule3.ADOCommand2.Execute;

DataModule3.ADOCommand3.Parameters.ParamByName('sost').Value:=Edit6.Text;

DataModule3.ADOCommand3.Parameters.ParamByName('tel').Value:=ComboBox2.Text;

DataModule3.ADOCommand3.Execute;

DataModule3.ADOCommand4.Parameters.ParamByName('dost').Value:=ComboBox4.Text;

DataModule3.ADOCommand4.Parameters.ParamByName('tel').Value:=ComboBox2.Text;

DataModule3.ADOCommand4.Execute;

DataModule3.ADOCommand5.Parameters.ParamByName('vyst').Value:=ComboBox5.Text;

DataModule3.ADOCommand5.Parameters.ParamByName('tel').Value:=ComboBox2.Text;

DataModule3.ADOCommand5.Execute;

DataModule3.ADOTable3.Close;

 

end;

Заполненная форма «Подключение»  имеет вид:

До нажатия кнопки «Добавить» таблицы базы данных имеют  вид:

После нажатия кнопки «Добавить» таблицы имеют вид:

С таблицей «Менеджер» изменений  не происходит.

Форма «Договор» нужна для извлечения необходимых данных из таблиц базы, для составления типичного договора.

В событиях формы Form8 указываем для событий OnCreate и OnActivate = FormCreate. Прописываем эту процедуру:

procedure TForm8.FormCreate(Sender: TObject);

var s:string;

begin

DataModule3.ADOTable4.Open;

DataModule3.ADOTable4.First;

ComboBox1.Items.Clear;

while not  DataModule3.ADOTable4.Eof do

     begin

     s:=DataModule3.ADOTable4.FieldByName('№ телефона').Text;

     ComboBox1.Items.Add(s);

     DataModule3.ADOTable4.Next;

     end;

end;

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

procedure TForm8.ComboBox1Change(Sender: TObject);

var s,s1,s2,KlName:string;

begin

DataModule3.ADOTable3.Open;

DataModule3.ADOTable3.First;

while not  DataModule3.ADOTable3.Eof do

     begin

     if DataModule3.ADOTable3.FieldByName('№ телефона').Text=ComboBox1.Text then

        begin

        s:=DataModule3.ADOTable3.FieldByName('№ sim').Text;

        Break;

        end;

     DataModule3.ADOTable3.Next;

     end;

Label3.Caption:=s;

 

DataModule3.ADOTable4.Open;

DataModule3.ADOTable4.First;

while not  DataModule3.ADOTable4.Eof do

     begin

     if DataModule3.ADOTable4.FieldByName('№ телефона').Text=ComboBox1.Text then

       begin

        s:=DataModule3.ADOTable4.FieldByName('Дата заключения договора').Text;

        s1:=DataModule3.ADOTable4.FieldByName('Срок действия договора').Text;

        s2:=DataModule3.ADOTable4.FieldByName('Менеджер').Text;

        KlName:=DataModule3.ADOTable4.FieldByName('Клиент').Text;

        Break;

        end;

     DataModule3.ADOTable4.Next;

     end;

Label5.Caption:=s;

Label7.Caption:=s1;

Label9.Caption:=s2;

Label12.Caption:=KlName;

 

DataModule3.ADOTable1.Open;

DataModule3.ADOTable1.First;

while not  DataModule3.ADOTable1.Eof do

     begin

     if DataModule3.ADOTable1.FieldByName('ФИО').Text=KlName then

        begin

        s:=DataModule3.ADOTable1.FieldByName('Адрес').Text;

        s1:=DataModule3.ADOTable1.FieldByName('Паспортные данные').Text;

        Break;

        end;

     DataModule3.ADOTable1.Next;

     end;

Label14.Caption:=s;

Label16.Caption:=s1;

end;

При выборе номера телефона в поле ComboBox1 происходит автоматическое заполнение полей Label. При этом форма выглядит так:

Изменений данных в базе не происходит.

Форма «Счет» нужна для  извлечения необходимых данных из таблиц базы, для составления предъявляемого счета.

В событиях формы Form9 указываем для событий OnCreate и OnActivate = FormCreate. Прописываем эту процедуру:

procedure TForm9.FormCreate(Sender: TObject);

var s:string;

begin

DataModule3.ADOTable4.Open;

DataModule3.ADOTable4.First;

ComboBox1.Items.Clear;

while not  DataModule3.ADOTable4.Eof do

     begin

     s:=DataModule3.ADOTable4.FieldByName('№ телефона').Text;

     ComboBox1.Items.Add(s);

     DataModule3.ADOTable4.Next;

     end;

end;

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

procedure TForm9.ComboBox1Change(Sender: TObject);

var s:string;

begin

DataModule3.ADOTable4.Open;

DataModule3.ADOTable4.First;

while not  DataModule3.ADOTable4.Eof do

     begin

     if DataModule3.ADOTable4.FieldByName('№ телефона').Text=ComboBox1.Text then

        begin

        s:=DataModule3.ADOTable4.FieldByName('Клиент').Text;

        Break;

        end;

     DataModule3.ADOTable4.Next;

     end;

Label4.Caption:=s;

 

DataModule3.ADOTable3.Open;

DataModule3.ADOTable3.First;

while not  DataModule3.ADOTable3.Eof do

     begin

     if DataModule3.ADOTable3.FieldByName('№ телефона').Text=ComboBox1.Text then

        begin

        s:=DataModule3.ADOTable3.FieldByName('Состояние счета').Text;

        Break;

        end;

     DataModule3.ADOTable3.Next;

     end;

Label6.Caption:=s;

end;

Изменений в базу данных она так же не вносит и выглядит следующим образом:

 

Разработка  пункта «Отчеты»

3-й пункт «Отчеты»  главного меню содержит пункты  выпадающего меню: «Договор», «Счет»:

Эти формы выводят  в документы MS OfficeWord договор и счет по образцу предыдущих форм из пункта главного меню «Запросы», поэтому их коды аналогичны приведенным выше.

В событиях формы Form11 («Договор») указываем для событий OnCreate и OnActivate = FormCreate. Прописываем эту процедуру:

procedure TForm11.FormCreate(Sender: TObject);

var s:string;

begin

DataModule3.ADOTable4.Open;

DataModule3.ADOTable4.First;

ComboBox1.Items.Clear;

while not  DataModule3.ADOTable4.Eof do

     begin

     s:=DataModule3.ADOTable4.FieldByName('№ телефона').Text;

     ComboBox1.Items.Add(s);

     DataModule3.ADOTable4.Next;

     end;

end;

Программа обработки формы:

procedure TForm11.ComboBox1Change(Sender: TObject);

var TF:TextFile;

    s,s1,s2,KlName:string;

begin

AssignFile(TF,'dogovor.doc');

Rewrite(TF);

DataModule3.ADOTable3.Open;

DataModule3.ADOTable3.First;

while not DataModule3.ADOTable3.Eof do

     begin

     if DataModule3.ADOTable3.FieldByName('№ телефона').Text=ComboBox1.Text then

        begin

        s:=DataModule3.ADOTable3.FieldByName('№ sim').Text;

        Break;

        end;

     DataModule3.ADOTable3.Next;

     end;

WriteLn(TF,'№ телефона '+ComboBox1.Text);

WriteLn(TF,'№ sim '+s);

 

DataModule3.ADOTable4.Open;

DataModule3.ADOTable4.First;

while not  DataModule3.ADOTable4.Eof do

     begin

     if DataModule3.ADOTable4.FieldByName('№ телефона').Text=ComboBox1.Text then

        begin

        s:=DataModule3.ADOTable4.FieldByName('Дата заключения договора').Text;

        s1:=DataModule3.ADOTable4.FieldByName('Срок действия договора').Text;

        s2:=DataModule3.ADOTable4.FieldByName('Менеджер').Text;

        KlName:=DataModule3.ADOTable4.FieldByName('Клиент').Text;

        Break;

        end;

     DataModule3.ADOTable4.Next;

     end;

WriteLn(TF,'Дата заключения  договора '+s);

WriteLn(TF,'Срок действия договора '+s1);

WriteLn(TF,'Менеджер '+s2);

WriteLn(TF,'Клиент '+KlName);

 

DataModule3.ADOTable1.Open;

DataModule3.ADOTable1.First;

while not  DataModule3.ADOTable1.Eof do

     begin

     if DataModule3.ADOTable1.FieldByName('ФИО').Text=KlName then

        begin

        s:=DataModule3.ADOTable1.FieldByName('Адрес').Text;

        s1:=DataModule3.ADOTable1.FieldByName('Паспортные данные').Text;

        Break;

        end;

     DataModule3.ADOTable1.Next;

     end;

WriteLn(TF,'Адрес '+s);

WriteLn(TF,'Паспортные данные '+s1);

WriteLn(TF,'Подпись_____________ ');

 

CloseFile(TF);

end;

Результат выполнения процедуры выводится в предварительно созданный документ dogovor.doc и содержит следующую информацию:

№ телефона 9095678745

№ sim 2345678098765433456

Дата заключения договора 11.11.1812

Срок действия договора

Менеджер Носова Инна Олеговна

Клиент Иванов Иван Иванович

Адрес Екатеринбург,пр.Космонавтов,д.170,кв.1

Паспортные данные 6607115678

Подпись_____________

А сама форма выглядит так:

В событиях формы Form12 («Счет») указываем для событий OnCreate и OnActivate = FormCreate. Прописываем эту процедуру:

procedure TForm12.FormCreate(Sender: TObject);

var s:string;

begin

DataModule3.ADOTable4.Open;

DataModule3.ADOTable4.First;

ComboBox1.Items.Clear;

while not  DataModule3.ADOTable4.Eof do

     begin

     s:=DataModule3.ADOTable4.FieldByName('№ телефона').Text;

     ComboBox1.Items.Add(s);

     DataModule3.ADOTable4.Next;

     end;

end;

Программа обработки формы:

procedure TForm12.ComboBox1Change(Sender: TObject);

var TF:TextFile;

    s,s1,s2,KlName:string;

begin

AssignFile(TF,'schet.doc');

Rewrite(TF);

DataModule3.ADOTable4.Open;

DataModule3.ADOTable4.First;

while not  DataModule3.ADOTable4.Eof do

     begin

     if DataModule3.ADOTable4.FieldByName('№ телефона').Text=ComboBox1.Text then

        begin

        s:=DataModule3.ADOTable4.FieldByName('Клиент').Text;

        Break;

        end;

     DataModule3.ADOTable4.Next;

     end;

WriteLn(TF,'Клиент '+s);

WriteLn(TF,'№ телефона '+ComboBox1.Text);

 

DataModule3.ADOTable3.Open;

DataModule3.ADOTable3.First;

while not  DataModule3.ADOTable3.Eof do

     begin

     if DataModule3.ADOTable3.FieldByName('№ телефона').Text=ComboBox1.Text then

Информация о работе Разработка приложений для баз данных