Отправьте статью сегодня! Журнал выйдет ..., печатный экземпляр отправим ...
Опубликовать статью

Молодой учёный

Разработка программы «Семейные финансы» на языке С++

Научный руководитель
Информатика
01.02.2026
16
Поделиться
Аннотация
В статье автор исследует язык программирования C++, его возможности и особенности с целью разработки программы «Семейные финансы», а также затрагивает вопрос дальнейшего развития данного приложения.
Библиографическое описание
Юринский, А. А. Разработка программы «Семейные финансы» на языке С++ / А. А. Юринский, Ю. В. Иванова. — Текст : непосредственный // Юный ученый. — 2026. — № 2 (98). — С. 64-70. — URL: https://moluch.ru/young/archive/98/5348.


Программисты, использующие язык C++, остаются востребованными в любой сфере деятельности, ведь качественная инфраструктура давно связана с программированием, обеспечивающим стабильную работу [1].

Объектом исследованияданного проекта являются материалы по теме «Программирование. C++ Windows Forms» из курса информатики и основы формирования семейного бюджета на языке программирования C++ в среде разработки Visual Studio. Были поставлены и выполнены задачи по изучению теоретического материала, написанию кода данной программы, созданию визуализации для программы «Семейные финансы» (рис. 1) и подведению итогов программирования.

Основное окно программы

Рис. 1. Основное окно программы

В интерфейсе программы после указания верного логина и пароля открывается окно, разделенное на графы «Доходы» и «Расходы», созданные с помощью элемента управления RichTextBox и текстовых файлов. В каждую из этих граф можно добавить суммы и категории с помощью соответствующих кнопок. В дальнейшем будет рассматриваться работа с базой данных.

Таким образом, реализация и внедрение данной программы в ежедневную жизнь семьи обеспечит повышение качества вводимых данных за счет автоматической проверки результатов трат и уменьшение времени ввода данных в базу данных за счет автоматизации повторяющихся действий и автозаполнения полей ввода, а также итоговое сравнение трат семейного бюджета.

Чтобы создать сложное приложение на С++, нужно собрать в одну программу множество файлов исходного кода, написанных программистом [2].

Составными элементами исходного текста программы на языке C++ являются лексемы, выражения и операторы. Каждый элемент языка определяется синтаксисом и семантикой. Синтаксические определения устанавливают правила построения элементов языка, а семантика определяет их смысл и правила использования [3].

Алфавит языка C++ включает латинские буквы, арабские цифры, специальные знаки и пробел, символ табуляции, символ перехода на новую строку. Лексемы — минимальные единицы языка программирования, имеющие самостоятельный смысл:

 знаки арифметических операций (+, −, /, *);

 разделители (скобки, точка, запятая, пробельные символы, точка с запятой);

 идентификаторы. В имени программного объекта могут использоваться только латинские буквы, символ подчеркивания и цифры. Первым символом идентификатора должна быть латинская буква или символ подчеркивания (но не цифра). Прописные и строчные буквы различаются (например: RES, Res, res — три разных идентификатора). Пробелы в имени не допускаются;

 ключевые слова. Это зарезервированные идентификаторы, которые имеют специальное значение и список которых может быть расширен;

 константы. Служат для представления неизменяемых значений. Различают целые, вещественные, символьные и строковые константы [3].

Таблица 1

Операции С++

Операция

Символ

Больше

>

Меньше

<

Больше или равно

>=

Меньше или равно

<=

Равно

==

Не равно

!=

Языки программирования стали использоваться для улучшения разных аспектов деятельности организации, адаптации к новым условиям и ее роста в разных областях. Умение гибко использовать программные средства становится важным конкурентным преимуществом [4].

В каждой семье возникает вопрос о ведении семейного бюджета. Семейный бюджет — план доходов, расходов и накоплений, описывающий финансовые возможности всех членов семьи в определенный период времени [5].

Таблица 2

Классификация групп доходов и расходов

Группа доходов

Содержание

Плановые

Заработная плата, плата за разовые услуги, льготы

Дополнительные

ДМС, бесплатная путевка в дом отдыха, служебная машина

Внеплановые

Продажа ненужных вещей, подарки

Группа расходов

Содержание

Обязательные платежи

Плата за квартиру, телефон, содержание детей в детских садах, выплата кредитов, налоги

Питание

Приобретение продуктов, оплата питания в столовой, кафе

Хозяйственно-бытовые нужды

Затраты на ремонт одежды, обуви, бытовой техники, квартиры, предметы личной гигиены

Предметы личного пользования

Одежда, белье, обувь, постельные принадлежности

Прочее

Детские игрушки, медикаменты

Таблица 3

Сравнение программ ведения семейного бюджета

№ п/п

Наименование программы

Преимущества

Недостатки

1

Домашняя бухгалтерия

Возможно использовать на всех устройствах

Средняя стоимость — от 2 тысяч рублей

2

Домашние финансы

Небольшая стоимость —от 500 рублей

Очень старый интерфейс

3

Alzex Personal Finance

Есть приложения на разные устройства

Большая стоимость — от 4 тысяч рублей

Ведение семейного бюджета имеет следующие плюсы:

  1. Прозрачность движения денежных средств. Доходы и расходы станут наглядно видны и не придется в конце месяца вспоминать, какая сумма и на что была потрачена.
  2. Возможность экономии. По итогу расчетного периода можно отследить нерастраченные денежные средства и сэкономить их.
  3. Достижение целей. После того как появляется возможность экономии, можно ставить финансовые цели. Без контроля над своими финансами достижение таких целей становится затруднительным, а иногда и вовсе невозможным [6].

Чаще всего расписывание денежных доходов и расходов семьи составляется за месячный срок в виде таблицы Microsoft Excel или записывается в обычную тетрадку. Для создания программы на C++ нам нужны как минимум две вещи: текстовый редактор для набора кода и компилятор для превращения этого кода в приложение. При этом для компиляции необходимо запускать консоль или терминал.

После открытия среды программирования выполнялись следующие действия для создания программы:

  1. после появления окна «Начало работы» выбрать пункт «Создание проекта» (рис. 2);

Начальная страница

Рис. 2. Начальная страница

  1. в верхнем поле поиска написать «CLR» и в результатах поиска выбрать пункт «Пустой проект CLR (.NET Framework)» (рис. 3);

Создание проекта

Рис. 3. Создание проекта

  1. дважды щелкнуть по пункту «Пустой проект CLR (.NET Framework)» или нажать кнопку «Далее» в правом нижнем углу, чтобы перейти к настройке проекта (рис. 4);

Настройка проекта

Рис. 4. Настройка проекта

  1. после настройки и наладки пройти этап тестирования.

Для настройки проекта был продуман алгоритм работы программы, который в конечном варианте проиллюстрирован на рис. 5.

Алгоритм работы программы

Рис. 5. Алгоритм работы программы

Начальным этапом настройки проекта было написание небольшого кода для запуска формы. Для него был использован алгоритм и функция в коде. В нем сначала объявляется соединение с другими формами через #include. Далее создается функция, отвечающая именно за запуск программы. В функции указывается русская локализация и запуск формы через Application::Run(…).

Функция для запуска программы:

#include "Finance.h"

#include"Finance_2.h"

using namespace System;

using namespace System::Windows::Forms;

[STAThreadAttribute]

int main (cli::array <string^> ^ args) { </string^>

setlocale (LC_ALL, "RU");

Application::SetCompatibleTextRenderingDefault (false);

Application::EnableVisualStyles ();

ProgramSchool::Finance Finance;

Application::Run (% Finance);

}

Функция в языках программирования — это часть кода, которая выполняет определенные действия, записанные внутри нее. Функцию можно вызывать в любой части кода, что делает программу оптимизированной.

После этого были добавлены элементы на форму, а именно два текстовых поля для вывода данных и четыре кнопки: для обновления формы, а также для добавления категорий, расходов и доходов. В программе реализована форма пользователя и форма администрирования. Через данную форму пользователь будет взаимодействовать с программой.

Ввод логина и пароля осуществляется через элемент управления TextBox и функцию perform_btn_Click на первой форме Finance.h.

Аутентификация проходит с внутрикодовыми логином, паролем. На данный момент логины и пароли нужно добавлять вручную. При вводе неверного логина или пароля выходит сообщение с ошибкой: «Неверный логин или пароль», — и очищается TextBox с паролем. В дальнейшем будет рассматриваться работа с базой данных.

В интерфейсе программы после указания верного логина и пароля открывается окно, разделенное на графы «Доходы» и «Расходы», созданные с помощью RichTextBox и текстовых файлов. В каждую из этих граф можно добавить суммы и категории с помощью соответствующих кнопок. Для добавления расходов и доходов используются другие формы, а именно Finance_3.h и Finance_4.h. Иерархическая структура файлов, соответствующих вышеперечисленным элементам управления, показана на рис. 6. Указанные формы открываются через функции для их открытия:

private: System::Void Income__btn_Click (System::Object^ sender, System::EventArgs^ e) {

Finance_3^ f3 = gcnew Finance_3();

f3->Show ();

//Finance_2::Close();

}

private: System::Void Expenses_btn_Click (System::Object^ sender, System::EventArgs^ e) {

Finance_4^ f4 = gcnew Finance_4 ();

f4->Show ();

//Finance_2::Hide ();

}

Обозреватель решений (файлов)

Рис. 6. Обозреватель решений (файлов)

С помощью форм происходит запись данных в текстовые файлы, которые потом используются в таблицах. Данные из текстовых файлов в таблицы попадают через функцию LoadFile:

private: System::Void Finance_2_Load (System::Object^ sender, System::EventArgs^ e) {

rTB_income->LoadFile ("D:\\Income.txt", RichTextBoxStreamType::PlainText);

rTB_expen->LoadFile ("D:\\Expenses.txt", RichTextBoxStreamType::PlainText);

}

Для обновления таблиц используется функция btn_updateTabl_Click:

private: System::Void perform_btn_Click (System::Object^ sender, System::EventArgs^ e) {

if (Box_login->Text == "l") {

if (Box_password->Text == "p") {

Finance_2^ f2 = gcnew Finance_2 ();

f2->Show ();

Finance::Hide ();

}

}

if (Box_login->Text != "l" || Box_password->Text != "p") {

MessageBox::Show ("Неверный логин или пароль", "Error", MessageBoxButtons::OK, MessageBoxIcon::Error);

Box_password->Clear ();

}

}

В форме администрирования данной программы есть некоторые отличительные черты. Это возможность добавления категорий и подкатегорий для удобства вводимых пользователем данных и возможность обновления таблиц с помощью соответствующей кнопки, для чего в коде использована функция обновления таблиц:

private: System::Void btn_updateTabl_Click (System::Object^ sender, System::EventArgs^ e) {

Finance_2^ f2 = gcnew Finance_2();

f2->Show ();

Finance_2::Close ();

}

У программы следующий функционал: создание и подсчет сумм, визуальное представление доходов и расходов.

Таким образом, реализация и внедрение данной программы в ежедневную жизнь семьи обеспечит:

  1. повышение качества вводимых данных за счет автоматической проверки результатов трат;
  2. уменьшение времени ввода данных за счет повторяющихся действий и автозаполнения полей ввода;
  3. итоговое сравнение трат семейного бюджета.

Учет движения денег представляет информацию, которая позволяет пользователям оценить изменения в своей платежеспособности и сроки поступлений, а также платежей.

Тестирование данной программы, получение пожеланий и внесение исправлений было в течение недели проведено в моей семье, так как программа создавалась именно для семейного использования и учета финансовой деятельности.

Выявлены следующие пожелания по доработке программы:

  1. При заполнении доходов добавить возможность указания суммы через автозаполнение. Например, если за январь доход был 60 000 рублей, то при внесении дохода за февраль должна быть возможность, не набирая сумму заново, выбрать ее среди предложенных сумм из истории набора.
  2. Ввести разделение доходов и расходов по месяцам по выбору пользователя для более удобного представления финансового бюджета.
  3. Добавить отдельное текстовое поле для подсчета оставшихся денег.
  4. Производить проверку на отсутствие текстового файла при открытии программы и при необходимости создавать новые файлы.
  5. Поставить фокус ввода на текстовое поле суммы при открытии формы добавления доходов и расходов.
  6. Добавить возможность сохранения данных после нажатия клавиши Enter в текстовом поле суммы.
  7. Закрывать форму добавления расходов и доходов после сохранения записанных данных.
  8. Ввести проверку на наличие суммы или категории в текстовом поле и при ее отсутствии выводить ошибку.

С учетом возможностей реализации, знаний и опыта работы с используемым языком программирования была проведена доработка программы. Из всех пожеланий на данный момент есть возможность выполнения большинства из них. При этом все пожелания были учтены и будут реализованы при усовершенствовании итогового программного продукта.

Работа с программой будет продолжена и в дальнейшем. Планируется развитие программы в части реализации работы с базой данных, а также внедрение табличного варианта отчета по завершении работы, добавление опции связи с push- или СМС-уведомлениями от банка и, возможно, создание мобильного приложения.

После проделанной работы можно сделать вывод, что такие проекты не только важны для развития финансовой грамотности у детей, но и будут полезны для взрослых в современном мире. В школьном возрасте умение программировать на каком-либо языке программирования является актуальным, и необходимо привлекать к этому внимание в рамках получения дополнительных знаний. Понимание основ C++ облегчает освоение языков программирования в будущем.

В профессиях, связанных с системами реального времени и встроенным программным обеспечением, царствуют языки C и C++, поскольку именно они обеспечивают точный контроль над памятью и «железом», а это оказывается принципиально важным для «умных» устройств, автономных роботов и систем, где малейшая ошибка может обернуться катастрофическими последствиями [7].

Литература:

  1. Горбатенко, Я. М. Языки программирования в профессиях / Я. М. Горбатенко, Е. Д. Малашонкова. — Текст: непосредственный // Юный ученый. — 2025. — № 3 (88). — С. 97–99. — Режим доступа: https://moluch.ru/young/archive/88/4831/ (дата обращения: 07.10.2025).
  2. Васильев, А. Н. Программирование на C++ в примерах и задачах / А. Н. Васильев: серия «Российский компьютерный бестселлер». — Москва : Эксмо-Пресс, 2024. — 368 с.
  3. Земсков, Ю. В. Программирование на языке C/C++. Структурное программирование / Ю. В. Земсков: учебное пособие. — Часть I. — Санкт-Петербургский государственный университет гражданской авиации. — 2012. — 151 с.
  4. Прата, С. Язык программирования C. Лекции и упражнения / С. Прата: учебник. — Санкт-Петербург : ООО «ДиаСофтЮП», 2002. — 896 с.
  5. Семейный бюджет — как планировать и накопить // ВСделке.ру [Электронный ресурс]. — Режим доступа: https://vsdelke.ru/finansy/semejnyj-byudzhet.html/ (дата обращения: 28.10.2025).
  6. Бюджет семьи // Википедия [Электронный ресурс]. — Режим доступа: https://ru.wikipedia.org/wiki/Бюджет_семьи (дата обращения: 28.10.2025).
  7. Кнут, Д. Э. Искусство программирования / Д. Э. Кнут. — 1 том. — Москва : Вильямс, 2018. — 720 с.
Можно быстро и просто опубликовать свою научную статью в журнале «Молодой Ученый». Сразу предоставляем препринт и справку о публикации.
Опубликовать статью

Молодой учёный