Ejemplo n.º 1
0
        private void butSave_Click(object sender, EventArgs e)
        {
            if (r.vechile_list == null || r.vechile_list.Count == 0)
            {
                MessageBox.Show("Список пуст", "ОШИБКА");
                return;
            }

            GenericXmlSerializer.WriteObject(r, "file.xml");
            MessageBox.Show("Сохранено в файл file.xml", "УСПЕХ");
        }
Ejemplo n.º 2
0
        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;
                }
            }
        }