BÀI THỰC HÀNH SỐ 1
Nhập xuất cơ bản và Hàm trong C++.
Hãy thực hiện các công việc sau đây:
a. Xây dựng một chương trình gồm có hai phần: phần file header đặt tên là tieude.h, phần chương trình chính là main.cpp.
b. Tất cả các hàm trong chương trình cần phải khai báo prototype. Các tiêu đề file được đặt trong tệp tiêu đề. Chương trình chính chứa các hàm thực hiện các công việc sau và hàm main.
- Sử dụng hàm nhập xuất cơ bản để xây dựng hàm nhập vào một xâu kí tự dưới dạng kiểu dữ liệu string. Sau đó:
+ In ra xâu đảo ngược. Ví dụ “Toi di hoc”, thì in ra “coh id ioT”. Hàm này gọi là hàm DaoXau.
+ In ra các kí tự đảo ngược. Ví dụ “Toi di hoc”, thì in ra “hoc di Toi”. Hàm này gọi là hàm DaoTu.
- Nhập vào một mảng số nguyên, in ra tổng các phần tử của chúng. Hàm này gọi là hàmTinhTong.
- Sử dụng khai báo chồng chất hàm, để xây dựng hai hàm giải phương trình bậc nhất và phương trình bậc hai. Tên gọi của hai hàm này là GiaiPhuongTrinh.
- Sử dụng khai báo hàm với tham số mặc định để giải phương trình bậc nhất và phương trình bậc hai, hàm này có tên gọi là GiaiPhuongTrinhTSMD.
- Trong hàm main, hãy thực hiện các công việc sau: in ra thông báo nhập vào một xâu kí tự và gọi hàm DaoXau và DaoTu, nhập vào một mảng số nguyên và gọi hàm TinhTong. Sử dụng hàm xuất nhập cơ bản để đưa ra thông báo nhập các hệ số cho phương trình. Nếu hệ số c nhập vào bằng 0, thì thực hiện giải phương trình bậc nhất, còn c khác không thì thực hiện giải phương trình bậc hai (giải các phương trình này bằng cách gọi các hàm xây dựng ở trên).
BÀI THỰC HÀNH SỐ 2
Xây dựng Lớp và Làm việc với Đối Tượng
1. Xây dựng lớp HangHoa gồm có các phương thức và thuộc tính sau:
Tên gọi | Mức truy cập | Loại | Giải thích |
tenHang | private | Thuộc tính | Tên mặt hàng |
ngaySanXuat | private | Ngày sản xuất | |
donGia | private | Đơn giá | |
soLuong | private | Số lượng | |
SetTenHang | public | Phương thức | Thiết lập tên hàng |
GetTenHang | public | Tiếp nhận tên hàng | |
SetNgaySanXuat | public | Thiết lập ngày sản xuất | |
GetNgaySanXuat | public | Tiếp nhận ngày sản xuất | |
SetDonGia | public | Thiết lập đơn giá | |
GetDonGia | public | Tiếp nhận đơn giá | |
SetSoLuong | public | Thiết lập số lượng | |
GetSoLuong | public | Tiếp nhận số lượng | |
TinhTien | public | Tính tiền |
Các phương thức trên bao gồm setter và getter. Phương thức TinhTien là phương thức dùng để tính số tiền mà khách hàng mua. Tính tiền sẽ bằng donGia*soLuong.
2. Xây dựng lớp KhachHang gồm các phương thức và thuộc tính sau:
Tên gọi | Mức truy cập | Loại | Giải thích |
username | private | Thuộc tính | Tên tài khoản người dùng |
password | private | Mật khẩu người dùng | |
SetUsername | public | Phương thức | Lập tài khoản người dùng |
GetUsername | public | Tiếp nhận tài khoản người dùng | |
SetPassword | public | Lập mật khẩu người dùng | |
GetPassword | public | Tiếp nhận mật khẩu người dùng | |
MuaHang | public | Mua hàng |
Các phương thức setter và getter hoàn toàn tương tự như trên. Phương thức MuaHang sẽ triệu gọi các phương thức thiết lập tên hàng, ngày sản xuất, và tính tiền của đối tượng HangHoa ở trên. Phương thức mua hàng này, chỉ được chấp nhận khi username và password của khách hàng nhập vào trùng với username và password trong hệ thống.
Trong chương trình chính, hãy tạo hai đối tượng của hai lớp HangHoa và KhachHang. Username và Password của khách hàng nhập vào từ bàn phím. Kiểm tra nếu username và password trùng với username và password được thiết lập sẵn thì khi đó mới tiến hành khởi tạo đối tượng KhachHang, nếu ngược lại, hủy bỏ giao dịch và in thông báo: “Xin loi, tai khoan cua quy khach khong ton tai trong he thong. Xin lien he dang ki voi chi nhanh khach hang gan nhat”. Trong trường hợp đăng nhập thành công, hãy thực hiện hành động mua hàng của đối tượng khách hàng này (thao tác mua được nhập vào từ bàn phím).
BÀI THỰC HÀNH SỐ 3
Hàm tạo, sao chép hàm tạo, hàm bạn, con trỏ this
Lưu ý: trong bài thực hành ở chương này, chỉ cho phép sử dụng con trỏ đối tượng để thực hiện. Mọi phương án sử dụng khai báo đối tượng thông thường sẽ không được chấp nhận !
1. Quay trở lại với bài thực hành số 2. Hãy tạo chương trình bằng cách thay thế các phương thức setter bằng các hàm tạo tương ứng. Hãy sử dụng con trỏ this trong trường hợp này. Bổ sung phương thức ResetHangHoa cho lớp HangHoa để đưa về các tham số mặc định cho các thuộc tính (xâu kí tự thì thiết lập về “”, số nguyên/thực thì thiết lập về 0). Bổ sung phương thứcHuyBo cho đối tượng KhachHang để hủy bỏ việc mua hàng. Trong chương trình chính, bạn hãy tạo con trỏ đối tượng để thực hiện hành động mua hàng và hành động hủy bỏ.
2. Xây dựng lớp điểm Point và lớp hình tròn Round. Sử dụng hàm random để tạo tọa độ ngẫu nhiên cho một đối tượng điểm trong hàm tạo của đối tượng điểm. Cho trước tọa độ tâm của đường tròn, bán kính của nó. Hãy đưa ra các kết luận về một điểm được khởi tạo nằm trong hay ngoài đường tròn. Đây là phương thức thành viên của lớp hình tròn.
Khuyến khích: Bạn nên sử dụng hàm bạn và lớp bạn.
BÀI THỰC HÀNH SỐ 4
Chồng chất Toán tử trong C++
Xây dựng 2 lớp số phức và lớp phân số. Sử dụng chồng chất toán tử để thực hiện các thao tác tính toán sau:
- Lớp số phức: phương thức khởi tạo (hoặc phương thức setter), phương thức sao chép hàm tạo, phương thức + (cộng hai số phức), – (trừ hai số phức), * (nhân hai số phức), / (chia hai số phức) và phương thức tính modul và argument của số phức.
- Lớp phân số: phương thức khởi tạo, phương thức sao chép hàm tạo, phương thức + (cộng hai phân số), phương thức – (trừ hai phân số), phương thức * (nhân hai phân số), phương thức / (chia hai phân số).
BÀI THỰC HÀNH SỐ 5
Kĩ thuật thừa kế trong C++
Xây dựng lớp HinhKhoi, chứa thuộc tính chiều cao (chieucao). Xây dựng hàm tạo tương ứng và phương thức sao chép hàm tạo.
Xây dựng lớp HinhKhoi1 thừa kế từ lớp HinhKhoi. Bổ sung thêm thuộc tính chiều dài (chieudai). Bổ sung hàm tạo và phương thức sao chép hàm tạo. Xây dựng tiếp hàm tính thể tích cho HinhKhoi1 (bằng chieucao*chieudai2).
Xây dựng lớp lớp HinhKhoi2 thừa kế từ lớp HinhKhoi1. Bổ sung thêm thuộc tính chiều rộng (chieurong). Bổ sung hàm tạo và phương thức sao chép hàm tạo. Quá tải hàm tính thể tích cho HinhKhoi2 (bằng chieucao*chieudai*chieurong).
Xây dựng lớp HinhKhoi3 thừa kế từ lớp HinhKhoi. Bổ sung thêm thuộc tính bán kính (bankinh). Bổ sung hàm tạo và phương thức sao chép hàm tạo. Xây dựng hàm tính thể tích cho HinhKhoi3 (bằng chieucao*Pi*bankinh2).
BÀI THỰC HÀNH SỐ 6
Lớp cơ sở trìu tượng trong C++
Xây dựng một lớp cơ sở trìu tượng Vector chứa ba phương thức ảo thuần túy: TinhDoDai (tính độ dài), SinGoc (tính sin của góc giữa hai Vector), TrucGiao (tìm vector trực giao – tức vector vuông góc với vector trên), hai thuộc tính thành viên là tọa độ x và y, hai phương thức getter và setter (không sử dụng hàm tạo trong trường hợp này, vì lớp trìu tượng không có khả năng tạo ra một sự thể hiện, và hàm tạo cũng không được thừa kế).
Xây dựng lớp Vector2D thừa kế từ lớp cơ sở trìu tượng Vector để thực thi các phương thức ảo thuần túy nêu trên.
Xây dựng lớp Vector3D thừa kế từ lớp cơ sở trìu tượng Vector (bổ sung thêm tọa độ z và các phương thức getter, setter tương ứng) để thực thi các phương thức ảo thuần túy nêu trên.
Trong đó, Vector2D là vector 2 chiều (chỉ có hai tọa độ x và y); Vector3D là vector 3 chiều (có ba tọa độ x, y và z).
No comments:
Post a Comment