什么是仿真源代码

什么是仿真源代码,第1张

假如你的电脑里有个开关控制的电灯,你通过点击鼠标打开开关就可以使电脑里的电灯点亮,这就像现实的情况一样。如果你写程序的正确与否代表打开开关的动作,你写好的程序输入到电脑里,如果你的程序正确就能使电脑里的电灯亮否者就灭。就是说仿真是通过电脑模拟现实的情况。仿真源代码其实和源代码有时就是一样,只不过可能要适应某些不同的仿真软件而有修改。

写好了,两个类分别为:

 public enum Mode

    {

        Heating,

        Cooling

    }

    public enum UpDown

    {

        Up,

        Down

    }

    public class AirConditioner

    {

        private bool powerOn

        private Mode currentMode

        private int currentTemp

        public AirConditioner()

        {

            this.powerOn = false

            this.currentMode = Mode.Cooling

            this.currentTemp = 16

        }

        public void SwichPower()

        {

            this.powerOn = !powerOn

        }

        internal void SetMode(Mode mode)

        {

            this.currentMode = mode

        }

        internal void SetTemp(UpDown upDown)

        {

            switch (upDown)

            {

                case UpDown.Up:

                    if (this.currentTemp <= 30)

                    {

                        this.currentTemp++

                    }

                    break

                case UpDown.Down:

                    if (this.currentTemp >= 16)

                    {

                        this.currentTemp--

                    }

                    break

            }

        }

        public override string ToString()

        {

            return string.Format("Current Status:\r\nPower: {0}\r\nMode: {1}\r\nTemp: {2}", this.powerOn ? "On" : "Off", this.currentMode, this.currentTemp)

        }

    } public class RemoteController

    {

        private AirConditioner conditioner

        public RemoteController()

        {

            this.conditioner = new AirConditioner()

        }

        public void SwitchPower()

        {

            this.conditioner.SwichPower()

            Console.WriteLine(this.conditioner)

        }

        public void SetMode(Mode mode)

        {

            this.conditioner.SetMode(mode)

            Console.WriteLine(this.conditioner)

        }

        public void SetTemp(UpDown upDown)

        {

            this.conditioner.SetTemp(upDown)

            Console.WriteLine(this.conditioner)

        }

    }

值得注意的是,“通过直接 *** 作空调不能进行调节温度、改变模式(制热、制冷)。”这一条说明这些方法应该不允许被声明为public,但是又要能够被遥控器访问,所以应该声明为internal

测试代码:

 static void Main(string[] args)

        {

            var controller = new RemoteController()

            Console.WriteLine("Turn on the conditioner...\r\n")

            controller.SwitchPower()

            Console.WriteLine("================================================================")

            Console.WriteLine("Turn off the conditioner...\r\n")

            controller.SwitchPower()

            Console.WriteLine("================================================================")

            Console.WriteLine("Set the mode as \"cooling\"...\r\n")

            controller.SetMode(Mode.Cooling)

            Console.WriteLine("================================================================")

            Console.WriteLine("Set the mode as \"Heating\"...\r\n")

            controller.SetMode(Mode.Heating)

            Console.WriteLine("================================================================")

            Console.WriteLine("Turn up temp...\r\n")

            controller.SetTemp(UpDown.Up)

            Console.WriteLine("================================================================")

            Console.WriteLine("Turn down temp...\r\n")

            controller.SetTemp(UpDown.Down)

        }

运行结果:

源码在附件中,如有疑问,欢迎追问。

我最近下载了一个WINNER II的MIMO信道模型,你可以去看一下,有点复杂,不过文件比较全,其中D1.1.2 是信道模型的说明。网址:www.ist-winner.org/deliverables.html ; 源代码及说明可以再这个网址里找到:www.ist-winner.org/phase_2_model.html

源程序里面有帮助文件,解释了函数的用处,我建议多考虑输入输出,注意函数要干什么而不要太纠结于函数的具体。


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/7830456.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-10
下一篇2023-04-10

发表评论

登录后才能评论

评论列表(0条)

    保存