1.16M
Category: programmingprogramming

Калькулятор с расширенными возможностями

1.

Курсовая работа
На тему: «Калькулятор с расширенными возможностями»
По дисциплине Системное Программирование
Выполнил студент группы ИУК5-42Б Егоров Н.С.
Руководитель Фролов П.В.

2.

Цель
• Целью курсовой работы является
формирование практических навыков
по разработке и реализации
программного приложения с
использованием интерфейса
прикладного программирования (АРI)
операционных систем.
Задачи
Исследование предметной области;
Изучение принципов системного
программирования и работы WinAPI
функций;
Разработка калькулятора;
Тестирование разработанного
программного обеспечения;
Анализ полученных результатов;
Подготовка расчетно-пояснительной
записки и графических листов;
Подготовка презентации и речи для
защиты курсовой работы;
Защита курсовой работы.

3.

Ограничения и технологии
Технологии:
Ограничения:
• Язык программирования С/C++;
• Использование Windows Api
Входные данные:
функций;
• Среда разработки Visual Studio
2019;
• Тип приложения – оконное;
• Арифметические выражения
• Тригонометрические выражения
Выходные данные:
• Вычисленные числовые значения
входных данных
• Сообщение об ошибке при
некорректном вводе

4.

Структура проекта
• Данное приложение
реализует многоуровневый
архитектурный шаблон

5.

Общая схема системы

6.

Основные алгоритмы и использованные функции Win Api
• BOOL CALLBACK
CalculatorDialog(HWND hwndDlg,
UINT message, WPARAM wParam,
LPARAM lParam) , где
• hWnd – дескриптор окна,
• message – сообщение, посылаемое
операционной системе,
• wParam, lParam – параметры
сообщений, для последующего
обращения.

7.

Основные алгоритмы и использованные функции Win Api
int WINAPI wWinMain(HINSTANCE hInstance,
HINSTANCE hPrevInstance, PWSTR pCmdLine, int
nCmdShow)
Начало
{
DialogBox(hInstance,
MAKEINTRESOURCE(IDD_CALCULATOR), 0,
(DLGPROC)CalculatorDialog);
Можно ли извлечь
Сообщение из
очереди сообщений
вызывающего
потока
да
MSG msg = { };
while (GetMessage(&msg, NULL, 0, 0))
{
Перевод сообщения
виртуальных клавиш в
символьные сообщения
TranslateMessage(&msg);
DispatchMessage(&msg);
}
Распределение
сообщения конкрет ной
оконной процедуре
return 0;
}
Конец
нет

8.

Основные алгоритмы и использованные функции Win Api
Основной алгоритм приложения –
непосредственное вычисление арифметических и
тригонометрических выражений и последующий
вывод на экран результата вычислений.
Для этого используется функция wchar_t*
Calculate(wchar_t* buf) , где buf – это глобальный
строчный массив символов, который был заполнен
пользователем числами и знаками с помощью
предыдущей функции.
Сперва, определяются приоритеты знаков, с
помощью встроенной функции “map” из
библиотеки “map”.
После определения приоритетов, необходимо
перенести данные из символьного массива buf[256]
в строку basic_string, а после этого в строку потока
basic_stringstream.
Далее, используя basic_stringstream, символы
поочередно переводятся в числа типа double.
После получения чисел, данная функция
определяет какой знак действия ввел пользователь,
и в зависимости от этого выполняются
необходимые вычисления.
Последний шаг в функции – это вывод на экран
вычисленного выражения.
Начало
Создание приорит ета
знаков
Перенос из массива
символов в строку
потока
Вычисление введённого
выражения
Вывод результ ат а
Конец

9.

Скриншоты пользовательского интерфейса
Окно приложения при запуске Окно с введённым выражением

10.

Заключение
• В ходе выполнения курсовой работы был разработан калькулятор с
расширенными возможностями на основе WinAPI
• Были сформированы навыки по разработке и реализации
программного приложения с использованием интерфейса прикладного
программирования (АРI) операционных систем
• В будущем можно усовершенствовать разработанное приложение
путем добавления дополнительного функционала (например,
добавление кнопок памяти или возможностью считывать информацию
из файла)

11.

Спасибо за внимание!
English     Русский Rules