Lịch học Tài liệu Bài tập - INT 2202 Lập trình nâng cao. Nhóm 3 và nhóm 5 10.Structs

2 139 0
Lịch học Tài liệu Bài tập - INT 2202 Lập trình nâng cao. Nhóm 3 và nhóm 5 10.Structs

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

Thông tin tài liệu

Bài 10 Struct Mục tiêu: Luyện tập định nghĩa sử dụng kiểu liệu có cấu trúc struct Thử nghiệm cấu trúc nhớ việc truyền tham số, trả giá trị kiểu struct Giới hạn: không dùng thư viện stl (chẳng hạn vector, algorithm) Yêu cầu nộp : Toàn phần A C1 Bài đánh giá theo cố gắng làm việc Bạn cần làm đủ Chương trình bạn chưa chạy đúng, chí chưa chạy, tính có làm đạt Lưu ý: chép cho chép dẫn đến trượt môn học! A Thực hành Định nghĩa sử dụng Hãy định nghĩa cấu trúc Point đại diện cho điểm không gian chiều (gồm hai trường x y đại diện cho tọa độ x tọa độ y mặt phẳng) Viết hàm print() nhận tham số biến kiểu Point in tọa độ điểm dạng (x, y) Demo sử dụng hàm hàm main Tham trị tham biến Viết chương trình thử nghiệm truyền tham số kiểu Point vào hàm theo hai kiểu truyền tham trị truyền tham biến Hãy dùng phương pháp in địa biến kiểu Point để chứng tỏ truyền tham trị ta có tham số đối số (khác địa chỉ), truyền tham chiếu, ta có tham số đối số biến (trùng địa chỉ) Giá trị trả Viết hàm mid_point() nhận 02 tham số kiểu Point trả cấu trúc Point trung điểm đoạn thẳng nối hai điểm Hãy sử dụng const để đảm bảo hàm mid_point không sửa giá trị hai điểm truyền vào Cấu trúc nhớ struct; Với cấu trúc Point định nghĩa Hãy dùng phương pháp in địa biến để thử nghiệm tìm hiểu vị trí tương đối trường x, y biến kiểu Point biến Bạn có nhận xét gì? Phép gán copy nơng Bạn biết với phép gán, C++ chép nơng, có nghĩa trường biến struct trỏ trường tương ứng biến struct trỏ có giá trị giống hệt Có nghĩa hai biến struct có trỏ trỏ tới vùng liệu Hãy thử nghiệm để xem chuyện xảy biến struct chép có trường liệu mảng, struct khác B Câu hỏi C Bài tập Xử lý xâu Tương tự định nghĩa cấu trúc Array giảng, xây dựng cấu trúc String để lưu trữ xâu kí tự.Mơ tả sau: a Cấu trúc cần có hai biến thành viên, biến n lưu độ dài xâu, trỏ str chiếu tới mảng char cấp phát động b Một constructor với tham số kiểu const char* để khởi tạo biến kiểu String lệnh như: String s(“Hello”); Constructor có nhiệm vụ cấp phát mảng động với kích thước thích hợp chép nội dung xâu kí tự cho vào mảng c Destructor có nhiệm vụ giải phóng mảng động str d Hàm thành viên void print() với nhiệm vụ in nội dung xâu str hình e Hàm thành viên void append(const char* ) với tham số xâu kí tự có nhiệm vụ nối thêm xâu kí tự vào cuối xâu Ví dụ, sau đoạn lệnh sau greeting chứa nội dung “Hi there”: String greeting(“Hi”); greeting.append(“ there”); // đến chạy greeting.print() ta output “Hi there” Gợi ý: Để làm việc này, bạn cần làm bước sau: (1) dùng trỏ tạm temp để cấp phát mảng động có kích thước đủ lớn, (2) copy xâu str hành vào phần đầu mảng mà temp trỏ tới, (3) copy xâu tham số vào phần sau Đến mảng động temp chứa nội dung đầy đủ xâu kết Việc lại trỏ str tới mảng đó.Bạn tự làm tiếp Chú ý tránh thất thoát nhớ, cần giải phóng vùng nhớ cấp phát khơng cần dùng đến Với hàm, cần demo hàm main chương trình Chú ý: dùng const chỗ ... temp để cấp phát mảng động có kích thước đủ lớn, (2) copy xâu str hành vào phần đầu mảng mà temp trỏ tới, (3) copy xâu tham số vào phần sau Đến mảng động temp chứa nội dung đầy đủ xâu kết Việc lại... vụ nối thêm xâu kí tự vào cuối xâu Ví dụ, sau đoạn lệnh sau greeting chứa nội dung “Hi there”: String greeting(“Hi”); greeting.append(“ there”); // đến chạy greeting.print() ta output “Hi there”... động với kích thước thích hợp chép nội dung xâu kí tự cho vào mảng c Destructor có nhiệm vụ giải phóng mảng động str d Hàm thành viên void print() với nhiệm vụ in nội dung xâu str hình e Hàm thành

Ngày đăng: 02/12/2017, 11:41

Từ khóa liên quan

Tài liệu cùng người dùng

Tài liệu liên quan