تا %60 تخفیف خرید برای 2 نفر با صدور مدرک فقط تا
00 00 00
فاطمه30

فوری - برنامه aircraft contorol

سلام میخوام برنامه aircraft contorolرو با استفاده از الوی مدیاتور بنویسم کسی می تونه کمک کنه چطور باید پیاده کنم ؟

ممنون

لذت یادگیری با توسینسو
به عنوان شخصی که مدت هاست از سایت توسینسو استفاده می کنم باید بگم که واقعاً یکی از بهترین مرجع ها برای ارتقاء دانش شخصی هست. دوره های سایت، راهکارها و مطالب، همگی عالی هستند.
فاطمه30

سلام کسی این جا نمیتونه به من کمک کنه؟؟

سلام به شما دوست عزیز

ابتدا یک توضیح در مورد این برنامه بدهید تا دوستانی که با این برنامه کار نکرده اند بتونن پاسخ شما رو بدهند.

کانال تلگرام، اینستاگرام، توییتر: mehdiadeli9
فاطمه30

یک سناریو که هواپیماهای ورودی نیاز دارن به دقت با یکدیگر به دلایل ایمنی ارتباط برقرار می کنند. اون ها باید دائما موقعیت تمام هواپیماهای دیگر را بدانند، یعنی هر هواپیمایی نیاز به ارتباط با سایر هواپیماهای دیگر داره. حالا شما دارای 3 نوع هواپیما در مدل دامنه خود بوئینگ، ایرباس و فوکر در نظر بگیرید که هر نوع نیاز به برقراری ارتباط با دو نوع دیگر اینو می خوام با الگوی مدیاتور به زبان جاوا بنویسم اما نمی دونم چطوری باید باشه؟

همون شروعش مشکل دارم مدیاتورم چی باید باشه ؟ بعد باید برای هر نوع هواپیمایی یک کلاس جدا گانه در نظر بگیرم یعنی ؟ نمی فهمم الان مدیاتور باید چی کار کنه ، هواپیماها چی کار؟

ببینید شما باید یک اینترفیس برای ارتباط هواپیماها تعریف کنید که متدهای ارتباطی در داخل اون تعریف شده باشه. حالا این اینترفیس پایه الگوی mediator شما هست. شما باید برای هر نوع هواپیما یک کلاس تعریف کنید که از اینترفیس mediator برای ارتباطات استفاده کنه. یعنی هر هواپیما بتونه به هواپیماهای دیگه پیام ارسال کنه و پیام از اونها دریافت کنه. بعد از آن باید یک کلاس مدیر یا manager پیاده سازی بکنید که کلاس های هواپیما بتونن از اون استفاده کنن و خودشون رو توی اون کلاس ثبت کنند و هروقت که خواستند به هواپیمایی پیام ارسال کنند به کلاس manager درخواست ارسال پیام به اون هواپیما رو بدهند. کلاس manger با استفاده از اینترفیسی که در هر هواپیما پیاده سازی شده متد ارسال رو صدا میزنه و پیام برای اون هواپیما ارسال میشه.

کانال تلگرام، اینستاگرام، توییتر: mehdiadeli9
فاطمه30

سلام این کد همانطور که شما فرمودین نوشته شده اما وقتی اجرا میکنم کار نمیکنه؟ ممنون میشم اگه منو راهنمایی کنید

البته سینتکسای جاوا خیلی یادم نمونده شاید با سی شارپ دارم جا به جا می نویسم اما تنها اروری که میده اینه

Error: Could not find or load main class airtraffic.AirTraffic

کد برنامه:


import java.util
.*;
import java.math.*;
import java.io.*;

package airtraffic;


public class airtraffic {
    public static void main(String[] args) {
        // TODO code application logic here
         IAirTrafficControl tower = new Tower();
 
    Aircraft flight1 = new Airbus("AC159", tower);
    Aircraft flight2 = new Boeing("WS203", tower);
    Aircraft flight3 = new Fokker("AC602", tower);
 
    flight1.Altitude += 1000;
    }
    


//base class for all colleagues called AirTrafiic
public abstract class AirTrafficControl
    {
        private final IAirTrafficControl _atc;
        private int _currentAltitude;
 
        protected AirTrafficControl(string callSign, IAirTrafficControl atc)
        {
            _atc = atc;
            CallSign = callSign;
            _atc. RegisterATCUnderGuidance(this);
        }
 
        public abstract int Ceiling { get; }
 
        public string CallSign { get; private set; }
 
        public int Altitude
        {
            get { return _currentAltitude; }
            set
            {
                _currentAltitude = value;
                _atc.ReceiveATCLocation(this);
            }
        }
 
        public void Climb(int heightToClimb)
        {
            Altitude += heightToClimb;
        }
 
        public bool Equals(object obj)
        {
            if (obj.GetType() != this.GetType()) return false;
 
            var incoming = (AirTrafficControl)obj;
            return this.CallSign.Equals(incoming.CallSign);
        }
 
        public  int GetHashCode()
        {
            return CallSign.GetHashCode();
        }
 
        public void WarnOfAirspaceIntrusionBy(AirTrafficControl reportingAircraft)
        {
            //do something in response to the warning
        }
    }
//************** Interface *************
public interface IAirTrafficControl
    {
        void ReceiveATCLocation(AirTrafficControl location);
        void RegisterATCUnderGuidance(AirTrafficControl aircraft);
    }

// concrete types of aircraft or AirTrafficControl 

public class Boeing extends AirTrafficControl
    {
        public Boeing(string callSign, IAirTrafficControl atc)
                 throws  {
        super(callSign, atc);
    }
 
        public  int Ceiling
        {
            get { return 33000; }
     

        }

}
//****************
public class Fokker extends AirTrafficControl
    {
        public Fokker(string callSign, IAirTrafficControl atc)  
                throws  {
        super(callSign, atc);
    }
 
 
        public  int Ceiling
        {
            get { return 40000; }
        }
    }
//********************* 
public class Airbus extends AirTrafficControl
    {
        public Airbus(string callSign, IAirTrafficControl atc)
               throws  {
        super(callSign, atc);
 
        public  int Ceiling
        {
            get { return 40000; }
        }
    }



//************* 


public class Tower implements IAirTrafficControl
    {
        private final IList[AirTrafficControl] _aircraftUnderGuidance = new List[AirTrafficControl]();
 
        public void ReceiveAircraftLocation(AirTrafficControl reportingAircraft)
        {
            foreach (AirTrafficControl currentAircraftUnderGuidance in _aircraftUnderGuidance Where(x => x != reportingAircraft))
            {
                if (Math.abs(currentAircraftUnderGuidance.Altitude - reportingAircraft.Altitude) < 1000)
                {
                    reportingAircraft.Climb(1000);
                    //communicate to the class
                    currentAircraftUnderGuidance.WarnOfAirspaceIntrusionBy(reportingAircraft);
                }
            }
        }
 
        public void RegisterATCUnderGuidance(AirTrafficControl aircraft)
        {
            if (!_RegisterATCUnderGuidance.Contains(aircraft))
            {
                _RegisterATCUnderGuidance.Add(aircraft);
            }
        }
    }
}//end class AirTraffic

فاطمه30

لطفا هر کی میتونه سریعتر جواب منو بده خیلی فوریه باید بدم استادمون:(((

سلام خطایی که به شما میده اینه که تابع main رو نمی تونه پیدا کنه که از طریق اون بتونه برنامه رو اجرا کنه توی جاوا شما باید کلاس هایی رو که به صورت پابلیک تعریف می کنید توی فایل جداگانه باشه.

کانال تلگرام، اینستاگرام، توییتر: mehdiadeli9
پاسخ شما
برای ارسال پاسخ خود وارد شوید.