Главная страница

Программирование delphi. Использование компьютерных технологий в медицине


Скачать 2.83 Mb.
НазваниеИспользование компьютерных технологий в медицине
АнкорПрограммирование delphi.doc
Дата28.01.2017
Размер2.83 Mb.
Формат файлаdoc
Имя файлаПрограммирование delphi.doc
ТипДокументы
#795
страница15 из 16
1   ...   8   9   10   11   12   13   14   15   16

7.2. Создание программы «Список студентов»


Задача. Написать программу управления структурой БД «студенты», которая позволяет добавлять, редактировать и удалять записи, а также сортировать, фильтровать записи и осуществлять поиск записи студента по введенной фамилии.

Окно программы представлено на рис. 7.6.

П
роцесс создания программы происходит по следующему алгоритму:

  1. Настроить псевдоним базы данных:

    • создать в папке создаваемой программы папку для хранения баз данных. Назвать папку «Data»;

    • запустить BDE Administrator (из папки Delphi – «Пуск/Программы/Borland Delphi/BDE Administrator», иконка );

    • назвать псевдоним (Alias) именем по номеру группы (например, если номер группы 9599, то псевдоним назвать 9599);

    • с помощью мастера (для версий Delphi 3 – 6) или вручную (Delphi 2) указать папку, где будут находиться файлы базы данных (указать путь к созданной папке «Data»);

    • сохранить конфигурацию («Object/Apply») и выйти из BDE Administrator Object/Exit»).

  1. Создать базу данных:

    • запустить Database DesktopПуск/Программы/Borland Delphi/Database Desktop», иконка );

    • создать новую таблицу («File/New/Table»). Выбрать драйвер базы данных Paradox;

    • создать поля таблицы «Студенты». Структура БД: идентификационный (уникальный) номер студента (поле ID) – тип поля автоинкремент, поле первичного индекса; фамилия студента (поле Name) – тип данных символьное поле; пол студента (поле Sex) – тип данных символьное поле; группа студента (поле Group) – тип данных числовой. Заполненная таблица полей выглядит так:



      Field Name

      Type

      Size

      Key

      1

      ID

      +




      *

      2

      Name

      A

      20




      3

      Sex

      A

      7




      4

      Group

      N







    • создать 3 вторичных индекса: по полям Name; Sex, Name (в индекс включены 2 поля – первое Sex, второе Name); Group, Name (выбрать среди свойств таблицы (Table Properties) свойство Secondary indexes). Назвать индексы: Index_Name, Index_Sex_Name, Index_Group_Name соответственно;

    • сохранить таблицу (кнопка «Save as») в папке «Data», созданной в п. 1 для БД, дав имя таблице «Student.db»;

    • выйти из Database desktop – команда «File/Exit».

  1. Запустить Delphi.

  2. Создать новый проект и сохранить его в папке создаваемой программы («work7.dpr», «main.pas»).

  3. Настроить вид экрана:

    • для подключения файла баз данных необходимо:

      • поместить на форму таблицу (элемент Table, вкладка DataAccess, значок );

      • настроить элемент Table:

        • дать имя таблице TStud ( Name);

        • в свойстве DatabaseName указать имя псевдонима (в нашем примере 9599);

        • настроить имя таблицы – выбрать из списка имя файла «Student.db» ( TableName);

        • настроить индексный файл – выбрать из списка имя индекса Index_Name (сортировка по фамилии студента) ( IndexName);

        • сделать таблицу активной (показать содержимое базы данных) – установить свойство Active в значение true;

    • поместить элемент-связку (DataSource, DataAccess,):

      • дать имя объекту DSStud (Name);

      • настроить связку на элемент TStud, выбрать из списка ( DataSet);

    • поместить на форму элемент отображения данных БД и работы с ним – элемент таблица отображения базы данных (DBGrid, DataControl, ). Настроить его свойства:

      • дать имя объекту DBGStud (Name);

      • указать элемент-связку DSStud (DataSource);

      • настроить поля, которые будут отображены в таблице (Columns), запустив мастера настройки - :

        • удалить поле «ID», нажав клавишу <Del>;

        • изменить заголовки таблицы для каждого поля («Фамилия», «Пол», «Группа»): выбрать в списке поле и изменить его свойство Title.Caption;

        • для поля «Пол» ввести список значений, позволяющий при вводе записи выбирать значение из списка – свойство PickListдобавить две строки «мужской», «женский»;

        • закрыть настройщик свойств полей;

    • для сортировки данных поместить элемент зависимых кнопок ниже элемента DBGStud слева (на рис. 7.6 элемент не виден):

      • поместить элемент RadioGroup (Standard, ) и настроить свойства:

      • имя объекта изменить на RGSort (Name);

      • изменить заголовок на «Сортировка» (Caption);

      • добавить список сортировки («Имя», «Пол», «Группа»), введя эти значения при редактировании свойства Items;

      • установить по умолчанию сортировку по имени (свойство ItemIndex установить в 0);

    • для фильтрации добавить еще один элемент зависимых кнопок (разместить справа от элемента RGSort):

      • поместить элемент RadioGroup (Standard, ) и настроить свойства:

        • изменить имя на RGFiltr (Name);

        • изменить заголовок на «Фильтрация» (Caption);

        • добавить список фильтрации («Весь список», «Юноши», «Девушки») (Items);

        • установить по умолчанию отображение всего списка (ItemIndex);

    • для осуществления поиска студента по фамилии добавить элементы ниже элементов RGSort и RGFiltr:

      • элемент ввода фамилии – строка ввода (Edit,Standard,), элемент назвать EFind (Name);

      • подсказку к строке ввода – элемент метка (Label, Standard,), изменить заголовок на «Поиск фамилии:» (Caption);

      • кнопку начала поиска – элемент кнопка (Button, Standard,), изменить имя на BFind (Name) и заголовок на «Поиск» (Caption);

    • добавить кнопку выхода из программы (расположить справа от таблицы) – элемент кнопка (Button, Standard,), изменить имя на BQuit (Name) и заголовок на «Выход» (Caption);

    • форма готова!

  1. Запрограммировать кнопку выхода BQuit.

  2. Запрограммировать сортировку списка студентов. Сортировка осуществляется при анализе индекса (ItemIndex) объекта RGSort. Необходимо добавить следующие строки на событие этого элемента onClick:

Case RGSort.ItemIndex of

0 : TStud.IndexName := 'Index_Name'; //Индекспоимени

1 : TStud.IndexName := 'Index_Sex_Name'; //Индекспополу

2 : TStud.IndexName := 'Index_Group_Name'; //Индекспогруппе

end;

DBGStud.SetFocus;

{Сделать активным таблицу DBGStud}

  1. Запрограммировать фильтрацию списка студентов. Фильтрация осуществляется при анализе индекса (ItemIndex) объекта RGFiltr. Необходимо добавить следующие строки на событие onClick этого элемента:

Case RGFiltr.ItemIndex of

0 : TStud.CancelRange; //Отменить фильтр

1 : begin

TStud.CancelRange; //Отменить фильтр

TStud.IndexName := 'Index_Sex_Name'; //Индекспополу

TStud.SetRange(['мужской'],['мужской']); //Установить фильтр

{Показать только мужчин}

end;

2 : begin

TStud.CancelRange; //Отменить фильтр

TStud.IndexName := 'Index_Sex_Name'; //Индекспополу

TStud.SetRange(['женский'],['женский']); //Установить фильтр

{Показать только женщин}

end;

end;

DBGStud.SetFocus;

{Сделать активным элементом таблицу DBGStud}

  1. Запрограммировать поиск записи по введенной фамилии в поле ввода элемента EFind, используя событие onClick элемента кнопка BFind. Необходимо добавить следующие строки:

TStud.CancelRange; //Отменить фильтр (вдруг он установлен?)

RGSort.ItemIndex := 0; //Отобразить режим сортировки

RGFiltr.ItemIndex := 0; //Отобразить режим фильтра

TStud.IndexName := 'Index_Name'; //Индекс по искомому полю

TStud.FindNearest([EFind.Text]); //Поискзаписи

DBGStud.SetFocus; //СделатьактивнымтаблицуDBGStud

  1. Программа написана!

  2. Запустить программу – <F9>.

  3. После запуска программы ввести данные в базу данных и проверить работоспособность программы.

Индивидуальное задание


Модифицировать созданную программу для обработки данных БД «Студенты». Варианты заданий следующие:

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

  2. Вывести список студентов, определенной группы, вводимой в поле ввода.

  3. Вывести список студентов, у которых средний балл аттестата больше 4.

  4. Вывести список студентов, у которых нет троек по результатам сессии (средний балл сессии больше 4).

  5. Вывести список иногородних студенток.

  6. Вывести список иногородних студентов-мужчин.

  7. Вывести список студентов-отличников определенной группы, вводимой в поле ввода.

  8. Вывести список студентов определенной группы и определенного пола, задаваемых в полях ввода.

  9. Вывести список студентов, получающих стипендию больше введенного числа.

  10. Вывести список студентов, не получающих стипендию.

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

  12. Вывести список студентов, имеющих средний балл аттестата и по результатам сданной сессии больше 4.

  13. Осуществить поиск студентов по номеру группы и фамилии, вводимых в поля ввода.

  14. Осуществить поиск студентов по году рождения и фамилии, вводимых в поля ввода.

  15. Осуществить поиск студентов по полу и фамилии, вводимых в поля ввода.

  16. Вывести список студентов-хорошистов, получающих стипендию.

  17. Вывести список студентов с фамилией на введенную букву и получающих стипендию.

  18. Вывести список студентов-юношей, получающих стипендию и имеющих среднюю оценку по результатам сессии больше 4.

  19. Вывести список студентов-девушек, получающих стипендию и имеющих среднюю оценку по результатам сессии меньше 4.

  20. Вывести список девушек, окончивших школу на «отлично».

Итоги


В седьмой теме были изучены: способы построения БД с помощью комбинированного типа запись; способы построения БД с использованием аппарата Delphi по поддержке баз данных; стандартные утилиты создания БД (BDE Administrator и Database desktop); некоторые стандартные операции при работе с БД.

При построении демонстрационной программы были получены навыки работы с визуальными компонентами: невидимым элементом настройки БД – Table; невидимым элементом связки файла БД с видимыми элементами – DataSource; элементом отображения, набора и редактирования данных БД – DBGrid.
1   ...   8   9   10   11   12   13   14   15   16


написать администратору сайта