Министерство образования Республики Беларусь Учреждение образования «Белорусский государственный университет информатики и радиоэлектроники» Факультет компьютерного проектирования Кафедра инженерной психологии и эргономики АВТОМАТИЗАЦИЯ РАБОЧЕГО МЕСТА КАССИРА В КИНОТЕАТРЕ Пояснительная записка к курсовой работе по дисциплине «Основы алгоритмизации и программирования» БГУИР КР 6-05-0612-01 010 ПЗ Руководитель В. А. Кабариха Учащаяся гр. 310901 А. И. Капуза Минск 2024 Содержание Введение ....................................................................................................................... 3 1 Требования к программе ............................. Ошибка! Закладка не определена. 2 Конструирование программы ................................................................................. 6 2.1 Разработка модульной структуры программы ................................................ 6 2.2 Выбор способа организации данных ................................................................ 6 2.3 Разработка перечня пользовательских функций программы ......................... 7 3. Разработка алгоритмов программы........................................................................ 8 3.1 Алгоритм функции main .................................................................................. 14 3.2 Алгоритм функции поиска .............................................................................. 15 3.3 Алгоритм функции сортировки....................................................................... 12 4 Описание работы программы ............................................................................... 17 4.1 Авторизация ...................................................................................................... 12 4.2 Модуль администрирования ............................................................................ 12 4.3 Модуль пользователя ....................................................................................... 12 4.4Исключительные ситуации ............................................................................... 12 Приложение: Листинг кода с комментариями ........................................................ 25 БГУИР КР 6-05-0612-01 012 ПЗ Изм. Разраб. Лист Провер. Реценз. Н. Контр. Утверд. № докум. Капуза Кабариха Подпись Дата Программа начисления налогов на недвижимость Пояснительная записка Лит. Лист Листов 3 35 БГУИР 2 ВВЕДЕНИЕ Курсовая работа «Программа начисления налогов на недвижимость» предназначена для подсчета налогов на недвижимость для физических лиц, в которой должны быть реализованы возможности введения категории недвижимости, местоположение, а также подсчета налогов. История налогов уходит далеко в древность. Первая система налогов появилась в Римской империи и была довольно развитой. Римляне производили довольно сложные операции исчисления населения для подушных налогов, оценки имущества – для налогов поимущественных и подоходных. Исторически, первыми регулярными платежами были пошлина, то есть плата за государственные услуги такие как: судебные, дорожные, мостовые, пограничные, портовые и многие другие. Раз в какое время приходил грамотный человек, который назывался - сборщик подати. Он самостоятельно рассчитывал налог для каждого человека индивидуально и говорил людям только налог, который они должны заплатить. С развитием технологий налог стал считаться не вручную, а с использованием программ для вычисления. Сейчас, каждый человек хочет иметь возможность индивидуально посчитать налоги, проверив насколько правильно налоговая ему их посчитала. Поэтому тема курсовой работы является актуальной и может быть использована для подсчетов налогов физическими лицами. Данная программа будет ориентирована на налогоплательщиков, желающих рассчитать сумму налогообложений. Основная цель курсовой работы «Программа начисления налогов на недвижимость»: Предоставить возможность подсчитать налог на недвижимость; Изучение основных алгоритмов и структур данных для эффективной обработки информации и оптимизации производительности системы. При реализации курсовой работы «Программа начисления налогов на недвижимость» была поставлена следующая задача: – изучить и проанализировать начисление налогов на недвижимость в зависимости от налогоплательщика и возможных его льгот, вида недвижимости и его местоположение; – изучить использование структур, функций, подключение файлов в языке программирования С++. После выполнения данной работы должна получится программа, которая поможет пользователям самостоятельно подсчитать налог на жилье. Программа решит проблему с трудностью расчета налогов и поможет заранее узнать какой налог необходимо будет заплатить. 3 1. ТРЕБОВАНИЯ К ПРОГРАММЕ Требуется разработать курсовую работу «Программа начисления налогов на недвижимость». Этот программный продукт предназначен для упрощения подсчета налогов. Программное средство может быть использовано физическими лицами. Для написанию курсового проекта «Программа начисления налогов на недвижимость» будут использоваться: Язык программирования С++; Среда разработки Microsoft Visual Studio версии 2022; Консольный вид приложения; Процедурная парадигма программирования; Способ организации данных – структуры; Способ хранения данных – текстовые файлы; Налогом облагаются: жилые дома, квартиры, комнаты, садовые домики, дачи, хозяйственные постройки, машино-место, нежилые помещения. Так же налогом облагаются незавершенные строительства. Сумма налога рассчитывается исходя из площади помещения, умноженной на стоимость одного квадратного метра жилья (в столице, в областных центрах и небольших городах она разная), а полученное число надо умножить на налоговую ставку – 0.1%. Налог считается за год (в случае нового приобретения, со следующего месяца после покупки). Для работы над курсовой работой «Программа начисления налогов на недвижимость» используется IDE (интегрированная среда разработки) Microsoft Visual Studio. Ее преимуществами являются ее популярность, следовательно, большое количество различной документации, также удобная структура интерфейса, поддержка разных языков программирования, большое количество плагинов и дополнений, доступных для скачивания. Отдельно нужно отметить, что IDE позволяет удобно создать текстовый файл и начать работу с ним во время написания кода программы. В Microsoft Visual Studio заранее существует большое количество удобных и популярных библиотек, доступных для подключения в проекте. Курсовая работа посвящена написанию программного средства «Программа начисления налогов на недвижимость». Цель курсовой работы – упростить вычисление налогов. Функции и возможности программы заключаются в следующем: – возможность подсчета налогов на недвижимость в зависимости от местонахождения и вида недвижимости для физических лиц; – возможность получения суммы налогообложений; – возможность получения информации о пользователях; – возможность регистрации и авторизации пользователя; – возможность блокировки или разблокировки пользователей; – возможность работы с данными (сортировка и поиск); – возможность изменять характеристики пользователей; – возможность ввода информации о пользователей. 4 Основное назначение программного средства «Программа начисления налогов на недвижимость» - предоставить возможность подсчета налогов. Основная задача курсовой работы заключается в разработке программного средства «Программа начисления налогов на недвижимость». В рамках объектной декомпозиции выделяются основные элементы, содержащиеся в программе по начислению налог на недвижимость, разбиваются на типы (структуры) такие как: структура RealEstate; структура User; структура Admin; структура Calculator. Далее для каждой структуры абстракций определяются ее поля такие как: PropertyT type и double area (для структуры RealEstate; hasPrivileges и RealEstate possession (для структуры User), а также взаимодействия этих структур друг с другом. В разрабатываемой системе главным объектом являются подсчет налогообложений, используя который пользователю не требуется самостоятельно вычислять налог. Пользователь запускает программу, вводит логин и пароль, вводит необходимые данные для подсчета налога, после чего получает размер налогообложений. Основные функции и возможности программы заключаются в следующем: пользователь может самостоятельно рассчитать налог на недвижимость; пользователь может изменить характеристики (добавить льготы или изменить объект расчета налогообложений); пользователю предоставляется возможность закрывать программу, когда ему будет это удобно; администратор может просмотреть информацию о пользователей; администратор может заблокировать или разблокировать пользователя; администратор может отсортировать по сумме налогообложений и по типу жилья, которое облагается налогом; администратор может найти пользователя по имения, или по сумме налогообложений, или заблокированных пользователей; информационная функция – программа позволяет просматривать информацию о размере налогов на недвижимость. Первый этап работы программы является авторизация – предоставления возможности использовать программу. На данном этапе необходимо получить данные из файла, записанные пользователем или администратором следующего вида: – login; – password; – role (данное поле разделяет в правах администратора и пользователя). После ввода пользователем своих персональных данных (логина и пароля) и сверки со считанной информацией необходимо предусмотреть возможность входа: 5 – – – – – – – – – – – – в качестве администратора; – в качестве пользователя. Второй этап работы программы является собственно работа с данными, которая становится доступной только после прохождения авторизации. Данные хранятся в отдельном файле. Для работы с данными предусмотрены функциональные модули: модуль администратора, модуль пользователя, модуль регистрации и авторизации, модуль подсчета налогов. Модуль регистрации и авторизации включает подмодуль работы с данными со следующими функциональными возможностями: возможность выбора зарегистрироваться или авторизоваться; возможность ввести логин или пароль; возможность войти как администратор или как пользователь; Модуль администратора включает следующие подмодули (с указанием функциональных возможностей): 1. Управление учетными записями пользователей: просмотр всех учетных записей пользователей; блокировка или разблокировка пользователя; поиск и сортировка пользователей; редактирование учетной записи. 2. Работа с данными: – просмотр всех данных; – добавление новой записи; – удаление записи; – редактирование записи. – выполнение подсчета налогов; – поиск данных (по различным параметрам); – сортировка (по различным параметрам). Модуль пользователя включает подмодуль работы с данными со следующими функциональными возможностями: просмотр и изменение данных; выполнение подсчета налогов; добавление новой учетной записи. Модуль подсчета налогов включает подмодуль работы с данными со следующими функциональными возможностями: получение данных от пользователя; выполнение подсчета налогов. Модуль чтения включает подмодуль работы с данными со следующими функциональными возможностями: получение данных от пользователя; чтение данных получение данных пользователя, которые были добавлены ранее и сохранены в файле. 6 2. КОНСТРУИРОВАНИЕ ПРОГРАММЫ Налогом облагаются: жилые дома, квартиры, комнаты, садовые домики, дачи, хозяйственные постройки, машино-место, нежилые помещения. Так же налогом облагаются незавершенные строительства. Сумма налога рассчитывается исходя из площади помещения, умноженной на стоимость одного квадратного метра жилья (в столице, в областных центрах и небольших городах она разная), а полученное число надо умножить на налоговую ставку – 0.1%. Налог считается за год владения (в случае если владение меньше года, со следующего месяца после приобрели). 2.1 Разработка модульной структуры программы Требуется разработать курсовую работу «Программа начисления налогов на недвижимость». Этот программный продукт предназначен для упрощения подсчета налогов. Программное средство может быть использовано физическими лицами. Алгоритм работы программы заключается в следующем. При запуске программы откроется основное окно, которое является главной и единственной рабочей областью. Далее пользователь вводит пароль, логин и роль (администратор или пользователь). В зависимости от выбранной роли, если роль администратор, то он получает доступ к всем данным пользователей и может удалять или добавлять новых. Если же роль - пользователь, то он может просматривать не полную информацию о других пользователей и вычислять налог на недвижимость. При желании пользователь или администратор может закончить работу. 2.2 Выбор способа организации данных В начале работы программы данные из файла считываются и сохраняются в структуры данных, после чего все операции с данными (чтение, запись, обновление) выполняются через структуры. В конце работы программы все данные из структур записываются обратно в файл. – Перечисление PropertyT нет полей есть значения: создан для улучшения читаемости кода. Глобальный; – Структура RealEstate поля: PropertyT type и double area. Глобальный; – Структура User поля: hasPrivileges и RealEstate possession; глобальный – Структура Admin; – Структура Calculator содержащий 4 массива данных необходимых для расчета налога на недвижимость в зависимости от типа и местоположения. Глобальный; – Массив, содержащий местоположение является динамическим; 7 – Массив, содержащий виды недвижимости, является динамическим; – Данные о пользователе являются вектором Данные структуры позволят эффективно управлять информацией о работе кассира в кинотеатре. 2.3 Разработка перечня пользовательских функций программы Выход из программы – функция выхода из программы, при выборе этой функции программа закрывается. Регистрация – функция регистрации, пользователь вводит логин и пароль, при корректном введении данных и разрешении администратора они запоминаются в программе. Авторизация – функция авторизации, пользователь вводит логин и пароль и производится проверка существавания учетной записи с такими же логином и паролем, если проверка прошла успешно, то пользователю предоставляется функционал под его уровень доступа. Сортировка – администратор может сортировать по имени пользователя и по сумме налогов. Поиск – администратор может искать по имени пользователя, по типу недвижимости, по величине налогообложений и заблокированных пользователей. – Функция вывода информации PrintAllinfo; – Функция поиска пользователей SearchByUserName; – Функция поиска налогов SearhByTax; – Функция поиска и сверки пароля SearchByPassword; – Функция сортировка по типу налогов SortByTax. 8 9