Изменить код таким образом, чтобы данные цифры можно было вводить в процессе запуска программы - C#
Формулировка задачи:
Есть программа. Необходимо изменить код таким образом, чтобы данные цифры можно было вводить в процессе запуска программы вот вся программа:
static void Main(string[] args)
{
List<Statistik> sp = new List<Statistik>();
sp.Add(new Statistik("Азия", 43.8, 960, 8848, 1535));
sp.Add(new Statistik("Африка", 30.3, 750, 6010, 224));
sp.Add(new Statistik("Северная и Центральная Америка", 24.2, 720, 6187, 244));
sp.Add(new Statistik("Южная Америка", 17.8, 590, 7035, 127));
sp.Add(new Statistik("Антарктида", 14.0, 2200, 6100, 0));
sp.Add(new Statistik("Европа", 10.5, 300, 4810, 569));
sp.Add(new Statistik("Австралия и Окенания", 8.4, 340, 5030, 15));
Console.WriteLine("a");
a(sp);
Console.WriteLine("b");
b(sp);
Console.WriteLine("c");
c(sp);
Console.ReadKey();
} static void Main(string[] args)
{
List<Statistik> sp = new List<Statistik>();
sp.Add(new Statistik("Азия", 43.8, 960, 8848, 1535));
sp.Add(new Statistik("Африка", 30.3, 750, 6010, 224));
sp.Add(new Statistik("Северная и Центральная Америка", 24.2, 720, 6187, 244));
sp.Add(new Statistik("Южная Америка", 17.8, 590, 7035, 127));
sp.Add(new Statistik("Антарктида", 14.0, 2200, 6100, 0));
sp.Add(new Statistik("Европа", 10.5, 300, 4810, 569));
sp.Add(new Statistik("Австралия и Окенания", 8.4, 340, 5030, 15));
Console.WriteLine("a");
a(sp);
Console.WriteLine("b");
b(sp);
Console.WriteLine("c");
c(sp);
Console.ReadKey();
}
static void a(List<Statistik> t)
{
Console.WriteLine("Наименее заселенная часть света - Антарктида, население составляет " + t.Min(a => a.People)+" млн.чел.");
Console.WriteLine("Наиболее заселенная часть света - Азия, население составляет " + t.Max(a => a.People) + " млн.чел.");
foreach (Statistik p in t.OrderByDescending(a => a.Area))
Console.WriteLine("{0,35} {1,5} {2,5} {3,5} {4,5}", p.Name, p.Area, p.Haverage, p.Hmax, p.People);
}
static void b(List<Statistik> t)
{
Console.WriteLine("Наибольшая разница между средней высотой и максимальной составляет " + t.Max(a => a.Hmax - a.Haverage)+" метров");
foreach (Statistik p in t.OrderBy(a => a.Hmax))
Console.WriteLine("{0,35} {1,5} {2,5} {3,5} {4,5}", p.Name, p.Area, p.Haverage, p.Hmax, p.People);
}
static void c(List<Statistik> t)
{
Console.WriteLine("Самая максимальная по площади часть света - Азия: " + t.Max(a => a.Area)+" млн.км2.");
foreach (Statistik p in t.OrderBy(a => a.Haverage))
Console.WriteLine("{0,35} {1,5} {2,5} {3,5} {4,5}", p.Name, p.Area, p.Haverage, p.Hmax, p.People);
}
public class Statistik
{
string name;
double area, haverage, hmax, people;
public string Name
{
get { return name; }
set { name = value; }
}
public double Area
{
get { return area; }
set { area = value; }
}
public double Haverage
{
get { return haverage; }
set { haverage = value; }
}
public double Hmax
{
get { return hmax; }
set { hmax = value; }
}
public double People
{
get { return people; }
set { people = value; }
}
public Statistik(string q, double a, double b, double c, double d)
{
name = q;
area = a;
haverage = b;
hmax = c;
people = d;
}
}Решение задачи: «Изменить код таким образом, чтобы данные цифры можно было вводить в процессе запуска программы»
textual
Листинг программы
static void zapoln(List<Statistik> sp)
{
string[] str = { "Азии", "Африки", "Северной и Центральной Америки", "Южной Америки", "Антарктиды", "Европа", "Австралии и Окенании" };
int n = 10;//Число записей
for (int i = 0; i < str.Length; i++)
{
double a, b, c, d;
while (true)
{
try
{
Console.WriteLine("Введите данные для {0}(через пробел):", str[i]); string text = Console.ReadLine();
var sannar = text.Split(' ');
a = double.Parse(sannar[0]); b = double.Parse(sannar[1]); c = double.Parse(sannar[2]); d = double.Parse(sannar[3]);
break;
}
catch (Exception)
{ continue; }
}
sp.Add(new Statistik(str[i], a, b, c, d));
}
}//Заполнение
static void print(List<Statistik> sp)
{
foreach (var i in sp) Console.WriteLine("{0} {1} {2} {3} {4}", i.Name, i.Area, i.Haverage, i.Hmax, i.People);
}
static void Main(string[] args)
{
List<Statistik> sp = new List<Statistik>();
zapoln(sp);//Заполнение через пробел
print(sp);
Console.ReadKey();
}