Создание класса Triangle

Анализ создания класса Triangle с помощью разработки его элементов. Разработка конструктора, позволяющего создать экземпляр класса с заданными длинами сторон. Создание методов, позволяющих рассчитать периметр и площадь треугольника, вывести длины сторон.

Рубрика Программирование, компьютеры и кибернетика
Вид контрольная работа
Язык русский
Дата добавления 07.12.2017
Размер файла 94,6 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Размещено на http://www.allbest.ru/

Федеральное государственное бюджетное образовательное учреждение

высшего профессионального образования

«Чувашский государственный педагогический университет

им. И. Я. Яковлева»

Кафедра Информатики и ИКТ

Контрольная работа

по дисциплине «Объектно-ориентированное программирование»

Вариант 2

Студент Протасов Никита Евгеньевич

Чебоксары 2017

Задание №1

triangle конструктор периметр треугольник

Создать класс Triangle, разработав следующие элементы класса:

a. Поля:

· int a, b, c;

b. Конструктор, позволяющий создать экземпляр класса с заданными длинами сторон.

c. Методы, позволяющие:

· вывести длины сторон треугольника на экран;

· расчитать периметр треугольника;

· расчитать площадь треугольника.

d. Свойства:

· позволяющее получить-установить длины сторон треугольника (доступное для чтения и записи);

· позволяющее установить, существует ли треугольник с данными длинами сторон (доступное только для чтения).

Program.cs

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

namespace kontr_1

{

class Program

{

static void Main(string[] args)

{

//Защищенный блок

try

{

//Создание объекта

Triangle Ob = new Triangle(3, 3, 3);

//Проверка на существование треугольника

//если существует - напечатаем стороны

//дабы не оставлять пустой оператор ;

if (Ob)

Ob.PrintSides();

//Иначе - кидаем исключение

else

throw new Exception("There is no triangle with such sides");

//Печатаем периметр

Console.WriteLine("Perimetr={0}", Ob.Perimetr());

//Печатаем площадь

Console.WriteLine("Sqaure={0}", Ob.Square());

//Инкрементируем стороны нашего треугольника

Ob++;

//Печатаем для проверки

Ob.PrintSides();

//Декрементируем

--Ob;

//печатаем

Ob.PrintSides();

//Умножаем каждую сторону на 5

Ob *= 5;

Ob.PrintSides();

//Печатаем через метод ToString

Console.WriteLine(Ob);

//Проверяем индексатор. Печатаем a

Console.WriteLine(Ob[1]);

//Устанавливаем b равной 30

Ob[2] = 30;

Console.WriteLine(Ob);

}

//Ловим исключение

catch (Exception e)

{

//Пишем сообщение, хранящееся в исключении

Console.WriteLine(e.Message);

}

//Блок выполняющийся в любом случае

finally

{

// консоль не закрывалась до нажатия на кнопку

Console.ReadKey();

}

}

}

}

Triangle.cs

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

namespace kontr_1

{

class Triangle

{

//стороны

int a, b, c;

//Свойства а

public int A

{

//Геттер

get

{

return a;

}

//Сеттер

set

{

a = value;

}

}

//Свойства b

public int B

{

get

{

return b;

}

set

{

b = value;

}

}

//Свойства с

public int C

{

get

{

return c;

}

set

{

c = value;

}

}

//Свойство проверки треугольника

public bool isTriangle

{

get

{

//Если подходит под условие существования треугольника

//возвращаем true,иначе false

if (a + b > c && a + c > b && b + c > a)

{

return true;

}

return false;

}

}

//конструктор с тремя параметрами

public Triangle(int a_,int b_,int c_)

{

//проверка на положительность сторон теугольника

isCorrect(a_, b_, c_);

//Установка значений через сеттеры

A=a_;

B=b_;

C = c_;

}

//Функция печати длин сторон

public void PrintSides()

{

Console.WriteLine("a is {0}, b is {1}, c is {2}", a, b, c);

}

//Функция вычисления периметра

public int Perimetr()

{

return a + b + c;

}

//Функция вычисления площади

public double Square()

{

//Площадь считаем по формуле Геррона

return Math.Sqrt(halfper(this) * (halfper(this) - a) * (halfper(this) - b)

* (halfper(this) - c));

}

//Подсчет полупериметра треугольника

static double halfper(Triangle Ob)

{

return Ob.Perimetr() / 2.0;

}

//Проверка на положительность сторон

static void isCorrect(int a, int b, int c)

{

if (a < 0 || b < 0 || c < 0)

//Если нет - кидаем исключение

throw new Exception("Sides of triangle can` t be negative");

}

//Перегрузка инкремента

public static Triangle operator ++(Triangle Ob)

{

//Возвращаем объект с измененными сторонами

return new Triangle(++Ob.a, ++Ob.b, ++Ob.c);

}

//Перегрузка декремента

public static Triangle operator --(Triangle Ob)

{

return new Triangle(--Ob.a, --Ob.b, --Ob.c);

}

//Перегрузка оператора умножения(в данном случае на скаляр)

public static Triangle operator *(Triangle Ob, int mult)

{

return new Triangle(Ob.a * mult, Ob.b * mult, Ob.c * mult);

}

//Перевод в строку

public override string ToString()

{

//Печатаем стороны через геттеры

return "Sides: " + "a is " + A + " b is " + B + " c is " + C;

}

//Индексатор. idx - индекс

public int this[int idx]

{

//Если idx=1 возвращаем a

//если idx=2 возвращаем b

//если idx=3 возвращем c

//иначе кидаем исключение

get

{

if (idx == 1)

return a;

else if (idx == 2)

return b;

else if (idx == 3)

return c;

else

throw new Exception("idx can be only 1, 2 and 3");

}

//Если idx=1 устанавливаем a

//если idx=2 устанавливаем b

//если idx=3 устанавливаем c

//иначе кидаем исключение

set

{

if (idx == 1)

a = value;

else if (idx == 2)

b = value;

else if (idx == 3)

c = value;

else

throw new Exception("idx can be only 1, 2 and 3");

}

}

//Перегрузка оператора true

//проверка на существование треугольника

public static bool operator true(Triangle t)

{

return t.isTriangle;

}

//Перегрузка оператора true

//проверка на существование треугольника

public static bool operator false(Triangle t)

{

return t.isTriangle;

}

};

}

Размещено на Allbest.ru

...

Подобные документы

  • Разработка программы на языке Visual++ с использованием библиотеки MF, которая рассчитывает по введенным значениям длин сторон треугольника прямоугольный он или нет, а также вычисляет его периметр, площадь, радиус описанной и вписанной окружностей.

    курсовая работа [442,0 K], добавлен 18.06.2011

  • Формализации в онтологии областей знаний с помощью концептуальной схемы. Определение атрибутов класса и свойств экземпляров. Создание экземпляров класса и DL-Query запросов. Методика использования для разработки онтологии среды разработки Protege.

    курсовая работа [2,0 M], добавлен 18.06.2014

  • Разработка графического интерфейса для ввода начальных значений, отображения результатов и тестирования методов собственного класса на языке программирования С++. Подсветка цветом выбранных операндов в процессе их инициализации и вывода на дисплей.

    курсовая работа [234,6 K], добавлен 27.12.2014

  • Понятие класса как собрания информации, которая включает в себя данные и функции. Создание класса "Дек". Реализация методов: добавления элемента в начало и в конец дека, удаление элемента из начала и конца дека, проверка дека на наличие в нем элементов.

    курсовая работа [568,9 K], добавлен 08.09.2010

  • Создание класса прямоугольников со сторонами, параллельными осям координат. Основные требования к программе. Описание классов и диаграмма их взаимодействия. Интерфейс пользователя и руководство по эксплуатации программы. Блок-схемы разработанных методов.

    курсовая работа [622,8 K], добавлен 18.03.2011

  • Изучение методов и этапов создания класса Complex, позволяющего работать с комплексными числами и производить с ними следующие операции: сложение, вычитание, умножение, деление двух комплексных чисел. Написание кода для ввода и вывода исходных данных.

    курсовая работа [628,4 K], добавлен 11.09.2010

  • Механизм классов в C++. Инициализация внутреннего объекта с помощью конструктора. Управление доступом к классу. Защищенные члены класса. Графические средства компилятора Borland C 3.1. Библиотека стандартных шаблонов. Реализация и использование класса.

    курсовая работа [2,7 M], добавлен 16.05.2012

  • Анализ решений и выбор платформы виртуализации. Обоснование выбора VMwareESXi в качестве платформы для создания учебного класса. Системные требования к аппаратной части для выбранной платформы. Создание макета на основе сервера виртуализации VMwareESXi.

    дипломная работа [4,1 M], добавлен 12.04.2017

  • Разработка программного модуля, позволяющего создать с помощью шаблона класса "бинарное дерево" картотеку абонентов, содержащую сведенья о телефонах и их владельцах. Выбор технологии, языка и среды программирования. Выбор стратегии тестирования программы.

    курсовая работа [1,1 M], добавлен 11.12.2010

  • Класс как специальная структура для хранения разнотипной информации о физическом объекте. Порядок объявления класса, его специальные элементы-функции. Создание указателя на объект. Особенности конструкторов и деструкторов. Собственные операции класса.

    курсовая работа [483,1 K], добавлен 07.04.2014

  • Возможности использования Internet-ресурсов в средней школе. Мониторинг качества образовательных сайтов в России. Создание образовательного сайта по информатике для 10-го класса. Анализ практического использования образовательного сайта "Информатика".

    дипломная работа [3,2 M], добавлен 10.03.2012

  • Создание потока с помощью конструктора на основе класса Thread, интерфейса Runnable, синхронизации потоков. Краткая справка по необходимым программным компонентам. Составление программы анимации мячей пространстве окна. Диаграмма классов приложения.

    лабораторная работа [884,9 K], добавлен 01.05.2014

  • Знакомство с основными особенностями развития игровой индустрии. Создание компьютерных игр как одна из прикладных сфер программирования. Общая характеристика набора методов класса Area. Рассмотрение способов создания игры "Змейка", анализ этапов.

    курсовая работа [799,4 K], добавлен 13.06.2013

  • Проектирование и реализация 3 приложений, каждое из которых считает площадь фигуры методом "Монте-Карло". Программные средства разработки приложения. Диаграммы классов Triangle, Rectangle и IceCream. Логическое проектирование серверной части приложения.

    курсовая работа [2,6 M], добавлен 06.02.2016

  • Понятие доступности элементов класса и объекта. Обращение к полям на основе общедоступных свойств (инкапсуляция на основе свойств класса). Способы передачи данных в метод и возвращения результатов работы метода. Обращение к полям и свойствам класса.

    презентация [86,6 K], добавлен 09.12.2013

  • Понятия шаблонов функции и класса, правила описания на языке С++. Разработка и отлаживание в среде программирования программ, содержащих шаблоны функций и классов. Шаблон функции square, возвращающей квадрат переменной. Создание шаблона класса массива.

    лабораторная работа [162,6 K], добавлен 25.05.2013

  • Оценка функциональных возможностей стандартных классов представления данных на примерах использования избранных методов ("detect: ifNone:" класса Set, "to:by:do:" класса Number и "copy: ReplaceFrom: to: with:" класса OrderedCollection), их тестирование.

    лабораторная работа [1,1 M], добавлен 14.10.2012

  • Создание класса wind, характеризующего ветровой режим, и программы, демонстрирующей применение разработанного класса. Программный модуль на языке программирования C++ в среде программирования C++Builder6/0, демонстрирующая работу с классом wind.

    курсовая работа [123,5 K], добавлен 24.06.2010

  • Классы и свойства объектно-ориентированного пространства. Методика создания новых классов в delphi: выбор родительского класса, изменение существующих компонентов, создание подклассов для элементов управления windows. Создание новой ветви классов.

    контрольная работа [13,0 K], добавлен 07.07.2012

  • Представление о потоках выполнения. Последовательный алгоритм ходьбы, бега и быстрого шага. Создание потоков на основе класса Thread и интерфейса Runnable, в Java. Синхронизация на ресурсах, объектах, методах, событиях. Константы и методы класса Thread.

    лекция [556,1 K], добавлен 01.05.2014

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.