Доступ к таблицам физико-механических параметров материалов реализован в двух классах объектов: класс TMatDataTab определяет операции над отдельной таблицей, а класс TMatDataBase – над базой данных в целом.
Экземпляр класса TMatDataTab содержит поля данных:
|
** DataTab |
Double |
Динамически распределяемый массив числовых данных. Этот массив содержит максимальное число строк данных (их количество равно общему числу возможных параметров материала и определяется значением константы MATCONST в файле MatData.h) |
|
TabNumber |
Int |
Отсчетов температуры |
|
Handler |
HANDLERTYPE |
идентификатор материала |
|
Invar |
InvarArray (double *) |
Массив констант, не зависящих от температуры |
|
Name |
Char[256] |
Обозначение материала |
* Неиспользуемые строки данных содержат нулевые значения.
Методы работы с данными:
|
int OK() |
Проверка на существование таблицы параметров |
|
HANDLERTYPE Handle() |
Обеспечивает доступ к хэндлеру |
|
double& Data(const int i,const int T) |
Обеспечивает доступ к таблице данных по номеру параметра i и номеру температурного отсчета T, возвращая ссылку на элемент динамического массива. Это позволяет использовать данную функцию как в правой, так и в левой части оператора присваивания. |
|
Zero() |
Заполняет таблицу нулевыми значениями |
|
int UnloadToText(TFileStream*) |
Выгружает таблицу данных в описанном выше (п. 4.1.1) формате в ранее открытый файловый поток, указатель на который передается через параметр. |
|
int FormRows(int*) |
Формирует массив индексов строк таблицы. Этот массив размером MATCONST целых чисел содержит номера строк таблицы, заполненных, хотя бы частично, ненулевыми значениями. Остальные (правые) позиции не заполняются никакими значениями и используются для внутренних целей программами пакета. |
Экземпляр класса TMatDataBase содержит следующие поля данных:
|
** MatData |
TMatDataTab |
Адрес массива указателей на таблицы данных |
|
TabNumber |
Int |
Число используемых таблиц данных |
|
TabSize |
Int |
Размер массива указателей (он больше числа таблиц на величину резерва, позволяющего добавлять новые таблицы без перераспределения памяти) |
|
IsModify |
Int |
Признак изменения данных |
|
MaxHandler |
HANDLERTYPE |
|
|
SouDataFile |
Char[256] |
Доступ к отдельным таблицам осуществляют функции:
|
int SetFileName(const char*) |
Изменяет поле SouDataFile |
|
virtual int Save() |
Сохранение материала в *.txt |
|
virtual int SaveAs() |
Сохранение материала в *.txt |
|
virtual int Close() |
Вывод диалогового окна с запросом на сохранение. |
|
virtual int Open(int) |
Открываем, читая файл с заданным именем в текущем директории. |
|
virtual int Create(int) |
Выгружаем старую базу данных в текущий директорий модели |
|
int OK() |
Проверка на существование таблицы материалов |
|
ClearAll() |
Очищает таблицу материалов |
|
char* StoffName(int) |
Возвращает обозначение материала |
|
intTempNum(int) |
Число отсчетов температуры |
|
Zero(int) |
Обнуление таблицы |
|
int Rename(int,const char*) |
Переименование таблицы |
|
int LoadFromTxt(const char* FileName) |
Загружает базу данных из текстового файла. Имя файла передается через параметр. |
|
int UnloadToTxt(const char* FileName) |
Выгружает базу данных в текстовый файл |
|
Sort() |
Сортирует базу, располагая таблицы в алфавитном порядке по названиям материалов. |
|
Excluse(int) |
Удаляет из базы таблицу с заданным номером. Это изменение касается только копии данных, загруженной в основную память, и не затрагивает оригинал, хранящийся в файле. |
|
int Add(const char* s) |
Добавляет к базе новую таблицу. Это изменение касается только копии данных, загруженной в основную память, и не затрагивает оригинал, хранящийся в файле. |
|
int Find(const char* s) |
Находит первую таблицу, начальные символы названия которой совпадают с заданной строкой. Эта функция используется для быстрого поиска нужной таблицы набором начальных букв ее названия на клавиатуре. |
|
int FindHandle(HANDLERTYPE) |
Возвращает номер таблицы по заданному хэндлеру. |
|
int IsIsotrop(int Tab) |
|
|
int IsOrthotrop(int Tab) |
|
|
int Interpol(int Tab, double T, double* Res) |
Интерполяция |
|
HANDLERTYPE Handle(int Tab) |
Возвращает хэндлер заданной таблицы. |
* Следует иметь в виду, что номер таблицы в базе данных – величина не постоянная, он может меняться даже во время одного сеанса работы с пакетом. Это же замечание относится и к функции интерполяции Interpol, которая формирует массив интерполированных значений параметров для произвольного значения температуры по таблице с заданным номером.
Интерактивный доступ к базе данных необходим для ее просмотра и корректировки.
Просмотр и корректировка состава таблиц осуществляется из формы MainStofForm. Эта форма (рис. 4.1) содержит список названий таблиц, сверху которого находится строка редактирования текста. Набирая в верхней строке начальные буквы названия материала, пользователь осуществляет быстрый поиск этого названия в списке. Альтернативный способ поиска заключается в пролистывании списка с помощью скроллера; этот способ, однако, становится менее удобным, когда база данных заполняется большим числом таблиц.
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.