Đề bài
Viết một chương trình để quản lý hóa đơn bán hàng bao gồm các lớp sau:
Lớp SanPham:
Thuộc tính:
ten: tên sản phẩm.
maSanPham: mã sản phẩm.
gia: giá của sản phẩm.
Phương thức:
hienThiThongTin(): hiển thị thông tin của sản phẩm.
Lớp ChiTietHoaDon:
Thuộc tính:
sanPham: đối tượng sản phẩm.
soLuong: số lượng sản phẩm.
Phương thức:
tinhTongTien(): tính tổng tiền cho chi tiết hóa đơn.
hienThiChiTiet(): hiển thị thông tin chi tiết của hóa đơn.
Lớp HoaDon:
Thuộc tính:
soHoaDon: số hóa đơn.
ngayLap: ngày lập hóa đơn.
danhSachChiTiet: danh sách các chi tiết hóa đơn.
Phương thức:
themChiTiet(ChiTietHoaDon chiTiet): thêm một chi tiết vào hóa đơn.
tinhTongHoaDon(): tính tổng số tiền của hóa đơn.
hienThiHoaDon(): hiển thị thông tin của hóa đơn và các chi tiết của nó.
Yêu cầu:
Viết chương trình chính để thử nghiệm các phương thức trên.
Hiển thị menu cho người dùng lựa chọn các chức năng: thêm sản phẩm, thêm chi tiết hóa đơn, tính tổng hóa đơn và hiển thị hóa đơn.
Cách làm
using System;
using System.Collections.Generic;
// Lop SanPham
public class SanPham
{
public string ten { get; set; }
public string maSanPham { get; set; }
public double gia { get; set; }
// Hien thi thong tin san pham
public void hienThiThongTin()
{
Console.WriteLine($"Ten: {ten}");
Console.WriteLine($"Ma San Pham: {maSanPham}");
Console.WriteLine($"Gia: {gia}");
}
}
// Lop ChiTietHoaDon
public class ChiTietHoaDon
{
public SanPham sanPham { get; set; }
public int soLuong { get; set; }
// Tinh tong tien cho chi tiet hoa don
public double tinhTongTien()
{
return sanPham.gia * soLuong;
}
// Hien thi chi tiet hoa don
public void hienThiChiTiet()
{
sanPham.hienThiThongTin();
Console.WriteLine($"So Luong: {soLuong}");
Console.WriteLine($"Tong Tien: {tinhTongTien()}");
}
}
// Lop HoaDon
public class HoaDon
{
public string soHoaDon { get; set; }
public DateTime ngayLap { get; set; }
private List<ChiTietHoaDon> danhSachChiTiet = new List<ChiTietHoaDon>();
// Them chi tiet vao hoa don
public void themChiTiet(ChiTietHoaDon chiTiet)
{
danhSachChiTiet.Add(chiTiet);
}
// Tinh tong so tien cua hoa don
public double tinhTongHoaDon()
{
double tongTien = 0;
foreach (ChiTietHoaDon chiTiet in danhSachChiTiet)
{
tongTien += chiTiet.tinhTongTien();
}
return tongTien;
}
// Hien thi thong tin hoa don
public void hienThiHoaDon()
{
Console.WriteLine($"So Hoa Don: {soHoaDon}");
Console.WriteLine($"Ngay Lap: {ngayLap.ToShortDateString()}");
Console.WriteLine("Danh Sach Chi Tiet Hoa Don:");
foreach (ChiTietHoaDon chiTiet in danhSachChiTiet)
{
chiTiet.hienThiChiTiet();
Console.WriteLine();
}
Console.WriteLine($"Tong Hoa Don: {tinhTongHoaDon()}");
}
}
class Program
{
static void Main()
{
// Tao san pham
SanPham sp1 = new SanPham { ten = "San Pham A", maSanPham = "SP001", gia = 100 };
SanPham sp2 = new SanPham { ten = "San Pham B", maSanPham = "SP002", gia = 150 };
// Tao chi tiet hoa don
ChiTietHoaDon chiTiet1 = new ChiTietHoaDon { sanPham = sp1, soLuong = 2 };
ChiTietHoaDon chiTiet2 = new ChiTietHoaDon { sanPham = sp2, soLuong = 1 };
// Tao hoa don
HoaDon hoaDon = new HoaDon { soHoaDon = "HD001", ngayLap = DateTime.Now };
hoaDon.themChiTiet(chiTiet1);
hoaDon.themChiTiet(chiTiet2);
// Hien thi hoa don
Console.WriteLine("Thong tin hoa don:");
hoaDon.hienThiHoaDon();
}
}