Лабораторная работа № 5. Приложение Accountant

Студент: Кривошеин Максим Константинович, группа ИС-2301
Дисциплина: Разработка мобильных приложений, СПбГЭУ
Платформа: ОС Аврора 5.2 (Aurora SDK 5.2.0.180), Qt 5.6, QML / Sailfish Silica

Задание

Приложение личных финансов: учёт расходов и доходов.

  • На главном экране списком отображаются все доходы и расходы, сумма всех доходов, сумма всех расходов и состояние баланса.
  • Для записи расхода — отдельный экран: сумма, дата, описание и кнопка «Добавить», которая добавляет расход в общий список и переходит на главный экран.
  • С экрана расхода можно перейти на экран настройки лимитов расходов, где задаётся максимальная сумма одной записи расхода. С экрана лимитов можно перейти на главный экран или вернуться на предыдущий.
  • Для записи дохода — отдельный экран: сумма, дата, описание источника дохода и кнопка «Добавить», которая добавляет доход в общий список.

Реализация

Экран Файл Что делает
Главный qml/pages/MainPage.qml список всех операций (новые сверху), итоги «Доходы», «Расходы», «Баланс», кнопки «+ Доход» и «− Расход», удаление операции через контекстное меню
Расход qml/pages/ExpensePage.qml сумма, дата (DatePickerDialog), описание; «Добавить» сохраняет расход и возвращает на главный экран; кнопка и пункт меню «Лимиты расходов»
Лимиты qml/pages/LimitsPage.qml включение лимита и максимальная сумма одной записи; «Сохранить и вернуться» — на экран расхода, «Сохранить и на главный экран» — на главный
Доход qml/pages/IncomePage.qml сумма, дата, источник дохода; «Добавить» сохраняет доход и возвращает на главный экран
  • Общие поля формы (сумма, дата, описание) вынесены в компонент qml/components/OperationForm.qml.
  • Данные хранит qml/components/AccountStore.qml: SQLite-база через QtQuick.LocalStorage (таблицы operations и settings), поэтому операции и лимит сохраняются после перезапуска.
  • Если сумма расхода больше лимита, поле подсвечивается ошибкой, выводится подсказка, а кнопка «Добавить» неактивна.
  • Баланс считается как доходы − расходы: положительный баланс — это остаток денег. В тексте задания формула записана наоборот («сумма расходов − сумма доходов»), но тогда при доходах больше расходов баланс выходил бы отрицательным.
  • Суммы выводятся в формате 85 000,00 ₽, доходы — зелёным, расходы — красным. На обложке приложения показывается текущий баланс.
  • Добавление операций и изменение лимита пишутся в консоль, например: Расход добавлен: 3 450,50 ₽, 09.10.2026, Продукты.

Навигация

Главный ──«+ Доход»──▶ Доход ──«Добавить»──▶ Главный
   │
   └──«− Расход»──▶ Расход ──«Добавить»──▶ Главный
                      │
                      └──«Лимиты расходов»──▶ Лимиты ──«Сохранить и вернуться»──▶ Расход
                                                 └──«Сохранить и на главный экран»──▶ Главный

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

ru.krivoshein.Accountant.pro       проект qmake
src/main.cpp                       точка входа приложения
qml/Accountant.qml                 ApplicationWindow, создаёт хранилище AccountStore
qml/components/AccountStore.qml    хранилище операций и лимита (SQLite)
qml/components/OperationForm.qml   поля суммы, даты и описания
qml/pages/MainPage.qml             главный экран
qml/pages/ExpensePage.qml          экран расхода
qml/pages/LimitsPage.qml           экран лимитов расходов
qml/pages/IncomePage.qml           экран дохода
qml/pages/AboutPage.qml            «О приложении»
qml/cover/DefaultCoverPage.qml     обложка с балансом
rpm/ru.krivoshein.Accountant.spec  описание RPM-пакета

Скриншоты

Главный экран Доход Расход больше лимита Лимиты
Главный Доход Лимит Лимиты

Лицензия

MIT, см. LICENSE.