Создание класса 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