By GokiSoft.com|
10:21 16/10/2021|
C Sharp
[Video] Chương trình quản lý khách sạn - Develop Hotel Project - Lập Trình C# - Lập Trình C Sharp - C2009G
Chương trình quản lý khách sạn - Develop Hotel Project - Lập Trình C# - Lập Trình C Sharp
#Program.cs
using System;
using Bt1460.Utils;
using Bt1460.Models;
namespace Bt1460
{
class Program
{
static void Main(string[] args)
{
int choose;
do
{
ShowMenu();
choose = Utility.ReadInt();
switch(choose)
{
case 1:
DataMgr.GetInstance().InputHotel();
break;
case 2:
DataMgr.GetInstance().DisplayHotel();
break;
case 3:
DataMgr.GetInstance().InputBooking();
break;
case 4:
DataMgr.GetInstance().SearchRoomAvaiable();
break;
case 5:
DataMgr.GetInstance().StatisticProfit();
break;
case 6:
DataMgr.GetInstance().SearchCustomer();
break;
case 7:
Console.WriteLine("Thoat!!!");
break;
default:
Console.WriteLine("Nhap sai!!!");
break;
}
} while (choose != 7);
}
static void ShowMenu()
{
Console.WriteLine("1. Nhap KS");
Console.WriteLine("2. Hien thi KS");
Console.WriteLine("3. Dat phong");
Console.WriteLine("4. Tim phong trong");
Console.WriteLine("5. Thong ke doanh thu");
Console.WriteLine("6. Tim thong khach hang");
Console.WriteLine("7. Thoat");
Console.WriteLine("Chon: ");
}
}
}
#Utils/Utility.cs
using System;
namespace Bt1460.Utils
{
public class Utility
{
public static int ReadInt()
{
int value;
while(true)
{
try
{
value = int.Parse(Console.ReadLine());
return value;
} catch(Exception e)
{
Console.WriteLine("Nhap lai!!!");
}
}
}
/**
* Format: yyyy-MM-dd HH:mm:ss
*/
public static DateTime ConvertStringToDateTime(string datetimeStr)
{
DateTime myDate = DateTime.ParseExact(datetimeStr, "yyyy-MM-dd HH:mm:ss",
System.Globalization.CultureInfo.InvariantCulture);
return myDate;
}
public static string ConvertDateTimeToString(DateTime dateTime)
{
return dateTime.ToString("yyyy-MM-dd HH:mm:ss");
}
}
}
#Models/Room.cs
using System;
using Bt1460.Utils;
namespace Bt1460.Models
{
public class Room
{
public string Name { get; set; }
public string RoomNo { get; set; }
public int Price { get; set; }
public int Floor { get; set; }
public int MaxNum { get; set; }
public Room()
{
}
public Room(string name, string roomNo, int price, int floor, int maxNum)
{
Name = name;
RoomNo = roomNo;
Price = price;
Floor = floor;
MaxNum = maxNum;
}
public void Input()
{
Console.WriteLine("==================================");
Console.WriteLine("Nhap ten phong: ");
Name = Console.ReadLine();
Console.WriteLine("Nhap ma phong: ");
RoomNo = Console.ReadLine();
Console.WriteLine("Nhap gia: ");
Price = Utility.ReadInt();
Console.WriteLine("Nhap tang: ");
Floor = Utility.ReadInt();
Console.WriteLine("Nhap so nguoi toi da: ");
MaxNum = Utility.ReadInt();
}
public void Display()
{
Console.WriteLine("Ten phong: {0}, ma phong: {1}, gia: {2}, tang: {3}, " +
"so nguoi toi da: {4}", Name, RoomNo, Price, Floor, MaxNum);
}
}
}
#Models/Hotel.cs
using System;
using System.Collections.Generic;
using Bt1460.Utils;
namespace Bt1460.Models
{
public class Hotel
{
public string Name { get; set; }
public string HotelNo { get; set; }
public string Address { get; set; }
public string Type { get; set; }
public List<Room> RoomList { get; set; }
public Hotel()
{
RoomList = new List<Room>();
}
public void Input()
{
Console.WriteLine("==================================");
Console.WriteLine("Nhap ten KS: ");
Name = Console.ReadLine();
Console.WriteLine("Nhap ma KS: ");
HotelNo = Console.ReadLine();
Console.WriteLine("Nhap dia chi: ");
Address = Console.ReadLine();
Console.WriteLine("Nhap loai: ");
Type = Console.ReadLine();
Console.WriteLine("Nhap so phong can them: ");
int N = Utility.ReadInt();
for(int i=0;i<N;i++)
{
Room room = new Room();
room.Input();
RoomList.Add(room);
}
}
public void Display()
{
Console.WriteLine("Ten KS: {0}, Ma KS: {1}, Dia chi: {2}, Loai KS: {3}",
Name, HotelNo, Address, Type);
foreach(Room room in RoomList)
{
room.Display();
}
}
public void SearchRoomAvaiable(DateTime checkIn, DateTime checkOut)
{
List<string> unavailableRoomList = GetRoomUnavaialbe(checkIn, checkOut);
Console.WriteLine("=== Danh sach phong con trong cua KS: {0}, Ma KS: {1}", Name, HotelNo);
foreach(Room room in RoomList)
{
if(!unavailableRoomList.Contains(room.RoomNo))
{
room.Display();
}
}
}
public void StatisticProfit()
{
List<Booking> bookingList = DataMgr.GetInstance().BookingList;
int total = 0;
foreach (Booking booking in bookingList)
{
if (booking.HotelNo == HotelNo)
{
foreach (Room room in RoomList)
{
if (room.RoomNo == booking.RoomNo)
{
total += room.Price;
break;
}
}
}
}
Console.WriteLine("Loi nhuon cua KS: {0} la {1}", Name, total);
}
List<string> GetRoomUnavaialbe(DateTime checkIn, DateTime checkOut)
{
List<string> roomList = new List<string>();
List<Booking> bookingList = DataMgr.GetInstance().BookingList;
foreach(Booking booking in bookingList)
{
if(booking.HotelNo == HotelNo)
{
if((booking.CheckIn <= checkIn && booking.CheckOut >= checkIn) ||
(booking.CheckIn <= checkOut && booking.CheckOut >= checkOut) ||
(booking.CheckIn > checkIn && booking.CheckOut < checkOut))
{
if(!roomList.Contains(booking.RoomNo))
{
roomList.Add(booking.RoomNo);
}
}
}
}
return roomList;
}
}
}
#Models/DataMgr.cs
using System;
using System.Collections.Generic;
using Bt1460.Utils;
namespace Bt1460.Models
{
public class DataMgr
{
public List<Customer> CustomerList { get; set; }
public List<Hotel> HotelList { get; set; }
public List<Booking> BookingList { get; set; }
private static DataMgr _instance = null;
private DataMgr()
{
CustomerList = new List<Customer>();
HotelList = new List<Hotel>();
BookingList = new List<Booking>();
}
public static DataMgr GetInstance()
{
if(_instance == null)
{
_instance = new DataMgr();
}
return _instance;
}
public void InputHotel()
{
Console.WriteLine("Nhap so ks can them: ");
int N = Utility.ReadInt();
for(int i=0;i<N;i++)
{
Hotel hotel = new Hotel();
hotel.Input();
HotelList.Add(hotel);
}
}
public void DisplayHotel()
{
foreach(Hotel hotel in HotelList)
{
hotel.Display();
}
}
public void InputBooking()
{
if (HotelList.Count == 0) return;
Booking booking = new Booking();
booking.Input();
BookingList.Add(booking);
}
public void SearchCustomer()
{
Console.WriteLine("Nhap CMTND KH can tim: ");
string cmtnd = Console.ReadLine();
foreach (Booking booking in BookingList)
{
if(booking.Cmtnd == cmtnd)
{
Console.WriteLine("KS khach hang da toi: {0} - Phong: {1}", booking.HotelNo, booking.RoomNo);
}
}
}
public void StatisticProfit()
{
foreach (Hotel hotel in HotelList)
{
hotel.StatisticProfit();
}
}
public void SearchRoomAvaiable()
{
Console.WriteLine("Nhap Ngay Dat Phong (yyyy-MM-dd HH:mm:ss): ");
DateTime checkIn = Utility.ConvertStringToDateTime(Console.ReadLine());
Console.WriteLine("Nhap Ngay Tra Phong (yyyy-MM-dd HH:mm:ss): ");
DateTime checkOut = Utility.ConvertStringToDateTime(Console.ReadLine());
foreach(Hotel hotel in HotelList)
{
hotel.SearchRoomAvaiable(checkIn, checkOut);
}
}
}
}
#Models/Customer.cs
using System;
using Bt1460.Utils;
namespace Bt1460.Models
{
public class Customer
{
public string Fullname { get; set; }
public string Cmtnd { get; set; }
public int Age { get; set; }
public string Gender { get; set; }
public string Address { get; set; }
public Customer()
{
}
public Customer(string cmtnd)
{
Cmtnd = cmtnd;
}
public Customer(string fullname, string cmtnd, int age, string gender, string address)
{
Fullname = fullname;
Cmtnd = cmtnd;
Age = age;
Gender = gender;
Address = address;
}
public void Input()
{
Console.WriteLine("==================================");
InputWithoutCmntd();
Console.WriteLine("Nhap Cmtnd: ");
Cmtnd = Console.ReadLine();
}
public void InputWithoutCmntd()
{
Console.WriteLine("==================================");
Console.WriteLine("Nhap ten: ");
Fullname = Console.ReadLine();
Console.WriteLine("Nhap tuoi: ");
Age = Utility.ReadInt();
Console.WriteLine("Nhap gioi tinh: ");
Gender = Console.ReadLine();
Console.WriteLine("Nhap dia chi: ");
Address = Console.ReadLine();
}
public void Display()
{
Console.WriteLine("Ten: {0}, cmtnd: {1}, tuoi: {2}, gioi tinh: {3}, " +
"dia chi: {4}", Fullname, Cmtnd, Age, Gender, Address);
}
}
}
#Models/Booking.cs
using System;
using Bt1460.Utils;
namespace Bt1460.Models
{
public class Booking
{
public string HotelNo { get; set; }
public string RoomNo { get; set; }
public string Cmtnd { get; set; }
public DateTime CheckIn { get; set; }
public DateTime CheckOut { get; set; }
public Booking()
{
}
public void Input()
{
DataMgr dataMgr = DataMgr.GetInstance();
bool isFind = false;
Hotel currentHotel = null;
Console.WriteLine("Nhap Ma KS: ");
while(true)
{
HotelNo = Console.ReadLine();
isFind = false;
foreach(Hotel hotel in dataMgr.HotelList)
{
if(hotel.HotelNo == HotelNo)
{
currentHotel = hotel;
isFind = true;
break;
}
}
if(isFind)
{
break;
} else
{
Console.WriteLine("Nhap lai!!!");
}
}
if (currentHotel.RoomList.Count == 0) return;
Console.WriteLine("Nhap Ma Phong: ");
while (true)
{
RoomNo = Console.ReadLine();
isFind = false;
foreach (Room room in currentHotel.RoomList)
{
if (room.RoomNo == RoomNo)
{
isFind = true;
break;
}
}
if (isFind)
{
break;
}
else
{
Console.WriteLine("Nhap lai!!!");
}
}
Console.WriteLine("NHap Cmtnd: ");
Cmtnd = Console.ReadLine();
isFind = true;
foreach(Customer customer in dataMgr.CustomerList)
{
if(customer.Cmtnd == Cmtnd)
{
isFind = true;
break;
}
}
if(!isFind)
{
Customer customer = new Customer(Cmtnd);
customer.InputWithoutCmntd();
dataMgr.CustomerList.Add(customer);
}
Console.WriteLine("Nhap Ngay Dat Phong (yyyy-MM-dd HH:mm:ss): ");
CheckIn = Utility.ConvertStringToDateTime(Console.ReadLine());
Console.WriteLine("Nhap Ngay Tra Phong (yyyy-MM-dd HH:mm:ss): ");
CheckOut = Utility.ConvertStringToDateTime(Console.ReadLine());
}
public void Display()
{
Console.WriteLine("Ma KS: {0}, Ma Phong: {1}, Cmtnd: {2}, " +
"Ngay Dat Phong: {3}, Ngay Tra Phong: {4}", HotelNo, RoomNo,
Cmtnd, Utility.ConvertDateTimeToString(CheckIn),
Utility.ConvertDateTimeToString(CheckOut));
}
}
}
Tags:
Phản hồi từ học viên
5
(Dựa trên đánh giá ngày hôm nay)