РАЗРАБОТКА ПРОТОТИПОВ ИНФОРМАЦИОННЫХ СИСТЕМ, ОСНОВАННЫХ НА СУБД, В CASE-СРЕДСТВЕ RATIONAL ROSE ENTERPRISE И СРЕДЕ ПРОГРАММИРОВАНИЯ C++BUILDER

Создание информационных систем, основанных на СУБД, используется для решения различных практических задач. Одной из таких задач является принятие решений в различных сферах деятельности человека, в том числе в экономической. В условиях нарастающей конкурентной борьбы в экономической сфере решение таких задач при помощи компьютеров является наиболее востребованным.

Приведем результаты работ, выполненных на этапах анализа (рис. 3.1—3.3) и проектирования (рис. 3А—3.6) создания прототипа информационной системы, используемой для выбора программных продуктов фирмы Rational Rose.

Диаграмма деятельности

Рис. 3.1. Диаграмма деятельности

Диаграмма прецедентов

Рис. 3.2. Диаграмма прецедентов

Диаграмма последовательностей

Рис. 3.3. Диаграмма последовательностей

Диаграмма компонентов

Рис. 3.5. Диаграмма компонентов

Диаграмма размещения

Рис. 3.6. Диаграмма размещения

Для разработки прототипа информационной системы, основанного на СУБД, в среде программирования C++Builder необходимо открыть Database Desktop, определить структуры таблиц (наименования столбцов, ключи и типы столбцов) и создать таблицы (рис. 3.7 и 3.8).

Структура таблицы

Рис. 3.7. Структура таблицы

Таблица

Рис. 3.8. Таблица

Открыть среду программирования С++Вш1с1ег и выбрать объекты 0иегу1, Оа1а5оигсе1 и ОВСпсП. После выбора этих объектов устанавливаются их свойства (рис. 3.9—3.11).

Рассмотрим реализацию динамических 5()Ь-запросов:

  • 1) показать всю информацию;
  • 2) показать программные продукты, стоимость которых не превышает заданное значение;
  • 3) показать программные продукты, которые поддерживают заданные этапы жизненного цикла разработки программных средств;
  • 4) показать программные продукты, имеющие максимальную или минимальную стоимость.

Интерфейсы разработанного прототипа программного средства приведены на рис. 3.12 (получен ответ на 1-й запрос), 3.13 (получен ответ на 2-й запрос), 3.14 (получен ответ на 3-й запрос) и 3.15 (получен ответ на 4-й запрос).

Свойства объекта Query 1

Рис. 3.9. Свойства объекта Query 1

ЗЛО. Свойства объекта DataSourcel

Рис. ЗЛО. Свойства объекта DataSourcel

Свойства объекта ИВСпсП

Рис. 3.11. Свойства объекта ИВСпсП

Интерфейс разработанного прототипа программных средств (получен ответ на 1-й запрос)

Рис. 3.12. Интерфейс разработанного прототипа программных средств (получен ответ на 1-й запрос)

Интерфейс разработанного прототипа программных средств (получен ответ на 2-й запрос)

Рис. 3.13. Интерфейс разработанного прототипа программных средств (получен ответ на 2-й запрос)

Интерфейс разработанного прототипа программных средств (получен ответ на 3-й запрос)

Рис. 3.14. Интерфейс разработанного прототипа программных средств (получен ответ на 3-й запрос)

Интерфейс разработанного прототипа программных средств (получен ответ на 4-й запрос)

Рис. 3.15. Интерфейс разработанного прототипа программных средств (получен ответ на 4-й запрос)

Приведем программный код, реализующий динамические SQL- запросы.

//...........................................................................

#include

#pragma hdrstop

((include "Unitl .h"

//...........................................................................

  • ((pragma package(smartinit)
  • ((pragma resource "*.dfm"

TForml *Forml;

//...........................................................................

_fastcall TForml ::TForml(TComponent* Owner)

: TForm(Owner)

{

}

//...........................................................................

((include

void_fastcall TForml::ButtonlClick(TObject *Sender)

{

Query l->Close();

Query 1 ->SQL->C lear(); sprintf(bufTer,"Select * from rational.db");

Query 1 ->SQL-> Add( buffer);

Queryl->Open();

}

//...........................................................................

void_fastcall TForml::Button2Click(TObject ^Sender)

{

char buffer[250];

Query l->Close();

Query 1 ->SQL->C lear();

sprintf(buffer,"Select * front rational.db where cost<=%f',atof(ComboBox 1 - >Text.c_str()));

Query 1 ->SQL-> Add( buffer);

Queryl->Open();

}

//...........................................................................

void_fastcall TForml::Button3Click(TObject *Sender)

{

char buffer[250];

Query l->Close();

Query 1 ->SQL->C lear();

if (!strcmp(ComboBox2->Text.c_str(),"анализ"))

sprintf(buffer,"Select Products,Cost from rational.db where Analise-yes'"); if (!strcmp(ComboBox2->Text.c_str(),"проектирование")) sprintffbuffer,"Select Products,Cost from rational.db where Designing-yes'"); if (!strcmp(ComboBox2->Text.c_str(),"анализ & проектирование")) sprintf(buffer,"Select Products,Cost from rational.db where Analise-yes' and Designing-yes"');

if (!strcmp(ComboBox2->Text.c_str(),"выполнение"))

sprintf(buffer,"Select Products,Cost from rational.db where Implimention='yes'"); if (!strcmp(ComboBox2->Text.c_str(),"npoeKTHpoBaHHe & выполнение")) sprintf(buffer,"Select Products,Cost from rational.db where Designing-yes'and Im- plimention-yes'");

if (!strcmp(ComboBox2->Text.c_str(),"анализ & проектирование & выполнение")) sprintf(buffer,"Select Products,Cost from rational.db where Analise-yes' and Designing-yes'and Implimention-yes'"); if (!strcmp(ComboBox2->Text.c_str(),"тестирование")) sprintf(buffer,"Select Products,Cost from rational.db where Testing-yes'"); if (!strcmp(ComboBox2->Text.c_str(),"выполнение & тестирование")) sprintf(buffer,"Select Products.Cost from rational.db where Implimention='yes' and Testing-yes"');

if (!strcmp(ComboBox2->Text.c_str(),"проектирование & выполнение & тестирование"))

sprintf(buffer,"Select Products.Cost from rational.db where Designing-yes' and Im- plimention-yes' and Testing-yes'");

if (!strcmp(ComboBox2->Text.c_str(),"aHanH3 & проектирование & выполнение & тестирование"))

sprintf(buffer,"Select Products.Cost from rational.db where Analise-yes' and Designing-yes' and lmplimention='yes' and Testing-yes"');

Query 1 ->SQL->Add(buffer);

Queryl->Open();

}

//.....................................................................

void_fastcall TForml::Button4Click(TObject *Sender)

{

char buffer[250];

Queryl->Close();

Query l->SQL->Clear();

if (!strcmp(ComboBox3->Text.c_str(),"MHHHMajibHyto")) sprintf(buffer,"Select MIN(Cost) from rational.db"); if (!strcmp(ComboBox3->Text.c_str(),"MaKCHMajibHyio")) sprintf(buffer,"Select MAX(Cost) from rational.db"); Query 1 ->SQL->Add( buffer);

Query l->Open();

}

//.....................................................................

 
Посмотреть оригинал
< Пред   СОДЕРЖАНИЕ ОРИГИНАЛ   След >