Вопрос задан 14.04.2025 в 07:22. Предмет Информатика. Спрашивает Кирьянов Роман.

Разработать программу для подсчета объема цилиндра и создать модульный тест. на с#​

Перейти к ответам

Ответы на вопрос

Отвечает Яковлев Ростислав.

Чтобы разработать программу для подсчета объема цилиндра на языке C#, а также создать модульный тест, нужно выполнить несколько шагов. Давайте разобьем этот процесс на части.

1. Разработка программы для подсчета объема цилиндра

Формула для объема цилиндра выглядит так:

V=πr2hV = \pi r^2 h

где:

  • VV — объем цилиндра,
  • rr — радиус основания цилиндра,
  • hh — высота цилиндра,
  • π\pi — математическая константа (около 3.14159).

Теперь давайте напишем код для вычисления объема цилиндра в C#:

csharp
using System;

public class Cylinder { // Метод для вычисления объема цилиндра public static double CalculateVolume(double radius, double height) { // Проверка на отрицательные значения if (radius <= 0 || height <= 0) { throw new ArgumentException("Радиус и высота должны быть положительными числами."); }

// Формула для объема цилиндра double volume = Math.PI * Math.Pow(radius, 2) * height; return volume; } }

Здесь:

  • Метод CalculateVolume принимает два параметра: радиус и высоту цилиндра.
  • Используется константа Math.PI для получения значения числа π.
  • Для вычисления площади основания цилиндра (πr²) используется метод Math.Pow.

2. Разработка модульного теста

Для написания модульного теста в C# обычно используют фреймворк NUnit или MSTest. В данном примере мы будем использовать NUnit.

  1. Сначала необходимо установить NUnit и NUnit3TestAdapter в проекте.
  2. Создадим новый тестовый класс, в котором будет проверяться правильность работы метода CalculateVolume.

Пример теста:

csharp
using NUnit.Framework;

[TestFixture] public class CylinderTests { [Test] public void TestCalculateVolume_ValidInput_ReturnsCorrectVolume() { // Arrange double radius = 3; double height = 5;

// Act double result = Cylinder.CalculateVolume(radius, height);

// Assert double expected = Math.PI * Math.Pow(radius, 2) * height; Assert.AreEqual(expected, result, 0.0001, "Объем цилиндра не соответствует ожидаемому значению."); }

[Test] public void TestCalculateVolume_NegativeRadius_ThrowsArgumentException() { // Arrange double radius = -3; double height = 5;

// Act & Assert Assert.Throws(() => Cylinder.CalculateVolume(radius, height)); }

[Test] public void TestCalculateVolume_NegativeHeight_ThrowsArgumentException() { // Arrange double radius = 3; double height = -5;

// Act & Assert Assert.Throws(() => Cylinder.CalculateVolume(radius, height)); }

[Test] public void TestCalculateVolume_ZeroRadius_ThrowsArgumentException() { // Arrange double radius = 0; double height = 5;

// Act & Assert Assert.Throws(() => Cylinder.CalculateVolume(radius, height)); }

[Test] public void TestCalculateVolume_ZeroHeight_ThrowsArgumentException() { // Arrange double radius = 3; double height = 0;

// Act & Assert Assert.Throws(() => Cylinder.CalculateVolume(radius, height)); } }

Объяснение тестов:

  1. TestCalculateVolume_ValidInput_ReturnsCorrectVolume — этот тест проверяет, что метод правильно вычисляет объем цилиндра при нормальных входных данных. Мы сравниваем результат с ожидаемым значением, вычисленным по формуле, с допустимой погрешностью в 0.0001.

  2. TestCalculateVolume_NegativeRadius_ThrowsArgumentException — этот тест проверяет, что метод выбрасывает исключение, если радиус отрицателен.

  3. TestCalculateVolume_NegativeHeight_ThrowsArgumentException — аналогичный тест для проверки отрицательной высоты.

  4. TestCalculateVolume_ZeroRadius_ThrowsArgumentException — проверка, что метод выбрасывает исключение, если радиус равен нулю.

  5. TestCalculateVolume_ZeroHeight_ThrowsArgumentException — проверка для случая, когда высота равна нулю.

3. Запуск тестов

Для запуска тестов можно использовать инструменты, такие как NUnit Test Runner или интегрированные средства тестирования в Visual Studio. После запуска тестов можно будет убедиться, что все работает правильно и метод учитывает исключения для некорректных данных.

4. Заключение

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

Похожие вопросы

Топ вопросов за вчера в категории Информатика

Последние заданные вопросы в категории Информатика

Задать вопрос