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

  • Теоретические сведения

  • Решение Листинг (исходный код программы)

  • Результат работы программы

  • Пояснительная записка. разработка программного обеспечения на языке высокого уровня c#


    Скачать 1.59 Mb.
    Названиеразработка программного обеспечения на языке высокого уровня c#
    Дата28.06.2022
    Размер1.59 Mb.
    Формат файлаdoc
    Имя файлаПояснительная записка.doc
    ТипПояснительная записка
    #618160
    страница5 из 6
    1   2   3   4   5   6

    Свойства и методы класса. Перегрузка операций


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

    Теоретические сведения

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

    Чтобы перегрузить оператор в пользовательском классе или структуре, создайте объявление оператора в соответствующем типе. Объявление оператора, которое перегружает встроенный оператор C#, должно удовлетворять следующим правилам:

    Оно должно включать public и модификатор static.

    Оно должно включать operator X, где X — имя или обозначение перегружаемого оператора.

    Унарные операторы имеют один параметр, а бинарные операторы имеют два параметра. В каждом случае по крайней мере один параметр должен иметь тот же тип, что и класс или структура, в которых объявлен этот оператор.

    Задание

    Разработать класс на языке C# в соответствии с вариантом задания. Все поля класса должны быть скрытыми (объявленными как private). Для доступа к полям классам должны быть предусмотрены соответствующие свойства.

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

    Перегрузить методы класса == и !=.

    Написать программу, демонстрирующую работу указанных выше элементов класса.

    Выполнить задания, представленные в соответствующем варианте.

    Разработать класс Count (счет), содержащий следующие поля:

    • сountNumber (номер счет-фактуры),

    • date (дата выписки счет-фактуры),

    • value (сумма к уплате),

    • count (количество товара);

    методы:

    • GetAverage() — получить среднюю стоимость товара в счёте.

    Перегрузить операторы > и <, считая, что один счет больше другого, если выписан раньше.

    Перегрузить операторы > и <, считая, что один телефонный номер больше другого, если его номер больше.

    Решение

    Листинг (исходный код программы)

    Листинг файла Count.cs

    using System;
    namespace _6

    {

    class Count

    {

    private int countNumber;//(номер счет-фактуры)

    private DateTime date;//(дата выписки счет-фактуры)

    private double value;//(сумма к уплате)

    private int count;//(количество товара);
    public Count()

    {

    countNumber = 0;

    date = DateTime.Now;

    value = 0;

    count = 0;

    }
    public Count(int countNumber, DateTime date, double value, int count)

    {

    this.countNumber = countNumber;

    this.date = date;

    this.value = value;

    this.count = count;

    }
    public Count(Count c)

    {

    countNumber = c.countNumber;

    date = c.date;

    value = c.value;

    count = c.count;

    }
    public int CountNumber

    {

    get { return countNumber; }

    }
    public DateTime Date

    {

    get { return date; }

    }
    public double Value

    {

    get { return value; }

    }
    public int Cnt

    {

    get { return count; }

    }
    public double GetAverage()

    {

    return value / count;

    }
    public static bool operator >(Count l, Count r)

    {

    return !(l.Date > r.Date);

    }
    public static bool operator <(Count l, Count r)

    {

    return !(l.Date < r.Date);

    }
    public static bool operator ==(Count l, Count r)

    {

    return ((l.CountNumber == r.CountNumber) && (l.Cnt == r.Cnt) && (l.Date == r.Date) && (l.Value == r.Value));

    }
    public static bool operator !=(Count l, Count r)

    {

    return !(l == r);

    }
    public override string ToString()

    {

    return string.Format("{0} {1} {2} {3}", countNumber, date.ToString(), value, count);

    }

    }

    }

    Листинг файла Program.cs

    using System;
    namespace _6

    {

    class Program

    {

    static void Main(string[] args)

    {

    Count count1 = new Count();

    Count count2 = new Count(111, DateTime.Now.AddDays(1), 1000, 2);

    Count count3 = new Count(count2);
    Console.WriteLine(count1.ToString());

    Console.WriteLine(count2.ToString());

    Console.WriteLine(count3.ToString());

    Console.WriteLine();
    if (count1 == count2)

    Console.WriteLine("count1 = count2");

    else

    Console.WriteLine("count1 != count2");
    if (count2 != count3)

    Console.WriteLine("count2 != count3");

    else

    Console.WriteLine("count2 == count3");
    if (count2 > count3)

    Console.WriteLine("count2 больше чем count3");

    else

    Console.WriteLine("count2 не больше count3");
    if (count2 < count3)

    Console.WriteLine("count2 меньше чем count3");

    else

    Console.WriteLine("count2 не меньше count3");
    if (count1 > count3)

    Console.WriteLine("count1 больше чем count3");

    else

    Console.WriteLine("count1 не больше count3");
    if (count1 < count3)

    Console.WriteLine("count1 меньше чем count3");

    else

    Console.WriteLine("count1 не меньше count3");
    Console.WriteLine("count2.GetAverage() = {0}", count2.GetAverage());
    Console.Read();

    }

    }

    }
    Результат работы программы



    Рисунок 12 – Результат работы программы
    1. 1   2   3   4   5   6


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