Beispiel #1
0
        public void UMovementPositiveTest(double speed, double time)
        {
            var obj = new UniformMovement(speed, time);

            Assert.AreEqual(obj.Speed, speed);
            Assert.AreEqual(obj.Time, time);
        }
Beispiel #2
0
        public void SetValue(UniformMovement obj)
        {
            textBox1.Text = Convert.ToString(obj.Time);
            label2.Text   = "Скорость (в км/ч)";
            textBox2.Text = Convert.ToString(obj.Speed);
            label3.Text   = "Расстояние";
            textBox3.Text = Convert.ToString(obj.Length);

            label1.Visible   = true;
            label2.Visible   = true;
            label3.Visible   = true;
            label4.Visible   = false;
            label5.Visible   = false;
            textBox1.Visible = true;
            textBox2.Visible = true;
            textBox3.Visible = true;
            textBox4.Visible = false;
            textBox5.Visible = false;
        }
Beispiel #3
0
        private void movementDataGrid_CellClick(object sender, DataGridViewCellEventArgs e)
        {
            int i = movementDataGrid.CurrentRow.Index;

            if (MovementList[i] is UniformMovement)
            {
                UniformMovement obj = (UniformMovement)MovementList[i];
                objectControl.SetValue(obj);
            }
            else if (MovementList[i] is AccelerationMovement)
            {
                AccelerationMovement obj = (AccelerationMovement)MovementList[i];
                objectControl.SetValue(obj);
            }
            else if (MovementList[i] is OscillatingMovement)
            {
                OscillatingMovement obj = (OscillatingMovement)MovementList[i];
                objectControl.SetValue(obj);
            }
        }
Beispiel #4
0
        static void Main(string[] args)
        {
            string select;

            Console.WriteLine("Программа вычисления движения.\n");
            Console.WriteLine("1. Равномерное движение;");
            Console.WriteLine("2. Равноускоренное движение;");
            Console.WriteLine("3. Колебательное движение;");
            Console.WriteLine("0. Выход.\n");
            Console.Write("Введите команду: ");
            select = Console.ReadLine();

            switch (select)
            {
            // Равномерное движение.
            case "1":

            {
                double inputSpeed;
                double inputTime;

                Console.WriteLine();
                Console.WriteLine("Выбран расчет равномерного" +
                                  " движения.");
                do
                {
                    Console.Write("Введите скорость (в км/ч): ");
                    inputSpeed = Convert.ToDouble(Console.ReadLine());
                    if (inputSpeed <= 0)
                    {
                        Console.WriteLine("Ошибка. Неверно задан" +
                                          " параметр.");
                    }
                } while (inputSpeed <= 0);
                do
                {
                    Console.Write("Введите время (в сек): ");
                    inputTime = Convert.ToInt32(Console.ReadLine());
                    if (inputTime <= 0)
                    {
                        Console.WriteLine("Ошибка. Неверно задан" +
                                          " параметр.");
                    }
                } while (inputTime <= 0);

                UniformMovement obj = new UniformMovement(inputSpeed,
                                                          inputTime);

                Console.WriteLine("Выбрана скорость {0} км/ч." +
                                  " и время {1} сек.", inputSpeed, inputTime);
                Console.WriteLine("\nРезультаты расчета:");

                Console.WriteLine("Расстояние = {0:##.###} м",
                                  obj.Calculation());

                break;
            }

            // Равноускоренное движение.
            case "2":
            {
                double inputAccel;
                int    inputTime;

                Console.WriteLine();
                Console.WriteLine("Выбран расчет равноускоренного" +
                                  " движения.");

                do
                {
                    Console.Write("Введите ускорение (в м/с^2): ");
                    inputAccel = Convert.ToDouble(Console.ReadLine());
                    if (inputAccel <= 0)
                    {
                        Console.WriteLine("Ошибка. Неверно задан" +
                                          " параметр.");
                    }
                } while (inputAccel <= 0);
                do
                {
                    Console.Write("Введите время (в сек): ");
                    inputTime = Convert.ToInt32(Console.ReadLine());
                    if (inputTime <= 0)
                    {
                        Console.WriteLine("Ошибка. Неверно задан" +
                                          " параметр.");
                    }
                } while (inputTime <= 0);

                AccelerationMovement obj =
                    new AccelerationMovement(inputAccel, inputTime);

                Console.WriteLine("Выбрано ускорение {0} м/с^2." +
                                  " и время {1} сек.", inputAccel, inputTime);
                Console.WriteLine("\nРезультаты расчета:");

                Console.WriteLine("Растояние = {0:##.###} м",
                                  obj.Calculation());

                break;
            }

            // Колебательное движение.
            case "3":
            {
                double inputAmplitude;
                double inputFrequency;
                double inputPhase;
                int    inputTime;

                Console.WriteLine();
                Console.WriteLine("Выбран расчет колебательного" +
                                  " движения.");

                do
                {
                    Console.Write("Введите значение амплитуды: ");
                    inputAmplitude =
                        Convert.ToDouble(Console.ReadLine());
                    if (inputAmplitude <= 0)
                    {
                        Console.WriteLine("Ошибка. Неверно задан" +
                                          " параметр.");
                    }
                } while (inputAmplitude <= 0);

                do
                {
                    Console.Write("Введите время (в сек): ");
                    inputTime = Convert.ToInt32(Console.ReadLine());
                    if (inputTime <= 0)
                    {
                        Console.WriteLine("Ошибка. Неверно задан" +
                                          " параметр.");
                    }
                } while (inputTime <= 0);

                Console.Write("Введите значение частоты: ");
                inputFrequency = Convert.ToDouble(Console.ReadLine());

                Console.Write("Введите значение фазы: ");
                inputPhase = Convert.ToDouble(Console.ReadLine());

                OscillatingMovement obj = new OscillatingMovement(
                    inputAmplitude, inputFrequency, inputPhase,
                    inputTime);

                Console.WriteLine("Выбраны следующие параметры:");
                Console.WriteLine("Амплитуда: {0}\t Частота: {1}\t" +
                                  " Фаза: {2}", inputAmplitude,
                                  inputFrequency, inputPhase,
                                  inputTime);
                Console.WriteLine("\nРезультаты расчета:");

                Console.WriteLine("Координата Y = {0}",
                                  obj.Calculation());


                break;
            }

            // Выход.
            case "0":
            {
                Console.WriteLine("Выход из программы.");
                break;
            }

            default:
            {
                Console.WriteLine("Ошибка.");
                break;
            }
            }

            Console.Read();
        }
 /// <summary>
 /// Метод, обрабатывающий нажатие кнопки "Рассчитать".
 /// </summary>
 /// <param name="sender"></param>
 /// <param name="e"></param>
 private void button1_Click(object sender, EventArgs e)
 {
     // Если выбрано равномерное движение.
     //
     if (UniformMovementRadio.Checked)
     {
         // Обработка ошибок.
         //
         if ((textBox1.Text == "") || (textBox2.Text == ""))
         {
             MessageBox.Show("Один или оба поля пусты.", "Ошибка");
         }
         else if (Convert.ToDouble(textBox2.Text) <= 0)
         {
             MessageBox.Show("Скорость не может иметь отрицательное" +
                             " значение или равняться 0.", "Ошибка");
         }
         else if (Convert.ToInt32(textBox1.Text) <= 0)
         {
             MessageBox.Show("Время не может иметь отрицательное" +
                             " значение или равняться 0.", "Ошибка");
         }
         // Реализация расчета.
         //
         else
         {
             MainMovementForm main = this.Owner as MainMovementForm;
             UniformMovement  obj  =
                 new UniformMovement(Convert.ToDouble(textBox2.Text),
                                     Convert.ToInt32(textBox1.Text));
             main.MovementList.Add(obj);
             Close();
         }
     }
     // Если выбрано равноускоренное движение.
     //
     else if (AccelerationMovementRadio.Checked)
     {
         // Обработка ошибок.
         //
         if ((textBox1.Text == "") || (textBox2.Text == ""))
         {
             MessageBox.Show("Один или оба поля пусты.",
                             "Ошибка");
         }
         else if (Convert.ToDouble(textBox2.Text) <= 0)
         {
             MessageBox.Show("Ускорение не может иметь" +
                             " отрицательное значение или" +
                             " равняться нулю.", "Ошибка");
         }
         else if (Convert.ToInt32(textBox1.Text) <= 0)
         {
             MessageBox.Show("Время не может иметь" +
                             " отрицательное значение" +
                             " или равняться 0.", "Ошибка");
         }
         // Реализация расчета.
         //
         else
         {
             MainMovementForm     main = this.Owner as MainMovementForm;
             AccelerationMovement obj  = new AccelerationMovement(
                 Convert.ToDouble(textBox2.Text),
                 Convert.ToInt32(textBox1.Text));
             main.MovementList.Add(obj);
             Close();
         }
     }
     // Если выбрано колебательное движение.
     //
     else if (OscillatingMovementRadio.Checked)
     {
         // Обработка ошибок.
         //
         if ((textBox1.Text == "") || (textBox2.Text == "") ||
             (textBox3.Text == "") || (textBox4.Text == ""))
         {
             MessageBox.Show("Все поля обязательны для заполнения.",
                             "Ошибка");
         }
         else if (Convert.ToInt32(textBox1.Text) <= 0)
         {
             MessageBox.Show("Время не может иметь отрицательное" +
                             " значение или равняться 0.", "Ошибка");
         }
         // Реализация расчета.
         //
         else
         {
             MainMovementForm    main = this.Owner as MainMovementForm;
             OscillatingMovement obj  = new OscillatingMovement(
                 Convert.ToDouble(textBox2.Text),
                 Convert.ToDouble(textBox3.Text),
                 Convert.ToDouble(textBox4.Text),
                 Convert.ToInt32(textBox1.Text));
             main.MovementList.Add(obj);
             Close();
         }
     }
 }