Определить среднюю стоимость за единицу продукции, по каждому изготовителю - C#

Узнай цену своей работы

Формулировка задачи:

Задание определить среднюю стоимость за единицу продукции, по каждому изготовителю. Не как не могу сообразить как подсчитать среднюю цену.
class Prodykt
    {
        private string prod;
        private int z;
        private int kol;
        private DateTime data;
        private string izgot;
        public Prodykt()
        {
            prod = "";
            z = 0;
            kol = 0;
            data = new DateTime(01, 01, 01);
            izgot = "";    
        }
        public Prodykt(string a, int b, int c, DateTime f, string s)
        {
            prod = a;
            z = b;
            kol = c;
            data = f;
            izgot = s;
        }
        public string PROD
        { get { return prod; } set { prod = value; } }
        public int Z
        { get { return z; } set { z = value; } }
        public int KOL
        { get { return kol; } set { kol = value; } }
        public DateTime DATA
        { get { return data; } set { data = value; } }
        public string IZGOT
        { get { return izgot; } set { izgot = value; } }
        public void Stok()
        {
            Console.WriteLine("Название продукта\t{0}\nЦена\t{1}\nКоличество\t{2}\nДата изготовления\t{3}\nИзготовитель\t{4}", this.prod, this.z, this.kol, this.data, this.izgot);
        }
    }
 
       class Program
    {
        static void Main()
        {
            int h;
            List<Prodykt> Ip = new List<Prodykt>();
            do
            {
                Console.WriteLine("1 - Добавить элемент");
                Console.WriteLine("2 - Показать данные");
                Console.WriteLine("3 - Выход");
                h = Convert.ToInt32(Console.ReadLine());
                Console.WriteLine();
                switch (h)
                {
                    case 1:
                        {
                            int day, year, mounth;
                            Console.Write("Название продукта\n");
                            string A = System.Console.ReadLine();
                            Console.Write("Цена\n");
                            int B = Convert.ToInt32(Console.ReadLine());
                            Console.Write("Количество\n");
                            int C = Convert.ToInt32(Console.ReadLine());
                            Console.Write("Год\n");
                            year = Convert.ToInt32(Console.ReadLine());
                            Console.Write("Месяц\n");
                            mounth = Convert.ToInt32(Console.ReadLine());
                            Console.Write("День\n");
                            day = Convert.ToInt32(Console.ReadLine());
                            Console.Write("Изготовитель\n");
                            string S = System.Console.ReadLine();
                            DateTime F = new DateTime(year, mounth, day);
                            Ip.Add(new Prodykt(A, B, C, F, S));
                        } break;
                    case 2:
                        {
                            Console.WriteLine("Введите Изготовителя");
                            string v = System.Console.ReadLine();
                            foreach (Prodykt w in Ip)
                            {
                                if (w.IZGOT == v)
                                {
                                    w.Stok();
                                    Console.WriteLine();
                                }
                                else
                                {
                                    Console.WriteLine("Error");
                                }
                            }
 
                        } break;
                }
 
            }
            while (h != 3);
        
        }
    }
}

Решение задачи: «Определить среднюю стоимость за единицу продукции, по каждому изготовителю»

textual
Листинг программы
using System;
using System.Collections.Generic;
 
namespace x{
    class Prodykt  {
        //Свойства
        public string PROD { get; set; }
        public int Z { get; set; }
        public int KOL { get; set; }
        public DateTime DATA { get; set; }
        public string IZGOT { get; set; }
 
        //Конструктор экземпляра
        public Prodykt(string a="", int b=0, int c=0, DateTime? f=null, string s="") {
            PROD = a;
            Z = b;
            KOL = c;
            DATA = f.HasValue ? f.Value : new DateTime(01, 01, 01);
            IZGOT = s;
        }
        
        //Методы
        public override string ToString() {
            return string.Format("Название продукта\t{0}\nЦена\t{1}\nКоличество\t{2}\nДата изготовления\t{3}\nИзготовитель\t{4}", PROD, Z, KOL, DATA, IZGOT);
        }
    }
 
    class Program{
        static string read(string strMsg) {
            Console.Write(strMsg);
            return Console.ReadLine();
        }
        static void Main(){
            int h;
            List<Prodykt> Ip = new List<Prodykt>();
          
            do{
                Console.WriteLine(@"Меню:
                1 - Добавить элемент
                2 - Показать данные
                3 - Выход");
                h = int.Parse(read("Ваш выбор - "));
                Console.WriteLine();
                
                switch (h){
                    case 1:
                       Ip.Add(new Prodykt(){
                                            PROD=read("Название продукта - "), 
                                            Z=int.Parse(read("Цена - ")),
                                            KOL=int.Parse(read("Количество - ")),
                                            DATA=new DateTime(int.Parse(read("Год - ")), int.Parse(read("Месяц - ")), int.Parse(read("День - "))),
                                            IZGOT=read("Изготовитель - ")
                                            });
                        break;
                    case 2:
                        string v = read("Введите Изготовителя - ");                                                   
                        int k=0,sum=0;
                        Ip.FindAll(x => x.IZGOT==v).ForEach(x => {Console.WriteLine(x);
                                                                  k++;
                                                                  sum+=x.Z;
                                                                 });
                        Console.WriteLine("Средняя цена {0}",1.0*sum/k);
                        break;
                }
 
            }while (h != 3);
        
        }
    }
}

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

12   голосов , оценка 4.167 из 5
Похожие ответы