- •Введение
- •Анализ поставленной задачи
- •Анализ требований
- •1.2. Принцип построения программы
- •Алгоритм программы
- •3.3.1. Описание функции WinMain
- •3.3.2. Описание функции proccess
- •Разработка программы
- •3.1. Обоснование выбранных программных средств
- •3.2. Обработка сообщений
- •3.3. Определение функций и классов
- •3.3.3. Описание класса tMainForm
- •3.3.4. Описание класса tSelectColorForm
- •Руководство пользователя
- •Контрольный пример
- •Компиляция программы
- •5.2 Пример
- •Заключение
- •Список литературы
Разработка программы
3.1. Обоснование выбранных программных средств
Исходя из поставленных целей, мною для реализации данной системы был выбран набор программ утилит и библиотек предоставляемой фирмой Borland [3]. В процессе выполнения работы мною были использованы графический редактор оконных форм, средства для кодо-генерации и рефакторинга. Из средств программных библиотек были использованы визуальные компоненты: формы/окна, оконное меню, поля ввода, выпадающий список, кнопки выпадающего списка для выбора цвета.
3.2. Обработка сообщений
Обработка сообщений будет организована фреймворком VCL, который и занимается обработкой сообщения пользователя. Он содержит стандартный набор функция для приёма, обработки сообщений полученных от пользователя.
3.3. Определение функций и классов
3.3.1. Описание функции WinMain
Основная функция WinMain отвечает за запуск и инициализацию всех компонентов.
WINAPI WinMain(HINSTANCE, HINSTANCE, LPSTR, int)
{
try
{
Application->Initialize();
Application->CreateForm(__classid(TMainForm), &MainForm);
Application->CreateForm(__classid(TSelectColorForm), &SelectColorForm);
Application->Run();
}
catch (Exception &exception)
{
Application->ShowException(&exception);
}
catch (...)
{
try
{
throw Exception("");
}
catch (Exception &exception)
{
Application->ShowException(&exception);
}
}
return 0;
}
3.3.2. Описание функции proccess
Функция TMainForm::proccess() – является методом класса основного окна и реализует главную задачу приложения, а именно перевод величин. Также метод производит проверку на корректность введённой информации.
__fastcall TMainForm::proccess() {
double res = 0, bres = 0;
double src;
try {
src = Src->Text.ToDouble();
} catch (EConvertError &e) {
src = 0.0;
Dst->Color = clRed;
Dst->Text = "";
Back->Color = clRed;
Back->Text = "";
return 0;
}
Dst->Color = clWindow;
Back->Color = clWindow;
int i = Variants->ItemIndex;
if (i > -1 && i < 16) {
if (actions[i] == '+') {
res = src + coeficients[i];
bres = src - coeficients[i];
}
if (actions[i] == '*') {
res = src * coeficients[i];
bres = src / coeficients[i];
}
}
Dst->Text = FloatToStrF(res, ffFixed, 8, 4);
Back->Text = FloatToStrF(bres, ffFixed, 8, 4);
}
