Курс — «Программирование на C для начинающих». Проекты и практические задания. #37 Проект 1: Калькулятор
Здравствуйте, дорогие друзья.
В этом разделе мы создадим простой калькулятор на языке C. Этот проект поможет вам закрепить знания о базовых конструкциях языка C, таких как функции, условия, циклы и ввод-вывод. Калькулятор будет поддерживать основные арифметические операции: сложение, вычитание, умножение и деление.
Описание проекта
Цель проекта — создать консольное приложение, которое будет запрашивать у пользователя два числа и операцию, а затем выполнять эту операцию и выводить результат.
Требования
- Программа должна поддерживать следующие операции:
- Сложение (
+
) - Вычитание (
-
) - Умножение (
*
) - Деление (
/
)
- Сложение (
- Программа должна обрабатывать ошибки, такие как деление на ноль.
- Программа должна запрашивать у пользователя числа и операцию через консоль.
- Программа должна выводить результат операции в консоль.
Реализация проекта
Рассмотрим пошаговую реализацию калькулятора.
- Создание основной структуры программы:
1 2 3 4 5 6 |
#include <stdio.h> int main() { printf("Simple Calculator\n"); return 0; } |
2. Запрос ввода чисел и операции:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
#include <stdio.h> int main() { double num1, num2; char operator; printf("Simple Calculator\n"); printf("Enter first number: "); scanf("%lf", &num1); printf("Enter operator (+, -, *, /): "); scanf(" %c", &operator); printf("Enter second number: "); scanf("%lf", &num2); return 0; } |
3. Выполнение операции и вывод результата:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 |
#include <stdio.h> int main() { double num1, num2, result; char operator; printf("Simple Calculator\n"); printf("Enter first number: "); scanf("%lf", &num1); printf("Enter operator (+, -, *, /): "); scanf(" %c", &operator); printf("Enter second number: "); scanf("%lf", &num2); switch (operator) { case '+': result = num1 + num2; break; case '-': result = num1 - num2; break; case '*': result = num1 * num2; break; case '/': if (num2 != 0) { result = num1 / num2; } else { printf("Error: Division by zero\n"); return 1; } break; default: printf("Error: Invalid operator\n"); return 1; } printf("Result: %.2lf\n", result); return 0; } |
4. Обработка ошибок:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 |
#include <stdio.h> int main() { double num1, num2, result; char operator; printf("Simple Calculator\n"); printf("Enter first number: "); if (scanf("%lf", &num1) != 1) { printf("Error: Invalid input\n"); return 1; } printf("Enter operator (+, -, *, /): "); if (scanf(" %c", &operator) != 1) { printf("Error: Invalid input\n"); return 1; } printf("Enter second number: "); if (scanf("%lf", &num2) != 1) { printf("Error: Invalid input\n"); return 1; } switch (operator) { case '+': result = num1 + num2; break; case '-': result = num1 - num2; break; case '*': result = num1 * num2; break; case '/': if (num2 != 0) { result = num1 / num2; } else { printf("Error: Division by zero\n"); return 1; } break; default: printf("Error: Invalid operator\n"); return 1; } printf("Result: %.2lf\n", result); return 0; } |
Тестирование программы
После завершения написания программы важно протестировать её на различных входных данных, чтобы убедиться, что она работает корректно.
Примеры тестов:
- Сложение:
5 + 3
- Вычитание:
10 - 2
- Умножение:
4 * 6
- Деление:
8 / 2
- Деление на ноль:
5 / 0
- Некорректный оператор:
5 % 3
Создание простого калькулятора — это отличный способ закрепить знания о базовых конструкциях языка C. Этот проект помогает понять, как работать с вводом-выводом, условиями, циклами и функциями. Вы можете расширить этот проект, добавив поддержку дополнительных операций, таких как возведение в степень, извлечение корня и другие математические функции. Практика в написании таких проектов поможет вам стать более уверенным и опытным программистом на языке C.
На этом все. Всем хорошего дня!