Разработать архитектуру классов иерархии товаров при разработки системы управления потоков товаров - C#
Формулировка задачи:
Уважаемое IT сообщество подскажите пожалуйста в каком направлении лучше двигаться в решении следующей задачи.
Задача.
Разработать архитектуру классов иерархии товаров при разработки системы управления потоков товаров.
1.Типы товаров(бытовая химия, продукты питания).
2.Предусмотреть классы управления потоком товаров(пришло, реализовано, списано, передано)
3.Реализовать соответствующий классы исключений(нет в наличии, истек срок годности, бракованный)
4.Предусмотреть интерфейсы скоропортящиеся продукты, акцизные продукты, бьющиеся.
Пункты 1,3,4 есть задумки как можно реализовать. Не могу понять как поступить со вторым пунктом. Методы же реализовывают какие-то действия с данными. Или можно создать класс в котором будет к примеру фиксироваться накопление бытовой химии?
Решение задачи: «Разработать архитектуру классов иерархии товаров при разработки системы управления потоков товаров»
textual
Листинг программы
// Создать абстрактный класс товары abstract class Merchandise { public Merchandise(string name, double price, int quantity) { Name = name; Price = price; Quantity = quantity; } public double Price { get; set; } public string Name { get; set; } public int Quantity { get; set; } public abstract void ShowInformation(); } // Реализация интерфейсов(Приход, Реализация, Списание) public interface IGoodsReceipt { void GoodsReceiptMerchandise(object ob); } public interface ISelling { void SellingMerchandise(object ob); } public interface IProductCancellation { void ProductCancellationMerchandise(object ob); } class HouseholdChemicals : Merchandise/*, IGoodsReceipt, ISelling, IProductCancellation*/ { public HouseholdChemicals(string name, double price, int quantity, string productGroup = "Бытовая химия") : base(name, price, quantity) { ProductGroup = productGroup; } string ProductGroup { get; set; } public override void ShowInformation() { Console.WriteLine("Группа товара:\t" + ProductGroup + "\nНаименование:\t" + Name + "\nЦена:\t\t" + Price + "\nКоличество\t" + Quantity); } } // Классы для группы товаров бытовая химия class Soap : HouseholdChemicals { public Soap(string name, double price, int quantity, bool expirationDate, string productGroup = "Бытовая химия") : base(name, price, quantity, productGroup) { ExpirationDate = expirationDate; } public bool ExpirationDate { get; set; } } class Shampoo : HouseholdChemicals { public Shampoo(string name, double price, int quantity, bool expirationDate, string productGroup = "Бытовая химия") : base(name, price, quantity, productGroup) { ExpirationDate = expirationDate; } public bool ExpirationDate { get; set; } } // Реализация собственных классов исключений class MerchandiseAreAbsentException : Exception { public MerchandiseAreAbsentException() : base() { } public MerchandiseAreAbsentException(string str) : base(str) { } public MerchandiseAreAbsentException(string str, Exception inner) : base(str, inner) { } public MerchandiseAreAbsentException(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) : base(info, context) { } } class ExpiredException : Exception { public ExpiredException() : base() { } public ExpiredException(string str) : base(str) { } public ExpiredException(string str, Exception inner) : base(str, inner) { } public ExpiredException(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) : base(info, context) { } } class DefectiveException : Exception { public DefectiveException() : base() { } public DefectiveException(string str) : base(str) { } public DefectiveException(string str, Exception inner) : base(str, inner) { } public DefectiveException(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) : base(info, context) { } } class Program { static void Main(string[] args) { Soap ob = new Soap("Мыло - Duru",3.20,10,true); ob.ShowInformation(); } } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д