Лабораторная работа № 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.



