Автор Анна Евкова
Преподаватель который помогает студентам и школьникам в учёбе.

Разработка программы вычисления площади простых фигур

Содержание:

Введение

Объектно-ориентированное программирование

Для начала я хотела бы разобраться в основах ООП

БулавкаООП – это постановка процесса программирования «с ног на голову», то есть это целый набор концепций и идей, позволяющих осмыслить задачу, стоящую при разработке компьютерной программы, а затем найти путь к её решению более эффективным, а значит, и более лёгким путём.

В настоящем объектно-ориентированном языке все элементы так называемой предметной области выражаются через концепцию объектов. Если мы обдумываем стоящую перед нами проблему, то не оперируем понятиями «структура», «пакет данных», «вызов функций», «указатели», ведь привычнее применять понятие объектов. Так как эта технология ориентирована на создание уже достаточно больших проектов, хотя отдельные части проекта (например, методы классов) всё равно разрабатываются в рамках традиционной технологии структурного программирования. Поэтому, на мой консервативный взгляд, чтобы почувствовать преимущества технологии ООП, надо иметь опыт разработки проектов определенной сложности в традиционной технологии;

Так что же такое объект и для чего он нужен?

Понятие объекта. Развитие структурного и событийного программирования способствовало:

1.Увеличению производительности труда программистов.

2. Уменьшению сроков создания приложения объемов в сотни тысяч строк.

Однако этого стало недостаточно для эффективной работы человека, и потребовались новые технологии разработки программ.

В начале 80-х годов в программировании появилось новое направление, основанное на понятии объекта. До этого разрозненность в программе данных и методов их обработки накладывала на возможность создания больших систем некоторые (основные) ограничения.

Возникновение возможности создания объектов в программах качественного повлияло на увеличение производительности труда программистов.

Произошли существенные изменения:

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

Также появилась высокая надежность программ.

Возникновение повторного использования ранее созданных объектов в других задачах.

Базовые характеристики реальных объектов окружающего мира:

  1. Обладают набором свойств.
  2. Способны различными методами изменять эти свойства.

3. Реагируют на события, происходящие как в окружающем мире, так и внутри самого объекта.

Именно так в языках программирования и реализовано понятие объекта как совокупность свойств (структур данных, характерных для данного объекта), методов их обработки (программ изменения свойств) и событий, на которые данный объект может реагировать, и которые приводят, как правило, к изменению свойств объекта.

Возникновение возможности создания объектов в программах качественного повлияло на увеличение производительности труда программистов.

Существенные изменения:

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

2. Появилась высокая надежность программ.

3. Возникновение повторного использования ранее созданных объектов в других задачах.

Объект, метод, класс: определения и свойства

Синтаксическое определение объекта и класса - структура со встроенными функциями. Структурированная переменная со встроенными в нее функциями идеально подходит под определение объекта. Не нужно пытаться изобретать велосипед, достаточно назвать вещи своими именами.

Основные (базовые) типы данных реализованы в языке C#?

В языке C# реализованы следующие базовые типы данных:

  1. Целые типы: sbyte, byte, short, ushort, int, uint, long, ulong.
  2. Типы, в которых сохраняются данные с плавающей запятой (соответствуют вещественному типу): float, double, decimal.
  3. Символьный тип: char.
  4. Логический тип: bool.
  5. Строчный тип: string.

Также в C# есть следующие целочисленные типы данных:

sbyte, byte, short, ushort, int, uint, long, ulong.

Как в программе описать переменную с именем d целого типа int?

Ответ:

int d;

После такого описания под переменную с именем d будет выделено 4 байта памяти компьютера.

Как в переменную d целого типа ulong занести число 398?

Для присвоения переменной некоторого значения используется оператор присваивания, который обозначается оператором ‘=’.

Ответ 1. Присваивание значения переменной после ее описания.

ulong d;

d = 398;

Ответ 2. Присваивание значения переменной во время ее описания (начальная инициализация).

ulong d = 398;

. Как программно определить размер переменной заданного типа?

Чтобы определить размер переменной используется операция sizeof():

int d;

d = sizeof(sbyte); // d = 1

d = sizeof(short); // d = 2

d = sizeof(int); // d = 4

d = sizeof(long); // d = 8

Изменение границ в Windows Forms

При определении внешнего вида и поведения формы Windows Forms можно выбрать из нескольких стилей границы. Изменив FormBorderStyle свойство, можно управлять поведением изменения размеров формы. Кроме того, параметр FormBorderStyle влияет на способ отображения строки заголовка и кнопок, которые на нем могут отображаться. Дополнительные сведения см. в разделе FormBorderStyle.

В Visual Studio предусмотрена расширенная поддержка данной задачи.

Установка стиля границ формы Windows Forms программными средствами

Задайте для свойства FormBorderStyle нужный стиль. В следующем примере кода задается стиль границы формы DlgBx1 для FixedDialog.

C#Копировать

DlgBx1.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog;

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

Работа с десятичными типами

Вы уже ознакомились с базовыми числовыми типами в C# — целыми числами и числами типа double. Осталось изучить еще один тип: decimal. Тип decimal имеет меньший диапазон, но большую точность, чем double. Например:

В яблочко

C#Копировать

decimal min = decimal.MinValue;

decimal max = decimal.MaxValue;

Console.WriteLine($"The range of the decimal type is {min} to {max}");

Обратите внимание, что диапазон меньше, чем для типа double. Вы можете убедиться в повышении точности при использовании типа decimal, выполнив следующий код:

C#Копировать

double a = 1.0;

double b = 3.0;

Console.WriteLine(a / b);

decimal c = 1.0M;

decimal d = 3.0M;

Console.WriteLine(c / d);

Суффикс M возле чисел указывает, что для константы должен использоваться тип decimal. В противном случае компилятор предполагает тип double.

Структурированная переменная – это объект, функции, встроенные в структурированный тип – это методы класса, а само определение структурированного типа (включающее и определение встроенных функций) – есть класс.

Класс. Все объекты могут иметь аналогичную структуру и отличаться только значениями свойств. В таких случаях в программе создается класс. Класс — это новый тип, основанный на единой структуре объекта (по аналогии с тем, как создаются новые типы для структур данных). Экземпляр класса - каждый конкретный объект, имеющий структуру данного класса.

В Visual Basic для описания нового класса используется конструкция:

Class ИмяКласса

описание класса

End Class.

Стандартные типы данных Visual Basic хорошо вписываются в терминологию объектов и классов. 

Например, описание:

Dim s As String

Dim i As Integer.

Здесь создается объект s, принадлежащий классу String, и объект i, принадлежащий классу Integer. Переменные s и i — это объекты (как модели сущностей "строка" и "целое число"), а типы данных String и Integer - классы, к которым данные объекты относятся. Эти классы определяют диапазон возможных состояний объекта и его поведение. Внутреннее состояние объекта, относящегося к классу Integer, характеризуется целым числом; объект же, относящийся к классу String, характеризуется символьной строкой. То же можно сказать и о поведении: принадлежность двух объектов классу Integer дает возможность их складывать, вычитать, перемножать и делить; принадлежность классу String не гарантирует, что можно производить арифметические действия, зато определяет операцию конкатенации ("приписывания" одной строки в конец другой), которая не работает в случае объектов класса Integer.

Таким образом, любой тип данных, используемый в языке Visual Basic, подходит под определение класса. Верно и то, что, создавая новый класс, мы тем самым создаем свой собственный тип данных. После этого можно описывать переменные, принадлежащие новому типу данных (то есть создавать отдельные объекты, экземпляры класса), и оперировать ими в рамках возможностей, заданных при описании класса.

Объектно-ориентированное программирование базируется на трех ключевых концепциях - инкапсуляция, наследовании и полиморфизме.

Наследование. Класс представляет собой совокупность связанных между собой данных, методов их обработки и событий. Важнейшая характеристика наследования - возможность создания на его основе новых классов всех его свойств и методов и добавлением собственных. Базовый класс — это класс, не имеющий предшественника. С позиции наследования класс может быть дочерним или родительским. Дочерний класс наследует характеристики родительского класса, включая свойства, методы, поля данных и события.

Например, класс «управленцы», приведенный на следующей схеме, наследует все члены родительского класса «персонал» за исключением метода «управлять», который создается заново, замещая исходный «работать».

Наследование позволяет создавать новые классы, повторно используя уже готовый исходный новый код и не траты времени на его переписывание.

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

В Visual Basic при определении нового класса, наследуемого от существующего, используется ключевое слово Inherits. Например:

Public Class NewChildClass

Inherits MyClass

Этот код создает новый компонент, который наследует все свойства, методы, события и поля класса MyClass. Параметры компонента могут быть расширены по сравнению с исходным классом, чтобы обеспечить необходимые качества создаваемых объектов.

ПолиморфизмВ большинстве случает методы базового класса у классов - наследников приходиться переопределять - объект класса «управленец» выполняет метод «управлять» совсем не так, как объект класса «рабочий».

Поэтому, существует полиморфизм, который позволяет нескольким классам, имеющим различные имена, обращаться к одним и тем же методам и свойствам.

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

1. Методика решения поставленной задачи

В программе для вычисления площадей геометрических фигур я применила метод полиморфизм, то есть программировала, используя полиморфную функцию.

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

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

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

Например, при нажатии кнопок или «Круг», или «Прямоугольник», или «Трапеция», вызывается функция PL, которая и рассчитывает площади фигур.

То есть полиморфизмом называется свойство объектов переопределять методы наследуемого класса и корректно их использовать.

Инкапсуляция позволяет объединять данные с методами в одном классе. Так же инкапсуляция позволяет ограничивать доступ к данным объектов и реализации методов классов. Исходя из списка аргументов, переданного методу, и возвращаемого им значения, компилятор автоматически определяет, какой из методов нужно вызвать. На следующей схеме приведен класс, содержащий 4 перезагружаемых определения метода «работать».

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

Визуальное программированиеСегодня технологии объектного программирования объединены в RAD-системах, которые содержат множество готовых классов, представленных в виде визуальных компонентов, которые добавляются в программы одним щелчком мыши. Весь вспомогательный исходный код среда сгенерирует сама. Программисту надо только скооперировать внешний вид окон своего приложения и определить обработку основных событий - какие операторы будут выполняться при нажатии на кнопки, при выборе пунктов меню или щелчком мыши.

Благодаря этому, программист может сосредоточиться только на реализации алгоритма поставленной задачи.

 

Постановка задачи работы. Требуется вычислить площади геометрических фигур из заданного множества фигур, по расчетным формулам вычисления их площадей на языке Visual Basic.

Для решения данной задачи (расчёт площади простых фигур) мне необходимо установить интегрированную среду разработки (Visual Studio)

Сама среда разработки поддерживает множество языков программирования и может воспроизводить как собственный код, так и управляемый.

Также Visual Studio использует любые платформы разработки программного обеспечения Microsoft

Запускаем Visual Studio и создаём проект Консольное приложение (.NET Core)

Настраиваем свой будущий проект и даём ему имя

Выбираем на компьютере папку для сохранения нашей работы

Панель элементов и форм1 ( form мы можем переименовать )

Направленный вправо указательный палец, тыльная сторона руки

Галочка

Решила найти пример для ясности, где что находится у нас в проекте

После нам нужна form 1 и панель элементов, для того чтобы вытащить необходимые элементы на форм.

То есть можно перетаскивать различные элементы управления на поверхность используемого конструктора, а также изменять размер и положение элементов управления.

Панель элементов отображается вместе с представлениями конструктора, например представлением XAML-файла. На панели элементов отображаются только те элементы управления, которые можно использовать в текущем конструкторе. Вы можете выполнить поиск в пределах панели элементов, чтобы отфильтровать отображаемые элементы.

К примеру с помощью элемента управления TextBox пользователь может вводить текст в приложении. Этот элемент управления обладает дополнительными функциональными возможностями, которые не найдены в стандартном элементе управления "текстовое поле Windows", включая многострочное редактирование и маскирование символов пароля.

А button можно щелкнуть мышью, клавишей Ввод или пробел, если кнопка находится в фокусе.

Задайте свойство AcceptButton или CancelButton Form, чтобы разрешить пользователям нажать кнопку, нажав клавиши ENTER или ESC, даже если кнопка не имеет фокуса. Это дает форме поведение диалогового окна.

При отображении формы с помощью метода ShowDialog можно использовать свойство DialogResult кнопки, чтобы указать возвращаемое значение ShowDialog.

Можно изменить внешний вид кнопки. Например, чтобы сделать его плоским для веб-поиска, задайте для свойства FlatStyle значение FlatStyle.Flat. Свойству FlatStyle также можно присвоить значение FlatStyle.Popup, которое отображается плоским, пока указатель мыши не будет передан по кнопке. Затем кнопка принимает стандартный вид кнопки Windows.

В Windows Forms существуют также элементы управления Label. Они используются для вывода текста или изображений, которые не могут быть изменены пользователем. Или же для обнаружения объектов в форме — для предоставления описания того, что может делать определенный элемент управления, например, или для вывода сведений в ответ на событие или процесс во время выполнения в приложении. Поскольку элемент управления Label не может получать фокус, он также может использоваться для создания ключей доступа для других элементов управления.

Существует достаточно большое количество элементов управления в Windows for

Глаз

Если углубиться в понятие Windows Forms, то это интеллектуальная клиентская технология для .NET Framework, набор управляемых библиотек, упрощающих типичные задачи приложения, такие как чтение и запись в файловую систему. При использовании среды разработки, такой как Visual Studio, можно создавать Windows Forms интеллектуальные клиентские приложения, которые отображают сведения, запрашивают ввод данных от пользователей и обмениваются данными с удаленными компьютерами по сети.

В Windows Forms форма — это визуальная поверхность, на которой выводится информация для пользователя. Обычно приложение Windows Forms строится путем помещения элементов управления на форму и на писания кода для реагирования на действия пользователя, такие как щелчки мыши или нажатия клавиш. 

Элемент управления — это отдельный элемент пользовательского интерфейса, предназначенный для отображения или ввода данных.

При выполнении пользователем какого-либо действия с формой или одним из ее элементов управления создается событие. Приложение реагирует на эти события с помощью кода и обрабатывает события при их возникновении. 

Windows Forms включает широкий набор элементов управления, которые можно добавлять на формы: текстовые поля, кнопки, раскрывающиеся списки, переключатели и даже веб-страницы. Список всех элементов управления, которые можно использовать в форме, представлены в разделе « Элементы управления для использования в формах Windows Forms». Если существующий элемент управления не удовлетворяет потребностям, в Windows Forms можно создать пользовательские элементы управления с помощью класса UserControl.

В состав Windows Forms входят многофункциональные элементы пользовательского интерфейса, позволяющие воссоздавать возможности таких сложных приложений, как Microsoft Office. Используя элементы управления ToolStrip и MenuStrip, можно создавать панели инструментов и меню, содержащие текст и рисунки, подменю и другие элементы управления, такие как текстовые поля и поля со списками.

С помощью конструктор Windows Forms перетаскивания в Visual Studio можно легко создавать Windows Forms приложения. Достаточно выделить элемент управления курсором и поместить его в нужное место на форме. Для преодоления трудностей, связанных с выравниванием элементов управления, конструктор предоставляет такие средства, как линии сетки и линии привязки. А также при использовании Visual Studio или компиляции из командной строки можно использовать элементы управления FlowLayoutPanel, TableLayoutPanel и SplitContainer для создания расширенных макетов форм за меньшее время.

Документ

Наконец, если нужно создать свои собственные элементы пользовательского интерфейса, пространство имен System.Drawing содержит широкий набор классов, необходимых для отрисовки линий, кругов и других фигур непосредственно на форме.

Когда мы установим необходимые элементы у себя на форуме, то можем приступать к лицевому образу нашей задачи

Постановка задачи работы. Требуется вычислить площади простых геометрических фигур из заданного множества фигур, указанных ниже, по расчетным формулам вычисления их площадей на языке Visual Basic.

Конкретное множество геометрических фигур:

. Круг:

.

Следовательно, функция зависит от одной переменной R.

. Прямоугольник

Следовательно, функция зависит от двух переменных A, h.

Трапеция:

.

Следовательно, функция зависит от трех переменных A, B, h.

 Методика решения поставленной задачи

В программе для вычисления площадей геометрических фигур я применила метод полиморфизм, то есть программировала, используя полиморфную функцию.

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

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

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

Например, при нажатии кнопок или «Круг», или «Прямоугольник», или «Трапеция», вызывается функция PL, которая и рассчитывает площади фигур.

Начинаем создание нашего проекта

2. Текст программы

Class Form1

Public obj As New Figure

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

TextBox1.Text = " "

TextBox2.Text = " "

TextBox3.Text = " "

Label7.Text = " "

Label8.Text = " "

End Sub

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

Dim R, S As Integer

R = Val(TextBox1.Text)

If R < 0 Then

Label7.Text = "Ошибка"

Label8.Text = "Ошибка"

Else : S = obj.PL(R)

Label7.Text = CStr(S)

Label8.Text = "Круг"

End If

Public Function PL(ByVal A As Double,

End Sub

Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click

Dim A, h, S As Integer

A = Val(TextBox1.Text)

h = Val(TextBox2.Text)

If A < 0 Or h < 0 Then

Label7.Text = "Ошибка"

Label8.Text = "Ошибка"

Else : S = obj.PL(A, h)

Label7.Text = CStr(S)

Label8.Text = "Прямоугольник"

End If

End SubSub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click

Dim A, h, B, S As Integer

A = Val (TextBox1.Text)

B = Val (TextBox2.Text)

h = Val (TextBox3.Text)

If A < 0 Or B < 0 Or h < 0 Then

Label7.Text = "Ошибка"

Label8.Text = "Ошибка"

Else: S = obj.PL (A, B, h)

Label7.Text = CStr(S)

Label8.Text = "Трапеция"

End If

End Subclass Class Figure

Public Function PL(By Val R As Double) As Double

Return (Math.PI * R * R)

End Function

Public Function PL (ByVal A As Double, ByVal h As Double) As Double

Return (A * h)

End Function

ByVal B As Double, ByVal h As Double) As Double

Return ((A + B) * h / 2)

End FunctionClass

Появляется отладка наших действий/ То есть компилируем нашу задачу

Работаем с кодом, который я прописала выше и производим вычисления

Высчитываем периметр и площадь трапеции: получаем такие значения: P=10; S=5.

Вычисляем периметр и площадь прямоугольника

Вычисляем параметры окружности

Направленный вправо указательный палец, тыльная сторона руки Вспоминаем куда сохранили наш проект

Литература:

1)

СОВРЕМЕННЫЕ ТЕХНОЛОГИИ ПРОГРАММИРОВАНИЯ: РАЗРАБОТКА WINDOWS-ПРИЛОЖЕНИЙ НА ЯЗЫКЕ С# : УЧЕБНИК ДЛЯ СТУДЕНТОВ, ОБУЧАЮЩИХСЯ ПО ДИСЦИПЛИНЕ «СОВРЕМЕННЫЕ ТЕХНОЛОГИИ ПРОГРАММИРОВАНИЯ», НАПРАВЛЕНИЕ «ПРИКЛАДНАЯ ИНФОРМАТИКА» (09.03.03 — ДЛЯ БАКАЛАВРОВ, 09.04.03 — ДЛЯ МАГИСТРОВ) : В 2 Т. ТОМ 1/2019, Горелов С. В., Прометей

2)

Рихтер Дж.


 

CLR via C#. Программирование на платформе Microsoft. NET Framework 4.5 на языке С#

Папка

Книги