Смекни!
smekni.com

по Основам объектно-ориентированного программирования

Риддер қ. Құмаш Ңұрғалиев атындағы колледж мекемесінің филиалы

Филиал учреждения «Колледж имени Кумаша Нургалиева»

г. Риддер

Обязательная контрольная работа

По дисциплине «Основы объектно-ориентированного программирования»

обучающегося IV курса группы 07-ПРО VII семестра

специальности 3706002 «Программное обеспечение

вычислительной техники и автоматизированных систем»

Богдаева Евгения

Вариант IV

г. Риддер, 2011 год

Задание

  1. Создать удаленную базу данных с двухзвенной архитектурой с помощью SQL-сервера Interbase, в которую входят таблица «Магазины» с полями: название, адрес и таблица «Игрушки» включающая поля: наименование, цена, его производитель. Таблицы связаны отношением один-ко-многим.
  2. Создать приложение в Delphi. Найти , в которой цена на введенное в режиме диалога лекарства наименьшая.
  3. Построить диаграмму, отображающую стоимость данного лекарства в каждой аптеке. Создать SQL-запрос и отчет.

Логическая модель

1)Создание Базы данных в InterBase

Таблица магазины

/* Table: MAGAZINI, Owner: SYSDBA */

CREATE TABLE "MAGAZINI"

(

"NOMER" INTEGER NOT NULL,

"NAZVANIE" CHAR(20) CHARACTER SET WIN1251,

"ADRESS" CHAR(20) CHARACTER SET WIN1251,

PRIMARY KEY ("NOMER")

);

SET TERM ^ ;

/* Triggers only will work for SQL triggers */

CREATE TRIGGER "TRI_DO" FOR "MAGAZINI"

ACTIVE BEFORE INSERT POSITION 0

AS

BEGIN

NEW.nomer = GEN_ID(geni, 1);

END

^

CREATE TRIGGER "TRI_IZM" FOR "MAGAZINI"

ACTIVE BEFORE UPDATE POSITION 0

AS

BEGIN

IF (OLD.nomer <> NEW.nomer)

THEN UPDATE igruchki

SET nomer_i = NEW.nomer

WHERE nomer_i = OLD.nomer;

END

^

CREATE TRIGGER "TRI_1" FOR "MAGAZINI"

ACTIVE AFTER DELETE POSITION 0

AS

BEGIN

DELETE FROM igruchki

WHERE igruchki.nomer_i = magazini.nomer;

END

^

COMMIT WORK ^

SET TERM ;^

Таблица игрушки

/* Table: IGRUSHKI, Owner: SYSDBA */

CREATE TABLE "IGRUSHKI"

(

"NOMER_IG" INTEGER NOT NULL,

"NOMER" INTEGER NOT NULL,

"NAZVANIE" CHAR(20) CHARACTER SET WIN1251,

"CENA" INTEGER,

"PROIZVODITEL" CHAR(20) CHARACTER SET WIN1251,

"VOZRAST" INTEGER,

PRIMARY KEY ("NOMER_IG")

);

ALTER TABLE "IGRUSHKI" ADD FOREIGN KEY ("NOMER") REFERENCES MAGAZINI ("NOMER");

Заполнение таблиц

Главная таблица «Магазины»

Дочерняя таблица «Игрушки»

2)Создание приложения

Главная форма программы

База данных программы

Форма на которой отображаются Магазины и Игрушки.

Так же на этой форме имеется «поиск по возрасту»

procedure TForm1.Edit1Change(Sender: TObject);

begin

if Length(Edit1.Text)>0 then

DM.igrushki.Filtered:=true

else

DM.igrushki.Filtered:=false;

DM.igrushki.Filter:='vozrast='''+Edit1.Text+'''';

end;

Диаграмма «производителей»

Отчет

SELECT Magazini.NAZVANIE, Igrushki.NAZVANIE, Igrushki.CENA, Igrushki.VOZRAST

FROM IGRUSHKI Igrushki

INNER JOIN MAGAZINI Magazini

ON (Magazini.NOMER = Igrushki.NOMER)

ORDER BY Igrushki.VOZRAST