Программа предназначена для расчета количества километров, которое необходимо проехать, чтобы получить заданную экономию денег при использовании газа вместо бензина.
Пользователь заполняет таблицу со следующими полями:
- Цена бензина
- Цена газа
- Километраж
- Экономия
Поля Цена бензина, Цена газа и Экономия вводятся пользователем, а поле Километраж рассчитывается автоматически.
Расчет выполняется по формуле:
Где:
экономия- сумма денег, которую нужно сэкономитьбензин- стоимость единицы бензинагаз- стоимость единицы газакм- количество километров, которое нужно проехать
В форме приложения была настроена таблица DataGridView, в которой размещены все необходимые столбцы:
Цена бензинаЦена газаКилометражЭкономия
Также на форме размещены:
- заголовок программы
- строка с формулой расчета
- нижняя строка статуса для сообщений пользователю
Таблица поддерживает добавление новых строк. Пользователь может вводить значения в последнюю пустую строку, и таблица автоматически создает следующую.
Это позволяет рассчитывать сразу несколько вариантов:
- с разными ценами топлива
- с разной суммой экономии
- для сравнения нескольких сценариев
После изменения данных в строке программа:
- Проверяет, какая строка была изменена.
- Считывает значения из столбцов
Цена бензина,Цена газаиЭкономия. - Проверяет корректность введенных данных.
- Вычисляет километраж по формуле.
- Записывает результат в ячейку
Километражтой же строки.
Таким образом, каждая строка таблицы рассчитывается независимо от остальных.
Чтобы программа работала устойчиво и не завершалась с ошибками, были добавлены проверки:
- пустые ячейки
- ввод нечисловых значений
- отрицательные значения
- ситуация, когда цена бензина меньше или равна цене газа
Если данные введены неверно, программа очищает расчет в этой строке и выводит понятное сообщение в строке статуса.
Так как результат записывается обратно в таблицу, была добавлена защита от повторного запуска обработчика при изменении ячейки Километраж.
Это нужно для того, чтобы:
- избежать лишних пересчетов
- не допустить циклических вызовов обработчиков событий
- сохранить стабильную работу формы
Основная логика программы находится в следующих файлах:
Form1.Designer.cs- описание интерфейса формыForm1.cs- логика расчета, обработка событий и проверки данныхProgram.cs- точка входа в приложениеPathCalculation.csproj- файл проекта WinForms
В логике программы использованы:
DataGridViewдля табличного ввода данных- обработчики событий
CellValueChangedиCellEndEdit - метод отдельного расчета для каждой строки таблицы
- метод проверки введенных значений
- статусная строка для вывода сообщений пользователю
Общий алгоритм можно описать так:
- Пользователь открывает программу.
- В таблице вводит цену бензина.
- Вводит цену газа.
- Вводит требуемую экономию.
- Программа автоматически вычисляет километраж.
- Результат появляется в столбце
Километраж. - При необходимости пользователь добавляет новую строку и повторяет расчет.
В результате была получена программа с графическим интерфейсом, которая:
- автоматически рассчитывает километраж
- поддерживает несколько строк в таблице
- проверяет корректность данных
- выводит понятные сообщения пользователю
- подходит для демонстрации в исследовательской работе
dotnet build -p:UseAppHost=falseДля создания exe файла используйте:
dotnet publish -c Release -r win-x64 --self-contained true -p:PublishSingleFile=trueИ exe файл появился по пути bin/Release/net10.0-windows/win-x64/publish/PathCalculation.exe