Code C# chương trình mô phỏng quán lý hành lý ở sân bay

Thứ ba , 14/03/2017, 23:52 GMT+7
     

Các bài trước chúng ta đã đi qua một số hướng dẫn code các bài tập về môn cơ sở lập trình

         + Code chương trình vẽ đồ thị hàm số bằng C#

         + Check in hành khách ở sân bay

         + Code C# trò chơi chiếc hộp may mắn

Code C# chương trình mô phỏng quán lý hành lý ở sân bay

1. Giới thiệu

Giao diễn chương trình như sau

Chương trình được viết bằng C#, có giao diện gồm:

-       Nút “Start” để bắt đầu hoạt động.

-       3 nút “Gate1”, “Gate2”, “Gate3” để bật tắt bảng hiển thị thời gian của từng cổng.

-       Nút “Close” để thoát chương trình.

2.    Cấu trúc dữ liệu và thuật toán:

Sử dụng danh sách liên kết để cài đặt chương trình:

-       Cấu trúc class Bag như sau:

publicclass Bag

        {

            public Bag pNext = null;// Trỏ đến Bag tiếp theo

            public int frame = 0;  // Dùng để làm chuyển động cho người

            public int line = -1;  // Đánh số cổng mà ngừoi đó sẽ xếp hàng vào

            public float desx, desy;  // Vị trí đích để ngừoi đó đến         

            public int waittime; // Thời gian chờ xử lí hành lí

            public bool bigsize; // Nếu là true thì hành lí lớn, ngược lại là xách tay

            public bool movex = true; // Nếu là true thì di chuyển, ngược lại đứng chờ

            public PointF location; // Vị trí hiện tại của ngừoi

            public Bag(bool s, float x, float y, float dx, float dy,int wtime)// Khởi tạo

            {…}

            public Bag Last // Lấy ra ngừoi cuối cùng

            {…}

            public void Add(bool s, float i, float j, float desi, float desj, int wtime)

// Thêm ngừoi

            {…}

            public Bag RemoveHead // Xóa ngừoi đầu tiên troong queue

            {…}

        }

 

 

-       Tất cả được vẽ lên 1 picture_box và refresh liên tục theo thời gian.

privatevoid mainstage_Paint(object sender, PaintEventArgs e)

        {…}

 

-       Sử dụng 1 timer để hỗ trợ hiệu ứng và chuyển động:

privatevoid tm_main_Tick(object sender, EventArgs e)

        {

            changeframe();// Thay đổi liên tục tạo nên hiệu ứng bước đi

            move();// Di chuyển theo hàng

            for (int i = 0;i<3;i++)

                if (fullgate[i]==true)

                    countdown(i); // Đếm ngược thời gian chờ

            if (1 trong 3 cổng trống)

                {

                    switch (Queue.pNext.bigsize)

                    {

                        case true: // Nếu là hành lí lớn

Nếu trong 2 cổng lớn, cổng nào trống thì cho 1 ngừoi đi vào cổng đó, xóa đi ngừoi đầu tiên trong hàng đợi.

                        case false: // Nếu là hành lí xách tay

Nếu cổng hành lí xách tay trống thì cho 1 ngừoi đi vào cổng đó, xóa đi ngừoi đầu tiên trong hàng đợi.

                    }

                }

                    

            mainstage.Invalidate();// Vẽ lại tất cả

 

        }

Download source chương trình: Mô phỏng quản lý hành lý C#

 

mo phong quan ly hanh ly check in san bat C# code C# code co so lap trinh