Министерство образования и науки Российской Федерации Федеральное государственное бюджетное образовательное учреждение высшего профессионального образования
«ТОМСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ СИСТЕМ УПРАВЛЕНИЯ И РАДИОЭЛЕКТРОНИКИ» (ТУСУР) Кафедра безопасности информационных систем (БИС)
Отчет по лабораторной работе №6
по дисциплине «Основы программирования» Тема работы: Основы объектно-ориентированного программирования.
Студенты гр. 730-2
_______Подойницын К.В.
_______Астра Г.А.
_______Фатеев А.В. 07.06.2021
Принял Инженер научно-технического отдела ЦСП
_______ Уразаев Д.Р.
07.06.2021
2021
Содержание Введение………………………………………………………..3
Теоретические сведения по теме лабораторной работы…….4
Ход работы……………………………………………………..5-11
Заключение……………………………………………………..12
Список использованных источников………………………….13
1 Введение
Цель работы: овладеть навыками работы с классами, использования механизмов инкапсуляции, наследования и полиморфизма.
Задание: составить консольное приложение для решения нижеприведенных задач согласно варианту, согласованному с преподавателем, вводя данные в ходе выполнения программы.
2 Теоретические сведения по теме лабораторной работы
Класс является основой для создания объектов. Если структура объединяет разнородные по типам переменные, то в классе определяются данные и код, который работает с этими данными. Объекты являются экземплярами класса. Методы и переменные, составляющие класс,
называются членами класса. При определении класса объявляются данные,
которые он содержит, и код, работающий с этими данными. Данные содержатся в переменных экземпляра, которые определены классом, а код содержится в методах. В С# определены несколько специфических разновидностей членов класса. Это — переменные экземпляра, статические переменные, константы, методы, конструкторы, деструкторы, индексаторы,
события, операторы и свойства. Непосредственно инициализация переменных в объекте (переменных экземпляра) происходит в конструкторе.
В классе могут быть определены несколько конструкторов. Все члены классов имеют уровень доступности или модификатор доступа. Он определяет возможность их использования из другого кода в вашей программе. При создании объекта класса происходит вызов соответствующего конструктора класса. Конструктор класса – метод для инициализации объекта при его создании. Он имеет то же имя, что и его класс. В конструкторах тип возвращаемого значения не указывается явно.
Конструкторы используются для присваивания начальных значений переменным экземпляра, определенным классом, и для выполнения любых других процедур инициализации, необходимых для создания объекта.
Свойство класса – это член, предоставляющий гибкий механизм для чтения,
записи или вычисления значения частного поля. Свойства можно использовать, как если бы они были членами общих данных, но фактически они представляют собой специальные методы, называемые методами доступа.
3 Ход работы
Задание 1
Создать класс EngMoney для работы с устаревшей денежной системой Великобритании. В ней использовались фунты, шиллинги и пенсы. При этом: 1 фунт = 20 шиллингов, 1 шиллинг =12 пенсов. Денежные суммы будут задаваться в фунтах, шиллингах и пенсах и результат выдаваться также в этих величинах. Должны быть реализованы: сложение и вычитание,
умножение и деление, сравнение сумм.
Листинг исходного кода программы:
using System;
using System.Collections.Generic; using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace laba6._1
{
class Program
{
static void Main(string[] args)
{
int a1, a2, a3, b1, b2, b3;
Console.WriteLine("Введите 1-ю сумму в порядке: фунты, шиллинги, пенс"); a1 = int.Parse(Console.ReadLine());
a2 = int.Parse(Console.ReadLine());
a3 = int.Parse(Console.ReadLine());
Console.WriteLine("\nВведите 2-ю сумму в порядке: фунты, шиллинги, пенс"); b1 = int.Parse(Console.ReadLine());
b2 = int.Parse(Console.ReadLine());
b3 = int.Parse(Console.ReadLine()); EngMoney a = new EngMoney(a1, a2, a3); EngMoney b = new EngMoney(b1, b2, b3);
Console.WriteLine($"Введенные данные:\n{a}\n{b}"); Console.WriteLine($"\nРезультаты:\nСложение: {a.Sum(b)}\nВычитание:
{a.Vch(b)}");
Console.WriteLine($"Умножение: {a.Umn(b)}\nДеление:{a.Del(b)}"); Console.WriteLine($"Сравнение: Сумма №{a.Srav(b)}\b\b\b больше");
}
}
class EngMoney
{
private int f; private int s; private int p; public int F