Определить среднюю стоимость за единицу продукции, по каждому изготовителю - 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);
}
}
}