lOMoARcPSD|14822991 **** ĐỀ TÀI: sử dụng các kiểu dữ liệu như ảnh, dữ liệu thuộc tính, dữ liệu text + Tối đa 1 nhóm làm báo cáo gồm: 2-3 thành viên + Thuật toán:Marketing 2 ngườicăncùng làm 1 thuật toán, nhưng khác bản (Đại học Điện lực) nhau về dữ liệu StuDocu is not sponsored or endorsed by any college or university Downloaded by Hoàng Anh (imbay2003@gmail.com) lOMoARcPSD|14822991 ĐỀ CƯƠNG ÔN TẬP MÔN Nguyên lý lập trình hướng đối tượng Kỳ 1 năm 2020-2021, Khoa Công nghệ thông tin, Đại học Điện lực Bài 1, Sinh viên hãy lập trình hướng đối tượng bằng C++ thực hiện các việc sau: - Xây dựng lớp PhuongTienGiaoThong (phương tiện giao thông): +) Thuộc tính: Hãng sản xuất (chuỗi ký tự), Tên phương tiện (chuỗi ký tự), Năm sản xuất (số nguyên), Vận tốc tối đa (float). +) Phương thức: Hàm thiết lập, hàm nhập, hàm xuất. - Xây dựng lớp OTo (ô tô) kế thừa lớp PhuongTienGiaoThong bổ sung thêm: Thuộc tính: Số chỗ ngồi (int), Kiểu động cơ (chuỗi ký tự),Số bánh xe(kiểu nguyên). Phương thức: - Hàm thiết lập, hàm huỷ bỏ, hàm nhập, hàm xuất.
- Vận tốc cơ sở: được tính bằng vận tốc tối đa chia cho số bánh. - Nạp chồng toán tử < (phương tiện giao thông có “Vận tốc cơ sở” nhỏ hơn thì nhỏ hơn). Chương trình chính: 1) Nhập từ bàn phím thông tin của một phương tiện giao thông PhuongTienGiaoThong. 2) Hiển thị thông tin của phương tiện giao thông vừa nhập ra màn hình.
3) Nhập thông tin cho n đối tượng OTO bao gồm: Hãng sản xuất, Tên phương tiện, Năm sản xuất, Vận tốc tối đa, số chỗ ngồi, kiểu động cơ. 4) In ra màn hình thông tin của n đối tượng OTO cùng với vận tốc cơ sở. 5) Sắp xếp danh sách các đối tượng OTO theo thứ tự giảm dần của vận tốc cơ sở. Downloaded by Hoàng Anh (imbay2003@gmail.com) lOMoARcPSD|14822991 #include<iostream> #include<string> #include<math.h> using namespace std; class ptgt{ protected: Downloaded by Hoàng Anh (imbay2003@gmail.com) lOMoARcPSD|14822991 string hsx; string tenpt; int namsx; float vttd; public: ptgt() { this->hsx=""; this->tenpt=""; this->namsx=0; this->vttd=0; } ~ptgt() { this->hsx; this->tenpt; this->namsx; this->vttd; } void nhap() { cout<<"\nNhap ten hang san xuat:";fflush(stdin); getline(cin,this->hsx); cout<<"\nNhap ten phuong tien:";fflush(stdin); getline(cin,this->tenpt); cout<<"\nNhap nam san xuat:";cin>>this->namsx; cout<<"\nNhap van toc toi da:"; cin>>this->vttd; Downloaded by Hoàng Anh (imbay2003@gmail.com) lOMoARcPSD|14822991 } void xuat() { cout<<"\nHang san xuat la:"<<hsx<<"\nPhuong tien:"<<tenpt<<"\nNam san xuat:"<<namsx<<"\nVan toc toi da:"<<vttd; } }; class oto:public ptgt { private: int sochongoi; string kdc; int sobanhxe; public: oto() { this->sochongoi=0; this->kdc=""; this->sobanhxe=0; } ~oto(){ this->sochongoi; this->kdc; this->sobanhxe; } void nhap1() { Downloaded by Hoàng Anh (imbay2003@gmail.com) lOMoARcPSD|14822991 ptgt::nhap(); cout<<"\nnhap so cho ngoi:";cin>>this->sochongoi; cout<<"\nNhap kieu dong co:";fflush(stdin); getline(cin,this->kdc); cout<<"\nNhap so banh xe:"; cin>>this->sobanhxe; } void xuat1() { ptgt::xuat(); cout<<"\nSo cho ngoi:"<<sochongoi<<"\nKieu dong co:"<<kdc<<"\nSo banh xe:"<<sobanhxe; } float vantoccoso() { return (vttd/sobanhxe); } friend int operator <(oto &a,oto &b) { if(a.vantoccoso()) return 1; else return 0; } }; int main() { ptgt pt; cout<<"\nNhap 1 doi tuong phuong tien giao thong:"; Downloaded by Hoàng Anh (imbay2003@gmail.com) lOMoARcPSD|14822991 pt.nhap(); cout<<"\nXuat doi tuong phuong tien giao thong:"; pt.vantoccoso(); } for(int i=0;i<n-1;i++) { for(int j=j+1;j<n;j++) { if(t[i]<t[j]) { tg=t[i]; t[i]=t[j]; t[j]=tg; } } } cout<<"\nDanh sach doi tuong sau khi sap xep la:"; Downloaded by Hoàng Anh (imbay2003@gmail.com) lOMoARcPSD|14822991 for(int i=0;i<n;i++) { t[i].vantoccoso(); } } Bài 2, Sinh viên hãy lập trình hướng đối tượng bằng C++ thực hiện các việc sau: Xây dựng lớp đối tượng NGUOI gồm: - Thành phần dữ liệu (Không cho phép truy cập từ ngoài class): mã định danh, họ tên người - Phương thức: o Hàm khởi tạo, hàm huỷ, hàm nhập, hàm xuất.
- Xây dựng lớp đối tượng NHANVIEN kế thừa từ lớp NGUOI có thêm o Thuộc tính thêm: năm sinh, hệ số lương o Thuộc tính tĩnh: tiền phụ cấp o Phương thức: hàm tạo đặt thông tin mặc định, hàm nhập, hàm xuất, hàm tính lương (=hệ số lương x 1550 + tiền phụ cấp) o Hàm nạp chồng toán tử > để so sánh hai Nhân viên theo hệ số lương (nhân viên có hệ số lương cao hơn sẽ lớn hơn). Chương trình chính: 1) Nhập từ bàn phím thông tin của một người bao gồm: mã định danh, họ tên người. 2) Hiển thị thông tin người đó ra màn hình. 3) Nhập thông tin cho n đối tượng NHANVIEN bao gồm: mã định danh, họ tên nhân viên, năm sinh, hệ số lương.
4) In ra màn hình thông tin của n đối tượng NHANVIEN cùng với lương. 5) Sắp xếp danh sách nhân viên theo thứ tự giảm dần theo hệ số lương. Hiển thị danh sách sau khi sắp. Downloaded by Hoàng Anh (imbay2003@gmail.com) lOMoARcPSD|14822991 #include<iostream> using namespace std; #include<string> #include<math.h> class nguoi{ private: Downloaded by Hoàng Anh (imbay2003@gmail.com) lOMoARcPSD|14822991 string madd; string hoten; public: nguoi() { this->madd =""; this->hoten=""; } ~nguoi() { this->madd; this->hoten; } void nhap() { cout<<"\nNhap ma dinh danh:";fflush(stdin);getline(cin,this->madd); cout<<"\nNhap ho ten:";fflush(stdin);getline(cin,this->hoten); } void xuat() { cout<<"\nMa dinh danh:"<<madd<<"\nHo ten:"<<hoten; } }; class nhanvien:public nguoi { protected: int namsinh; Downloaded by Hoàng Anh (imbay2003@gmail.com) lOMoARcPSD|14822991 float hesoluong; static float tienphucap; public: nhanvien() { this->namsinh=0; this->hesoluong=0; } ~nhanvien() { this->namsinh; this->hesoluong; } void nhap1() { nhanvien::nhap(); cout<<"\nNhap nam sinh:"; cin>>this->namsinh; cout<<"\nNhap he so luong:"; cin>>this->hesoluong; } void xuat1() { nhanvien::xuat(); cout<<"\nNam sinh:"<<namsinh<<"\nHe so luong:"<<hesoluong; } float luong() Downloaded by Hoàng Anh (imbay2003@gmail.com) lOMoARcPSD|14822991 { return (hesoluong*1550+tienphucap); } friend int operator>(nhanvien &a,nhanvien &b) { if(a.nhap(); cout<<"\nXuat thong tin cua nhan vien vua nhap:"; ng.xuat(); nhanvien *v,tg; int n; float tong=0; cout<<"\nNhap doi tuong nhan vien:"; cin>>n; v=new nhanvien[n]; cout<<"\nNhap tung doi tuong nhan vien:"; for(int i=0;i<n;i++) Downloaded by Hoàng Anh (imbay2003@gmail.luong(); } } Downloaded by Hoàng Anh (imbay2003@gmail.com) lOMoARcPSD|14822991 Bài 3, Sinh viên hãy lập trình hướng đối tượng bằng C++ thực hiện các việc sau: Xây dựng lớp đối tượng NGUOI gồm: - Thành phần dữ liệu (Không cho phép truy cập từ ngoài class): mã định danh, họ tên người - Phương thức: o Hàm khởi tạo, hàm nhập, hàm xuất.
- Xây dựng lớp đối tượng NHANVIEN kế thừa từ lớp NGUOI có thêm o Thuộc tính thêm: năm sinh, hệ số lương o Thuộc tính tĩnh: tiền phụ cấp o Phương thức: hàm tạo đặt thông tin mặc định, hàm nhập, hàm xuất, hàm tính lương (=hệ số lương x 1550 + tiền phụ cấp) Chương trình chính: 1) Nhập từ bàn phím thông tin của một người bao gồm: mã định danh, họ tên người. 2) Hiển thị thông tin người đó ra màn hình. 3) Nhập thông tin cho n đối tượng NHANVIEN bao gồm: mã định danh, họ tên nhân viên, năm sinh, hệ số lương. 4) In ra màn hình thông tin của n đối tượng NHANVIEN cùng với lương.
5) In ra màn hình họ tên các nhân viên có lương cao nhất. Downloaded by Hoàng Anh (imbay2003@gmail.com) lOMoARcPSD|14822991 #include<iostream> #include<string> using namespace std; class nguoi { protected: Downloaded by Hoàng Anh (imbay2003@gmail.com) lOMoARcPSD|14822991 string madd; string hoten; public: nguoi() { this->madd=""; this->hoten=""; } ~nguoi() { this->madd; this->hoten; } void nhap() { cout<<"\n nhap ma dinh danh: "; fflush(stdin); getline(cin,this->madd); cout<<"\n nhap ho ten: "; getline(cin,this->hoten); } void xuat() { cout<<"\n ma dinh danh: "<<madd<<"\n ho ten: "<<hoten; } }; class nhanvien: public nguoi Downloaded by Hoàng Anh (imbay2003@gmail.com) lOMoARcPSD|14822991 { private: int namsinh; float hsluong; static float tienpc; public: nhanvien() { this->namsinh=0; this->hsluong=0; } ~nhanvien() { this->namsinh; this->hsluong; } void nhap() { nguoi::nhap(); cout<<"\n nhap nam sinh: "; cin>>this->namsinh; cout<<"\n nhap he so luong: "; cin>>this->hsluong; } void xuat() { nguoi::xuat(); Downloaded by Hoàng Anh (imbay2003@gmail.com) lOMoARcPSD|14822991 cout<<"\n nam sinh: "<<namsinh<<"\n he so luong: "<<hsluong; } float luong() { return (hsluong*141 +tienpc); } string ten() { return hoten; } }; float nhanvien::tienpc=100; int main() { nguoi ng; nhanvien *nv; cout<<"\n nhap thong tin 1 nguoi: "; ng.nhap(); cout<<"\n xuat thong tin nguoi do: "; ng.xuat(); int n; float tong=0; cout<<"\n nhap so nhan vien: "; cin>>n; nv=new nhanvien[n]; cout<<"\n nhap thong tin tung nhan vien: "; for(int i=0;i<n;i++) Downloaded by Hoàng Anh (imbay2003@gmail.com) lOMoARcPSD|14822991 nv[i].ten(); } Bài 4, Sinh viên hãy lập trình hướng đối tượng bằng C++ thực hiện các việc sau: Xây dựng lớp đối tượng DATE gồm: - Thành phần dữ liệu (Không cho phép truy cập từ ngoài class): ngày, tháng, năm - Phương thức: o Hàm khởi tạo, hàm nhập, hàm xuất. - Xây dựng lớp đối tượng CANBO kế thừa từ lớp DATE có thêm o Thuộc tính: mã cán bộ, tên cán bộ, ngày tháng năm sinh(kế thừa từ lớp DATE), lương cơ bản o Thuộc tính tĩnh: tiền phụ cấp chức vụ o Phương thức: hàm tạo đặt thông tin mặc định, hàm nhập, hàm xuất, hàm tính lương (=lương cơ bản + tiền phụ cấp chức vụ) Downloaded by Hoàng Anh (imbay2003@gmail.com) lOMoARcPSD|14822991 Chương trình chính: 1) Nhập từ bàn phím thông tin của một ngày tháng năm, 2) Hiển thị thông tin ngày tháng năm đó ra màn hình. 3) Nhập thông tin cho n đối tượng CANBO.
4) In ra màn hình thông tin của n đối tượng CANBO. 5) Hiển thị ra màn hình lương của n cán bộ. 6) In ra màn hình tên các cán bộ có lương thấp nhất. #include<iostream> #include<string> using namespace std; class date { private: int d; int m; int y; public: nguoi() { Downloaded by Hoàng Anh (imbay2003@gmail.com) lOMoARcPSD|14822991 this->d=0; this->m=0; this->y=0; } ~date() { this->d; this->m; this->y; } void nhap() { cout<<"\n nhap ngay: "; cin>>this->d; cout<<"\n nhap thang: "; cin>>this->m; cout<<"\nNhap nam:"; cin>>this->y; } void xuat() { cout<<"\nNgay: "<<d<<"\nThang: "<<m<<"\nNam:"<<y; } }; class canbo: public date { private: Downloaded by Hoàng Anh (imbay2003@gmail.com) lOMoARcPSD|14822991 string macanbo; string tencanbo; int luongcb; static float tienpcchucvu; public: canbo() { this->macanbo=""; this->tencanbo=""; this->luongcb=0; } ~canbo() { this->macanbo; this->tencanbo; this->luongcb; } void nhap1() { date::nhap(); cout<<"\n nhap ma can bo: ";fflush(stdin); getline(cin,this->macanbo); cout<<"\n nhap ho ten can bo: ";fflush(stdin); getline(cin,this->tencanbo); cout<<"\n nhap luong co ban:";cin>>this->luongcb; } void xuat1() Downloaded by Hoàng Anh (imbay2003@gmail.com) lOMoARcPSD|14822991 { date::xuat(); cout<<"\n ma can bo: "<<macanbo<<"\n he so luong: "<<tencanbo<<"\nluong co ban:"<<luongcb; } float luong() { return (luongcb+tienpcchucvu); } string ten() { return tencanbo; } }; float canbo::tienpcchucvu=200; int main() { date ngay; cout<<"\n nhap thong tin 1 ngay:"; ngay.nhap(); cout<<"\nXuat thong tin ngay vua nhap:"; ngay.xuat(); canbo *cb; int n; cout<<"\nNhap so can bo:"; cin>>n; cb=new canbo[n]; Downloaded by Hoàng Anh (imbay2003@gmail.com) lOMoARcPSD|14822991 cout<<"\nNhap thong tin cua tung can bo:"; for(int i=0;i<n;i++) cb[i].ten(); Downloaded by Hoàng Anh (imbay2003@gmail.com) lOMoARcPSD|14822991 } Bài 5, Sinh viên hãy lập trình hướng đối tượng bằng C++ thực hiện các việc sau: Xây dựng lớp đối tượng HANGHOA gồm: - Thành phần dữ liệu (Không cho phép truy cập từ ngoài class): mã hàng, tên hàng - Phương thức: o Hàm khởi tạo, hàm nhập, hàm xuất.
- Xây dựng lớp đối tượng MAYTINH kế thừa từ lớp HANGHOA có thêm o Thuộc tính: nhà sản xuất, năm sản xuất, giá bán niêm yết. o Thuộc tính tĩnh: tỷ lệ khuyến mại o Phương thức: hàm tạo đặt thông tin mặc định, hàm nhập, hàm xuất, hàm tính giá bán thực tế (=giá bán niêm yết - giá bán niêm yết* tỷ lệ khuyến mại ) Chương trình chính: 1) Nhập từ bàn phím thông tin của một hàng hóa 2) Hiển thị thông tin hàng hóa đó ra màn hình. 3) Nhập thông tin cho n đối tượng MAYTINH. 4) In ra màn hình thông tin của n đối tượng MAYTINH.
5) Hiển thị ra màn hình các máy tính của nhà sản xuất SAMSUNG. 6) In ra màn hình tên các máy tính có giá bán thực tế thấp nhất. Downloaded by Hoàng Anh (imbay2003@gmail.com) lOMoARcPSD|14822991 #include<iostream> using namespace std; #include<string> #include<math.