1. Trang chủ
  2. » Tất cả

giải bài tập lập trình hướng đối tượng với ngôn ngữ C++

200 11 1
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Giải bài tập lập trình hướng đối tượng với ngôn ngữ C++
Trường học Đại học Điện lực
Chuyên ngành Lập trình hướng đối tượng
Thể loại Bài tập hướng dẫn
Năm xuất bản 2020-2021
Thành phố Hà Nội
Định dạng
Số trang 200
Dung lượng 5 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

giải bài tập lập trình hướng đối tượng đối với ngôn ngữ CC++, file gồm phần đề và phần giải cơ bản, có thể tham khảo nhưng đúng thì không hoàn toàn, để làm được đề, cần yêu cầu hiểu biết cơ bản về ngôn ngữ lập trình, cách hoạt động và môi trường lập trình

Trang 1

**** ĐỀ 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: 2 người cùng làm 1 thuật toán, nhưng khác

nhau về dữ liệu Marketing căn bản (Đại học Điện lực)

**** ĐỀ 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: 2 người cùng làm 1 thuật toán, nhưng khác

nhau về dữ liệuMarketing căn bản (Đại học Điện lực)

Trang 2

ĐỀ 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ôngPhuongTienGiaoThong

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ămsả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ở

Trang 6

cout<<"\nnhap so cho ngoi:";cin>>this->sochongoi;

cout<<"\nNhap kieu dong co:";fflush(stdin);

Trang 7

t[i]=t[j];

t[j]=tg;

}}

}

cout<<"\nDanh sach doi tuong sau khi sap xep la:";

Trang 8

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

Trang 10

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;

Trang 13

tg=v[i];

v[i]=v[j];

v[j]=tg;

}}

Trang 14

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

Trang 18

cout<<"\n nam sinh: "<<namsinh<<"\n he so luong: "<<hsluong; }

Trang 19

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ụ)

Trang 20

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ộ

Trang 24

cout<<"\nNhap thong tin cua tung can bo:";

Trang 25

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

Trang 26

this->tenh=" ";

}

~hanghoa(){

this->mahang;

Trang 27

}void nhap(){

cout<<"\nMa hang la:"<<mahang<<"\nTen hang la:"<<tenh;}

this->nsx=" ";

Trang 28

this->giabanny=0;

}

~maytinh(){

this->nsx;

this->namsx;

this->giabanny;

}void nhap1(){

hanghoa::xuat();

cout<<"\nNha san xuat:"<<nsx<<"\nNam san xuat:"<<namsx<<"\nGiaban niem yet:"<<giabanny;

}float giabanthucte(){

Trang 29

}string ten(){

return nsx="samsung";

}};

cout<<"\nXuat thong tin may tinh vua nhap:";

for(int i=0;i<n;i++){

mt[i].xuat1();

Trang 30

//cout<<"\nmay tinh co hang samsung la:"<<mt[i].ten();

Sinh viên hãy lập trình hướng đối tượng bằng C++ thực hiện các công 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 huỷ, 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)

Hàm nạp chồng toán tử > để so sánh hai đối tượng MAYTINH theo giá bán thực tế

Chương trình chính:

1) Nhập từ bàn phím thông tin của một đối tượng HANGHOA

2) Hiển thị thông tin của đối tượng HANGHOA đó 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) Sắp xếp danh sách các đối tượng MAYTINH theo giá trị giảm dần của gía bán thực tế

Trang 33

class MAYTINH:public HANGHOA

Trang 34

cout<<"\nNhap gia ban niem yet:";

Trang 35

mt[i]=mt[j];

mt[j]=tg;

}}

}

Trang 36

cout<<"\nDanh sach doi tuong sau khi sap xep la:";

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 SACH gồm:

- Thành phần dữ liệu (Không cho phép truy cập từ ngoài class): mã sách, tên sách -

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 MUONTRA kế thừa từ lớp SACH có thêm o Thuộc tính:

mã độc giả, mã sách (kế thừa từ lớp SACH), số lượng

o Thuộc tính tĩnh: phí cược mượn trả 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 số tiền cược mượn trả (=số lượng*phí cược mượn trả)

Chương trình chính:

1) Nhập từ bàn phím thông tin của một cuốn sách 2)

Hiển thị thông tin cuốn sách đó ra màn hình

3) Nhập thông tin cho n đối tượng MUONTRA

4) In ra màn hình thông tin của n đối tượng MUONTRA

5) Hiển thị ra màn hình các độc giả có số lượng mượn >10 cuốn

6) In ra màn hình mã các độc giả có số tiền cược nhiều nhất

Trang 39

this->madocgia="";

this->soluong=0;

}void nhap1(){

sach::xuat();

cout<<"\n Ma doc gia:"<<madocgia<<"\n So luong:"<<soluong;

}float tiencuocmuontra(){

return (soluong*phicuocmuontra);

}string madg(){

return madocgia;

}int sl(){

Trang 40

if(soluong>10)return 1;

else return 0;

}};

cout<<"\nXuat thong tin muon tra:";

for(i=0;i<n;i++){

mtr[i].xuat1();

}cout<<"\nMa doc gia co so luong lon hon 10 la:";

Trang 41

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 MUONTRA kế thừa từ lớp DATE có thêm o Thuộc tính:

mã độc giả, mã sách, ngày tháng năm mượn sách(kế thừa từ lớp DATE), số lượng

o Thuộc tính tĩnh: phí cược mượn trả 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 số tiền cược mượn trả (=số lượng*phí cược mượn trả)

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 MUONTRA

4) In ra màn hình thông tin của n đối tượng MUONTRA

Trang 42

5) Hiển thị ra màn hình các độc giả mượn trước ngày 1/1/2020

6) In ra màn hình mã các độc giả có số tiền cược nhiều nhất

Trang 43

cout<<"\n Nhap ngay";cin>>this->d;

cout<<"\n Nhap thang:";cin>>this->m;

cout<<"\n Nhap nam:";cin>>this->y;

Trang 44

cout<<"\n nhap so luong:";cin>>this->soluong;

Trang 45

Xây dựng lớp DichVu có các thành phần sau:

- Thành phần dữ liệu (Không cho phép truy cập từ ngoài class): mã DV, tên DV, giá cước

- Phương thức:

o Hàm khởi tạo o Nhap() o Xuat() o

Laygiacuoc(): để lấy giá cước của dịch vụ Xây dựng

Xây dựng lớp KhachHang kế thừa lớp Nguoi và bổ sung thêm:

- Thành phần dữ liệu (Không cho phép truy cập từ ngoài class): int SoLuongDichVu,

DichVu dv[100] (là mảng lưu các dịch vụ do khách hàng đã sử dụng, tối đa là 100 dịch

1) Nhập từ bàn phím thông tin của một người

2) Hiển thị thông tin người đó ra màn hình

3) Nhập thông tin của một khách hàng

4) Hiển thị thông tin của khách hàng và dịch vụ khách hàng đã sử dụng lên màn hình

5) Tính và hiển thị tổng gía cước khách hàng đã sử dụng

Trang 47

cout<<"\n Nhap ma dich vu:";fflush(stdin);getline(cin,this->madv);cout<<"\n Nhap ten dich vu:";fflush(stdin);getline(cin,this->tendv);cout<<"\n Nhap gia cuoc:";cin>>this->giacuoc;

Trang 49

cout<<"\n Nhap so luong dich vu da su

Trang 50

Xây dựng lớp CanBo kế thừa lớp NhanVien có thêm:

- Thành phần dữ liệu (Không cho phép truy cập từ ngoài class): Hệ số lương,Phụ cấp, Trình độ - Phương thức: o Nhap() o Xuat()

o TinhLuong(): Nếu cán bộ chưa về hưu, Luong = hệ số lương* 1550 +phụ cấp; ngược lại, cán bộ nhận lương hưu = 70% Lương Chương trình chính:

1) Nhập từ bàn phím thông tin của một nhân viên

2) Hiển thị thông tin của nhân viên đó ra màn hình

3) Nhập thông tin của n đối tượng CanBo

4) Hiển thị thông tin của n đối tượng CanBo cùng với lương ra màn hình

5) In ra màn hình những đối tượng CanBo chưa về hưu cùng với lương

Trang 52

string hoten;

int tuoi;

public:

nhanvien(){

this->manv="";

this->hoten="";

this->tuoi=0;

}void nhap(){

cout<<"\n Nhap ma nhan

vien:";fflush(stdin);getline(cin,this->manv);

cout<<"\n Nhap ho ten:";fflush(stdin);getline(cin,this->hoten);cout<<"\n Nhap tuoi:";cin>>this->tuoi;

}void xuat(){

cout<<"\n Ma nhan vien:"<<manv<<"\n Ho ten:"<<hoten<<"\nTuoi:"<<tuoi;

}int vehuu(){

if(tuoi>60)return true;

else return false;

}

Trang 53

string ten(){

return hoten;

}};

class canbo:public nhanvien

this->hesoluong=0;

this->phucap=0;

this->trinhdo="";

}void nhap1(){

Trang 54

void xuat1(){

nhanvien::xuat();

cout<<"\n He so luong:"<<hesoluong<<"\n Phu cap:"<<phucap<<"\n Trinh do:"<<trinhdo;

}float luongchuavehuu(){

return(hesoluong*1550+phucap);

}float canbonhanluonghuu(){

return luongchuavehuu()*0.7;

}};

Trang 55

cb=new canbo[n];

cout<<"\n Nhap thong tin can bo:";

for(i=0;i<n;i++)cb[i].nhap1();

cout<<"\n Xuat thong tin can bo vua nhap:";

for(i=0;i<n;i++){

cb[i].xuat1();cout<<"\tLuong: "<<cb[i].luongchuavehuu();}

cout<<"\n doi tuong can bo nhan luong huu la:";

Xây dựng lớp môn học MonHoc gồm

Thành phần dữ liệu (không cho phép truy cập từ ngoài lớp): MaMH, TenMH, DTB, SoTC

Trang 56

(Điểm tổng kết bằng tổng của DTB*SoTC của tất cả các môn / tổng số tín chỉ của tất cả các môn)

Chương trình chính:

1) Nhập từ bàn phím thông tin của một đối tượng MonHoc

2) Hiển thị thông tin của đối tượng MonHoc đó ra màn hình

3) Nhập từ bàn phím thông tin của n đối tượng SinhVien

4) Hiển thị thông tin của n đối tượng SinhVien đó lên màn hình cùng với điểm tổng kết của sinh viên đó

5) Liệt kê ra màn hình thông tin đầy đủ của những sinh viên được cấp học bổng (sinh viên được cấp học bổng nếu có DTK >= 8.5)

Trang 58

cout<<"\n Nhap so tin chi:";cin>>this->sotc;

}

void xuat()

{

Trang 59

cout<<"\n Ma mon hoc:"<<mamh<<"\n Ten mon hoc:"<<tenmh<<"\n Diem trung binh:"<<dtb<<"\n So tin chi:"<<sotc;

Trang 61

cout<<"\n Xuat thong tin vua nhap:";

for(i=0;i<n;i++){

sv[i].xuat1();

}cout<"\n Diem tong ket:";

Định nghĩa lớp NhanVien kế thừa lớp Nguoi, có thêm các thuộc tính:

-Thành phần dữ liệu (không cho phép truy cập từ ngoài lớp): hệ số thâm niên HSThamNien

Trang 62

(kiểu số thực), mức lương MucLuong (kiểu số thực), tiền ăn ca AnCa ( kiểu số thực)

-Phương thức:

+) Thiết lập, hủy bỏ, nhập, xuất

+) NghiHuu: nhân viên nghỉ hưu khi tuổi >=60

+) Luong: Tính lương cho nhân viên:

+ Đối với nhân viên đã nghỉ hưu:

Lương = 0.75*MucLuong* HSThamNien; + Đối với nhân viên chưa nghỉ hưu:

Lương = MucLuong* HSThamNien + AnCa; Chương trình chính:

1) Nhập từ bàn phím thông tin của một người

2) Hiển thị thông tin của người vừa nhập cùng với tuổi

3) Nhập thông tin cho n đối tượng nhân viên

4) In ra màn hình thông tin của n đối tượng nhân viên cùng với lương tương ứng

5) In ra màn hình thông tin của tất cả những nhân viên đã đến tuổi nghỉ hưu

Ngày đăng: 05/01/2023, 16:05

TỪ KHÓA LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w