Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
0 / 0 / 0
Регистрация: 30.11.2021
Сообщений: 67

Создать абстрактный класс Товар с методами и производный Продукт

14.05.2022, 09:39. Показов 825. Ответов 0
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Кому не сложно объясните как задачу делать:

1. Создать абстрактный класс Товар с методами, позволяющими вывести на экран информацию о товаре, а также определить, соответствует ли он сроку годности на текущую дату.
2. Создать производные классы: Продукт (название, цена, дата производства, срок годности), Партия (название, цена, количество, дата производства, срок годности), Комплект (название, цена, перечень продуктов) со своими методами вывода информации на экран, и определения соответствия сроку годности.
3. Создать базу (массив) из n товаров, вывести полную информацию из базы на экран, а также организовать поиск просроченного товара (на момент текущей даты).
я тут код написать пытался:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
using System;
using System.IO;
 
 
namespace ConsoleApp7
{
    abstract class Tovar
    {
        public abstract string Name();
        public int price;//цена
        public abstract void Show();// метод вывода информации
        public abstract int Overdue(); // метод определения просроченного товара
        
 
        
    }
    class Product : Tovar  // класс Продукт
    {
        protected string name_product, production_date;  // название продукта,  дата производства, срок годности
        int expiration_date;
        readonly string name = "Product";
        public override string Name()
        {
            return name;
        }
 
        public Product(string name_product, int expiration_date, string production_date, int price)
        {
            this.name_product = name_product;
            this.expiration_date = expiration_date;
            this.production_date = production_date;
            this.price = price;
        }
 
        public override void Show()  // название, цена, дата производства, срок годности
        {
            Console.WriteLine("Название: {0}\tЦена: {1}\tДата производства: {2}\tСрок годности: {3}", name_product, price, production_date, expiration_date);
        }
 
        public override int Overdue()
        {
            var today = DateTime.Today;
            var productionDate = DateTime.ParseExact(production_date, "dd.MM.yyyy", null);
            var term = today.Year - productionDate.Year;
            if (productionDate.Date > today.AddYears(-term))
                term--;
            return term;
        }
    }
    class Party : Tovar  // класс Партия
    {
        protected string name_party, quantity, production_date;  // название, количество, дата производства, срок годности
        int  expiration_date;
        readonly string name = "Party";
        public override string Name()
        {
            return name;
        }
 
        public Party(string name_party, string quantity, int expiration_date, string production_date, int price)
        {
            this.name_party = name_party;
            this.quantity = quantity;
            this.expiration_date = expiration_date;
            this.production_date = production_date;
            this.price = price;
        }
 
        public override void Show()  // название, цена, количество, дата производства, срок годности
        {
            Console.WriteLine("Название: {0}\tЦена: {1}\tКолличество: {2}\tДата производства: {3}\tСрок годности: {4}", name_party, price, quantity, production_date, expiration_date);
        }
 
        public override int Overdue()
        {
            var today = DateTime.Today;
            var productionDate = DateTime.ParseExact(production_date, "dd.MM.yyyy", null);
            var term = today.Year - productionDate.Year;
            if (productionDate.Date > today.AddYears(-term))
                term--;
            return term;
            
        }
    }
    class Set : Tovar       // класс Комплект
 
    {
        protected string name_set, listofproducts;  // название, перечень продуктов
        readonly string name = "Party";
        public override string Name()
        {
            return name;
        }
 
        public Set(string name_set, int price, string listofproducts)
        {
            this.name_set = name_set;
            this.listofproducts = listofproducts;
            this.price = price;
        }
 
        public override void Show()  // название, цена, перечень продуктов
        {
            Console.WriteLine("Название: {0}\tЦена: {1}\tПеречень продуктов: {2}", name_set, price, listofproducts);
        }
 
        public override int Overdue()
        {
            var today = DateTime.Today;
            var productionDate = DateTime.ParseExact(production_date, "dd.MM.yyyy", null);
            var term = today.Year - productionDate.Year;
            if (productionDate.Date > today.AddYears(-term))
                term--;
            return term;
        }
    }
 
    public static class Program
    {
        static private Tovar[] Input() //читаем данные из файла
        {
            using (StreamReader fileIn = new StreamReader("input.txt"))
            {
                int n = int.Parse(fileIn.ReadLine());
                Tovar[] ar = new Tovar[n];
                for (int i = 0; i < n; i++)
                {
                    string[] text = fileIn.ReadLine().Split(',');
                    if (text.Length == 3)
                    {
                        ar[i] = new Set(text[0],
                       int.Parse(text[1]),
                       text[2]);
                    }
                    else
                    {
                        if (text.Length == 4) 
                        {
                            ar[i] = new Product(text[0],
                            int.Parse(text[1]),text[2],int.Parse(text[3]));
                        }
                        else
                        {
                            if (text.Length == 5)
                            {
                                ar[i] = new Party(text[0],
                                text[1], int.Parse(text[2]), text[3], int.Parse(text[4]));
                            }
                        }
                    }
                }
                return ar;
 
 
            }
 
        }
        
        static void Print(Tovar[] array) //выводим данные на экран
        {
            foreach (Tovar item in array)
            {
                item.Show();
                switch (item.Name())
                {
                    case "Entrant":
                        Console.WriteLine();
                        break;
                    case "Student":
                        Console.WriteLine();
                        break;
                    case "Teacher":
                        Console.WriteLine();
                        break;
                }
                Console.WriteLine();
            }
        }
        static void Search(Tovar[] array)
        {
            Console.Write("Ввидите возраст от: ");
            string a = Console.ReadLine();
            Console.Write("Ввидите возраст до: ");
            string b = Console.ReadLine();
            Console.WriteLine();
            Console.WriteLine("Результаты поиска: ");
            Console.WriteLine();
            foreach (var p in array)
            {
                
            }
        }
 
        
        private static void Main()
        {
 
            Tovar[] array = Input();
            Print(array);
            Search(array);
            Console.WriteLine();
            Console.ReadKey();
        }
 
    }
}
Добавлено через 4 минуты
Я не пойму как сделать методы к классам "Партия" и "Комплект" для определения соответствует ли товар сроку годности на текущую дату.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
14.05.2022, 09:39
Ответы с готовыми решениями:

Создать классы Товар, Игрушка, Продукт питания, Молочный продукт с методами
Разработать и описать иерархию классов. Написать приложение, в котором протестировать созданные классы. Создать классы Товар, Игрушка,...

Создать абстрактный класс Товар с методами, позволяющими вывести на экран информацию о товаре
Создать абстрактный класс Товар с методами, позволяющими вывести на экран информацию о товаре, а также определить, соответствует ли она...

Создать абстрактный класс Товар, производные классы: Продукт, Партия, Комплект. Создать базу (массив) из n товаров
1. Создать абстрактный класс Товар с методами, позволяющими вывести на экран информацию о товаре, а также определить, соответствует ли он...

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
14.05.2022, 09:39
Помогаю со студенческими работами здесь

Создать абстрактный базовый класс Тройка чисел с виртуальными методами увеличения на 1. Создать производный класс Время со своими функциями
Здравствуйте, пожалуйста помогите написать код к данной задаче, с таким условием: Создать абстрактный базовый класс Тройка чисел с...

Создать абстрактный класс Товар с методами
1.Создать абстрактный класс &quot;Товар&quot; с методами, позволяющими вывести на экран информацию о товаре, а также определить, соответствует ли она...

Создать абстрактный класс Товар с методами, позволяющим вывести на экран информацию о товаре
Здравствуйте! У нас возникла большая проблема с программой. Сама программа работает, ошибок в ней нет (программа прилагается), но сделали...

Иерархия классов "Игрушка, продукт, товар, молочный продукт" с методами ввода/вывода
Создайте консольное приложение. Постройте классы в соответствии с вариантом, дополните классы методами ввода и вывода записей, осуществите...

Создать абстрактный класс Pair с виртуальными арифметическими операциями + производный класс Complex
Создать абстрактный базовый класс Pair с виртуальными арифметическими операциями (+-*/). Реализовать производный класс Complex –...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11680&amp;d=1772460536 Одним из. . .
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка библиотек: SDL3, Box2D, FreeType, SDL3_ttf, SDL3_mixer и SDL3_image из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru