Skip to content

Repository files navigation

Calculator Qt

Калькулятор с поддержкой различных числовых типов данных и графическим интерфейсом на Qt Framework.

Описание

Калькулятор с поддержкой различных числовых типов (int, double, float, int64_t, size_t, uint8_t, rational) и графическим интерфейсом на Qt. Реализована архитектура MVC для разделения логики и представления.

Функциональность

  • Поддержка различных числовых типов данных
  • Графический интерфейс на Qt Framework
  • Архитектура MVC (Model-View-Controller)
  • Перегрузка операторов для пользовательских типов
  • Расширяемая архитектура для добавления новых типов

Технологии

  • C++17 - основной язык программирования
  • Qt Framework - для создания GUI
  • Шаблоны - для работы с разными типами данных
  • MVC архитектура - разделение логики и представления
  • Перегрузка операторов - для пользовательских типов (Rational)

Структура проекта

calculator/
├── main.cpp           # Точка входа
├── mainwindow.h/cpp   # Главное окно (View)
├── controller.h       # Контроллер (MVC)
├── calculator.h       # Модель калькулятора
├── rational.h         # Пользовательский тип Rational
├── mainwindow.ui      # UI файл Qt
└── submission.pro     # Файл проекта Qt

Требования

  • Qt 5.12+ или Qt 6.x
  • Компилятор с поддержкой C++17
  • qmake или CMake

Сборка

Использование qmake

qmake submission.pro
make

Использование CMake

mkdir build
cd build
cmake ..
make

Использование

Запуск приложения

./calculator

Поддерживаемые типы данных

  • int - целые числа
  • double - числа с плавающей точкой двойной точности
  • float - числа с плавающей точкой
  • int64_t - 64-битные целые числа
  • size_t - беззнаковые целые числа
  • uint8_t - 8-битные беззнаковые целые
  • Rational - рациональные числа (дроби)

Операции

  • Сложение (+)
  • Вычитание (-)
  • Умножение (*)
  • Деление (/)
  • Возведение в степень (^)

Особенности реализации

  • MVC архитектура: четкое разделение логики и представления
  • Шаблоны: универсальная работа с различными типами
  • Пользовательские типы: поддержка Rational для работы с дробями
  • Расширяемость: легко добавлять новые типы данных

Эволюция проекта

  • Версия 1: Простой консольный калькулятор
  • Версия 2: Добавлен графический интерфейс на Qt
  • Версия 3 (текущая): Добавлена поддержка множества типов данных и MVC архитектура

Автор

Михаил Нестеров

Лицензия

Этот проект создан в образовательных целях.

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages