private void butLoad_Click(object sender, EventArgs e) { race _r = GenericXmlSerializer.ReadObject <race>("file.xml"); if (_r != null) { r = _r; MessageBox.Show("Список загружен из файла file.xml", "УСПЕХ"); RefreshLB(); } else { MessageBox.Show("Не удалось загрузит список из файла.\nВозможно файл пуст", "ОШИБКА"); } }
static void Main(string[] args) { Console.WriteLine("Лабораторная работа 12, вариант 2"); Console.WriteLine("---------------------------------------------------------------"); Console.WriteLine("Потребление выносливости лошадьми и потребление топлива машиной\nуказываются в % от максимума на единицу массы\n"); Console.WriteLine("(Например: 0.01 - это 1 % от максимального количества\nтоплива / выносливости за каждую единицу массы.\nТогда при массе 10 машина будет тратить 10 % топлива за каждый пройденный км)\n"); Console.WriteLine("Потребление выносливости каждой лошадью будет поделено\nна количество лошадей в повозке"); Console.WriteLine("---------------------------------------------------------------"); Console.WriteLine("Для того чтобы начать гонку, добавьте нескольких участников"); race r = new race(); char ch; int num; while (true) { Console.WriteLine("---------------------------------------------------------------------------"); Console.WriteLine("Введите 1 - чтобы добавить машину, 2 - повозку, 0 - начать гонку"); Console.WriteLine("Введите 3 - чтобы удалить транспортное средство"); Console.WriteLine("Введите 4 - чтобы вывести список транспортных средств"); Console.WriteLine("Введите 5 - чтобы загрузить список участников гонки В файл"); Console.WriteLine("Введите 6 - чтобы загрузить список участников гонки ИЗ файла"); ch = Convert.ToChar(Console.ReadLine()); switch (ch) { case '1': r.add_vechile(new car(enter_mass(), enter_fuel(), enter_speed())); break; case '2': r.add_vechile(new carriage(enter_horses(), enter_mass(), enter_speed())); break; case '3': Console.WriteLine("Введите номер транспортного средства для удаления в списке"); num = Convert.ToInt32(Console.ReadLine()); if (r.vechile_list.Count < num || num <= 0) { continue; } r.remove_vechile(num - 1); break; case '4': print_vechile_list(r.vechile_list); break; case '5': { if (r.vechile_list == null || r.vechile_list.Count == 0) { Console.WriteLine("Список пуст"); continue; } GenericXmlSerializer.WriteObject(r, "file.xml"); } break; case '6': { race _r = GenericXmlSerializer.ReadObject <race>("file.xml"); if (_r != null) { r = _r; print_vechile_list(r.vechile_list); } else { Console.WriteLine("Не удалось загрузит список из файла. Возможно файл пуст"); } } break; case '0': List <vechile> vec = new List <vechile> { }; List <double> distances = new List <double> { }; double dist; if (r == null || r.vechile_list == null || r.vechile_list.Count == 0) { Console.WriteLine("Невозможно начать гонку, список участников пуст"); continue; } Console.WriteLine("Введите дистанцию гонки"); dist = Convert.ToDouble(Console.ReadLine()); r.start(dist, ref vec, ref distances); print_vechile_list(vec, distances); break; default: continue; } } }