Добавлен: 17.03.2024
Просмотров: 49
Скачиваний: 0
ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
СОДЕРЖАНИЕ
Действия над столбцами таблицы
7.1 Блок схема алгоритма метода void __fastcall Button_OpenClick(TObject *Sender);
7.2 Блок схема алгоритма void __fastcall Button_ObrClick(TObject *Sender);
7.3 Блок схема алгоритма void __fastcall Button_PredictClick(TObject *Sender);
7.4 Блок схема алгоритма void __fastcall Button_SaveClick(TObject *Sender);
8.1 Заголовочный файл “mFunit.h”
Рисунок 29. Флаг ”Режим редактирования”
приложение входит в режим редактирования, в режиме редактирования для изменения ячейки значения таблицы, нужно сделать по ячейке таблицы один клик левой мыши.
При нажатии на кнопку “Обработка данных” открывается вкладка с функционалом, предназначенным для обработки исходных данных и экстраполяции(Рисунок 15):
Рисунок 15. Вкладка ”Обработка данных”
-
Кнопка “Аппроксимация данных” дублирует кнопку “Аппроксимация” в главной области приложения. -
Кнопка “Экстраполяция данных” дублирует кнопку “ Экстраполяция” в главной области приложения.
- 1 2 3 4 5 6 7 8 9
Выбор среды разработки
Выбор среды разработки «C++ Builder» от RAD Studio был обусловлен стабильной работой приложения и множеством функций, хорошо подходящих под мою цель разработки ПО для данной курсовой работы, а также обширный набор компонентов, который делает работу с программой очень удобной.
-
Форматы данных
-
Входные данные
-
Обоснование выбора двоичного файла
-
Двоичный файл обладает рядом преимуществ:
-
Более эффективное использование ресурсов компьютера, по сравнению с текстовым файлом, так как информация напрямую передается из оперативной памяти в двоичный файл -
Закрытый от конечного пользователя формат -
Уменьшено количество проверок при чтении из бинарного файла -
Структурированный набор байтов двоичного файла удобен в использовании программистом
-
Структура двоичного файла
-
n – количество значений – 4 байта -
значения исходных данных * n – 4 байта * n
-
Выходные данные
Выходные данные имеют ту же структуру, что и входные.
-
Cтруктура программы
-
-
Модуль
-
Создаёт форму TForm1, предназначен для работы с исходными данными и аппроксимирования данных.
-
Вспомогательные типы данных
float elem_type | Предназначена для удобства изменения типа данных |
DynamicArray | Предназначена для удобства написания кода программы |
DynamicArray | Предназначена для удобства написания кода программы |
-
Константы
Модуль не содержит констант
Компоненты VCL TForm1
Имена | Класс | Назначения |
MainMenu | TManMenu | Меню вверху окна |
| TMenuitem | Меню Данные |
| TMenuitem | Открыть файл |
| TMenuitem | Сохранить данные |
| TMenuitem | Сохранить как |
| TMenuitem | Выход |
| TMenuitem | Меню Строки и столбцы |
| TMenuitem | Очистить таблицу |
| TMenuitem | Очистить столбец |
| TMenuitem | Очистить строку |
| TMenuitem | Режим редактирования |
| TMenuitem | Меню Обработка данных |
| TMenuitem | Аппроксимация данных |
| TMenuitem | Экстраполяция данных |
GroupBox1 | TGroupBox | Группировка компонентов |
GroupBox2 | TGroupBox | Группировка компонентов |
GroupBox3 | TGroupBox | Группировка компонентов |
Button_Save | TButton | Сохранить данные |
Button_Open | TButton | Загрузить данные |
Button_Insert | TButton | Вставить столбец |
Button_Add | TButton | Добавить столбец |
Button_Delete | TButton | Удалить столбец |
CheckBox_M | TCheckBox | Отображение первого графика |
CheckBox_L | TCheckBox | Отображение второго графика |
CheckBox_P | TCheckBox | Отображение третьего графика |
Chart1 | TChart | Панель с графиками |
StringGrid | TStringGrid | Таблица данных |
OD | TOpenDialog | Диалог загрузки |
SD | TSaveDialog | Диалог сохранения |
-
Функции
Заголовок | Назначение | Параметры | Возвращаемое значение |
void MNK(D_Arr &ArrX, D_Arr &ArrY, elem_type &a, elem_type &b) | Метод наименьших квадратов | D_Arr &ArrX – динамический массив X, D_Arr-вх &ArrY – динамический массив Y-вх. elem_type &a – коэффициент а вых. elem_type &b – коэффициент b- вых. | Не возвращает значения |
void Filling_ArrLin(TStringGrid* StringGrid, D_Arr ArrX,D_Arr &ArrLin, elem_type &a, elem_type &b) | Заполнение массива значениями аппр. функции | TStringGrid* StringGrid – таблица данных – вых. D_Arr ArrX – значения X – вх D_Arr &ArrLin – массив аппр. ф. – вх. elem_type &a – коэффициент а вх. &b – коэффициент b - вх. | Не возвращает значения |
void Filling_ArrPar(TStringGrid* StringGrid, D_Arr ArrX,D_Arr &ArrPar, elem_type &a, elem_type &b,elem_type &c) | Заполнение массива значениями аппр. функции | D_Arr ArrX – значения X – вх D_Arr &ArrPar – массив аппр. ф. – вх. elem_type &a – коэффициент а вх. &b – коэффициент b - вх. elem_type &b,elem_type &c – коэффициент с – вх. | Не возвращает значения |
D_Matr Par(D_Arr &ArrX, D_Arr & ArrY, D_Matr &Matr, elem_type &a_par, elem_type &b_par, elem_type &c_par) | Метод наименьших квадратов для квадратичной функции | D_Arr &ArrX – массив X – вх, D_Arr & ArrY- массив Y– вх, D_Matr &Matr – СЛУ – вых. elem_type &a_par -коэффициент а –вх. &b_par -коэффициент b –вх. &c_par -коэффициент c –вх. | Возвращает указатель на двумерный массив в котором содержится СЛУ |
bool ChechGrid(TStringGrid *StringGrid,TMainMenu* MainMenu, TButton *Button_Obr,TButton *Save, TMenuItem* Save_as,TMenuItem* C1, TButton *Prognoz, TStatusBar *SB, bool avObr) | Проверяет исходные данные на корректность | TStringGrid* StringGrid – таблица данных – вх., *StringGrid,TMainMenu* MainMenu – меню- вх\вых., TButton *Button_Obr,TButton – кнопка “апрроксимация”, TMenuItem* Save_as,TMenuItem* - кнопка “Сохранить как” – вх\вых. TButton *Prognoz, - Кнопка “Экстраполяция” – вх\вых, TStatusBar *SB – статус бар- вых. | Возвращает значение true или false |
bool Save_to_file(TStringGrid* StringGrid, String name) | | TStringGrid* StringGrid – таблица данных – вх., String name – имя файла – вх. | Возвращает значение true или false |
-
Переменные
Глобальные
Имя | Тип данных | Назначение |
MatrG | D_Matr | Двуммерный массив для СЛУ |
ArrX | D_Arr | Массив для значений X |
ArrY | D_Arr | Массив для значений Y |
ArrLin | D_Arr | Массив для значений аппр. ф. |
ArrPar | D_Arr | Массив для значений аппр. ф. |
a_l | elem_type | Коэффициент а |
b_l | elem_type | Коэффициент b |
a_par | elem_type | Коэффициент a для кв.ф. |
b_par | elem_type | Коэффициент b для кв.ф. |
c_par | elem_type | Коэффициент c для кв.ф. |
FCurCellText | String | Значение ячейки при входе в режим редактирования |
Локальные
Имя | Тип данных | Назначение | Функция/метод |
xy, am_x, am_y, pow_am_x, pow_x | elem_type | Значения необходимые для нахождения коэффициентов аппр.ф. | MNK |
x_p4, x_p3, x_p2, x, x_p2y, xy, y | elem_type | Значения необходимые для нахождения коэффициентов кв. аппр.ф. | |
a, b | int | Индексы некорректных элементов таблицы | ChechGrid |
count | int | Счётчик некорректных значений в таблице | ChechGrid |
f | elem_type | Переменная для проверки конвертируемости | Save_to_file |
-
Обработчики событий
Имя | Условие вызова | Назначение |
Button_OpenClick | Нажатие на кнопку “Загрузить…” | Загрузка данных из файла |
StringGridDrawCell | Перерисовка таблицы | Раскрашивание некорректных и пустых ячеек в таблице |
StringGridDblClick | Двойной щелчок по ячейке таблицы | Вход в режим редактирования |
StringGridKeyPress | Нажатие на клавишу | Контроль ввода |
N3Click | Нажатие на кнопку “Загрузить…” в меню | Загрузка данных из файла |
StringGridSetEditText | Изменение значения в ячейках таблицы | Выход из режима редактирования, если строка не хранит исходные данные |
Button_InsertClick | Нажатие на кнопку “Вставить” | Вставка пустого столбца |
Button_DeleteClick | Нажатие на кнопку “Удалить” | Удаление столбца |
Button_AddClick | Нажатие на кнопку “Добавить” | Добавляет пустой столбец в конец таблицы |
Button_ObrClick | Нажатие на кнопку “Аппроксимация” | Аппроксимация исходных данных, вывод результирующих данных в таблицу и визуализация аппроксимирующих функций |
N5Click | Нажатие на кнопку “Очистить таблицу” в меню | Заполняет таблицу пустыми значениями |
N8Click | Нажатие на кнопку “Режим редактирования” в меню | Вход в режим редактирования |
StringGridSelectCell | Смена фокуса в таблице | Вызывает функцию CheckGrid и проверяет таблицу на корректность |
N6Click | Нажатие на кнопку “Очистить столбец” в меню | Заполняет столбец пустыми значениями |
N7Click | Нажатие на кнопку “Очистить строку” в меню | Заполняет строку пустыми значениями |
StringGridGetEditText | Редактирование ячеек | Проверка корректности введённого значения |
CheckBox_MClick | Нажатие на кнопку “Изм.” | Отвечает за отображение первого графика |
CheckBox_LClick | Нажатие на кнопку “Лин.” | Отвечает за отображение второго графика |
CheckBox_PClick | Нажатие на кнопку “Пар.” | Отвечает за отображение третьего графика |
N4Click | Нажатие на кнопку “Сохранить как…” в меню | Открытие диалога сохранения данных |
Button_SaveClick | Нажатие на кнопку “Сохранить” | Сохранения в файл или открытие диалога сохранения данных |
C1Click | Нажатие на кнопку “Сохранить” в меню | Открытие диалога сохранения данных |
Button_PredictClick | Нажатие на кнопку “Экстраполяция” | Вызывает окно с экстраполяцией данных |
FormCloseQuery | Закрытие формы | Предлагает сохранить исходные данные |
N13Click | Нажатие на кнопку “Выход” в меню | Закрытие формы |