Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
LR1.docx
Скачиваний:
13
Добавлен:
01.09.2021
Размер:
38.1 Кб
Скачать

Листинг класса Product

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

public abstract class Product

{

public string MeasureUnit { get; set; }

public string Name { get; set; }

private decimal pricePerUnit;

public decimal PricePerUnit

{

get

{

return pricePerUnit;

}

set

{

if (value > 0)

pricePerUnit = value;

}

}

private float needQuantity;

public float NeedQuantity

{

get

{

return needQuantity;

}

set

{

if (value > 0)

needQuantity = value;

}

}

private float disconuntPercentage;

public float DiscountPercentage

{

get

{

return disconuntPercentage;

}

set

{

if (value > 0 && value < 101)

disconuntPercentage = value;

}

}

//Метод для проверки существования скидки на категорию продуктов

public abstract bool CheckDiscount();

public Product(string name, string measureUnit, decimal pricePerUnit, float needQuantity, float discountPercentage = 0)

{

this.Name = name;

this.MeasureUnit = measureUnit;

this.PricePerUnit = pricePerUnit;

this.NeedQuantity = needQuantity;

this.DiscountPercentage = discountPercentage;

}

}

Листинг класса MilkProducts

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

public class MilkProducts : Product

{

private float fatPercentage;

public float FatPercentage

{

get

{

return fatPercentage;

}

set

{

if (value > 0 && value < 101)

fatPercentage = value;

}

}

public override bool CheckDiscount()

{

if (Convert.ToString(DateTime.Now.DayOfWeek) == "Saturday" && DiscountPercentage != 0)

{

Console.WriteLine(String.Format("Сегодня скидка на {0} - {1}%", Name, DiscountPercentage));

return true;

} else

{

return false;

}

}

public MilkProducts(string name, string measureUnit, decimal pricePerUnit, float needQuantity,

float fatPercentage, float discountPercentage = 0) : base (name, measureUnit, pricePerUnit, needQuantity, discountPercentage)

{

this.FatPercentage = fatPercentage;

}

}

Соседние файлы в предмете Технология программирования