BÀI TẬP LỚN - ĐỀ SỐ 01 - IT05 - EHOU - năm học 2024 … #include #include #include #include using namespace std; struct MyPham { int id; string ten; double gia; }; struct HoaDon { int id; string ten_khach_hang; vector ds_my_pham; }; class QuanLyMyPham {
Trang 1BÀI TẬP LỚN - ĐỀ SỐ 01 - IT05 - EHOU - năm học 2024 …#include <iostream>
#include <string>#include <vector>#include <algorithm>using namespace std;
struct MyPham { int id;
string ten; double gia;};
struct HoaDon { int id;
string ten_khach_hang;
vector<MyPham> ds_my_pham;};
class QuanLyMyPham {private:
vector<MyPham> ds_my_pham; vector<HoaDon> ds_hoa_don;
void nhapMyPham() { MyPham mp;
cout << "Nhap ID my pham: "; cin >> mp.id;
cout << "Nhap ten my pham: "; cin.ignore();
getline(cin, mp.ten);
Trang 2cout << "Nhap gia my pham: "; cin >> mp.gia;
ds_my_pham.push_back(mp); }
cout << "Nhap ID hoa don: "; cin >> hd.id;
cout << "Nhap ten khach hang: "; cin.ignore();
getline(cin, hd.ten_khach_hang); int so_luong;
cout << "Nhap so luong my pham: "; cin >> so_luong;
for (int i = 0; i < so_luong; ++i) { MyPham mp;
cout << "Nhap ID my pham: "; cin >> mp.id;
cout << "Nhap ten my pham: "; cin.ignore();
getline(cin, mp.ten);
cout << "Nhap gia my pham: "; cin >> mp.gia;
hd.ds_my_pham.push_back(mp);
Trang 3}
ds_hoa_don.push_back(hd); }
void suaMyPham(int id) {
for (size_t i = 0; i < ds_my_pham.size(); ++i) { if (ds_my_pham[i].id == id) {
cout << "Nhap ten moi: "; cin.ignore();
getline(cin, ds_my_pham[i].ten); cout << "Nhap gia moi: "; cin >> ds_my_pham[i].gia; return;
} }
cout << "Khong tim thay my pham voi ID nay!" << endl; }
void xoaMyPham(int id) {
for (size_t i = 0; i < ds_my_pham.size(); ++i) { if (ds_my_pham[i].id == id) {
Trang 4ds_my_pham.erase(ds_my_pham.begin() + i); cout << "Xoa thanh cong!" << endl;
return; }
}
cout << "Khong tim thay my pham voi ID nay!" << endl; }
void timKiemMyPham(int id) {
for (size_t i = 0; i < ds_my_pham.size(); ++i) { if (ds_my_pham[i].id == id) {
MyPham mp = ds_my_pham[i];
cout << "ID: " << mp.id << ", Ten: " << mp.ten << ", Gia: " << mp.gia << endl; return;
} }
cout << "Khong tim thay my pham voi ID nay!" << endl; }
static bool soSanhTheoGia(MyPham a, MyPham b) { return a.gia < b.gia;
}
void sapXepMyPhamTheoGia() {
sort(ds_my_pham.begin(), ds_my_pham.end(), soSanhTheoGia); cout << "Danh sach my pham sau khi sap xep theo gia:" << endl; inDanhSachMyPham();
}
void tongGiaTriMyPham() { double tong = 0;
for (size_t i = 0; i < ds_my_pham.size(); ++i) {
Trang 5tong += ds_my_pham[i].gia; }
cout << "Tong gia tri cac my pham: " << tong << endl; }
void trungBinhGiaTriMyPham() { if (ds_my_pham.empty()) {
cout << "Khong co my pham nao trong danh sach!" << endl; return;
}
cout << "So luong my pham co gia tren hoac bang " << gia << " la: " << dem << endl; }
};
Trang 6int main() {
QuanLyMyPham ql; int chon;
ql.nhapMyPham(); break;
case 2:
ql.inDanhSachMyPham(); break;
case 3:
ql.themHoaDon(); break;
case 4:
ql.inDanhSachHoaDon(); break;
case 5: int id_sua;
cout << "Nhap ID my pham can sua: "; cin >> id_sua;
ql.suaMyPham(id_sua); break;
case 6: int id_xoa;
Trang 7cout << "Nhap ID my pham can xoa: "; cin >> id_xoa;
ql.xoaMyPham(id_xoa); break;
case 7: int id_tim;
cout << "Nhap ID my pham can tim: "; cin >> id_tim;
ql.timKiemMyPham(id_tim); break;
case 8:
ql.sapXepMyPhamTheoGia(); break;
case 9:
ql.tongGiaTriMyPham(); break;
case 10:
ql.trungBinhGiaTriMyPham(); break;
case 11:
ql.demSoLuongMyPham(); break;
case 12: double gia;
cout << "Nhap gia de thong ke: "; cin >> gia;
ql.thongKeMyPhamTheoGia(gia); break;
}
} while (chon != 0); return 0;
}
Trang 8BÀI TẬP LỚN 2 IT 05 #include <iostream>#include <string>#include <vector>#include <algorithm>using namespace std;
struct MyPham { int id;
string ten; double gia;};
struct HoaDon { int id;
string ten_khach_hang;
vector<MyPham> ds_my_pham;};
class QuanLyMyPham {private:
vector<MyPham> ds_my_pham; vector<HoaDon> ds_hoa_don;
void nhapMyPham() { MyPham mp;
cout << "Nhap ID my pham: "; cin >> mp.id;
cout << "Nhap ten my pham: "; cin.ignore();
getline(cin, mp.ten);
Trang 9cout << "Nhap gia my pham: "; cin >> mp.gia;
ds_my_pham.push_back(mp); }
cout << "Nhap ID hoa don: "; cin >> hd.id;
cout << "Nhap ten khach hang: "; cin.ignore();
getline(cin, hd.ten_khach_hang); int so_luong;
cout << "Nhap so luong my pham: "; cin >> so_luong;
for (int i = 0; i < so_luong; ++i) { MyPham mp;
cout << "Nhap ID my pham: "; cin >> mp.id;
cout << "Nhap ten my pham: "; cin.ignore();
getline(cin, mp.ten);
cout << "Nhap gia my pham: "; cin >> mp.gia;
hd.ds_my_pham.push_back(mp);
Trang 10}
ds_hoa_don.push_back(hd); }
void suaMyPham(int id) {
for (size_t i = 0; i < ds_my_pham.size(); ++i) { if (ds_my_pham[i].id == id) {
cout << "Nhap ten moi: "; cin.ignore();
getline(cin, ds_my_pham[i].ten); cout << "Nhap gia moi: "; cin >> ds_my_pham[i].gia; return;
} }
cout << "Khong tim thay my pham voi ID nay!" << endl; }
void xoaMyPham(int id) {
for (size_t i = 0; i < ds_my_pham.size(); ++i) { if (ds_my_pham[i].id == id) {
Trang 11ds_my_pham.erase(ds_my_pham.begin() + i); cout << "Xoa thanh cong!" << endl;
return; }
}
cout << "Khong tim thay my pham voi ID nay!" << endl; }
void timKiemMyPham(int id) {
for (size_t i = 0; i < ds_my_pham.size(); ++i) { if (ds_my_pham[i].id == id) {
MyPham mp = ds_my_pham[i];
cout << "ID: " << mp.id << ", Ten: " << mp.ten << ", Gia: " << mp.gia << endl; return;
} }
cout << "Khong tim thay my pham voi ID nay!" << endl; }
static bool soSanhTheoGia(MyPham a, MyPham b) { return a.gia < b.gia;
}
void sapXepMyPhamTheoGia() {
sort(ds_my_pham.begin(), ds_my_pham.end(), soSanhTheoGia); cout << "Danh sach my pham sau khi sap xep theo gia:" << endl; inDanhSachMyPham();
}
void tongGiaTriMyPham() { double tong = 0;
for (size_t i = 0; i < ds_my_pham.size(); ++i) {
Trang 12tong += ds_my_pham[i].gia; }
cout << "Tong gia tri cac my pham: " << tong << endl; }
void trungBinhGiaTriMyPham() { if (ds_my_pham.empty()) {
cout << "Khong co my pham nao trong danh sach!" << endl; return;
}
cout << "So luong my pham co gia tren hoac bang " << gia << " la: " << dem << endl; }
};
Trang 13int main() {
QuanLyMyPham ql; int chon;
ql.nhapMyPham(); break;
case 2:
ql.inDanhSachMyPham(); break;
case 3:
ql.themHoaDon(); break;
case 4:
ql.inDanhSachHoaDon(); break;
case 5: int id_sua;
cout << "Nhap ID my pham can sua: "; cin >> id_sua;
ql.suaMyPham(id_sua); break;
case 6: int id_xoa;
Trang 14cout << "Nhap ID my pham can xoa: "; cin >> id_xoa;
ql.xoaMyPham(id_xoa); break;
case 7: int id_tim;
cout << "Nhap ID my pham can tim: "; cin >> id_tim;
ql.timKiemMyPham(id_tim); break;
case 8:
ql.sapXepMyPhamTheoGia(); break;
case 9:
ql.tongGiaTriMyPham(); break;
case 10:
ql.trungBinhGiaTriMyPham(); break;
case 11:
ql.demSoLuongMyPham(); break;
case 12: double gia;
cout << "Nhap gia de thong ke: "; cin >> gia;
ql.thongKeMyPhamTheoGia(gia); break;
}
} while (chon != 0); return 0;
}
Trang 15BÀI TẬP LỚN ĐỀ SỐ 03 - IT05 - EHOU#include <iostream>
#include <string>#include <vector>#include <algorithm>using namespace std;
struct DienThoai { int id;
string ten; string hang; double gia;};
struct HoaDon { int id;
string ten_khach_hang;
vector<DienThoai> ds_dien_thoai;};
class QuanLyDienThoai {private:
vector<DienThoai> ds_dien_thoai; vector<HoaDon> ds_hoa_don;
void nhapDienThoai() { DienThoai dt;
cout << "Nhap ID dien thoai: "; cin >> dt.id;
cout << "Nhap ten dien thoai: "; cin.ignore();
Trang 16void themHoaDon() { HoaDon hd;
cout << "Nhap ID hoa don: "; cin >> hd.id;
cout << "Nhap ten khach hang: "; cin.ignore();
getline(cin, hd.ten_khach_hang); int so_luong;
cout << "Nhap so luong dien thoai: "; cin >> so_luong;
for (int i = 0; i < so_luong; ++i) { DienThoai dt;
cout << "Nhap ID dien thoai: "; cin >> dt.id;
cout << "Nhap ten dien thoai: "; cin.ignore();
getline(cin, dt.ten);
Trang 17cout << "Nhap hang dien thoai: "; getline(cin, dt.hang);
cout << "Nhap gia dien thoai: "; cin >> dt.gia;
hd.ds_dien_thoai.push_back(dt); }
ds_hoa_don.push_back(hd); }
void suaDienThoai(int id) {
for (size_t i = 0; i < ds_dien_thoai.size(); ++i) { if (ds_dien_thoai[i].id == id) {
cout << "Nhap ten moi: "; cin.ignore();
getline(cin, ds_dien_thoai[i].ten); cout << "Nhap hang moi: "; getline(cin, ds_dien_thoai[i].hang); cout << "Nhap gia moi: ";
cin >> ds_dien_thoai[i].gia; return;
}
Trang 18}
cout << "Khong tim thay dien thoai voi ID nay!" << endl; }
void xoaDienThoai(int id) {
for (size_t i = 0; i < ds_dien_thoai.size(); ++i) { if (ds_dien_thoai[i].id == id) {
ds_dien_thoai.erase(ds_dien_thoai.begin() + i); cout << "Xoa thanh cong!" << endl;
return; }
}
cout << "Khong tim thay dien thoai voi ID nay!" << endl; }
void timKiemDienThoai(int id) {
for (size_t i = 0; i < ds_dien_thoai.size(); ++i) { if (ds_dien_thoai[i].id == id) {
DienThoai dt = ds_dien_thoai[i];
cout << "ID: " << dt.id << ", Ten: " << dt.ten << ", Hang: " << dt.hang << ", Gia: " << dt.gia << endl;
return; }
Trang 19cout << "Danh sach dien thoai sau khi sap xep theo gia:" << endl; inDanhSachDienThoai();
}
void tongGiaTriDienThoai() { double tong = 0;
for (size_t i = 0; i < ds_dien_thoai.size(); ++i) { tong += ds_dien_thoai[i].gia;
}
cout << "Tong gia tri cac dien thoai: " << tong << endl; }
void trungBinhGiaTriDienThoai() { if (ds_dien_thoai.empty()) {
cout << "Khong co dien thoai nao trong danh sach!" << endl; return;
Trang 20dem++; }
ql.nhapDienThoai(); break;
case 2:
ql.inDanhSachDienThoai(); break;
case 3:
ql.themHoaDon(); break;
case 4:
ql.inDanhSachHoaDon(); break;
case 5:
Trang 21int id_sua;
cout << "Nhap ID dien thoai can sua: "; cin >> id_sua;
ql.suaDienThoai(id_sua); break;
case 6: int id_xoa;
cout << "Nhap ID dien thoai can xoa: "; cin >> id_xoa;
ql.xoaDienThoai(id_xoa); break;
case 7: int id_tim;
cout << "Nhap ID dien thoai can tim: "; cin >> id_tim;
ql.timKiemDienThoai(id_tim); break;
case 8:
ql.sapXepDienThoaiTheoGia(); break;
case 9:
ql.tongGiaTriDienThoai(); break;
case 10:
ql.trungBinhGiaTriDienThoai(); break;
case 11:
ql.demSoLuongDienThoai(); break;
case 12: double gia;
cout << "Nhap gia de thong ke: ";
Trang 22cin >> gia;
ql.thongKeDienThoaiTheoGia(gia); break;
}
} while (chon != 0); return 0;
ĐỀ SỐ 4 - BTL - IT05 - EHOU#include <iostream>
#include <string>#include <vector>#include <algorithm>using namespace std;
struct MonHoc { int id;
string ten; double diem;};
struct SinhVien { int id;
string ten;
vector<MonHoc> ds_mon_hoc;};
class QuanLyDiem {private:
vector<SinhVien> ds_sinh_vien;
void nhapSinhVien() {
Trang 23cout << "Nhap so luong mon hoc: "; cin >> so_mon_hoc;
for (int i = 0; i < so_mon_hoc; ++i) { MonHoc mh;
cout << "Nhap ID mon hoc: "; cin >> mh.id;
cout << "Nhap ten mon hoc: "; cin.ignore();
getline(cin, mh.ten);
cout << "Nhap diem mon hoc: "; cin >> mh.diem;
sv.ds_mon_hoc.push_back(mh); }
ds_sinh_vien.push_back(sv); }
cout << "\tID Mon Hoc: " << mh.id << ", Ten: " << mh.ten << ", Diem: " << mh.diem << endl;
} }
Trang 24}
void themMonHoc(int id_sinh_vien) {
for (size_t i = 0; i < ds_sinh_vien.size(); ++i) { if (ds_sinh_vien[i].id == id_sinh_vien) { MonHoc mh;
cout << "Nhap ID mon hoc: "; cin >> mh.id;
cout << "Nhap ten mon hoc: "; cin.ignore();
getline(cin, mh.ten);
cout << "Nhap diem mon hoc: "; cin >> mh.diem;
ds_sinh_vien[i].ds_mon_hoc.push_back(mh); return;
} }
cout << "Khong tim thay sinh vien voi ID nay!" << endl; }
void suaDiemMonHoc(int id_sinh_vien, int id_mon_hoc) { for (size_t i = 0; i < ds_sinh_vien.size(); ++i) {
if (ds_sinh_vien[i].id == id_sinh_vien) {
for (size_t j = 0; j < ds_sinh_vien[i].ds_mon_hoc.size(); ++j) { if (ds_sinh_vien[i].ds_mon_hoc[j].id == id_mon_hoc) { cout << "Nhap diem moi: ";
cin >> ds_sinh_vien[i].ds_mon_hoc[j].diem; return;
} } } }
Trang 25cout << "Khong tim thay sinh vien hoac mon hoc voi ID nay!" << endl; }
void xoaMonHoc(int id_sinh_vien, int id_mon_hoc) { for (size_t i = 0; i < ds_sinh_vien.size(); ++i) { if (ds_sinh_vien[i].id == id_sinh_vien) {
for (size_t j = 0; j < ds_sinh_vien[i].ds_mon_hoc.size(); ++j) { if (ds_sinh_vien[i].ds_mon_hoc[j].id == id_mon_hoc) {
ds_sinh_vien[i].ds_mon_hoc.erase(ds_sinh_vien[i].ds_mon_hoc.begin() + j); cout << "Xoa thanh cong!" << endl;
return; }
} } }
cout << "Khong tim thay sinh vien hoac mon hoc voi ID nay!" << endl; }
void timKiemSinhVien(int id) {
for (size_t i = 0; i < ds_sinh_vien.size(); ++i) { if (ds_sinh_vien[i].id == id) {
SinhVien sv = ds_sinh_vien[i];
cout << "ID: " << sv.id << ", Ten: " << sv.ten << endl; for (size_t j = 0; j < sv.ds_mon_hoc.size(); ++j) { MonHoc mh = sv.ds_mon_hoc[j];
cout << "\tID Mon Hoc: " << mh.id << ", Ten: " << mh.ten << ", Diem: " << mh.diem <<endl;
} return; }
}
cout << "Khong tim thay sinh vien voi ID nay!" << endl; }
Trang 26static bool soSanhTheoDiem(MonHoc a, MonHoc b) { return a.diem < b.diem;
}
void sapXepMonHocTheoDiem(int id_sinh_vien) { for (size_t i = 0; i < ds_sinh_vien.size(); ++i) { if (ds_sinh_vien[i].id == id_sinh_vien) {
sort(ds_sinh_vien[i].ds_mon_hoc.begin(), ds_sinh_vien[i].ds_mon_hoc.end(), soSanhTheoDiem);
cout << "Danh sach mon hoc sau khi sap xep theo diem:" << endl; for (size_t j = 0; j < ds_sinh_vien[i].ds_mon_hoc.size(); ++j) { MonHoc mh = ds_sinh_vien[i].ds_mon_hoc[j];
cout << "\tID Mon Hoc: " << mh.id << ", Ten: " << mh.ten << ", Diem: " << mh.diem <<endl;
} return; }
Trang 27cout << "Khong tim thay sinh vien voi ID nay!" << endl; }
void trungBinhDiemSinhVien(int id_sinh_vien) { double tong = 0;
int so_mon_hoc = 0;
for (size_t i = 0; i < ds_sinh_vien.size(); ++i) { if (ds_sinh_vien[i].id == id_sinh_vien) {
so_mon_hoc = ds_sinh_vien[i].ds_mon_hoc.size(); for (size_t j = 0; j < so_mon_hoc; ++j) {
tong += ds_sinh_vien[i].ds_mon_hoc[j].diem; }
cout << "Diem trung binh cua sinh vien: " << tong / so_mon_hoc << endl; return;
} }
cout << "Khong tim thay sinh vien voi ID nay!" << endl; }
void demSoLuongMonHoc(int id_sinh_vien) { for (size_t i = 0; i < ds_sinh_vien.size(); ++i) { if (ds_sinh_vien[i].id == id_sinh_vien) {
cout << "So luong mon hoc cua sinh vien: " << ds_sinh_vien[i].ds_mon_hoc.size() << endl; return;
} }
cout << "Khong tim thay sinh vien voi ID nay!" << endl; }
void thongKeMonHocTheoDiem(int id_sinh_vien, double diem) { int dem = 0;
for (size_t i = 0; i < ds_sinh_vien.size(); ++i) {
Trang 28if (ds_sinh_vien[i].id == id_sinh_vien) {
for (size_t j = 0; j < ds_sinh_vien[i].ds_mon_hoc.size(); ++j) { if (ds_sinh_vien[i].ds_mon_hoc[j].diem >= diem) {
dem++; }
}
cout << "So luong mon hoc co diem tren hoac bang " << diem << " la: " << dem << endl; return;
} }
cout << "Khong tim thay sinh vien voi ID nay!" << endl; }
int main() {
QuanLyDiem ql; int chon;
ql.nhapSinhVien(); break;
case 2:
ql.inDanhSachSinhVien(); break;
case 3: int id_sv;
Trang 29cout << "Nhap ID sinh vien: "; cin >> id_sv;
ql.themMonHoc(id_sv); break;
case 4:
int id_sv_sua, id_mh_sua; cout << "Nhap ID sinh vien: "; cin >> id_sv_sua;
cout << "Nhap ID mon hoc: "; cin >> id_mh_sua;
ql.suaDiemMonHoc(id_sv_sua, id_mh_sua); break;
case 5:
int id_sv_xoa, id_mh_xoa; cout << "Nhap ID sinh vien: "; cin >> id_sv_xoa;
cout << "Nhap ID mon hoc: "; cin >> id_mh_xoa;
ql.xoaMonHoc(id_sv_xoa, id_mh_xoa); break;
case 6: int id_tim;
cout << "Nhap ID sinh vien: "; cin >> id_tim;
ql.timKiemSinhVien(id_tim); break;
Trang 30case 11:
int id_sv_thk; double diem_thk;
cout << "Nhap ID sinh vien: "; cin >> id_sv_thk;
cout << "Nhap diem de thong ke: "; cin >> diem_thk;
ql.thongKeMonHocTheoDiem(id_sv_thk, diem_thk); break;
}
} while (chon != 0); return 0;
ĐỀ SỐ 5 - BTL - IT05 - EHOU
Trang 31#include <iostream>#include <string>#include <vector>#include <algorithm>using namespace std;
struct Sach { int id; string ten; string tac_gia; int nam_xuat_ban;};
struct PhieuMuon { int id;
string ten_nguoi_muon; vector<Sach> ds_sach; string ngay_muon; string ngay_tra;};
class QuanLyThuVien {private:
vector<Sach> ds_sach;
vector<PhieuMuon> ds_phieu_muon;
void nhapSach() { Sach s;
cout << "Nhap ID sach: "; cin >> s.id;
cout << "Nhap ten sach: ";
Trang 32cin.ignore(); getline(cin, s.ten);
cout << "Nhap ten tac gia: "; getline(cin, s.tac_gia);
cout << "Nhap nam xuat ban: "; cin >> s.nam_xuat_ban;
ds_sach.push_back(s); }
void themPhieuMuon() { PhieuMuon pm;
cout << "Nhap ID phieu muon: "; cin >> pm.id;
cout << "Nhap ten nguoi muon: "; cin.ignore();
Trang 33cout << "Nhap ID sach: "; cin >> s.id;
cout << "Nhap ten sach: "; cin.ignore();
ds_phieu_muon.push_back(pm); }
void suaSach(int id) {
for (size_t i = 0; i < ds_sach.size(); ++i) { if (ds_sach[i].id == id) {
cout << "Nhap ten moi: "; cin.ignore();
getline(cin, ds_sach[i].ten);
Trang 34cout << "Nhap ten tac gia moi: "; getline(cin, ds_sach[i].tac_gia); cout << "Nhap nam xuat ban moi: "; cin >> ds_sach[i].nam_xuat_ban; return;
} }
cout << "Khong tim thay sach voi ID nay!" << endl; }
void xoaSach(int id) {
for (size_t i = 0; i < ds_sach.size(); ++i) { if (ds_sach[i].id == id) {
ds_sach.erase(ds_sach.begin() + i); cout << "Xoa thanh cong!" << endl; return;
} }
cout << "Khong tim thay sach voi ID nay!" << endl; }
void timKiemSach(int id) {
for (size_t i = 0; i < ds_sach.size(); ++i) { if (ds_sach[i].id == id) {
Sach s = ds_sach[i];
cout << "ID: " << s.id << ", Ten: " << s.ten << ", Tac gia: " << s.tac_gia << ", Nam xuat ban: " << s.nam_xuat_ban << endl;
return; }
}
cout << "Khong tim thay sach voi ID nay!" << endl; }
Trang 35static bool soSanhTheoNamXuatBan(Sach a, Sach b) { return a.nam_xuat_ban < b.nam_xuat_ban;
}
void sapXepSachTheoNamXuatBan() {
sort(ds_sach.begin(), ds_sach.end(), soSanhTheoNamXuatBan); cout << "Danh sach sach sau khi sap xep theo nam xuat ban:" << endl; inDanhSachSach();
cout << "Khong co sach nao trong danh sach!" << endl; return;
}
double tong = 0;
for (size_t i = 0; i < ds_sach.size(); ++i) { tong += ds_sach[i].nam_xuat_ban; }
cout << "Nam xuat ban trung binh cua cac sach: " << tong / ds_sach.size() << endl; }