- •Министерство образования и науки рф
- •1Общие требования
- •2Последовательность выполнения работы
- •3Порядок контроля и приёмки
- •4Пример выполнения работы
- •Создание mdi оболочки приложения. Определение структур данных в соответствии с заданием
- •4.1.1Создание mdi оболочки приложения
- •4.1.2Определение структур данных
- •4.2Добавление строк в таблицы, а также добавление фотографий
- •4.2.1Создание диалога для добавления строк в таблицы
- •4.2.2Объявление переменных, для хранения таблиц. Их инициализация и удаление
- •4.2.3Добавление строки в таблицу
- •4.2.4Загрузка изображения
- •4.2.5Отображение графического окна
- •Отображение строк таблиц
- •4.2.6Создание графического окна для отображения строк таблиц
- •4.2.7Вывод строк таблицы на экран
- •4.2.8Отображение графического окна
- •4.3Сохранение структур данных таблиц в файлы
- •4.4Чтение данных таблиц из файлов и заполнение соответствующих структур в памяти
- •4.5Реализация операций манипулирования над данными для каждой таблицы: изменение, удаление и сохранение значений в таблицах
- •4.5.1Реализация функции изменения строк таблицы на базе имеющегося диалога для добавления строк
- •4.5.2Вызов диалога добавления / изменения строк
- •4.5.3Удаление строк таблицы
- •4.6Создание фильтра строк по заданным условиям для каждой таблицы
- •4.7Реализация запросов на выбор данных из одной или нескольких таблиц
- •5Практические задания для самостоятельной работы
- •5.1Вариант 1
- •5.2Вариант 2
- •5.3Вариант 3
- •5.4Вариант 4
- •5.5Вариант 5
- •5.6Вариант 6
- •5.7Вариант 7
- •5.8Вариант 8
- •5.9Вариант 9
- •5.10Вариант 10
- •5.11Вариант 11
- •5.12Вариант 12
- •5.13Вариант 13
- •5.14Вариант 14
- •5.15Вариант 15
- •5.16Вариант 16
- •5.17Вариант 17
- •5.18Вариант 18
- •5.19Вариант 19
- •Список рекомендуемой литературы
4.2Добавление строк в таблицы, а также добавление фотографий
Действия, описанные в разделах 4.2.1 – 4.2.5, необходимо повторить для каждой отдельной создаваемой таблицы.
4.2.1Создание диалога для добавления строк в таблицы
Согласно пункту 5 «Общих требований» операция добавления строк в таблицы, должна производиться в отдельном графическом окне. Для создания нового графического окна выполните File – New – Form. Задайте имя для созданного объекта, выполнив команду Alt+Enter и введя в свойство Name требуемое имя, например: fmStudent. Затем сохраните новое окно, выполнив File – Save (имя сохраняемого файла должно состоять из имени созданного объекта, дополненного словом «Unit», например, fmStudentUnit).
Разместите необходимые графические элементы в окне, при этом не забывая присваивать осмысленные наименования объектам, например: объект для ввода номера – edNumber, объект для ввода ФИО – edFIO и т.д. Примерный вид окна представлен на рисунке 4.2. Для отображения графического объекта будет полезным установить свойство Stretch = true. Это позволит автоматически масштабировать загружаемое изображение.
Рисунок 4.2 – Проект окна для добавления строки в таблицу
Среда разработки Borland C++ Builder 6.0 функционирует таким образом, что все новые графические окна по умолчанию являются авто-создаваемыми, то есть создаются автоматически при старте приложения, даже если этого не требуется. Для того чтобы запретить автоматическое создание графического окна выполните Project – Options (либо нажмите Alt+F7) и во вкладке Forms переместите объект с требуемым именем, например, fmStudent, из списка Auto-Create Forms в список Available Forms.
4.2.2Объявление переменных, для хранения таблиц. Их инициализация и удаление
Прежде чем приступить к добавлению строк в таблицы, необходимо организовать объекты для хранения таблиц. Согласно пункту 4 «Общих требований», структуры данных каждой таблицы должны храниться в памяти в виде списка TList. Поэтому в заголовочном файле «main.h» в «public:»-секции класса необходимо объявить объекты для хранения таблиц, а в конструкторе объекта TMainForm выделить память под таблицы.
Объявление объектов для хранения таблиц
// файл main.h, класс TMainForm
public:
...
// Таблица студентов
TList *Students;
// Таблица Дисциплин
TList *Disciplines;
// Таблица Дисциплин-Студентов
TList *D_Ss;
Выделение памяти для объектов
// файл main.cpp, класс TMainForm
__fastcall TMainForm::TMainForm(TComponent *Owner)
: TForm(Owner)
{
Students = new TList();
...
}
В деструкторе объекта TMainForm (т.е. при закрытии приложения, когда объекты больше не понадобятся) необходимо освободить память, занимаемую таблицами:
Освобождение памяти, занимаемой объектами
// файл main.cpp, класс TMainForm
__fastcall TMainForm::~TMainForm()
{
TStudent *student;
// Выполнять цикл, пока количество элементов в таблице > 0
while (Students->Count > 0)
{
// Получает указатель на первый элемент в таблице
student = (TStudent *)Students->First();
// Исключает элемент из таблицы
Students->Remove(student);
// Освобождает память, занимаемую элементом
delete student;
}
// Освобождает память, занимаемую таблицей
delete Students;
...
...
}
Убедитесь, что приложение не содержит синтаксических ошибок. Для этого скомпилируйте и запустите приложение.