Xây dựng hệ thống quản lý thẻ của ngân hàng gồm các chức năng: -Thêm, sửa, xóa một thẻ -Tìm kiếm thẻ theo tên khách hàng, ngày mở thẻ -Thống kê danh sách các thẻ có phí duy trì 1 tháng l
Trang 1ĐẠI HỌC BÁCH KHOA HÀ NỘI
VIỆN ĐIỆN TỬ - VIỄN THÔNG
o0o
BÁO CÁO BÀI TẬP LỚN KĨ THUẬT LẬP TRÌNH
C/C++
TOPIC: Quản lý thẻ ngân hàng
Giảng viên hướng dẫn: Nguyễn Thanh
Bình Sinh viên thực hiện:
Nhóm 09:
Nguyễn Ngọc Bách 20213815
Trang 2Hà Nội, 04/2024
MỤC LỤC
1 Giới thiệu bài toán 4
2 Phân tích bài toán, mô tả hoạt động, phân tích dữ liệu 5
3 Thiết kế lớp 13
4 Triển khai hệ thống 14
5 Tự đánh giá, hạn chế 18
Trang 31 Giới thiệu bài toán
MỞ ĐẦU
Quản lý thẻ ngân hàng:
Một ngân hàng mở phục vụ khách hàng hai thẻ ngân hàng, là loại cơ bản và loại nâng cao Thông tin về thẻ gồm tên khách hàng, số CMND, ngày mở thẻ,
số dư trong thẻ Mỗi thẻ sẽ phải nộp phí duy trì Với loại cơ bản, phí duy trì 1 tháng = 0.5% số dư trong thẻ Với loại nâng cao, phí duy trì 1 tháng = 1% số
dư thẻ + 20.000đ Xây dựng hệ thống quản lý thẻ của ngân hàng gồm các chức năng:
-Thêm, sửa, xóa một thẻ -Tìm kiếm thẻ theo tên khách hàng, ngày mở thẻ -Thống kê danh sách các thẻ có phí duy trì 1 tháng lớn hơn 1 số nhập vào -Cập nhật lại tỉ lệ % phí duy trì theo tháng và phí tăng lên cho các loại thẻ khi
có yêu cầu
-Tính doanh thu từ phí duy trì thẻ của ngân hàng trong một khoảng thời gian nhập vào(từ ngày/tháng/năm đến ngày/tháng/năm)
Trang 42 Phân tích bài toán, mô tả hoạt động, phân tích dữ liệu 2.1 Phân tích bài toán
Xác định các đối tượng:
(Số dư *0,5%)*số tháng
Ngân
Thẻ Nâng cao
1 Class Ngay
Phí duy trì = (Số dư*1%+20000)*số tháng
- Thuộc tính(private): int ngay,thang,nam
- Phương thức:
+ Constructer + bool operator>=(const Ngay &);
bool operator<=(const Ngay &);
bool operator==(const Ngay &);
+Nhap +Xuat +int TinhSoThang(const Ngay &ngay) const Class TheNganHang
- Thuộc tính(Protected):
string maThe;
string tenKhachHang;
string soCMND;
Ngay ngayMoThe;
long long soDuTrongThe;
float phanTramPhiDuyTri;
-Phương thức:
+ constructer, destructer + string MaThe();
string TenKhachHang();
string SoCMND();
Ngay NgayMoThe();
long long SoDuTrongThe();
void Nhap();
void Xuat();
void CapNhatPhanTramPhiDuyTruy(float tilephantram);
+ Hàm ảo: virtual double PhiDuyTri() = 0;
Trang 5virtual string LoaiThe() = 0;
Trang 6Cho phép các phương thức của lớp con có thể nạp chồng lại được
2 Class Thecoban kế thừa từ class TheNganHang
- Constructor: TheCoBan(){phanTramPhiDuyTri = 0.5;}
Hàm khởi tạo trả về phí duy trì
- void Nhap();
void Xuat();
double PhiDuyTri();
string LoaiThe();
3 Class TheNangCao kế thừa từ class TheNganHang
- Constructer: TheNangCao(){phanTramPhiDuyTri = 1;}
Hàm khởi tạo trả về phí duy trì
- void Nhap();
void Xuat();
double PhiDuyTri();
string LoaiThe();
4 Class DanhSachTheNganHang
public:
TheNganHang *dsTheNganHang[MAX]; //Mảng danh sách thẻ ngân hà Int slThe; // Khai báo số lượng thẻ
Constructor : DanhSachTheNganHang(){slThe = 0;}
Hàm khởi tạo trả về số lượng thẻ =0 Destructor: ~DanhSachTheNganHang() {for (int i = 0; i < slThe; i++)} delete dsTheNganHang[i];
Hàm hủy xóa danh sách thẻ ngân hàng Hàm Nhập, xuất danh sách:
void NhapDS();
void XuatDS();
Hàm thêm, xóa, sửa danh sách:
void Them();
void Xoa();
void Sua();
Hàm tìm kiếm thẻ theo tên:
void TimKiemTheoTen();
Hàm tìm kiếm nhân viên theo ngày mở thẻ
void TimKiemTheoNgay();
Hàm Thống kê danh sách có phí duy trì lớn hơn 1 số nhập vào:
void ThongKeDanhSachPhiDuyTri();
Hàm cập nhật lại tỉ lệ phần trăm:
void CapNhatLaiTiLePhanTram();
Hàm Tính doanh thu theo khoảng thời gian:
void TinhDanhThuTheoKhoangThoiGian();
Trang 72.2 Mô tả hoạt động
1 Chỉnh sửa thẻ ngân hàng (thêm, sửa, xóa thẻ) Thuật toán:
- Nhập vào tên,mã thẻ, số CMND, ngày mở thẻ, số dư trong thẻ để chỉnh sửa
- Dùng vòng lặp và câu lệnh so sánh, nếu từ khóa truyền vào trùng với dữ liệu đã có thì sẽ hiện ra để thao tác chỉnh sửa
- Thêm: Nhập vào thông tin thẻ mới., dùng câu lệch điều kiện để phân loại
cơ bản và nâng cao
- Sửa: Nhập lại thông tin thẻ mới
- Xóa: Nhập mã thẻ muốn xóa, nếu tồn tại mã thẻ sẽ xóa khỏi danh sách, nếu không tồn tại sẽ hiện “Không tìm thấy mã thẻ”
2 Tìm kiếm thẻ theo tên, ngày mở thẻ Thuật toán:
- Nhập vào tên, ngày mở thẻ để tìm kiếm
- Dùng vòng lặp và câu lệnh so sánh nếu từ khóa truyền vào trùng với dữ liệu thì sẽ hiển thị ra màn hình thông tin thẻ của khách hàng nếu không sẽ hiển thị không tìm thấy
3 Thống kê danh sách các thẻ có phí duy trì 1 tháng lớn hơn 1 số nhập vào Thuật toán:
- Nhập vào phí duy trì
- Dùng vòng lặp để so sánh danh sách phí duy trì trong danh sách và phí đã nhập sau đó hiện ra danh sách thỏa mãn
4 Cập nhật lại tỉ lệ % phí duy trì theo tháng và phí tăng lên cho các loại thẻ khi
có yêu cầu
Thuật toán:
- Nhập vào phần trăm phí duy trì cần sửa
- Dùng câu lệnh do while để nhập vào loại thẻ cơ bản hoặc nâng cao
- Dùng vòng lặp để cập nhật lại phần trăm phí duy trì
5 Tính doanh thu từ phí duy trì thẻ của ngân hàng trong một khoảng thời gian nhập vào(từ ngày/tháng/năm đến ngày/tháng/năm)
Thuật toán
- Nhập vào ngày bắt đầu và ngày kết thúc
- Dùng câu lệch điều kiện để kiểm tra ngày bắt đầu < ngày kết thúc
- Dùng vòng lặp để tính doanh thu ngân hàng
Trang 82.3 Phân tích chi tiết bài toán
Class DanhSachTheNganHang có nhiệm vụ quản lý danh sách và thực thi các yêu cầu của bài toán Các phương thức của các class sẽ được liên kết với nhau và tập hợp các chức năng sẽ được class DanhSachTheNganHang
kế thừa và sự dụng lại
Nội dung các hàm thì sẽ rõ trong phần source code của nhóm nên bọn
em sẽ đem ra khung cơ bản của chương trình
Class Ngay
Trang 9Class TheNganHang
Class TheCoBan
Trang 10Class TheNangCao
Class DanhSachTheNganHang
Trang 11Hàm main chính chạy chương trình
Trang 123 Thiết kế
3.1 Thiết kế lớp (biểu đồ trong UML)
Trang 13Chú Thích
- class TheCoBan và TheNangCao là con của TheNganHang
- class TheNganHang và class DanhSachTheNganHang: mối quan hệ kết tập
4 Triển khai hệ thống
Thông tin thẻ ban đầu
Các chức năng
Trang 14Chức năng 1
Chức năng 2
Chức năng 3
Trang 15Chức năng 4
Chức năng 5
Trang 16Chức năng 6
Chức năng 7
Chức năng 8
Trang 175 Tự đánh giá, hạn chế
Trong quá trình làm, nhóm em chưa tìm ra được phương hướng giải quyết vấn đề giao diện đồ họa