Создать структуру, описывающую улицу (название, количество домов, длина, и т.д.) - C#
Формулировка задачи:
Задание: Создать структуру, описывающую улицу (название, количество домов, длина, и т.д.). Создать класс для работы с данными об улицах, который позволяет: хранить/добавлять/удалять/изменять информацию об улице.
дополнительно:
a. вывод списка улиц в порядке возрастания/убывания количества домов
b. подсчет суммарного числа домов на выбранных улицах
Он у меня ошибку выдает, исправляю появляется еще куча ошибок, как сделать, чтобы все работала?
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace ConsoleApplication6
{
public class Conference
{
public struct TConf
{
public string name; //название улицы
public int kol; //кол-во домов
public string length; //длина улицы
public TConf(string name, int kol, string length)
{
this.name = name;
this.kol = kol;
this.length = length;
}
}
public List<TConf> Conf = new List<TConf>();
public void IshDan(ref List<TConf> Conf)
{
TConf a = new TConf("Труда", 68, "5 км");
TConf b = new TConf("Победы", 90, "4 км");
TConf c = new TConf("Железнодорожная", 46, "3 км");
TConf d = new TConf("Трухинова", 9, "2 км");
Conf.Add(a);
Conf.Add(b);
Conf.Add(c);
Conf.Add(d);
}
public void IzmDan(ref List<TConf> Conf)
{
int num;
int number;
int x;
bool flag = false;
string temp;
while (true)
{
Console.WriteLine("Введите номер соответствующий изменяемому элементу: ");
temp = Console.ReadLine();
if (int.TryParse(temp, out num))//проверка, явл-ся ли вводимое число целым
break;
}
num--;
TConf Conf_temp = new TConf();
Conf_temp = Conf[num];
try
{
do
{
Console.WriteLine("Изменить \n1 - Название улицы\n2 - Кол-во домов\n3 - Длину Улицы\n4 - Выход");
temp = Console.ReadLine();
if (int.TryParse(temp, out number))
{
switch (number)
{
case 1:
Console.Write("Новое название улицы: ");
Conf_temp.name = Console.ReadLine();
break;
case 2:
do
{
Console.Write("Новое кол-во домов: ");
temp = Console.ReadLine();
if (int.TryParse(temp, out x)) break;
} while (true);
Conf_temp.kol = x;
break;
case 3:
Console.Write("Новая длина улицы: ");
Conf_temp.length = Console.ReadLine();
break;
case 4:
flag = true;
break;
default:
Console.WriteLine("Введено неправильное число!");
break;
}
}
} while (!flag);
Conf[num] = Conf_temp;
}
catch
{
Console.WriteLine("Произошла ошибка");
}
}
public void Adding(string name, int kol, string length)
{
TConf a = new TConf();
a.name = name;
a.kol = kol;
a.length = length;
Conf.Add(a);
}
}
class Program
{
public static void Input(out string a, out string b, ref int c)
{
Console.WriteLine("Введите название улицы: ");
a = Console.ReadLine();
Console.WriteLine("Введите длину: ");
b = Console.ReadLine();
string temp;
do
{
Console.WriteLine("Введите кол-во домов: ");
temp = Console.ReadLine();
if (int.TryParse(temp, out c)) break;
} while (true);
}
static void Main(string[] args)
{
string temp;
string a, b, d;
int c = 0, num;
Conference q = new Conference();//экземпляр класса Work
q.IshDan(ref q.Conf); //заполнение по умолчанию
bool flag = true;
while (flag)
{
Console.WriteLine();
Console.WriteLine("1) Название улицы \n2) Кол-во домов \n3) Длина улицы \n\n");
foreach (Conference.TConf z in q.Conf)
{
Console.WriteLine("1) {0,-10} \n2) {1,-10} \n3) {2,-10}\n", z.name, z.kol, z.length);
}
//вывод элементов
Console.WriteLine();
Console.WriteLine("1 - добавить улицу\n2 - изменить улицу\n3 - выход");
temp = Console.ReadLine();
if (int.TryParse(temp, out num))
{
switch (num)//оператор выбора
{
case 1:
Input(out a, out b, ref c, out d);
q.Adding(a, b, d, c); //добавление
break;
case 2:
q.IzmDan(ref q.Conf); //изменение
break;
case 3:
flag = false;
break;
default:
Console.WriteLine("Ошибка ввода");
break;
}
}
}
}
}
}Решение задачи: «Создать структуру, описывающую улицу (название, количество домов, длина, и т.д.)»
textual
Листинг программы
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace ConsoleApplication6
{
public class Conference
{
public struct TConf
{
public string name; //название улицы
public int kol; //кол-во домов
public string length; //длина улицы
public TConf(string name, int kol, string length)
{
this.name = name;
this.kol = kol;
this.length = length;
}
}
public List<TConf> Conf = new List<TConf>();
public void IshDan(ref List<TConf> Conf)
{
Conf.Add(new TConf("Труда", 68, "5 км"));
Conf.Add(new TConf("Победы", 90, "4 км"));
Conf.Add(new TConf("Железнодорожная", 46, "3 км"));
Conf.Add(new TConf("Трухинова", 9, "2 км"));
}
public void IzmDan(ref List<TConf> Conf)
{
int num;
int number;
int x;
bool flag = false;
string temp;
while (true)
{
Console.WriteLine("Введите номер соответствующий изменяемому элементу: ");
temp = Console.ReadLine();
if (int.TryParse(temp, out num))//проверка, явл-ся ли вводимое число целым
break;
}
num--;
TConf Conf_temp = new TConf();
Conf_temp = Conf[num];
try
{
do
{
Console.WriteLine("Изменить \n1 - Название улицы\n2 - Кол-во домов\n3 - Длину Улицы\n4 - Выход");
temp = Console.ReadLine();
if (int.TryParse(temp, out number))
{
switch (number)
{
case 1:
Console.Write("Новое название улицы: ");
Conf_temp.name = Console.ReadLine();
break;
case 2:
do
{
Console.Write("Новое кол-во домов: ");
temp = Console.ReadLine();
if (int.TryParse(temp, out x)) break;
} while (true);
Conf_temp.kol = x;
break;
case 3:
Console.Write("Новая длина улицы: ");
Conf_temp.length = Console.ReadLine();
break;
case 4:
flag = true;
break;
default:
Console.WriteLine("Введено неправильное число!");
break;
}
}
} while (!flag);
Conf[num] = Conf_temp;
}
catch
{
Console.WriteLine("Произошла ошибка");
}
}
public void Adding(string name, int kol, string length)
{
TConf a = new TConf();
a.name = name;
a.kol = kol;
a.length = length;
Conf.Add(a);
}
}
class Program
{
public static void Input(out string a, out string b, ref int c)
{
Console.WriteLine("Введите название улицы: ");
a = Console.ReadLine();
Console.WriteLine("Введите длину: ");
b = Console.ReadLine();
string temp;
do
{
Console.WriteLine("Введите кол-во домов: ");
temp = Console.ReadLine();
if (int.TryParse(temp, out c)) break;
} while (true);
}
static void Main(string[] args)
{
string temp;
string a, b, d;
int c = 0, num;
Conference q = new Conference();//экземпляр класса Work
q.IshDan(ref q.Conf); //заполнение по умолчанию
bool flag = true;
while (flag)
{
Console.WriteLine();
Console.WriteLine("1) Название улицы \n2) Кол-во домов \n3) Длина улицы \n\n");
foreach (Conference.TConf z in q.Conf)
{
Console.WriteLine("1) {0,-10} \n2) {1,-10} \n3) {2,-10}\n", z.name, z.kol, z.length);
}
//вывод элементов
Console.WriteLine();
Console.WriteLine("1 - добавить улицу\n2 - изменить улицу\n3 - выход");
temp = Console.ReadLine();
if (int.TryParse(temp, out num))
{
switch (num)//оператор выбора
{
case 1:
Input(out a, out b, ref c);
q.Adding(a, c, b); //добавление
break;
case 2:
q.IzmDan(ref q.Conf); //изменение
break;
case 3:
flag = false;
break;
default:
Console.WriteLine("Ошибка ввода");
break;
}
}
}
}
}
}