Результат тестирования информационной системы

Автор работы: Пользователь скрыл имя, 29 Апреля 2013 в 14:55, курсовая работа

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

В данном курсовом проекте была разработана база данных в СУБД Microsoft SQL Server 2000 для автоматизированного учета пассажирских перевозок. Для этого нужна общая база данных, включающая всю необходимую информацию. Мощность базы данных обусловлена возможностью ее постоянного пополнения новыми данными, причем в неограниченном количестве информации. Это является очень удобным для пользователя. Таким образом, создание базы данных, обладающей такими свойствами, задача достаточно актуальная и полезная. Программа, работающая с БД, позволяет вести учет водителей, автобусов, маршрутов.
Пользователями базы данных выступают специалисты автовокзала. Для доступа к БД необходимо ввести пароль.

Содержание работы

Введение
4
1 Техническое задание
5
1.1 Анализ предметной области
5
1.2 Постановка задачи
9
2 Технический проект информационной системы
10
2.1 Функциональная модель
10
2.1.1 Контекстная диаграмма и диаграммы детализации процессов
10
2.1.2 Диаграмма дерева узлов
14
2.2 Информационная модель
15
2.2.1 Идентификация сущностей и связей. ER-диаграмма логического уровня
15
2.2.2 ER-диаграмма физического уровня. Ограничения ссылочной целостности. Определение триггеров
16
2.2.3 Определение представлений, хранимых процедур серверной компоненты
19
2.3 Верификация спроектированной логической модели
21
3 Реализация системы
23
3.1 T-SQL-определения регламентированных запросов
23
3.2 T-SQL-определения триггеров
24
3.3 T-SQL-определения хранимых процедур
30
3.4 T-SQL-определения курсоров
33
3.5 Описание клиентских приложений
34
4 Результат тестирования информационной системы
49
Заключение
50
Список использованных источников

Файлы: 1 файл

3Пример-Библиотека.doc

— 3.43 Мб (Скачать файл)

DBGrid1.DataSource:=DataSource2;

end;

procedure TForm2.a121Click(Sender: TObject);

begin

Datasource1.DataSet.Active:=false;

DataSource3.DataSet.Active:=true;

DBGrid1.DataSource:=DataSource3;

end;

procedure TForm2.N2Click(Sender: TObject);

begin

Datasource4.DataSet.Active:=false;

Datasource1.DataSet.Active:=true;

DBGrid1.DataSource:=DataSource1;

end;

procedure TForm2.Button3Click(Sender: TObject);

begin

ADOStoredProc1.Parameters.ParamByName('@Telefon').Value:=DBLookupComboBox3.Text;

ADOStoredProc1.Active:=true;

Datasource1.DataSet.Active:=false;

DataSource4.DataSet.Active:=true;

DBGrid1.DataSource:=DataSource4;

end;

procedure TForm2.Button1Click(Sender: TObject);

begin

ADOStoredProc3.Parameters.ParamByName('@Pasportnie_dannie').Value:=DBLookupComboBox2.Text;

ADOStoredProc3.Active:=true;

Datasource1.DataSet.Active:=false;

DataSource6.DataSet.Active:=true;

DBGrid1.DataSource:=DataSource6;

end;

procedure TForm2.Button4Click(Sender: TObject);

begin

ADOStoredProc4.Active:=true;

Datasource1.DataSet.Active:=false;

DataSource7.DataSet.Active:=true;

DBGrid1.DataSource:=DataSource7;

End.

Если выбрать на главной  форме в пункте меню «Файл» второй пункт- «Автобусы»,то появится форма  «Автобусы»(рисунок 12)

 

Рисунок 12 – Форма «Автобусы»

 

Код формы:

procedure TForm3.Label3Click(Sender: TObject);

begin

Form3.Hide ;

Form1.Show;

end;

procedure TForm3.Button1Click(Sender: TObject);

begin

ADOStoredProc4.Parameters.ParamByName('@Tip_avtobusa').Value:=DBLookupComboBox4.Text;

ADOStoredProc4.Active:=true;

Datasource1.DataSet.Active:=false;

DataSource7.DataSet.Active:=true;

DBGrid1.DataSource:=DataSource7;

end;

procedure TForm3.a2111Click(Sender: TObject);

begin

Datasource1.DataSet.Active:=false;

Datasource2.DataSet.Active:=true;

DBGrid1.DataSource:=DataSource2;

end;

procedure TForm3.a221Click(Sender: TObject);

begin

Datasource1.DataSet.Active:=false;

Datasource3.DataSet.Active:=true;

DBGrid1.DataSource:=DataSource3;

end;

procedure TForm3.N2Click(Sender: TObject);

begin

Datasource3.DataSet.Active:=false;

Datasource1.DataSet.Active:=true;

DBGrid1.DataSource:=DataSource1;

end;

procedure TForm3.Button2Click(Sender: TObject);

begin

Form3.ADOStoredProc1.Parameters.ParamByName('@Tip_avtobusa').Value:=Form3.DBLookupComboBox1.Text;

Datasource1.DataSet.Active:=false;

DataSource4.DataSet.Active:=true;

DBGrid1.DataSource:=DataSource4;

end;

procedure TForm3.Button3Click(Sender: TObject);

begin

ADOStoredProc2.Parameters.ParamByName('@Marsrut').Value:=DBLookupComboBox2.Text;

ADOStoredProc2.Active:=true;

Datasource1.DataSet.Active:=false;

DataSource5.DataSet.Active:=true;

DBGrid1.DataSource:=DataSource5;

end;

procedure TForm3.Button4Click(Sender: TObject);

begin

ADOStoredProc3.Parameters.ParamByName('@Kol_vo_mest').Value:=DBLookupComboBox3.Text;

ADOStoredProc3.Active:=true;

DataSource6.DataSet.Active:=true;

DBGrid1.DataSource:=DataSource6;

end;

procedure TForm3.Button5Click(Sender: TObject);

begin

ADOStoredProc5.Parameters.ParamByName('@Marka').Value:=DBLookupComboBox5.Text;

ADOStoredProc5.Active:=true;

DataSource8.DataSet.Active:=true;

DBGrid1.DataSource:=DataSource8;

End.

Если выбрать на главной  форме в пункте меню «Файл» выбрать  третий пункт - «Расписание», то появится форма «Расписание» (рисунок 13)

 

Рисунок 13 – Форма «Расписание»

Код формы:

procedure TForm4.Label3Click(Sender: TObject);

begin

Form4.Hide ;

Form1.Show;

end;

procedure TForm4.a2111Click(Sender: TObject);

begin

Datasource1.DataSet.Active:=false;

Datasource2.DataSet.Active:=true;

DBGrid1.DataSource:=DataSource2;

end;

procedure TForm4.a221Click(Sender: TObject);

begin

Datasource1.DataSet.Active:=false;

Datasource3.DataSet.Active:=true;

DBGrid1.DataSource:=DataSource3;

end;

procedure TForm4.a231Click(Sender: TObject);

begin

Datasource1.DataSet.Active:=false;

Datasource4.DataSet.Active:=true;

DBGrid1.DataSource:=DataSource4;

end;

procedure TForm4.N2Click(Sender: TObject);

begin

Datasource4.DataSet.Active:=false;

Datasource1.DataSet.Active:=true;

DBGrid1.DataSource:=DataSource1;

end;

procedure TForm4.Button2Click(Sender: TObject);

begin

ADOStoredProc1.Parameters.ParamByName('@Nachaln_punct').Value:=DBLookupComboBox1.Text;

ADOStoredProc1.Parameters.ParamByName('@Dni_nedeli').Value:=DBLookupComboBox2.Text;

ADOStoredProc1.Active:=true;

Datasource1.DataSet.Active:=false;

DataSource5.DataSet.Active:=true;

DBGrid1.DataSource:=DataSource5;

end;

procedure TForm4.Button1Click(Sender: TObject);

begin

ADOStoredProc2.Active:=true;

Datasource1.DataSet.Active:=false;

DataSource6.DataSet.Active:=true;

DBGrid1.DataSource:=DataSource6;

end;

procedure TForm4.Button3Click(Sender: TObject);

begin

ADOStoredProc3.Parameters.ParamByName('@Konechni_punct').Value:=DBLookupComboBox3.Text;

ADOStoredProc3.Active:=true;

Datasource1.DataSet.Active:=false;

DataSource7.DataSet.Active:=true;

DBGrid1.DataSource:=DataSource7;

End.

Если выбрать на главной  форме в пункте меню «Продажа билетов» ,то появится форма «Продажа билетов» (рисунок 14)

 

 

Рисунок 14 – Форма «Продажа билетов»

Код программы:

procedure TableExport(DataSet:TDataSet; Title, FlagText:string);

var

i,ColCount, 

TableBeg,   

TableBeg2: integer;

vr1,vr2: OleVariant;

f: boolean;

st: string;

procedure TableLineSet;

begin

Form5.w2.Selection.Cells.Borders.Item(wdBorderLeft).LineStyle:=wdLineStyleSingle;

Form5.w2.Selection.Cells.Borders.Item(wdBorderRight).LineStyle:= wdLineStyleSingle;

Form5.w2.Selection.Cells.Borders.Item(wdBorderHorizontal).LineStyle:= wdLineStyleSingle;

Form5.w2.Selection.Cells.Borders.Item(wdBorderTop).LineStyle:= wdLineStyleSingle;

Form5.w2.Selection.Cells.Borders.Item(wdBorderBottom).LineStyle:= wdLineStyleSingle;

Form5.w2.Selection.Cells.Borders.Item(wdBorderVertical).LineStyle:= wdLineStyleSingle;

end;

function ConvertString(S:string):string;

begin

Result := StringReplace(S, '-', #173,[]);

end;

begin

Application.ProcessMessages;

vr1:=wdStory;

Form5.w2.Selection.EndKey(vr1,EmptyParam);

Form5.w2.ActiveDocument.Range(EmptyParam,EmptyParam).InsertAfter(Title);

Form5.w2.ActiveDocument.Paragraphs.Item(Form5.w2.ActiveDocument.Paragraphs.Count).Range.Select;

Form5.w2.Selection.ParagraphFormat.KeepWithNext:=-1;

Form5.W2.Selection.ParagraphFormat.SpaceAfter:=14;

Form5.W2.Selection.Font.Size:=15;

Form5.W2.Selection.Font.bold:=1;

Form5.W2.ActiveDocument.Paragraphs.Add(EmptyParam);

Form5.W2.ActiveDocument.Paragraphs.Item(Form5.w2.ActiveDocument.Paragraphs.Count).Range.Select;

Form5.W2.Selection.ParagraphFormat.SpaceAfter:=0;

vr1:=wdStory;

Form5.w2.Selection.EndKey(vr1,EmptyParam);

TableBeg:=Form5.W2.Selection.End_;

DataSet.First;

for i:=0 to DataSet.FieldCount-1 do

if DataSet.Fields[i].Visible

then Form5.W2.ActiveDocument.Range(EmptyParam,EmptyParam).InsertAfter(convertstring(DataSet.Fields[i].DisplayLabel)+#9);

Application.ProcessMessages;

Form5.w2.Selection.EndKey(vr1,EmptyParam);

Form5.w2.Selection.TypeBackspace;

Form5.W2.ActiveDocument.Paragraphs.Item(Form5.w2.ActiveDocument.Paragraphs.Count).Range.Select;

Form5.W2.Selection.Font.Size:=14;

Form5.W2.Selection.Font.Italic:=1;

Form5.W2.Selection.Font.bold:=0;

Form5.W2.ActiveDocument.Paragraphs.Add(EmptyParam);

f:=true;

st:='';

TableBeg2:=Form5.W2.Selection.End_;

if dataset.RecordCount>0

then

begin

Repeat

Application.ProcessMessages;

if (dataset.fields[DataSet.Fields.Count-1].AsString=FlagText) or (FlagText='')

then

begin

for i:=0 to DataSet.FieldCount-1 do

if DataSet.Fields[i].Visible

then st:=st+DataSet.Fields[i].AsString+#9;

SetLength(st,length(st)-1);

st:=st+#13; 

f:=false;

end;

dataset.Next;

until dataset.Eof;

Form5.w2.Selection.InsertAfter(convertstring(st))

vr1:=TableBeg2; 

vr2:=Form5.W2.Selection.End_;

Form5.W2.Selection.Font.Size:=12;

Form5.W2.Selection.Font.bold:=0;

Form5.W2.Selection.Font.Italic:=0;

end;

if f then

begin

for i:=0 to DataSet.FieldCount-1 do

if DataSet.Fields[i].Visible then

Form5.W2.ActiveDocument.Range(EmptyParam,EmptyParam).InsertAfter(' '+#9);

Form5.w2.Selection.EndKey(vr1,EmptyParam);

Form5.w2.Selection.TypeBackspace;

end;

Application.ProcessMessages;

vr1:=TableBeg;

vr2:=Form5.W2.Selection.End_;

Form5.W2.ActiveDocument.Range(vr1,vr2).Select;

Form5.W2.Selection.ConvertToTable(EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam);

colcount:=1;

for i:=0 to DataSet.FieldCount-1 do

if DataSet.Fields[i].Visible

then

begin

Form5.W2.ActiveDocument.Tables.Item(Form5.W2.ActiveDocument.Tables.Count).Columns.Item(colcount).Width:=DataSet.Fields[i].Tag;

inc(colcount);

Application.ProcessMessages;

end;

TableLineSet;

Form5.W2.ActiveDocument.Paragraphs.Add( EmptyParam);

Form5.W2.ActiveDocument.Paragraphs.Item(Form5.w2.ActiveDocument.Paragraphs.Count-1).Range.Select;

Form5.W2.Selection.ParagraphFormat.KeepWithNext:=0;

end;

procedure TForm5.Label2Click(Sender: TObject);

begin

Form5.Hide ;

Form1.Show;

end;

procedure TForm5.Button5Click(Sender: TObject);

var Excel,Workbook,Sheet:Variant;

i:integer;

begin

Button4Click(Sender);

try

Excel:=GetActiveOleObject('Excel.Application');

except

try

Excel:=CreateOleObject('Excel.Application');

except

ShowMessage('Ошибка доступа  к  Microsoft Excel( он не найден!)');

exit;

end;

end;

WorkBook:=Excel.WorkBooks.Add;

Sheet:=WorkBook.Sheets[1];

ADOTable1.First;

Sheet.Cells[1,3]:= 'Продажа билетов';

Sheet.Cells[1,3].Font.Bold:=true;

Sheet.Cells[1,3].Font.Size:= 25;

Sheet.Cells[1,3].Font.Color:= clRed;

Sheet.Cells[2,1]:= 'Номер продажи';

Sheet.Cells[2,1].Font.Bold:=true;

Sheet.Cells[2,1].Font.Size:= 10;

Sheet.Cells[2,1].Font.Color:= clBlue;

Sheet.Cells[2,2]:= 'Дата отправления';

Sheet.Cells[2,2].Font.Bold:=true;

Sheet.Cells[2,2].Font.Size:= 10;

Sheet.Cells[2,2].Font.Color:= clBlue;

Sheet.Cells[2,3]:= 'Время отправления';

Sheet.Cells[2,3].Font.Bold:=true;

Sheet.Cells[2,3].Font.Size:= 10;

Sheet.Cells[2,3].Font.Color:= clBlue;

Sheet.Cells[2,4]:= 'Платформа';

Sheet.Cells[2,4].Font.Bold:=true;

Sheet.Cells[2,4].Font.Size:= 10;

Sheet.Cells[2,4].Font.Color:= clBlue;

Sheet.Cells[2,5]:= 'Станция отправления';

Sheet.Cells[2,5].Font.Bold:=true;

Sheet.Cells[2,5].Font.Size:= 10;

Sheet.Cells[2,5].Font.Color:= clBlue;

Sheet.Cells[2,6]:= 'До станции';

Sheet.Cells[2,6].Font.Bold:=true;

Sheet.Cells[2,6].Font.Size:= 10;

Sheet.Cells[2,6].Font.Color:= clBlue;

Sheet.Cells[2,7]:= 'Номер рейса';

Sheet.Cells[2,7].Font.Bold:=true;

Sheet.Cells[2,7].Font.Size:= 10;

Sheet.Cells[2,7].Font.Color:= clBlue;

Sheet.Cells[2,8]:= 'Номер автобуса';

Sheet.Cells[2,8].Font.Bold:=true;

Sheet.Cells[2,8].Font.Size:= 10;

Sheet.Cells[2,8].Font.Color:= clBlue;

Sheet.Cells[2,9]:= '№ места';

Sheet.Cells[2,9].Font.Bold:=true;

Sheet.Cells[2,9].Font.Size:= 10;

Sheet.Cells[2,9].Font.Color:= clBlue;

Sheet.Cells[2,10]:= 'Количество билетов';

Sheet.Cells[2,10].Font.Bold:=true;

Sheet.Cells[2,10].Font.Size:= 10;

Sheet.Cells[2,10].Font.Color:= clBlue;

Sheet.Cells[2,11]:= 'Текущая\предварительная  продажа';

Sheet.Cells[2,11].Font.Bold:=true;

Sheet.Cells[2,11].Font.Size:= 10;

Sheet.Cells[2,11].Font.Color:= clBlue;

Sheet.Cells[2,12]:= 'Растояние';

Sheet.Cells[2,12].Font.Bold:=true;

Sheet.Cells[2,12].Font.Size:= 10;

Sheet.Cells[2,12].Font.Color:= clBlue;

Sheet.Rows[3].Font.Color:= clRed;

Sheet.Rows[5].Font.Color:= clRed;

Sheet.Rows[7].Font.Color:= clRed;

Sheet.Rows[9].Font.Color:= clRed;

Sheet.Rows[11].Font.Color:= clRed;

Sheet.Rows[13].Font.Color:= clRed;

Sheet.Rows[15].Font.Color:= clRed;

Sheet.Rows[17].Font.Color:= clRed;

for i:=3 to ADOTable1.RecordCount do begin

Sheet.Cells[i,1]:=ADOTable1.FieldByName('Nomer_prodagi').AsInteger;

Sheet.Cells[i,2]:=ADOTable1.FieldByName('Data_otpravlenia').AsString;

Sheet.Cells[i,3]:=ADOTable1.FieldByName('Vrimia_otpravlenia').AsString;

Sheet.Cells[i,4]:=ADOTable1.FieldByName('Platforma').AsString;

Sheet.Cells[i,5]:=ADOTable1.FieldByName('Stancia_otpravlenia').AsString;

Sheet.Cells[i,6]:=ADOTable1.FieldByName('Do_stancii').AsString;

Sheet.Cells[i,7]:=ADOTable1.FieldByName('Nomer_reisa').AsInteger;

Sheet.Cells[i,8]:=ADOTable1.FieldByName('Nomer_avtobusa').AsString;

Sheet.Cells[i,9]:=ADOTable1.FieldByName('Mesto_nomer').AsString;

Sheet.Cells[i,10]:=ADOTable1.FieldByName('Kol_biletov').AsString;

Sheet.Cells[i,11]:=ADOTable1.FieldByName('Tekes_Pred_pokupka').AsString;

Sheet.Cells[i,12]:=ADOTable1.FieldByName('Rastoanie').AsString;

ADOTable1.Next;

Excel.Visible:=True;

end;

end;

procedure TForm5.Button2Click(Sender: TObject);

begin

try

w2.Connect;

w2.Visible:=true;

vr:=GetCurrentDir+'\Shablon1.doc';

W2.Documents.Open(vr,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam);

ADOTable1.fields[0].DisplayLabel:='Номер продажи';

ADOTable1.fields[0].tag:=round(w2.CentimetersToPoints(1));

ADOTable1.fields[0].Visible:=true;

ADOTable1.fields[1].DisplayLabel:='Дата отправления';

ADOTable1.fields[1].tag:=round(w2.CentimetersToPoints(2));

ADOTable1.fields[1].Visible:=true;

ADOTable1.fields[2].DisplayLabel:='Время отправления';

ADOTable1.fields[2].tag:=round(w2.CentimetersToPoints(2));

ADOTable1.fields[2].Visible:=true;

ADOTable1.fields[3].DisplayLabel:='Платформа';

ADOTable1.fields[3].tag:=round(w2.CentimetersToPoints(1));

ADOTable1.fields[3].Visible:=true;

ADOTable1.fields[4].DisplayLabel:='Станция отправления';

ADOTable1.fields[4].tag:=round(w2.CentimetersToPoints(2));

ADOTable1.fields[4].Visible:=true;

ADOTable1.fields[5].DisplayLabel:='До станции';

ADOTable1.fields[5].tag:=round(w2.CentimetersToPoints(2));

ADOTable1.fields[5].Visible:=true;

ADOTable1.fields[6].DisplayLabel:='Номер рейса';

ADOTable1.fields[6].tag:=round(w2.CentimetersToPoints(2));

ADOTable1.fields[6].Visible:=true;

ADOTable1.fields[7].DisplayLabel:='Номер автобуса';

ADOTable1.fields[7].tag:=round(w2.CentimetersToPoints(2));

ADOTable1.fields[7].Visible:=true;

ADOTable1.fields[8].DisplayLabel:='Номер места';

ADOTable1.fields[8].tag:=round(w2.CentimetersToPoints(2));

ADOTable1.fields[8].Visible:=true;

ADOTable1.fields[9].DisplayLabel:='Кол-во билетов';

ADOTable1.fields[9].tag:=round(w2.CentimetersToPoints(2));

ADOTable1.fields[9].Visible:=true;

ADOTable1.fields[10].DisplayLabel:='Паспортные данные';

ADOTable1.fields[10].tag:=round(w2.CentimetersToPoints(2));

ADOTable1.fields[10].Visible:=true;

ADOTable1.fields[11].DisplayLabel:='Текущая\Пред-ая покупка';

ADOTable1.fields[11].tag:=round(w2.CentimetersToPoints(2));

ADOTable1.fields[11].Visible:=true;

ADOTable1.fields[12].DisplayLabel:='Растояние';

ADOTable1.fields[12].tag:=round(w2.CentimetersToPoints(2));

ADOTable1.fields[12].Visible:=true;

TableExport(ADOTable1,'Продажа билетов','');

Информация о работе Результат тестирования информационной системы