// Cac ham trong region Them don dang ky moi, Sua don dang ky va In an // su dung cac ham trong region nay #region Xu Ly Nhap Du Lieu // Ham xu ly viec nhap rieng thong tin ten, phong, ngay va tiet muon static void XuLyNhapTenPhongNgayTietMuon(ref DonMuonPhong don) { Console.Write("Ten nguoi muon : "); don.tenNgMuon = Console.ReadLine(); don.phongMuon = XuLyChonPhong(); don.ngayMuon = XuLyNhapNgayMuon(); don.tietBDMuon = XuLyNhapTiet("bat dau", 0); don.tietKTMuon = XuLyNhapTiet("ket thuc", don.tietBDMuon); // kiem tra trung while (LaTrungNgayTietPhongMuon(don.ngayMuon, don.tietBDMuon, don.tietKTMuon, don.phongMuon)) { // hoi co muon sua lai khong ? Console.WriteLine("Ngay, tiet va phong muon ban chon da co nguoi dang ky roi!"); if (XuLyCauHoiYesNo("Ban co muon sua lai ngay, tiet va phong muon khong? (Y/N) : ")) { // neu co thi cho sua lai Console.WriteLine("Moi ban nhap lai:"); don.phongMuon = XuLyChonPhong(); don.ngayMuon = XuLyNhapNgayMuon(); don.tietBDMuon = XuLyNhapTiet("bat dau", 0); don.tietKTMuon = XuLyNhapTiet("ket thuc", don.tietBDMuon); } else { //neu khong thi sua lai ma = -1 don.ma = -1; break; } } }
// Ham xu ly nhap thong tin cho tung khoan thu chi // Ham tra ra gia tri don voi ma -1 khi du lieu nhap vao bi trung static DonMuonPhong ThemMotDonDKMoi() { DonMuonPhong don = new DonMuonPhong(); // khoi tao Console.WriteLine("\nMoi ban nhap thong tin don dang ky muon phong :"); don.ma = LayMaDonDKMoi(); Console.WriteLine("Ma : {0}", don.ma); XuLyNhapTenPhongNgayTietMuon(ref don); return(don); }
// Ham xu ly in thong tin mot don muon phong // DonMuonPhong don : la don muon phong can in static void InMotDonMP(DonMuonPhong don) { Console.WriteLine("Ma : {0}", don.ma); // in ma don Console.WriteLine("Nguoi muon : {0}", don.tenNgMuon); // in ten nguoi muon Console.WriteLine("Phong muon : {0}", don.phongMuon); // in phong muon Console.WriteLine("Ngay muon : {0:d2}/{1:d2}/{2:d4}", don.ngayMuon.ngay, don.ngayMuon.thang, don.ngayMuon.nam); Console.WriteLine("Tiet bat dau : {0}", don.tietBDMuon); Console.WriteLine("Tiet ket thuc : {0}", don.tietKTMuon); }
// Ham tra ra vi tri thich hop de chen don dang ky moi vao danh sach // sao cho danh sach tao ra se duoc sap xep tang dan theo ngay thang va tiet muon static int LayViTriChenThichHop(DonMuonPhong don) { for (int i = 0; i < listDonMP.Count; i++) { if (LaNgayTruoc(don.ngayMuon, listDonMP[i].ngayMuon) || // neu ngay thang nho hon (LaTrungNgayThangNam(don.ngayMuon, listDonMP[i].ngayMuon) && // hoac neu ngay thang bang nhau don.tietBDMuon <= listDonMP[i].tietBDMuon)) // nhung tiet muon nho hon hoac bang { return(i); } } return(-1); }
// Ham chen mot don dang ky moi vao vi tri thich hop // voi danh sach tang dan theo ngay muon va tiet muon static void ThemDonDKVaoDS(DonMuonPhong don) { int vitri = LayViTriChenThichHop(don); if (vitri == -1) { listDonMP.Add(don); // add vao listDonMP } else { listDonMP.Insert(vitri, don); } }
// XU LY THEM DON DANG KY MOI #region Them don dang ky moi // Ham cho phep nhap them n don dang ky moi // ham nhap voi so luong nhap xac dinh truoc static void ThemDonDKMoi(int n) { Console.WriteLine("\nTHEM DON DANG KY MOI"); for (int i = 0; i < n; i++) { Console.WriteLine("{0}.", i + 1); DonMuonPhong don = ThemMotDonDKMoi(); // nhap cho mot don dang ky if (don.ma != -1) // neu qua trinh nhap khong bi loi { ThemDonDKVaoDS(don); // them don vao danh sach } } }
// Ham cho phep nhap vao cac don dang ky moi // viec nhap chi dung lai khi nguoi su dung muon static void ThemDonDKMoi() { Console.WriteLine("\nTHEM DON DANG KY MOI"); do { DonMuonPhong don = ThemMotDonDKMoi(); // nhap thong tin cho mot don dang ky // kiem tra xem ma don co bang -1 khong ? // neu khong thi chen vao vi tri thich hop de tao ra danh sach tang dan // theo ngay thang va tiet if (don.ma != -1) { ThemDonDKVaoDS(don); } // hoi nguoi su dung co muon tiep tuc khong } while (XuLyCauHoiYesNo("\nBan co muon nhap them don khac khong ? (Y/N) : ")); }
// Ham co nhiem vu tach chuoi doc duoc tu file // gan gia tri vao bien don static bool TachGiaTri(string input, out DonMuonPhong don) { don = new DonMuonPhong(); string[] items = input.Split(','); // phai chua 5 thanh phan if (items.Length != 5) { return(false); } // tach ma if (!int.TryParse(items[0], out don.ma)) { return(false); } // xu ly ngay thang string[] ntn = items[1].Split('/'); if (ntn.Length != 3 || !int.TryParse(ntn[0], out don.ngayMuon.ngay) || !int.TryParse(ntn[1], out don.ngayMuon.thang) || !int.TryParse(ntn[2], out don.ngayMuon.nam) || !LaNgayHopLe(don.ngayMuon.ngay, don.ngayMuon.thang, don.ngayMuon.nam)) { return(false); } // xu ly tiet ntn = items[2].Split('-'); if (ntn.Length != 2 || !int.TryParse(ntn[0], out don.tietBDMuon) || !int.TryParse(ntn[1], out don.tietKTMuon) || don.tietBDMuon >= don.tietKTMuon || don.tietBDMuon < 0 || don.tietKTMuon > 10) { return(false); } // ten nguoi muon va phong muon don.tenNgMuon = items[3]; don.phongMuon = items[4]; return(true); }
// Ham cho nhap thong tin moi vao cho khoan thu chi muon sua thong tin static void SuaMotDonMP(int vitri) { DonMuonPhong donCu = listDonMP[vitri]; // sao chep don dang ky muon sua ra listDonMP.RemoveAt(vitri); // xoa don dang ky cu // nhap thong tin moi vao bien donMoi // donCu de do du phong truong hop nhap thong tin moi bi sai, khong muon nhap tiep // thi khoi phuc lai thong tin cu tai vi tri cu (vitri) DonMuonPhong donMoi = donCu; XuLyNhapTenPhongNgayTietMuon(ref donMoi); if (donMoi.ma != -1) { ThemDonDKVaoDS(donMoi); } else // khoi phuc lai don cu { ThemDonDKVaoDS(donCu); } }