Автор работы: Пользователь скрыл имя, 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
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.
DataModule3.ADOCommand1.
if RadioGroup1.ItemIndex=0 then DataModule3.ADOCommand1.
else DataModule3.ADOCommand1.
DataModule3.ADOCommand1.
DataModule3.ADOCommand1.
DataModule3.ADOCommand1.
DataModule3.ADOCommand1.
DataModule3.ADOTable1.Close;
DataModule3.ADOTable4.Open;
DataModule3.ADOCommand8.
DataModule3.ADOCommand8.
DataModule3.ADOCommand8.
DataModule3.ADOCommand8.
if Edit8.Text<>''
then DataModule3.ADOCommand8.
else DataModule3.ADOCommand8.
DataModule3.ADOCommand8.
DataModule3.ADOTable4.Close;
DataModule3.ADOTable3.Open;
DataModule3.ADOCommand2.
DataModule3.ADOCommand2.
DataModule3.ADOCommand2.
DataModule3.ADOCommand3.
DataModule3.ADOCommand3.
DataModule3.ADOCommand3.
DataModule3.ADOCommand4.
DataModule3.ADOCommand4.
DataModule3.ADOCommand4.
DataModule3.ADOCommand5.
DataModule3.ADOCommand5.
DataModule3.ADOCommand5.
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.
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.
begin
s:=DataModule3.ADOTable3.
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.
begin
s:=DataModule3.ADOTable4.
s1:=DataModule3.ADOTable4.
s2:=DataModule3.ADOTable4.
KlName:=DataModule3.ADOTable4.
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.
begin
s:=DataModule3.ADOTable1.
s1:=DataModule3.ADOTable1.
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.
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.
begin
s:=DataModule3.ADOTable4.
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.
begin
s:=DataModule3.ADOTable3.
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.
ComboBox1.Items.Add(s);
DataModule3.ADOTable4.Next;
end;
end;
Программа обработки формы:
procedure TForm11.ComboBox1Change(
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.
begin
s:=DataModule3.ADOTable3.
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.
begin
s:=DataModule3.ADOTable4.
s1:=DataModule3.ADOTable4.
s2:=DataModule3.ADOTable4.
KlName:=DataModule3.ADOTable4.
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.
begin
s:=DataModule3.ADOTable1.
s1:=DataModule3.ADOTable1.
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
Срок действия договора
Менеджер Носова Инна Олеговна
Клиент Иванов Иван Иванович
Адрес Екатеринбург,пр.Космонавтов,д.
Паспортные данные 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.
ComboBox1.Items.Add(s);
DataModule3.ADOTable4.Next;
end;
end;
Программа обработки формы:
procedure TForm12.ComboBox1Change(
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.
begin
s:=DataModule3.ADOTable4.
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.