עליך להתחבר בכדי להוריד קבצים מהאתר
על מנת להבטיח שמשאבינו לא ינוצלו לרעה.
1 : public enum EngineState { Off, On }
2 : public enum Direction { North, East, South, West }
3 : public class Car
4 : {
5 : private EngineState m_EngineState;
6 : private int m_Speed;
7 : private Direction m_Direction;
8 : public void TurnOn()
9 : {
10 : if (m_EngineState == EngineState.Off)
11 : m_EngineState = EngineState.On;
12 : else
13 : Console.WriteLine("Engine is already turn-on");
14 : }
15 : public void TurnOff()
16 : {
17 : if (m_EngineState == EngineState.On)
18 : {
19 : m_EngineState = EngineState.Off;
20 : m_Speed = 0;
21 : }
22 : else
23 : Console.WriteLine("Engine is already turn-off");
24 : }
25 : public void Accelerate()
26 : {
27 : if (m_EngineState == EngineState.On && m_Speed < 180)
28 : m_Speed += 5;
29 : }
30 : public void Accelerate(int speed)
31 : {
32 : if (speed >= 0 && m_EngineState == EngineState.On
33 : && (m_Speed + speed) < 180)
34 : m_Speed += speed;
35 : }
36 : public void SlowDown()
37 : {
38 : if (m_Speed > 0)
39 : m_Speed -= 5;
40 : }
41 : public void SlowDown(int speed)
42 : {
43 : if (speed >= 0 && (m_Speed - speed) > 0)
44 : m_Speed -= 5;
45 : }
46 : public void TurnRight()
47 : {
48 : if (m_EngineState == EngineState.Off)
49 : {
50 : switch (m_Direction)
51 : {
52 : case Direction.North:
53 : m_Direction = Direction.West;
54 : break;
55 : case Direction.West:
56 : m_Direction = Direction.South;
57 : break;
58 : case Direction.South:
59 : m_Direction = Direction.East;
60 : break;
61 : case Direction.East:
62 : m_Direction = Direction.North;
63 : break;
64 : }
65 : }
66 : else
67 : Console.WriteLine("Can't redirect the car when engine is stopped");
68 : }
69 : public void TurnLeft()
70 : {
71 : if (m_EngineState == EngineState.On)
72 : {
73 : switch (m_Direction)
74 : {
75 : case Direction.North:
76 : m_Direction = Direction.East;
77 : break;
78 : case Direction.East:
79 : m_Direction = Direction.South;
80 : break;
81 : case Direction.South:
82 : m_Direction = Direction.West;
83 : break;
84 : case Direction.West:
85 : m_Direction = Direction.North;
86 : break;
87 : }
88 : }
89 : else
90 : Console.WriteLine("Can't redirect the car when engine is stopped");
91 : }
92 : public void Print()
93 : {
94 : Console.WriteLine("Speed: {0}, Direction : {1}",
95 : m_Speed, m_Direction);
96 : }
97 : }
1 : class Program
2 : {
3 : static void Main(string[] args)
4 : {
5 : Car c = new Car();
6 : c.TurnOn();
7 : c.Print();
8 : c.Accelerate();
9 : c.Print();
10 : c.TurnLeft();
11 : c.Print();
12 : c.Accelerate();
13 : c.Accelerate();
14 : c.Accelerate();
15 : c.Accelerate();
16 : c.Accelerate();
17 : c.Accelerate();
18 : c.Print();
19 : c.TurnOff();
20 : c.Print();
21 : }
22 : }