t778987 Ответов: 3

Что такое кодирование, чтобы найти это?


Write an application that computes the area of a circle, rectangle, and cylinder. Display a menu showing the three options. Allow users to input which figure they want to see calculated. Based on the value inputted, prompt for appropriate dimensions and perform the calculations using the following formulas:
Area of a circle = pi * radius2
Area of a rectangle = length * width
Surface area of a cylinder = 2 * pi * radius * height + 2 * pi * radius2
Write a modularized solution that includes class methods for inputting data and performing calculations.


Что я уже пробовал:

using System;
using static System.Console;

namespace myShape
{
    class Program
    {
        const double PI = 3.14;
        static void Main(string[] args)
        {
            double  length, width;
            string  inputValue;
            double perimeter, area;
            WriteLine("Please input the length of the rectangel: ");
            inputValue = ReadLine();
            length = double.Parse(inputValue);

            WriteLine("Please input the width of the rectangel: ");
            inputValue = ReadLine();
            width = double.Parse(inputValue);

            perimeter = Perimeter(length, width);
            area      = Area(length, width);


            WriteLine("The perimter of rectangle is {0:F2}", Perimeter(length, width));
            WriteLine("The area of rectangle is {0:F4}", area);



            double radius;
            WriteLine("Please input the radius of the circle: ");
            inputValue = ReadLine();
            radius = double.Parse(inputValue);
            WriteLine("The perimter of circle is {0:F2}", Perimeter(radius));
        }

        public static double Perimeter(double length, double width)
        {
            double perimeter = 0;
            perimeter  = 2 * (length + width);
            return perimeter;
        }

        public static double Perimeter(double radius)
        {
            double perimeter = 0;
            perimeter = 2*PI*radius;
            return perimeter;
        }
    

        public static double Area(double length,double width)
        {
            return length * width;
        }
    }
}

Patrice T

В чем проблема с этим кодом ?

t778987

правильно ли это?

3 Ответов

Рейтинг:
2

OriginalGriff

Цитата:
правильно ли это?

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

Если это не так, отладьте его, чтобы выяснить, почему, и исправьте его. Затем снова начните тестирование с самого начала.

Но... он провалит первый тест, так как вы забыли некоторые спецификации.
Тестирование против спецификации покажет вам это.


Рейтинг:
1

CPallini

Давайте начнем с

using System;
using static System.Console;

namespace myShape
{
  interface IShape
  {
    public double getArea();
  }

  class Circle: IShape
  {
    private double r;
    public Circle(double r){this.r = r;}
    public double getArea(){return Math.PI * r * r;}
  }


  class Program
  {
    public static void Main()
    {
      IShape shape;
      do
      {
        shape = null;
        WriteLine("please choose the shape (1.Circle, 2.Rectangle, 3.Cylinder, other values to exit)");
        string sel = ReadLine();

        switch( sel )
        {
        case "1":
          {
            WriteLine("please enter the radius of the circle");
            string s = ReadLine();
            double r = double.Parse(s);
            shape = new Circle(r);
          }
          break;
        case "2":
            WriteLine("t778987 is expected to do this...");
          break;
        case "3":
            WriteLine("t778987 is expected to do this...");
          break;
        default:
          break;
        }

        if ( shape != null )
        {
          double a = shape.getArea();
          WriteLine("The area of the shape is {0}", a);
        }
      } while ( shape != null );
    }
  }
}


Рейтинг:
1

Patrice T

Цитата:
правильно ли это?

Когда вы запускаете программу, получаете ли вы правильный результат ?
Цитата:
Площадь поверхности цилиндра = 2 * Пи * радиус * высота + 2 * Пи * радиус2

Где код для цилиндра ?
Цитата:
Напишите модульное решение, включающее методы классов для ввода данных и выполнения вычислений.

Уважали ли вы это ограничение ?