Báo cáo môn cơ sở lập trình bài Qua trạm thu phí

Thứ hai , 15/05/2017, 08:13 GMT+7
     

Hôm nay trang congnghegi.com sẽ giới thiệu tới các bạn một bài toán qua trạm thu phí trong môn cơ sở lập trình 

Bài 1: Viết chương trình Check in ở sân bay

Bài 2: Xe qua cầu hẹp

Báo cáo môn cơ sở lập trình bài Qua trạm thu phí

Hướng dẫn các bạn code C# một số hàm cơ bản như sau:

I.                  Giới thiệu chương trình:

-         Có 3 loại xe qua trạm thu phí 3 cổng.

-         Thời gian trung bình để mỗi xe qua trạm là:

+ xe container: 90ms

+ xe tải lớn: 60ms

+ xe tải nhỏ: 30ms

-         Khi một xe đến trạm thu phí thì sẽ chọn cổng có ít xe nhất để vào.

II.               Các hàm sử dụng trong chương trình.

1.     classxe

// là lớp dùng để tạo nên thuộc tính ban đầu của xe, trong class xe sẽ có các hàm đảm nhận các chức năng  như đi vào trạm, đếm lùi thời  gian khi xe chờ ở trạm, xử lý cho xe qua trạm  

classxe

{

        publicImage thuoctinh;    //  ảnh của xe

        public int t = 0;   // t là biến đếm thời gian của xe ở trạm

        publicPoint toado = new Point();   // toado là tọa độ của ảnh

        public bool dadi = true;

        public xe(Point toado1, Image img, int tg)    // contructor khởi tạo lên các thuộc tính cho các xe

publicvoid chay(int toadodung)    //dùng để xử lý cho xe chạy thẳng về phía trước

publicvoid chayxeo(int toadodung, int cong)    //xử lý cho  xe chạy vào các cổng

publicbool thoigian()     // đếm lui thời gian khi xe chờ ở trạm

}

2.     Các khai báo

-         Randomr;     //biến dùng đẻ tạo ngẫu nhiên xe

-         Queue cong1 = new Queue();              

-         Queue cong2 = new Queue();

-         Queue cong3 = new Queue();

// danh sách dùng đẻ lưu trữ các xe  ở mỗi cổng

3.     Các hàm khác

-                     privatevoid nen()       // hàm dùng để khởi tạo ảnh nền

-                     privatevoid draw(xe xecanve)      // hàm vẽ xe khi xe đang đứng yên

-                     privatevoid Ve(xe xecanve)       // hàm vẽ khi xe chuyển động

-                     privatevoid venen()   // hàm dùng để vẽ lại ảnh nền sau mỗi lần timer_Tick

-                     privatexe xengaunhien(int toado)    // hàm dùng để khởi tạo xe ngẫu nhiên

-                     privatevoid vaotram()    // xác định cổng vào của một xe khi mới tạo nên

-                     privatevoid xulicong1()           // xử lý xe ở mỗi cổng (cho xe đi vào trạm,

-                     Privatevoid xulicong2()              thời gian chờ ở trạm, cho xe đi ra)

-                     privatevoid xulicong3()

-                     privatevoid saphangxedoi1()         

-                     privatevoid saphangxedoi2()

-                     privatevoid saphangxedoi3()

          // sắp xếp các xe đang chờ ở mỗi cổng

-                     privatevoid timer1_Tick(object sender, EventArgs e)

          // gọi các hàm cần thiết

        privatevoid xulicong1()

        {

            saphangxedoi1();        // sắp xếp các xe chờ ở cổng 1

            int vitri = cong1.Count - 1;

            if (xecong1 != null)

            {

                if (xecong1.toado.X > 330)

                {

                    xecong1.chayxeo(330, 1);         // Xử lý cho xe đi xéo vào cổng 1

                    Ve((xecong1));

                }

                if(xecong1.toado.Y > 100 + 70 * vitri)            // dùng để xác định tạo độ cho

                {                                                                               các xe đi vào hàng đợi                       xecong1.chay(100 + 70 * vitri);

                    Ve((xecong1));

                }

                else { kt1 = true; co1 = true; }

}

            if (co1)

            {

                if (cong1.Count >= 1 && kt1ra && xecong1ra == null)

                {

                    xecong1ra = cong1.Dequeue();

                    dem1--;

                    kt1ra = false;

                }

                if (xecong1ra != null)

                {

                    if(xecong1ra.toado.Y > 40)              // xử lý cho xe đi vào vị trí bắt đầu                       {                                                            đếm thời gian

                        xecong1ra.chay(40);

                        Ve((xecong1ra));

                    }

             else

                    {

                        label1.Text = xecong1ra.t.ToString();

                        if (xecong1ra.thoigian())

                        {                                                                         // hàm dùng để xử lý đếm

                            xecong1ra.chay(0);                                            ngược thời gian và cho                           Ve((xecong1ra));                                               xe đi ra

                            if (xecong1ra.toado.Y < 10)

                            {

                                xecong1ra = null;

                                kt1ra = true;

                            }

                        }                    }                }

            }

        }

 

Bạn nào muốn code thì liên hệ email: namnv.qbh@vnpt.vn hoặc comment rồi mình gửi code cho

 

cơ sở lập trình Qua trạm thu phí uit congnghegi do an co so lap trinh do an cuoi nam. u