Chào các anh chị và các bạn. Em gặp rắc rối với bài tập C# mong các anh chị giúp đỡ. Các anh chị và các bạn giỏi về lập trình C# giúp em bài này với, hic hic. [IMG]images/smilies/21.gif[/IMG]
Thiết kế chương trình theo hướng đối tượng với yêu cầu mô tả như sau:
Viết chương trình tính toán doanh thu 1 ngày của khách sạn với yêu cầu:
Giá phòng dành cho khách trong nước:
- Phòng loại 1: 500
- Loại 2: 300
- Loại 3: 150
Đơn giá cho thuê với khách nước ngoài bằng 1.5 lần khách trong nước, nhưng đối với khách người Nhật thì tính bằng với giá khách trong nước.
Có hai loại khách:
- Khách trong nước: Cần quan tâm các thông tin:
• Số CMND
• Họ tên
• Số ngày ở.
• Loại phòng
- Khách nước ngoài cần quan tâm các thông tin:
• Số hộ chiếu
• Họ tên
• Số ngày ở
• Loại phòng.
Khi khách đến đăng kí người dùng sẽ thêm hồ sơ của khách này vào chương trình và thu tiền trước ứng với số ngày đăng ký. Cuối ngày sẽ tính tổng tiền thu được của khách sạn.
Chú ý: Khi khách chưa đến đăng ký thì người dùng sẽ không biết khách sắp đến sẽ là khách trong nước hay nước ngoài. Trước khi đóng chương trình không biết được ngày nay có bao nhiêu khách. Vì vậy khi muốn kết thúc nhập thì sẽ nhập số CMND hoặc hộ chiếu không là dạng số.
Bài này em nghĩ là dùng ArrayList để lưu thông tin của các vị khách. Em thiết kế các lớp và kế thừa có vẻ như không có vấn đề gì. Nhưng em gặp rắc rối ở Class KHACHSAN, phần sử dụng ArrayList.
Nếu ArrayList mà lưu từng thông tin ví dụ như Họ tên, ArrayList lưu Số ngày ở… mà mình nhập trực tiếp vào thì dùng phương thức TênArrayList.Add(console.readline()) để nhập thì em biết, nhưng cái đề này thì em bó tay. Mong các anh chị và các bạn giúp em phần đó, làm sao viết hàm nhập và hàm tính tiền cho cái ArrayList giùm em. Em cám ơn nhiều lắm.
Code em viết, các anh chị sửa giùm em ạ:
Mã:
using System;
using System.Collections.Generic;
using System.Text;
using System.Collections;
using System.IO;
namespace Bai_KHACHSAN
{
class KHACHHANG
{
public string Hoten;
public int Songayo;
public int Loaiphong;
public virtual void Nhap()
{
Console.Write("Nhap ho ten khach hang : ");
Hoten = Console.ReadLine();
Console.Write("Nhap so ngay o : ");
Songayo = Convert.ToInt32(Console.ReadLine());
Console.Write("Loai phong: ");
Loaiphong = Convert.ToInt32(Console.ReadLine());
}
public virtual double Tinhtien()
{
return 0;
}
public virtual void Xuat()
{
Console.Write("Tien phong cua khach {0} la {1} .
",Hoten,Tinhtien());
}
}
class TRONGNUOC : KHACHHANG
{
public int CMND;
public override void Nhap()
{
Console.Write("Nhap so CMND : ");
CMND = Convert.ToInt32(Console.ReadLine());
base.Nhap();
}
public override double Tinhtien()
{
if (Loaiphong == 1)
return Songayo * 500;
else if (Loaiphong == 2)
return Songayo * 300;
else return Songayo * 150;
}
public override void Xuat()
{
base.Xuat();
}
}
class NUOCNGOAI : KHACHHANG
{
public int Hochieu;
public string Quocgia;
public override void Nhap()
{
Console.Write("Nhap so ho chieu: ");
Hochieu = Convert.ToInt32(Console.ReadLine());
Console.Write("Nhap quoc tich: ");
Quocgia = Console.ReadLine();
base.Nhap();
}
public override double Tinhtien()
{
if (Quocgia == "Nhat")
{
if (Loaiphong == 1)
return Songayo * 500;
else if (Loaiphong == 2)
return Songayo * 300;
else return Songayo * 150;
}
else
{
if (Loaiphong == 1)
return Songayo * 500 * 1.5;
else if (Loaiphong == 2)
return Songayo * 300 * 1.5;
else return Songayo * 150 * 1.5;
}
}
public override void Xuat()
{
base.Xuat();
}
}
class KHACHSAN
{
ArrayList ks = new ArrayList();
public int i = 0;
public int chon;
bool tt;
public double s = 0;
KHACHHANG kh = new KHACHHANG();
public void Nhap()
{
//KHACHHANG kh = new KHACHHANG();
Console.Write("Nhap thong tin khach hang. Nhap ky tu bat ky (Khong phai so) de ket thuc.
");
do
{
try
{
Console.Write("Khach trong nuoc (1) hay nuoc ngoai (2) ??");
chon = Convert.ToInt32(Console.ReadLine());
if (chon == 1)
kh = new TRONGNUOC();
else kh = new NUOCNGOAI();
kh.Nhap();
tt = true;
}
catch (FormatException)
{
Console.Write("
Ket thuc nhap.
");
tt = false;
}
i = i + 1;
} while (tt==true);
}
// public void Nhapks()
// {
// ks.Add();
//}
public double Tongtien()
{
for (i = 0; i < ks.Count; i++)
s += kh.Tinhtien();
return s;
}
public void Xuat()
{
Console.Write("Tong thu nhap trong ngay cua khach san la {0} dong. ", Tongtien());
}
}
class Program
{
static void Main(string[] args)
{
KHACHSAN a = new KHACHSAN();
a.Nhap();
a.Xuat();
Console.ReadLine();
}
}
}
Mong nhận được sự giúp đỡ của các anh chị và các bạn. Chân thành cảm ơn ạ.
Thanh lý pallet nhựa cũ Đaklak Trải dài trên vùng đất Daklak, những chiếc pallet nhựa cũ Đaklak nằm rải rác như những bức tranh tĩnh lặng, kể lể về những chặng đường mà chúng đã đi qua. Những đường...
Thanh lý pallet nhựa cũ Đaklak