Файл: Практическая работа БД.doc

ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 26.05.2021

Просмотров: 856

Скачиваний: 3

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

СОДЕРЖАНИЕ

практическая работа № 7

Работа с переменными и массивами

Работа с массивами

Компонент TStringGrid

Порядок выполнения задания

Настройка компонента TStringGrid

BitBtn1: TBitBtn;

BitBtn2: TBitBtn;

procedure FormActivate(Sender: TObject);

procedure Button1Click(Sender: TObject);

procedure BitBtn1Click(Sender: TObject);

procedure BitBtn2Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

const

Nmax=10; // Максимальная размерность массива

Type

Mas1 = array[1..Nmax] of extended; {Объявление типа одномерного массива вещественных чисел размерностью Nmax}

Mas2 = array[1..Nmax,1..Nmax] of extended; {Объявление типа двумерного массива вещественных чисел размерностью Nmax*Nmax}

Var

Form1: TForm1;

A : Mas2; // Объявление двумерного массива

B,Y : Mas1; // Объявление одномерных массивов

N,i,j : integer;

implementation

{$R *.dfm}

procedure TForm1.FormActivate(Sender: TObject);

{Процедура подготовки к началу работы}

begin

N:=3; // Задание размерности массива

Edit1.Text:=IntToStr(N); // Вывод значения N в Edit1

{Задание числа строк и столбцов в таблицах}

StringGrid1.ColCount:=N+1;

StringGrid1.RowCount:=N+1;

StringGrid2.RowCount:=N+1;

StringGrid3.RowCount:=N+1;

{Ввод в левую верхнюю ячейку таблицы названия массива}

StringGrid1.Cells[0,0]:='Массив A:';

StringGrid2.Cells[0,0]:='Массив B:';

StringGrid3.Cells[0,0]:='Массив Y:';

{Заполнение верхнего и левого столбцов поясняющими подписями}

for i:=1 to N do

begin

StringGrid1.Cells[0,i]:=' i= '+IntToStr(i);

StringGrid1.Cells[i,0]:=' j= '+IntToStr(i);

end;

end;

procedure TForm1.Button1Click(Sender: TObject);

{Процедура изменения размерности массива}

begin

try

N:=StrToInt(Edit1.Text);

except

ShowMessage('Ошибочная запись числа '+Edit1.Text);

Edit1.SetFocus;

Exit;

end;

{Задание числа строк и столбцов в таблицах}

StringGrid1.ColCount:=N+1;

StringGrid1.RowCount:=N+1;

StringGrid2.RowCount:=N+1;

StringGrid3.RowCount:=N+1;

{Заполнение верхнего и левого столбцов поясняющими подписями}

for i:=1 to N do

begin

StringGrid1.Cells[0,i]:=' i= '+IntToStr(i);

StringGrid1.Cells[i,0]:=' j= '+IntToStr(i);

end;

end;

procedure TForm1.BitBtn1Click(Sender: TObject);

{Процедура расчета вектора Y}

var

s: extended;

begin

{Заполнение массива А элементами из таблицы StringGrid1}

for i:=1 to N do

for j:=1 to N do

begin

if StringGrid1.Cells[j,i]=' ' then

begin

ShowMessage('Ошибка заполнения массива А');

Exit;

end;

try

A[i,j]:=StrToFloat(StringGrid1.Cells[j,i]);

except

ShowMessage('Ошибочная запись числа '+StringGrid1.Cells[j,i]);

Exit;

end;

end;

{Заполнение массива B элементами из таблицы StringGrid2}

for i:=1 to N do

begin

if StringGrid2.Cells[0,i]=' ' then

begin

ShowMessage('Ошибка заполнения массива В!');

Exit;

end;

try

B[i]:=StrToFloat (StringGrid2.Cells[0,i]);

except

ShowMessage ('Ошибочная запись числа '+StringGrid2.Cells[0,i]);

Exit;

end;

end;

{Умножение массива А на массив В}

for i:=1 to N do

begin

s:=0;

for j:=1 to N do

s:=s+A[i,j]*B[i];

Y[i]:=s;

{Вывод результата в таблицу StringGrid3}

StringGrid3.Cells[0,i]:=FloatToStrf(y[i],fffixed,6,2);

end;

end;

procedure TForm1.BitBtn2Click(Sender: TObject);

begin

{Очищение всех ячеек таблиц перед очередным прогоном программы}

for i:=1 to N do

begin

StringGrid2.Cells[0,i]:=' ';

StringGrid3.Cells[0,i]:=' ';

for j:=1 to N do

StringGrid1.Cells[j,i]:=' ';

end;

end;

end.

Индивидуальные задания

лабораторная работа №

ЛАБОРАТОРНАЯ РАБОТА №

Создание приложений для работы с базами данных На ОСНОВЕ ТЕХНОЛОГИИ bde

Порядок выполнения задания

Рис. 9.- Расположение компонентов на форме

3.Компоненту DBNavigator1:

4.Компоненту DBGrid1:

Рис. 10.- Рабочее окно программы

Компонент DBNavigator служит для управления записями таблицы (перемещение, добавление, удаление). При этом все изменения сохраняются в таблице MainData.DB (свойству Store Defs присвойте значение True).

3.Компоненту DBGrid2:

Можно не менять свойство SQL компонента Query1, а изменить обработчик события для Form1 следующим образом:

end;

Создание параметризованного запроса

Индивидуальные задания

Варианты задач

Индивидуальные задания

Варианты задач

лабораторная работа №

Индивидуальные задания

Варианты задач

TQuery и параметры

6.Скопируйте файлы из каталога предыдущей практической в каталог Lab. Запустите Delphi7: Пуск\Программы\Borland Delphi7\Delphi7.

Аналогично предыдущей лабораторной работе откорректи-руйте свойства компонент, чтобы программа корректно отображала содержимое таблицы MainData рис.4. Запустите проект и проверьте его работоспособность.

Рис. 3. Отредактированные таблицы MainData и Person

Рис.4. Модифицированное главное окно работающей программы

7.Перейдите к форме DataModule2. Добавьте на нее компоненты ADOTable и DataSource. Для ADOTable2 настройте строку подключения (ConnectionString) к базе данных db1.mdb и укажите в поле TableName таблицу Person.

8.Свяжите таблицу Person с таблицей MainData. Для этого в свойстве MasterSource установите источник данных DataSource1 и настройте строку соединения таблиц MasterFields как показано на Рис5.

Рис.5. Настройка связи между таблицами

9.Для источника данных DataSource2 установите набор данных ADOTable2. Сделайте активным соединение в таблице ADOTable2.

10.На форму Form1 добавьте строку редактирования поля базы данных (компонента TDBEdit) и установите для нее в качестве источника данных DataModule2.DataSource2 и в качестве отображаемого поля (DataField)–поле Family. Запретите редактирование данной строки (ReadOnly= True).

11.Запустите проект, проверьте его работоспособность–в окне просмотра событий, при передвижении по списку событий должно изменяться содержимое добавленной строки–должна отражаться строка с фамилией из справочника Person рис. 6.

Рис. 6. Главное окно работающей программы с компонентом DBEdit1

12.Создайте форму справочника фамилий–Form6 по образцу, представленному на рис.7. На ней размещен компонент TDBGrid.

Рис. 7. Форма справочника фамилий

13.В модуле справочника фамилий Unit6 в разделе Uses после ключевого слова implementation необходимо указать название модуля данных Unit2. На первой форме в меню «Файл» добавьте пункт «Справочник фамилий» и добавьте в модуль Unit1 вызов формы Form6. Отредактируйте процедуру обработки нажатия пункта меню Файл\Справочник фамилий следующим образом:

procedure TForm1.N11Click(Sender: TObject);

begin

Form6.Show;

end;

Результат работы программы при выборе пункта меню Файл\Справочник фамилий представлен на рис. 8.

Рис. 8. Окно работающей программы при вызове пункта меню Файл\Справочник фамилий

14. Сохраните, запустите проект и проверьте его работу.

15.Добавьте в основное меню главной формы еще один подпункт Файл\Отчет. Поместите на главную форму компонент TRVDataSetConnect (вкладка Rave) и свяжите его с набором данных DataModule2.ADOTable1 (свойство DataSet).

16.Вся дальнейшая работа осуществляется под управлением утилиты Rave Reports Designer. Для ее вызова выберите в главном меню команду Tools/Rave/Designer. На экране появится окно, показанное на рис. 9.

С помощью команды File/New Data Object вызовите окно Data Connections, в котором выберите продолжение Direct Data View и, после щелчка по кнопке Next - RvDataSetConnection1.

17.Командой Tools/Report Wizards/Simple Table вызовите мастера создания отчета по данным, получаемым из единственной таблицы. Этот мастер с помощью последовательно раскрывающихся окон определяет основные параметры отчета. С помощью первого окна рис. 10 а, выбирается источник данных (DataView1), с помощью второго- отображаемые поля (отметьте галочками все поля или установите флажок All). В следующем окне можно изменить порядок следования в отчете выбранных полей. Окно Report Layout Options позволяет определить заголовок отчета (поле Report Title; введите в него строку “Ежедневник”) и ширину полей (группа Report Margins). Заключительное окно рис. 10 б, предназначено для выбора шрифтов, которыми будут отображаться три основные части отчета: его заголовок, заголовки полей и данные. Рекомендуется установить шрифт MS Sans Serif для правильного отображения кириллицы.


Рис. 9. Окно утилиты Rave Reports Designer

а

б

Рис. 10. Окно мастера создания отчета:

а-начальное окно; б- завершающее окно

18.После щелчка по кнопке Generate происходит начальная генерация файла проекта отчета и окно Rave Reports Designer приобретает вид, показанный на рис. 11.

19.Сохраните файл проекта отчета. Выберите команду File/Save или щелкните на соответствующей кнопке инструментальной панели. Сохраните файл проекта Project.rav в той же папке, в которой хранится основной проект.

20. Теперь внесем изменения в отчет:

1) добавим дату генерации;

Для этого разместите под заголовком отчета компонент Datatext (вкладка Report палитры компонентов Rave Reports Designer). В свойстве dataField поместите следующий текст: "от "&Report.DateLong рис. 12.

Рис. 11. Вид отчета после начальной генерации

Рис. 12. Формирование отчета с помощью утилиты Rave Reports Designer

2) изменим названия колонок в средней полосе: Дата вместо DateS, Начало вместо FromTime, Окончание вместо ToTime, Телефон вместо Phone. Для этого изменим свойство Text соответствующих компонент рис. 12.

3) расчертим отчет горизонтальными и вертикальными линиями. Для этого поместим на среднюю полосу компонент HLine (вкладка Drawing) с такими свойствами: Top=0, Left=0, Width=6,5, а также шесть компонентов VLine с параметрами: Top=0, Height=0,24, Left=0;0,5;1,5;3;5;6,5 соответственно для шести вертикальных линий.

На нижнюю полосу с данными поместите два компонента HLine и шесть компонент VLine. Длина горизонтальных линий равна 6,5 единиц, о свойство Top равно 0 для первой и 0,15 для второй. Высота вертикальных линий равна высоте полосы (0,15), а свойство Left=0;0,5;1,5;3;5;6,5 соответственно для шести вертикальных линий.

Рис. 13. Пример отчета (в окне предварительного просмотра)

21. Для предварительного просмотра формируемого отчета нажмите клавишу <F9> или щелкните на соответствующей инструментальной кнопке рис. 13.

22. После подготовки проекта отчета сохраните его на диске, закройте Rave Reports Designer и вернитесь в Delphi. Поместите на форму компонент RvProject, в его свойстве ProjectFile укажите ссылку на файл проекта Project.rav. Напишите такой обработчик нажатия пункта меню Файл\Отчет:

procedure TForm1.N12Click(Sender: TObject);

begin

RvProject1.Execute;

end;

23. Сохраните и запустите проект. Проверьте его работу.

Индивидуальные задания


Варианты задач

1.Городской транспорт

Список характеристик:

Вид транспорта, номер маршрута, начальная остановка, конечная остановка, время в пути, примечание.

2.Аэропорт

Список характеристик:

Номер рейса, пункт назначения, дата рейса, тип самолета, время вылета, время в пути, сведения о пассажире.

3. Персональные ЭВМ

Список характеристик:

Фирма-изготовитель, тип процессора, тактовая частота, объем ОЗУ, объем жесткого диска, дата выпуска.

4.Университет

Список характеристик:

Номер, ФИО, адрес и должность преподавателя, название предмета.

5.Деканат

Список характеристик:

Kод группы, ФИО, телефон слушателя, код, название предмета, код сессии и оценки по предмету.


6. Оптовая база

Список характеристик:

Код товара, название товара, количество на складе, стоимость единицы товара, примечания-описание товара.

7.Сеть магазинов

Список характеристик:

Номер, название, адрес и телефон магазина, ФИО и ИНН владельцев магазина.

9. Личные данные о студентах

Список характеристик:

ФИО студента, курс, факультет, специальность, дата рождения студента, сведения о семье.


10. Железнодорожный вокзал

Список характеристик:

Номер поезда, пункт назначения, номер путей и платформы, дата прибытия, дата отбытия, ФИО пассажира.


















































Приложение П1

Основное меню

Таблица П1.1

Опция File

Название

Функция

New

Опция-заголовок. При ее выборе раскрывается подменю со следующими опциями

Application

Создает новую программу для Windows

CLX Application

Создает новую программу для Windows и Linux

Data Module

Создает новый модуль данных

Form

Создает новую форму и подключает ее к проекту

Frame

Создает новую раму

Other

Открывает окно репозитория

 Exit

Вставляет в текущую форму ссылку на другой модуль Печатает активную форму или модуль Прекращает работу Delphi

Print

Закрывает все открытые файлы

Unit

Закрывает текущую форму

Open

Открывает ранее созданную форму

Open Project

Открывает ранее созданный проект

Reopen

Вызывает список ранее загружавшихся проектов и форм для выбора и повторной загрузки

Save Save As

Сохраняет активную форму

Save Project As

Сохраняет активную форму под другим именем

Save All Close

Сохраняет файл проекта под другим именем

Close All Use

Сохраняет файл проекта и все открытые модули

Таблица П1.2

1.2. Опция Edit

Название

Функция

Undo

Отменяет последнее изменение проекта

Redo

Восстанавливает последнее изменение проекта

Cut

Вырезает выбранный компонент формы или фрагмент текста и помещает его в буфер Clipboard

Copy

Копирует в Clipboard выделенные компоненты формы или

фрагмент текста модуля

Paste

Извлекает из буфера и переносит компоненты на форму или копирует текст в модуль (в позицию, указываемую текущим положением текстового курсора)

Delete

Удаляет выделенные компоненты или фрагмент текста

Select All

Выделяет все компоненты формы или весь текст модуля

Align To Grid

 

Привязывает выделенные компоненты к масштабной сетке так, чтобы их левые верхние углы располагались в ближайших точках сетки

Bring To Front

Перемещает выделенные компоненты на передний план

Send To Back

Перемещает выделенные компоненты на задний план

Align

Вызывает окно выравнивания выделенных компонентов

Size

Вызывает окно изменения размеров выделенных компонентов

Scale

Масштабирует выделенные компоненты

Tab Order

Изменяет порядок обхода компонентов клавишей Tab

Creation Order

Изменяет порядок создания невизуальных компонентов

Flip Children

Lock Controls Add to interface

Изменяет свойство BiDiMode для всех или только для выделенных компонентов. Блокирует возможность перемещения компонентов на форме. Определяет новые свойства, методы и события для компонентов ActiveX


Таблица П1.3

1.3. Опция Run

Название

Функция

Run

Компилирует программу и делает ее прогон

Attach to Process

Позволяет присоединиться в режиме отладки к одному из уже запущенных процессов на другой сетевой машине

Parameters

Указывает командную строку запуска вашей программы

Register ActiveX Servers

Регистрирует ваш проект в реестре Windows. Опция доступна для ActiveX-проектов

Unregister ActiveX Servers

Удаляет ваш проект из реестра Windows. Опция доступна для ActiveX-проектов

Install MTS Objects

Регистрирует в вашем проекте объект MTS

Step Over

В отладочном режиме выполняет текущую строку кода и не прослеживает работу вызываемых подпрограмм

Trace Into

 

В отладочном режиме выполняет текущую строку кода и

прослеживает работу вызываемых подпрограмм

Trace To Next Source Line

Программа выполняется до ближайшего от текущего

положения курсора исполняемого оператора

Run To Cursor

 

В отладочном режиме выполняет программу и останавливается перед выполнением кода в строке с текстовым курсором

Run Until Return

В отладочном режиме выполняет текущую подпрограмму и останавливается

Show Execution Point

Отображает в окне кода оператор, на котором было прервано выполнение программы

Program Pause

Приостанавливает прогон отлаживаемой программы

Program Reset

 

Прекращает прогон программы и восстанавливает ре

жим конструирования программы

Inspect

Открывает окно проверки текущего значения

Evaluate/Modify

Открывает окно проверки/изменения переменных

Add Watch

Добавляет переменную или выражение в окно наблюдения

Add Breakpoint

Добавляет точку останова

 Таблица П1.4

Пиктографические кнопки главного меню

Реализуемое кнопкой действие

Группа Standard

  Открывает доступ к Репозиторию Объектов. Эквивалент опции File|New|Other (этой кнопки нет в версиях 1, 2 и 3)

  Открывает существующий файл. Эквивалент опции File|Open File

  Сохраняет файл на диске. Эквивалент опции File|Save File (клавиши быстрого доступа Ctrl-S)

  Сохраняв все файлы проекта. Эквивалент опции File|Save All

  Открывает созданный ранее проект программы. Эквивалент опции File|Open Project (клавиши быстрого доступа Ctrl-F11)

  Добавляет новый файл к проекту. Эквивалент опции Project|Add to project (клавиши быстрого доступа Shift-F11)

  Удаляет файл из проекта. Эквивалент опции Project|Remove from Project

Группа View

  Выбирает модуль из списка модулей, связанных с текущим проектом. Эквивалент опции View|units (клавиши быстрого доступа Shift-F12)

  Выбирает форму из списка форм, связанных с текущим проектом. Эквивалент опции View|Forms (клавиши быстрого доступа Ctrl-F12)

  Переключает активность между окном формы и окном кода программы. Эквивалент опции View|Toggle Form/Unit (клавиша быстрого доступа F12)

  Создает новую форму и добавляет ее к проекту. Эквивалент опции File|New|Form (этой кнопки нет в версиях 1 и 2)

Группа Debug

  Компилирует и выполняет программу. Эквивалент опции Run|Run (клавиша быстрого доступа F9)

  Реализует паузу в работе отлаживаемой программы. Эквивалент опции Run|Program Pause

  Осуществляет пошаговую трассировку программы с прослеживанием работы вызываемых подпрограмм. Эквивалент опции Run | Trace into (клавиша быстрого доступа F7)

  Осуществляет пошаговую трассировку программы, но не прослеживает работу вызываемых подпрограмм. Эквивалент опции Run|Step Over (клавиша быстрого доступа F8)

Группа Custome

  Открывает доступ к встроенной справочной службе. Эквивалент опции Help|Delphi Help (этой кнопки нет в версиях 1, 2 и 3)

Группа Desktops

  Список выбора возможных вариантов настройки остальных окон Delphi

  Сохраняет текущую настройку окон Delphi

  Выбирает настройку окон, соответствующую отладочному режиму

Группа Internet

  Начинает создание нового приложения по технологии WebSnap (для Интернет)

  Создает новую страницу приложения WebSnap

  Создает новый модуль данных приложения WebSnap


Приложение П2

Меню компонентов

Компонент Edit страницы Standart

Компонент Edit представляет собой поле ввода-редактирова-ния строки символов. Свойства компонента приведены в табл.П2.1.

Таблица П2.1.

Свойства компонента Edit (поле редактирования)

Свойство

Описание

Name

Имя компонента. Используется в программе для доступа к компоненту и его свойствам, в частности- для доступа к тексту, введенному в поле редактирования

Text

Текст, находящийся в поле ввода и редактирования

Left

Расстояние от левой границы компонента до левой границы формы

Top

Расстояние от верхней границы компонента до верхней границы формы

Height

Высота поля

Width

Ширина поля

Font

Шрифт, используемый для отображения вводимого текста

ParentFont

Признак наследования компонентом характеристик шрифта формы, на которой находится компонент. Если значение свойства равно True, то при изменении свойства Font фор-мы автоматически меняется значение свойства Font компо-нента

Enabled

Используется для ограничения возможности изменить текст в поле редактирования. Если значение свойства равно False, то текст в поле редактирования изменить нельзя

Visible

Позволяет скрыть компонент (False) или сделать его ВИДИМЫМ (True)

Компонент Button страницы Standart

Компонент Button представляет собой командную кнопку. Свойства компонента приведены в табл. П2.2.

Таблица П2.2

Свойства компонента Button (командная кнопка)

Свойство

Описание

Name

Имя компонента. Используется в программе для доступа к компоненту и его свойствам

Caption

Текст на кнопке

Left

Расстояние от левой границы кнопки до левой границы формы

Top

Расстояние от верхней границы кнопки до верхней границы формы

Height

Высота кнопки

Width

Ширина кнопки

Enabled

Признак доступности кнопки. Если значение свойства равно True, то кнопка доступна. Если значение свойства равно False, то кнопка не доступна, например, в результате щелчка на кнопке событие Click не возникает

Visible

Позволяет скрыть кнопку (False) или сделать ее видимой (True)

Hint

Подсказка-текст, который появляется рядом с указателем мыши при позиционировании указателя на командной кнопке (для того чтобы текст появился, надо чтобы значение свойства ShowHint было True)

ShowHint

Разрешает (True) или запрещает (False) отображение подсказки при позиционировании указателя на кнопке

Компонент Memo страницы Standart

Компонент Memo представляет собой элемент редактирования текста, который может состоять из нескольких строк.

Свойства компонента приведены в табл. П2.3.

Таблица П2.3.

Свойства компонента Memo

Свойство

Описание

Name

Имя компонента. Используется в для доступа к свойствам компонента

Text

Текст, находящийся в поле Memo, рассматривается как единое целое

Lines

Массив строк, соответствующий содержимому поля. Доступ к строке осуществляется по номеру. Строки нумеруются с нуля

Lines.Count

Количество строк текста в поле Memo

Left

Расстояние от левой границы поля до левой границы формы

Top

Расстояние от верхней границы поля до верхней границы формы

Height

Высота поля

Width

Ширина поля

Font

Шрифт, используемый для отображения вводимого текста

ParentFont

Признак наследования свойств шрифта родительской формы