Ejemplo n.º 1
0
 public NguoiGuiXe(NguoiGuiXe x)
 {
     this.theXe     = x.theXe;
     this.khuonMat  = x.khuonMat;
     this.gioiTinh  = x.gioiTinh;
     this.dangNguoi = x.dangNguoi;
 }
Ejemplo n.º 2
0
        public string themXe(XeCo xe, NguoiGuiXe nguoi)
        {
            int hangXe = (int)xe.getTypeOfVehicle();

            for (int i = 0; i < sucChua; i++)
            {
                if (slotXe[hangXe, i] == 0)
                {
                    //Đánh dấu = 1 tại chỗ nào có xe
                    slotXe[hangXe, i] = 1;
                    //Tăng số lượng xe hiện đang gửi của hàng đó
                    slXe[hangXe]++;
                    //Gán thẻ xe đó cho người lái xe
                    nguoi.theXe = phatTheXe();
                    //Mã hóa vị trí đỗ xe thành mã xe
                    xe.maXe = (hangXe + "." + i).ToString();
                    //Thêm thông tin cho người và xe
                    ThongTinXeTrongBai TTXTB;
                    TTXTB.maXe     = xe.maXe;
                    TTXTB.anhNguoi = nguoi.anhNguoi();
                    TTXTB.anhXe    = xe.anhXe();
                    TTXTB.hang     = hangXe;
                    TTXTB.cot      = i;
                    TTXeTrongBai.Add(nguoi.theXe, TTXTB);
                    break;
                }
            }
            return($"Da them xe {xe.getTypeOfVehicle()} Ma the xe la: {nguoi.theXe}");
        }
Ejemplo n.º 3
0
 public int xuLyTheXe(XeCo xe, NguoiGuiXe nguoilayxe)
 {
     foreach (KeyValuePair <int, ThongTinXeTrongBai> TimKiem in this.TTXeTrongBai)
     {
         if (xe.maXe == TimKiem.Value.maXe && nguoilayxe.anhNguoi() == TimKiem.Value.anhNguoi && xe.anhXe() == TimKiem.Value.anhXe)
         {
             return(TimKiem.Key);
         }
     }
     return(-1);
 }
Ejemplo n.º 4
0
        private bool thucHienXacNhan(int maTheXe, XeCo xe, NguoiGuiXe nguoilayxe)
        {
            string anhXeVao, anhNguoiVao, anhXeRa, anhNguoiRa;

            anhNguoiVao = this.TTXeTrongBai[maTheXe].anhNguoi;
            anhXeVao    = this.TTXeTrongBai[maTheXe].anhXe;
            anhXeRa     = xe.anhXe();
            anhNguoiRa  = nguoilayxe.anhNguoi();
            if (anhXeVao == anhXeRa && anhNguoiVao == anhNguoiRa)
            {
                return(true);
            }
            else
            {
                return(false);
            }
        }
Ejemplo n.º 5
0
        public string xuLyLayXe(XeCo xe, NguoiGuiXe nguoilayxe, HinhThucThanhToan hinhThucThanhToan, int tienNguoiGuiXe, tinhTienGXe cachTinhTien)
        {
            int      maTheXe          = nguoilayxe.theXe;
            DateTime thoiGianXacNhan  = DateTime.Now;
            Scanner  loaiXe           = xe.getTypeOfVehicle();
            int      soTienCanPhaiTra = tinhTienGuiXe(cachTinhTien, tinhThoiGianGuiXe(xe.ngayGio, thoiGianXacNhan), loaiXe);

            if (maTheXe == -1)                          //Người lấy xe bị mất thẻ xe
            {
                soTienCanPhaiTra += 50000;
                maTheXe           = xuLyTheXe(xe, nguoilayxe);
            }
            if (TTXeTrongBai.ContainsKey(maTheXe) == true)
            {
                if (thucHienXacNhan(maTheXe, xe, nguoilayxe) == true)
                {
                    string anhNguoiVao = this.TTXeTrongBai[maTheXe].anhNguoi;
                    string anhXeVao    = this.TTXeTrongBai[maTheXe].anhXe;
                    //Loại bỏ các dữ liệu về xe trong cơ sở dữ liệu
                    xoaThongTinXe(maTheXe, (int)loaiXe);
                    //Lưu thông tin cơ bản của xe vào Dictionary để xử lý trường hợp mất xe
                    this.danhSachTTXeDaLay.Add(thongTinXe(maTheXe, xe.ngayGio, thoiGianXacNhan, anhXeVao, anhNguoiVao, xe.anhXe(), nguoilayxe.anhNguoi()));
                    //Lấy tiền gửi xe
                    if (tienNguoiGuiXe < soTienCanPhaiTra)
                    {
                        return($"{thanhToan(hinhThucThanhToan, tienNguoiGuiXe, soTienCanPhaiTra)}\nLay {xe.getTypeOfVehicle()} khong thanh cong\n");
                    }
                    return($"{thanhToan(hinhThucThanhToan, tienNguoiGuiXe, soTienCanPhaiTra)}\nDa lay {xe.getTypeOfVehicle()} thanh cong\n");
                }
                else
                {
                    return("Thong bao: Anh khong khop");
                }
            }
            else
            {
                return("The xe khong ton tai");
            }
        }
Ejemplo n.º 6
0
        static void Main(string[] args)
        {
            //Thực thi chương trình
            /*Tạo hàm quản lý bãi giữ xe*/
            QuanLyBaiGiuXe quanly2 = new QuanLyBaiGiuXe();
            /*Người gửi xe và xe*/
            NguoiGuiXe NguyenVanA = new NguoiGuiXe("Tron", 0, "Thon");
            XeDap      XeDap_CuaA = new XeDap();
            NguoiGuiXe NguyenVanB = new NguoiGuiXe("Gay", 0, "To");
            XeMay      XeMay_CuaB = new XeMay();
            /*Nhân viên*/
            NhanVien NV1 = new NhanVien();

            /*Nhân viên mở cửa bãi xe*/
            NhanVien.hanhDongNV hdong1 = new NhanVien.hanhDongNV(NhanVien.moCua);
            Console.WriteLine(NV1.hanhDongCuaNV(hdong1));
            /*Tạo đèn tín hiệu*/
            QuanLyBaiGiuXe.DenTinHieu denTinHieuXanh = new QuanLyBaiGiuXe.DenTinHieu(QuanLyBaiGiuXe.denTinHieuXanh);
            QuanLyBaiGiuXe.DenTinHieu denTinHieuDo   = new QuanLyBaiGiuXe.DenTinHieu(QuanLyBaiGiuXe.denTinHieuDo);
            /*In ra tổng tiền hiện đang có*/
            Console.WriteLine(quanly2.statusSoTienHienDangCo());
            /*Mở thanh chắn*/
            Console.WriteLine(quanly2.thanhChanBarrier(denTinHieuXanh));
            /*Gửi xe vào bãi*/
            Console.WriteLine(quanly2.themXe(XeDap_CuaA, NguyenVanA));
            Console.WriteLine(quanly2.themXe(XeMay_CuaB, NguyenVanB));
            /*Đóng thanh chắn*/
            Console.WriteLine(quanly2.thanhChanBarrier(denTinHieuDo));
            /*In thông tin đã chụp lại của XeDap_CuaA đã gửi vào bãi*/
            Console.WriteLine(XeDap_CuaA.anhXe() + "\n" + NguyenVanA.anhNguoi());
            /*In thông tin đã chụp lại của XeMay_CuaB và NguyenVanB đã gửi vào bãi*/
            Console.WriteLine(XeMay_CuaB.anhXe() + "\n" + NguyenVanB.anhNguoi());
            /*In ra thông tin bãi xe*/
            Console.WriteLine("\n" + quanly2.statusBaiXe());
            /*Chọn cách tính tiền*/
            QuanLyBaiGiuXe.tinhTienGXe cachTinhTien = new QuanLyBaiGiuXe.tinhTienGXe(QuanLyBaiGiuXe.tinhTienTheoGio);
            /*Chọn cách thanh toán*/
            QuanLyBaiGiuXe.HinhThucThanhToan hinhThucThanhToan = new QuanLyBaiGiuXe.HinhThucThanhToan(QuanLyBaiGiuXe.tienMat);
            /*Lấy xe ra*/
            /*Nhập thẻ xe*/
            Console.Write($"Nhap the xe: ");
            NguyenVanA.theXe = int.Parse(Console.ReadLine());
            /*Nhập số tiền cần trả*/
            Console.Write($"Nhap so tien can tra: ");
            /*Xử lý lấy xe*/
            int tien1 = int.Parse(Console.ReadLine());

            Console.WriteLine(quanly2.xuLyLayXe(XeDap_CuaA, NguyenVanA, hinhThucThanhToan, tien1, cachTinhTien));
            /*Nhập thẻ xe*/
            Console.Write($"Nhap the xe: ");
            NguyenVanB.theXe = int.Parse(Console.ReadLine());
            /*Nhập số tiền cần trả*/
            Console.Write($"Nhap so tien can tra: "); int tien2 = int.Parse(Console.ReadLine());
            /*Xử lý lấy xe*/
            Console.WriteLine(quanly2.xuLyLayXe(XeMay_CuaB, NguyenVanB, hinhThucThanhToan, tien2, cachTinhTien));
            /*Mở thanh chắn*/
            Console.WriteLine(quanly2.thanhChanBarrier(denTinHieuXanh));
            /*Đóng thanh chắn*/
            Console.WriteLine(quanly2.thanhChanBarrier(denTinHieuDo));
            /*In ra tổng tiền hiện đang có sau khi thanh toán*/
            Console.WriteLine(quanly2.statusSoTienHienDangCo());
            /*In lại thông tin của bãi xe đạp*/
            QuanLyBaiGiuXe.delegateStatusLoaiXe sttxe1 = new QuanLyBaiGiuXe.delegateStatusLoaiXe(quanly2.statusXeDap);
            Console.WriteLine(quanly2.statusLoaiXe(sttxe1));
            /*In lại thông tin của bãi xe máy*/
            QuanLyBaiGiuXe.delegateStatusLoaiXe sttxe2 = new QuanLyBaiGiuXe.delegateStatusLoaiXe(quanly2.statusXeMay);
            Console.WriteLine(quanly2.statusLoaiXe(sttxe2));
            /*Nhân viên đóng cửa bãi xe*/
            NhanVien.hanhDongNV hdong2 = new NhanVien.hanhDongNV(NhanVien.dongCua);
            Console.WriteLine(NV1.hanhDongCuaNV(hdong2));



            /*Event sửa chữa và bảo trì bãi xe*/
            quanly2.eventSCvaBT += Quanly2_eventSCvaBT;
            Console.WriteLine((string)quanly2.thucThiSCBT());
            /*Event update phần mềm của chương trình quản lý*/
            quanly2.eventUpdateDriver += Quanly2_eventUpdateDriver;
            Console.WriteLine((string)quanly2.thucThiUpdate());
            /*Event mở rộng bãi giữ xe*/
            quanly2.eventMoRong += Quanly2_eventMoRongBaiGiuXe;
            Console.WriteLine((string)quanly2.thucThiMoRongBaiGiuXe());
        }