예제 #1
0
        static void Main(string[] args)
        {
            Console.WriteLine("Приветствие!");
            string        answer;
            string        path       = "myxml.xml";
            XmlSerializer serializer = new XmlSerializer(typeof(XPoint));
            XPoint        x          = new XPoint();

            try
            {
                using (FileStream fs = new FileStream(path, FileMode.Open))
                    x = (XPoint)serializer.Deserialize(fs);
                Console.WriteLine("Состояние было восстановлено");
            }
            catch (FileNotFoundException e)
            {
                Console.WriteLine("Файл сохранений не найден. Состояние не было восстановлено");
            }
            while (true)
            {
                PrintState(x);
                Console.Write("Введите комманду (help - справка): ");
                answer = Console.ReadLine();
                switch (answer)
                {
                case "help":
                    Console.WriteLine("Вам предоставлены команды: ");
                    Console.WriteLine("\thelp - показать справку");
                    Console.WriteLine("\texit - выйти из программы");
                    Console.WriteLine("\tdrop - сбросить состояние");
                    Console.WriteLine("\tprocess - задать импульс и угол");
                    Console.WriteLine();
                    break;

                case "exit":
                    Console.WriteLine("Прощание!");
                    break;

                case "process":
                    try
                    {
                        Console.Write("Введите начальный импульс [0; oo]: ");
                        double p = Double.Parse(Console.ReadLine());
                        if (p < 0)
                        {
                            goto default;
                        }
                        Console.Write("Введите угол [0; 180]: ");
                        double a = Double.Parse(Console.ReadLine());
                        if (a < 0 || a > 180)
                        {
                            goto default;
                        }
                        double length = x.process(p, a);
                        Console.WriteLine("Тело перемещено на " + length);
                    }
                    catch (FormatException e)
                    {
                        Console.WriteLine("Импульс и угол - вещественные числа!");
                    }
                    break;

                case "drop":
                    x = new XPoint();
                    Console.WriteLine("Состояние сброшено");
                    break;

                default:

                    Console.WriteLine("Некорректный ввод");
                    break;
                }
                using (StreamWriter sw = new StreamWriter(path))
                {
                    serializer.Serialize(sw, x);
                }
                if (answer == "exit")
                {
                    break;
                }
            }
        }
예제 #2
0
 public static void PrintState(XPoint x)
 {
     Console.WriteLine("Текущее состояние точки: ");
     Console.WriteLine("Координата х: " + x.getX());
     Console.WriteLine();
 }