Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 20.12.2013, 20:38   #1
Максим 116
Пользователь
 
Регистрация: 06.10.2013
Сообщений: 31
Вопрос Ошибки на С++

Перевожу код с С# на С++,но т.к. плохо знаком с синтаксисом на ++,выполняя по методичке,все равно вылезают ошибки.
Код:
#include "stdafx.h"

namespace KURSOVAYA
{

    delegate void delEv();

    ref class Car //класс машины
    {
   public: event delEv ^ev;
        int num,              //номер машины
            speed,            //скорость машины
            r,
			x, 
			y;                //радиус кольца
        String ^name;          //имя машины
        bool great,           //признак движения по большому кругу
             life;            //жизнь потока
        Thread t1;            //поток
        bool run,
             moving;
        int indikator,           //индикатор наполнения бензобака
            max_indikator;
	public: ArrayList ^aL;
	private: Refill ^refill;
        int fuel,
            maxFuel = 100,
		    i,
			dx, 
			dy;
        bool eat;

	public: Car(int N, string Name, int X, int Y, bool greatNew, Refill R)
        {
            num = N;
            name = Name;
            speed = 2;
            x = X;
            y = Y;
            great = greatNew;
            run = false;
            life = false;
            moving = false;
            refill = R;
            fuel = maxFuel;
            eat = false;
            Start();//	
        }

        ~Car()
        {
            life = false;
        }    // Деструктор

	public: void Start()        // Стартовать
        {
            if (!run)
            {
                run = true;
                life = true;
                t1 = new Thread(new ThreadStart(Move));
                t1->Start();
            }
        }

	public: void Suspend()   // Приостановить
        {
            moving = true;
        }

	public: void Resume()    // Возобновить
        {
            lock (this)
            {
                moving = false;
                Monitor.Pulse(this);
            }
        }

	public: int N
        {
            get
            {
                return -> num;
            }
        }
	public: int X            //свойство координаты X центра машины
        {
            get
            {
                return -> x;
            }
        }
	public: int Y            //свойство координаты Y центра машины
        {
            get
            {
                return -> y;
            }
        }

        int counter;       // время существования
        void Move()        //движение
        {

            while (life)
            {
                counter++;
                if (great) OnCirclebigroad();
                if (!great) OnCirclesmallroad();
                if (ev != null)
                    ev();
                Thread.Sleep(100);
                lock (this)
                {
                    if (moving)
                        Monitor.Wait(this);
                }
            }
        }

        void OnCirclebigroad() //движение по большому кругу
        {
            r = 160;
            x = 170 + (int)Math.Round(r * Math.Cos(counter * 0.1 * speed));
            y = 170 + (int)Math.Round(r * Math.Sin(counter * 0.1 * speed));

            Console.WriteLine("X=" + x + "Y=" + y + "R=" + r);

            fuel--;

            if (fuel < 30)
            {
                if (!eat)
                {
                    eat = true;
                    x = 400;
                    y = 150;
                    lock (refill)
                    {
                        Thread.Sleep(1300);
                        fuel = maxFuel;
                        eat = false;
                    }
                }
                        great = true;
            }
        }

      
		public: void Finish()
        {
            life = false;
        }
    }

   ref class Refill
    {
	private: int x, y;
	public: int X { get { return x; } }
	public: int Y { get { return y; } }

	public: Refill(int X, int Y)
        { x = X; y = Y; }
    }


    ref class Cars : Form
    {
	public: ArrayList ^aL;
	public: int n;
	public: int _carsCount = 2; //  кол-во машин (начальное значение 2 )
	private: Refill ^refill;

	public: Cars()
        {
            refill = new Refill(370, 100);
        }

	public: void Start()          // Стартовать
        {
            for (int i = 0; i < aL.Count; i++)
            {
                (aL[i] as Car).Start();
            }
        }
}
Максим 116 вне форума Ответить с цитированием
Старый 20.12.2013, 21:07   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

И что за ошибки?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Ошибки <<MaZaHaKa>> Общие вопросы C/C++ 1 14.11.2013 13:31
Ошибки <<MaZaHaKa>> Общие вопросы C/C++ 1 14.11.2013 13:30
Игра - викторина. Ошибки, ошибки, ошибки!.. three_cats Общие вопросы C/C++ 1 27.10.2012 21:47
Ошибки delphin100 Операционные системы общие вопросы 12 17.04.2008 14:15