Bài tập struct trong C/C++ có lời giải

2
13635
82/ 100

Trước khi đi vào bài tập struct trong C/C++, LTKK muốn tóm tắt về kiểu cấu trúc trong C. Kiểu cấu trúc (structure) trong C/C++ là 1 kiểu dữ liệu người dùng tự định nghĩa dựa trên các kiểu dữ liệu có sẵn (int, char*, float, …). Chúng ta thường dùng kiểu cấu trúc này để định nghĩa các đối tượng. Ví dụ:

  • Đối tượng Sinh Viên: mã sinh viên (char*), tên sinh viên (char*), năm sinh (int), …
  • Đối tượng Date: ngày (int), tháng (int), năm (int).
  • Đối tượng Sách: mã sách (char*), tên sách (char*), tác giả (char*), số lượng (int), ngày xuất bản (Date), …

LTKK đã có 1 bài viết riêng hướng dẫn về kiểu cấu trúc trong C/C++. Bạn nên có kiến thức về Struct trong C trước khi thực hành bài tập struct tại bài viết này.

Bài tập struct trong C/C++

Kiểu cấu trúc (struct) là của ngôn ngữ lập trình C, do đó chúng ta có thể sử dụng nó ở trong C++. Trong mục bài tập này, mình sẽ cố gắng chỉ sử dụng ngôn ngữ C. Nếu có phần nào trong source code sử dụng C++, mình sẽ trình bày rõ.

# Bài tập phân số

Đề bài: Định nghĩa kiểu cấu trúc phân số gồm tử số và mẫu số. Thực hiện cài đặt các chức năng sau:

  • Cài đặt các phép toán cộng, trừ, nhân, chia 2 phân số.
  • In ra kết quả các phép toán kể trên dưới dạng phân số tối giản.

Lời giải:

Dưới đây là lời giải tham khảo sử dụng ngôn ngữ C.

Kết quả chạy chương trình:

# Bài tập quản lý sinh viên

Mục tiêu của bài tập này là sử dụng cấu trúc struct lồng nhau.

Đề bài: Viết chương trình định nghĩa kiểu cấu trúc NGAYTHANG bao gồm 3 thuộc tính (ngày, tháng, năm). Dựa trên kiểu cấu trúc NGAYTHANG đã có, tiếp tục định nghĩa kiểu câu trúc SinhVien bao gồm các thông tin (mã sinh viên, họ đệm, tên, ngày tháng năm sinh, giới tính, hộ khẩu thường trú, điểm thi đại học). Viết các hàm con thực hiện các chức năng sau đây:

  • Nhập danh sách sinh viên từ bàn phím.
  • Hiển thị danh sách sinh viên đã nhập.
  • Sắp xếp danh sách sinh viên theo điểm tăng dần.
  • Hiển thị danh sách sau khi sắp xếp.

Viết hàm main thực hiện các chức năng kể trên.

Lời giải tham khảo:

  • Lời giải này có sử dụng C++ ở hàm nhập/xuất: cin, cout; cấp phát động trong C++ (toán tử new, delete).
  • Khi dùng struct trong C++, chúng ta không cần thêm tiền tố struct khi khai báo biến. Do đó, không cần dùng từ khóa typedef để đặt lại tên kiểu cấu trúc sinh viên.

Kết quả chạy chương trình:

# Bài tập struct quản lý món ăn

Đề bài: Viết chương trình tổ chức dữ liệu quản lý các món ăn, mỗi món ăn bao gồm các thông tin sau: tên món ăn, đơn giá, đơn vị tính, loại món, …

Viết các chương trình con (hàm) thực hiện lần lượt các yêu cầu sau đây:

  • Nhập danh sách n món ăn từ bàn phím.
  • Hiển thị danh sách món ăn vừa nhập.
  • Thực hiện sắp xếp danh sách món ăn tăng dần/ giảm dần theo 1 tiêu chí nào đó (tự lựa chọn).
  • Thực hiện tìm kiếm món ăn theo tiêu chí tùy ý.
  • Ghi danh sách món ăn vào tập tin.
  • Đọc dữ liệu món ăn từ tập tin.
  • Trích lọc thông tin món ăn theo 1 tiêu chí tùy chọn và xuất kết quả ra tệp tin.

Cài đặt chương trình chính triển khai lần lượt các chức năng kể trên.

Lời giải tham khảo:

Kết quả chạy chương trình:

# Bài tập quản lý sách

Viết chương trình quản lý sách của một nhà xuất bản với thông tin của mỗi cuốn sách bao gồm: mã sách, tên sách, tác giả, nhà xuất bản, năm xuất bản, đơn giá, số lượng, thuế, thực tiền. Trong đó thành tiền và thực tiền được tính dựa trên các thông tin khác được nhập từ bàn phím. Viết chương trình con triển khai các chức năng sau:

  1. Nhập thông tin các cuốn sách từ bàn phím.
  2. In danh sách thông tin các cuốn sách.
  3. Tính cột thành tiền theo công thức thành tiền = số lượng * đơn giá.
  4. Tính cột thực tiền = thành tiền + thuế VAT
  5. Sắp xếp các cuốn sách theo thứ tự giảm dần về năm xuất bản.
  6.  In thông tin các cuốn sách có thực tiền lớn nhất.
  7. In thông tin tổng số lượng các cuốn sách.
  8. In danh sách các cuốn sách có thuế VAT lớn hơn 1 giá trị được nhập từ bàn phím.
  9. Lưu danh sách các cuốn sách đã nhập vào tập tin.
  10. Đọc danh sách các cuốn sách từ tập tin và hiển thị lên màn hình.

Dưới đây là lời giải tham khảo sử dụng ngôn ngữ C++.

Kết quả chạy chương trình:

Qua một số bài tập struct trong C/C+ trên đây, LTKK hi vọng các bạn có thể bổ sung thêm kiến thức về kiểu cấu trúc trong C/C++. Chúc các bạn học tốt!

Sáng lập cộng đồng Lập Trình Không Khó với mong muốn giúp đỡ các bạn trẻ trên con đường trở thành những lập trình viên tương lai. Tất cả những gì tôi viết ra đây chỉ đơn giản là sở thích ghi lại các kiến thức mà tôi tích lũy được.
Subscribe
Notify of
guest
2 Bình luận
Inline Feedbacks
View all comments