Файл: Курсовая работа по дисциплине Программирование.docx

ВУЗ: Не указан

Категория: Курсовая работа

Дисциплина: Не указана

Добавлен: 17.03.2024

Просмотров: 57

Скачиваний: 0

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.



Рисунок 29. Флаг ”Режим редактирования”

приложение входит в режим редактирования, в режиме редактирования для изменения ячейки значения таблицы, нужно сделать по ячейке таблицы один клик левой мыши.

При нажатии на кнопку “Обработка данных” открывается вкладка с функционалом, предназначенным для обработки исходных данных и экстраполяции(Рисунок 15):



Рисунок 15. Вкладка ”Обработка данных”

  • Кнопка “Аппроксимация данных” дублирует кнопку “Аппроксимация” в главной области приложения.

  • Кнопка “Экстраполяция данных” дублирует кнопку “ Экстраполяция” в главной области приложения.
  1. 1   2   3   4   5   6   7   8   9

Выбор среды разработки


Выбор среды разработки «C++ Builder» от RAD Studio был обусловлен стабильной работой приложения и множеством функций, хорошо подходящих под мою цель разработки ПО для данной курсовой работы, а также обширный набор компонентов, который делает работу с программой очень удобной.
  1. Форматы данных

  1. Входные данные

    1. Обоснование выбора двоичного файла


Двоичный файл обладает рядом преимуществ:

  • Более эффективное использование ресурсов компьютера, по сравнению с текстовым файлом, так как информация напрямую передается из оперативной памяти в двоичный файл

  • Закрытый от конечного пользователя формат

  • Уменьшено количество проверок при чтении из бинарного файла

  • Структурированный набор байтов двоичного файла удобен в использовании программистом
    1. Структура двоичного файла


  • n – количество значений – 4 байта

  • значения исходных данных * n – 4 байта * n
  1. Выходные данные


Выходные данные имеют ту же структуру, что и входные.
  1. Cтруктура программы



    1. Модуль


Создаёт форму TForm1, предназначен для работы с исходными данными и аппроксимирования данных.
      1. Вспомогательные типы данных


float elem_type

Предназначена для удобства изменения типа данных

DynamicArray D_Arr

Предназначена для удобства написания кода программы

DynamicArray> D_Matr;

Предназначена для удобства написания кода программы
      1. Константы


Модуль не содержит констант

Компоненты VCL TForm1


Имена

Класс

Назначения

MainMenu

TManMenu

Меню вверху окна

  • Lf1

TMenuitem

Меню Данные

  • N3

TMenuitem

Открыть файл

  • C1

TMenuitem

Сохранить данные

  • N4

TMenuitem

Сохранить как

  • N13

TMenuitem

Выход

  • N1

TMenuitem

Меню Строки и столбцы

  • N5

TMenuitem

Очистить таблицу

  • N6

TMenuitem

Очистить столбец

  • N7

TMenuitem

Очистить строку

  • N8

TMenuitem

Режим редактирования

  • N2

TMenuitem

Меню Обработка данных

  • N9

TMenuitem

Аппроксимация данных

  • N10

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

Диалог сохранения



      1. Функции


Заголовок

Назначение

Параметры

Возвращаемое значение

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

























      1. Переменные


Глобальные

Имя

Тип данных

Назначение

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



      1. Обработчики событий


Имя

Условие вызова

Назначение

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

Нажатие на кнопку “Выход” в меню

Закрытие формы