Главная страница
Навигация по странице:

  • ОБЪЕКТНО-ОРИЕНТИРОВАННОЕ ПРОГРАММИРОВАНИЕ

  • Содержание Задание 1………….. ………...…………………………………...…………………….………...6Задание 2………………………………………………………………………………………….8Контрольная работа

  • Исходный код

  • Скриншот : Задание 2

  • Скриншот

  • Фомин Л.А. - ООП -Контрольная работа. - 4170362005 (1). Контрольная работа по дисциплине объектноориентированное программирование Вариант 5 студент 2 курса


    Скачать 116.53 Kb.
    НазваниеКонтрольная работа по дисциплине объектноориентированное программирование Вариант 5 студент 2 курса
    Дата10.05.2022
    Размер116.53 Kb.
    Формат файлаdocx
    Имя файлаФомин Л.А. - ООП -Контрольная работа. - 4170362005 (1).docx
    ТипКонтрольная работа
    #520967

    МИНИСТЕРСТВО ОБРАЗОВАНИЯ РЕСПУБЛИКИ БЕЛАРУСЬ

    Белорусский национальный технический университет

    Международный институт дистанционного образования

    Контрольная работа по дисциплине

    «ОБЪЕКТНО-ОРИЕНТИРОВАННОЕ ПРОГРАММИРОВАНИЕ»

    Вариант №5

    Выполнил:

    студент 2 курса,

    группы 41703620

    № зачетной книжки 4170362005

    Фомин Л.А.

    Проверил:

    Преподаватель

    Радкевич Андрей Сергеевич

    Минск 2022

    БЕЛОРУССКИЙ НАЦИОНАЛЬНЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ


    Факультет:

    Международный институт дистанционного образования






    Утверждаю

    Заведующий кафедрой
















    (подпись)




    (фамилия, инициалы)




    « »







    2022

    г.



    Задание на курсовой проект (курсовую работу)

    Обучающемуся

    Фомин Лев Александрович

    (фамилия, собственное имя, отчество)




    группа

    41703620



    1. Тема

    курсового проекта

    (указать: курсового проекта или курсовой работы)

    Задание 1. Классы и объекты. Инкапсуляция (Вариант 5)

    Задание 2. Наследование. Полиморфизм (Вариант 5)

    Задание 3. Коллекции. (Вариант 5)







    2. Сроки сдачи законченного проекта (работы)

    31.05.2022

    3. Исходные данные

    к курсовому проекту




    (указать: к курсовому проекту или курсовой работе)

    Создать класс библиографических описаний книг CBookCard. Класс должен содержать поля

    согласно таблицам 1 – 3, в соответствии с номером варианта.

    Реализовать иерархию классов предметной области на языке C# в соответствии с указанным

    вариантом задания.

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

    для хранения экземпляров созданного класса.













    4. Содержание пояснительной записки (перечень вопросов, которые подлежат разработке)




    титульный лист;

    содержание;

    введение;

    задание (актуальность задачи, область применения);

    описание программы (подробно прокомментированный код);

    методика испытаний (тестирование, скриншоты работы приложения);

    выводы (заключение);

    список использованной литературы.

























    5. Перечень графического материала (с точным указанием обязательных чертежей и графиков)




    копии консольного окна;

    содержимое текстовых файлов.















    6. Дата выдачи задания

    10.01.2022 г.

    7. Примерный календарный график выполнения

    курсового проекта




    (указать: курсового проекта или курсовой работы)

    с указанием сроков выполнения и трудоёмкости отдельных этапов







    Анализ литературных источников 17.03 10%

    Выбор методов и алгоритмов 31.03 20%

    Написание кода 10.04 50%

    Отладка программы 24.04 60%

    Тестирование 15.05 80%

    Написание отчета 29.05 100%
























    Руководитель

    курсового проекта










    Радкевич А.С.




    (указать: курсового проекта или курсовой работы)




    (подпись)




    (фамилия, инициалы)

    Подпись обучающегося

























    (подпись)




    (фамилия, инициалы)

    Дата



















    БНТУ.Тир.1000.Зак.298.2019

    Содержание

    Задание 1………….. ………...…………………………………...…………………….………...6

    Задание 2………………………………………………………………………………………….8

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

    Задание 1:

    Создать абстрактный класс Number c виртуальными методами, реализующими арифметические операции. На его основе реализовать классы Integer и Real.

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

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

    Исходный код:

    using System;

    using System.IO;
    namespace ConsoleApplication

    {

    internal class Program

    {

    private static void Main()

    {

    var series = new Series(3);

    series[0] = new Real(2.66);

    series[1] = new Real(2.55);

    series[2] = new Real(2.77);

    series.SortASC();


    for (var i = 0; i < series.Length; i++)

    Console.WriteLine(series[i]);
    series.SortDesc();
    for (var i = 0; i < series.Length; i++)

    Console.WriteLine(series[i]);
    String pathReal = "C:/OUT/Real.txt";

    series.FileSave(series, pathReal);

    series.FileRead(pathReal);
    var series1 = new Series(3);

    series1[0] = new Integer(2);

    series1[1] = new Integer(1);

    series1[2] = new Integer(3);

    series1.SortASC();
    for (var i = 0; i < series1.Length; i++)

    Console.WriteLine(series1[i]);
    series1.SortDesc();
    for (var i = 0; i < series1.Length; i++)

    Console.WriteLine(series1[i]);
    String pathInteger = "C:/OUT/Integer.txt";

    series1.FileSave(series1, pathInteger);

    series1.FileRead(pathInteger);
    Real real1 = new Real(1.05);

    real1.Sum(new Real(3.55));

    Console.WriteLine(real1.Sum(new Real(3.55)));
    Real real2 = new Real(1.01);

    real2.Sub(new Real(3.55));

    Console.WriteLine(real2.Sub(new Real(3.55)));
    Real real3 = new Real(1.01);

    real3.Mul(new Real(3.55));

    Console.WriteLine(real3.Mul(new Real(3.55)));
    Real real4 = new Real(1.01);

    real4.Div(new Real(3.55));

    Console.WriteLine(real4.Div(new Real(3.55)));
    Integer integer1 = new Integer(1);

    integer1.Sum(new Integer(3));

    Console.WriteLine(integer1.Sum(new Integer(3)));
    Integer integer2 = new Integer(1);

    integer2.Sub(new Integer(3));

    Console.WriteLine(integer2.Sub(new Integer(3)));
    Integer integer3 = new Integer(1);

    integer3.Mul(new Integer(3));

    Console.WriteLine(integer3.Mul(new Integer(3)));
    Integer integer4 = new Integer(1);

    integer4.Div(new Integer(3));

    Console.WriteLine(integer4.Div(new Integer(3)));

    }


    public class Series

    where T : class, IComparable

    {

    private T[] array;
    public Series(int size)

    {

    array = new T[size];

    }
    public int Length

    {

    get { return array.Length; }

    }
    public void SortASC()

    {

    Sort((x, y) => x.CompareTo(y) > 0);

    }
    public void Sort(IComparer comparer)

    {

    Sort((x, y) => comparer.Compare(x, y) > 0);

    }
    public void SortDesc()

    {

    Sort((x, y) => x.CompareTo(y) < 0);

    }
    protected void Sort(Func func)

    {

    for (var i = 0; i < Length - 1; i++)

    for (var j = i + 1; j < Length; j++)

    if (func(array[i], array[j]))

    {

    var temp = array[i];

    array[i] = array[j];

    array[j] = temp;

    }

    }

    public T this[int index]

    {

    get { return array[index]; }

    set { array[index] = value; }

    }
    public void FileSave(Series series, String path)

    {

    StreamWriter f = new StreamWriter(path);

    for (var i = 0; i < series.Length; i++)

    {

    f.WriteLine(series[i]);

    }

    f.Close();

    }
    public void FileRead(String path)

    {

    StreamReader fs = new StreamReader(path);

    while (true)

    {

    string temp = fs.ReadLine();

    if (temp == null) break;

    String text = "";

    text += temp;

    Console.WriteLine(temp);

    }

    }

    }
    public class Real : Number

    {

    public Real(double value = 0)

    {

    Value = value;

    }
    public override Number Sum(Number other)

    {

    return new Real(Value + other.Value);

    }
    public override Number Sub(Number other)

    {

    return new Real(Value - other.Value);

    }
    public override Number Mul(Number other)

    {

    return new Real(Value * other.Value);

    }
    public override Number Div(Number other)

    {

    return new Real(Value / other.Value);

    }

    }
    public class Integer : Number

    {

    public Integer(int value = 0)

    {

    Value = value;

    }
    public override Number Sum(Number other)

    {

    return new Integer(Value + other.Value);

    }
    public override Number Sub(Number other)

    {

    return new Integer(Value - other.Value);

    }
    public override Number Mul(Number other)

    {

    return new Integer(Value * other.Value);

    }
    public override Number Div(Number other)

    {

    return new Integer(Value / other.Value);

    }

    }
    public abstract class Number : IComparable>

    where T : struct, IComparable

    {

    public T Value { get; protected set; }
    public abstract Number Sum(Number other);

    public abstract Number Sub(Number other);

    public abstract Number Mul(Number other);

    public abstract Number Div(Number other);
    public int CompareTo(Number other)

    {
    return Value.CompareTo(other.Value);

    }

    public override string ToString()

    {

    return Value.ToString();

    }
    }

    }

    }

    Скриншот_:__Задание_2'>Скриншот:



    Задание 2:

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

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

    Исходный код:

    using System;

    using System.IO;

    namespace ConsoleApplication

    {

    class Program

    {

    static void Main(string[] args)

    {
    Car car = new Car();

    car.Save("C:/OUT", "C:/OUT/MYCARINFO1.txt");

    car.Show(car);

    }
    }
    class Car

    {

    public string brand = "SKODA";

    public string model = "RAPID";

    public string releaseDate = "19.25.2015";

    public double engine = 1.6;

    public string color = "WHITE";
    public void Save(string directory, string text)

    {
    DirectoryInfo k = new DirectoryInfo(directory);

    k.Create();

    StreamWriter stream = new StreamWriter(text);

    stream.Write("{0} {1} {2} {3} {4}", brand, model, releaseDate, engine, color);

    stream.Close();
    }

    public void Show(Car car) {

    Console.WriteLine("Класс Car состоит из полей:\n" + "brand c HashCode = " + car.brand.GetHashCode());

    Console.WriteLine("model c HashCode = " + car.model.GetHashCode());

    Console.WriteLine("releaseDate c HashCode = " + car.releaseDate.GetHashCode());

    Console.WriteLine("engine c HashCode = " + car.engine.GetHashCode());

    Console.WriteLine("color c HashCode = " + car.color.GetHashCode());

    }

    }

    }

    Скриншот:



    написать администратору сайта