- •Министерство образования и науки рф
- •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
- •Список рекомендуемой литературы
Создание mdi оболочки приложения. Определение структур данных в соответствии с заданием
4.1.1Создание mdi оболочки приложения
Перед созданием проекта, создайте каталог для будущего проекта. Рекомендуется организовать следующую иерархию каталогов: «d:\Os\<Группа>\<Фамилия>\<Проект>», где:
-
<Группа>
- номер группы студента, например: IT353
<Фамилия>
- фамилия студента, например: Ivanov
<Проект>
- название проекта, например: CarDatabase
Следует обратить внимание, что для определения значений параметров должны использоваться только латинские буквы и цифры, а использование символа «пробел» запрещается.
Выполните команду File – New – Other. В появившемся окне выберите Projects – MDI Application и нажмите ОК. В появившемся окне укажите каталог для сохранения проекта и нажать ОК.
Далее произведём изменение заголовка приложения. Нажмите Shift+F12 для просмотра одной из автоматически созданных форм, рисунок 4.1. Выберите MainForm и нажмите ОК.
Рисунок 4.1 – Просмотр существующих форм приложения
Для изменения свойств объекта MainForm нажмите Alt+Enter, либо выделите в левой части окно «Object Inspector». В списке свойств объекта MainForm найдите свойство Caption, введите в нём имя Вашего приложения и нажмите Enter. Запустите приложение клавишей F5, либо нажатием на панели инструментов кнопки .
4.1.2Определение структур данных
В соответствии с пунктом 3 «Общих требований» необходимо определить структуры хранения данных таблиц. Описание структур данных необходимо производить в отдельном файле. Для этого выполните File – New – Other. В появившемся окне выбрать New – Header File и нажать ОК. Сохранить созданный файл File – Save As с именем StructDef.h (описание структур). Добавить созданный файл в проект командой Project – Add to Project.
Описание структур данных в соответствии с заданием
#pragma once // Запрещает дублированное подключение .h файла
// Описание структр для чтения из и записи в файлы
#pragma pack(1) // Включает однобайтовое выравнивание структур в памяти
struct stDiscipline
{
stDiscipline() { memset(this, 0x0, sizeof(stDiscipline)); }
unsigned int No; // Номер дисциплины
char Name[20]; // Название дисциплины
char Teacher[50]; // Преподаватель
unsigned char Term; // Семестр
};
struct stStudent
{
stStudent() { memset(this, 0x0, sizeof(stStudent)); }
char No[10]; // Номер студенческого билета
char Fio[50]; // ФИО
char GroupNo[10]; // Номер группы
double Birthday; // Дата рождения
char Address[20]; // Адрес
int PhotoLen; // Длина поля фото
};
struct stD_S
{
stD_S() { memset(this, 0x0, sizeof(stD_S)); }
unsigned int DisciplineNo; // Номер дисциплины
char StudentNo[10]; // Номер студенческого билета
unsigned char Mark; // Оценка
};
#pragma pack() // Отключает выравнивание структур
// Конец описания структур для чтения из и записи в файлы
// Описание структур для ОСНОВНОЙ работы с данными в памяти приложения
class TDiscipline
{
public:
TDiscipline() { No = Term = 0; }
unsigned int No; // Номер дисциплины
AnsiString Name; // Название дисциплины
AnsiString Teacher; // Преподаватель
unsigned char Term; // Семестр
};
class TStudent
{
public:
TStudent() { Photo = new Graphics::TBitmap(); }
~TStudent() { delete Photo; }
AnsiString No; // Номер студенческого билета
AnsiString Fio; // ФИО
AnsiString GroupNo; // Номер группы
TDateTime Birthday; // Дата рождения
AnsiString Address; // Адрес
Graphics::TBitmap *Photo; // Фото - массив байт
};
class TD_S
{
public:
TD_S() {DisciplineNo = Mark = 0; }
unsigned int DisciplineNo; // Номер дисциплины
AnsiString StudentNo; // Номер студенческого билета
unsigned char Mark; // Оценка
};
Множество выше описанных структур следует логически разбить на два класса. Первый класс структур, описанных в блоке #pragma pack(1) – #Pragma pack() и начинающихся с приставки «st», – предназначен для записи и чтения данныхиз файлов формата .tbl на жёстком диске. Второй класс структур, начинающихся с приставки «Т», – предназначен для работы с данными (строками таблиц), расположенными непосредственно в памяти приложения.