Lập trình C: Bài tập phần cấu trúc (struct)

Các khóa học qua video:
Python SQL Server PHP C# Lập trình C Java HTML5-CSS3-JavaScript
Học trên YouTube <76K/tháng. Đăng ký Hội viên
Viết nhanh hơn - Học tốt hơn
Giải phóng thời gian, khai phóng năng lực

Bài tập 1:

Viết chương trình thực hiện những công việc sau:

- Nhập danh sách gồm n học viên (n nhập từ bàn phím) gồm các thông tin : Họ tên, giới tính, điểm Python, điểm C.

- Tính điểm trung bình (diemTB) = (diemC*2 + diemPython)/3 .

- Xét kết quả đậu hay trượt theo quy ước sau:

+ Nếu điểm trung bình >= 5 thì kết quả là đậu.

+ Nếu điểm trung bình <5 và giới tính là "Nam" thì kết qủa là trượt.

+ Nếu điểm trung bình <5 và phái là "Nu" thì kết quả là đậu.

- In danh sách đã nhập và tính toán gồm họ tên, phái, điểm Python, điểm C, điểm TB, và kết quả.

- Sắp xếp học viên theo thứ tự giảm dần theo điểm trung bình và in ra.

- Nhập vào họ tên học viên cần tìm và tìm trong danh sách học viên, nếu không tìm thấy thì in ra học viên có họ tên không tìm thấy. Nếu có nhiều học viên có cùng họ tên cần tìm thì hãy in ra tất cả những học viên đó.

- Hiển thị thông tin những bạn đã đậu.

- Hiển thị thông tin những bạn đã trượt.

- Hiển thị thông tin những bạn có điểm trung bình >=8.

- Ghi file.

- Đọc file

Bài tập 2:

Viết chương trình quản lý Sinh viên như sau:

- Các thuộc tính của Sinh viên:

maSinhVien (mã sinh viên, kiểu chuỗi, phải gồm đúng 8 ký tự)

diemTrungBinh (điểm trung bình, kiểu float, chỉ từ 0 đến 10)

tuoi (tuổi sinh viên, kiểu int, phải từ 18 tuổi)

lop (lớp sinh viên học, kiểu chuỗi, phải bắt đầu bằng “V1Study”)

- Viết các hàm:

   + Hàm inputInfo() để nhập danh sách gồm N (0<N<=5000) Sinh viên.                

   + Hàm printInfo() để in thông tin từng Sinh viên.

   + xetHocBong () để xét học bổng cho Sinh viên:

          Nếu điểm trung bình >=9 thì học bổng là 5000000

          Nếu điểm trung bình >=8 và <9 thì học bổng là 3000000

          Nếu điểm trung bình >=7 và <8 thì học bổng là 1500000

   + Sắp xếp tăng dần (dùng quicksort) danh sách sinh viên theo điểm trung bình.

   + Sắp xếp giảm dần (dùng bubblesort) danh sách sinh viên theo mã sinh viên.

   + Hiển thị những sinh viên có điểm trung bình cao nhất.

   + Hiển thị những sinh viên phải thi lại (có điểm trung bình <5).

   + Ghi file.

   + Đọc file.

Bài tập 3:

1. Tạo 1 struct có tên Employee gồm các thuộc tính: id, name, age, salary, hours.

2. Tạo tạo 1 biến struct của Employee

3. Tạo 1 hàm để nhập thông tin cho biến struct ở ý 2.

4. Tạo 1 hàm dùng để tính và trả về thưởng cho nhân viên:

    - Nếu số giờ làm (hours) > 200 thì thưởng thêm 20% lương (salary).

    - Nếu hours>=100 và <200 thì thưởng =10%

    - Trường hợp còn lại thì thưởng =0

5. Tạo 1 hàm để hiển thị tất cả các thông tin của nhân viên bao gồm cả thưởng.

6. Tạo 1 hàm để ghi file.

7. Tạo 1 hàm để đọc file.

Bài tập 4:

CHƯƠNG TRÌNH QUẢN LÝ TRANH

1. Nhập thông tin tranh và hiển thị

2. Sắp xếp theo tên tăng dần từ A-Z

3. Sắp xếp theo diện tích giảm dần

4. Thống kê tranh theo tên tác giả

5. Tìm và hiển thị theo thể loại, giá bán thấp nhất và nhỏ nhất

6. Ghi File

7. Đọc File

8. Thoát

Cấu trúc dữ liệu tranh: tên, tác giả, thể loại, chiều dài(cm), chiều rộng(cm), gía bán($)

Dữ Liệu Mẫu:

Tên: Thiếu Nữ Bên Hoa Huệ

Tác Giả: Tô Ngọc Vân

Thể Loại: Con Người

Chiều Dài: 90

Chiều Rộng: 60

Giá Bán: 10

--------------------------

Tên: Bức Thư

Tác Giả: Tô Ngọc Vân

Thể Loại: Con Người

Chiều Dài: 80

Chiều Rộng: 70

Giá Bán: 15

--------------------------

Tên: Trước Giờ Biểu Diễn

Tác Giả: Bùi Xuân Phái

Thể Loại: Con Người

Chiều Dài: 70

Chiều Rộng: 60

Giá Bán: 12.5

--------------------------

Tên: Phố Hàng Mắm

Tác Giả: Bùi Xuân Phái

Thể Loại: Phong Cảnh

Chiều Dài: 50

Chiều Rộng: 40

Giá Bán: 14

--------------------------

Tên: Tát Nước Đồng Chiêm

Tác Giả: Trần Văn Cẩn

Thể Loại: Phong Cảnh

Chiều Dài: 100

Chiều Rộng: 75

Giá Bán: 20.5

Bài tập 5:

Viết chương trinh quản lý nhân sự  theo yêu cầu sau:

1. Tạo kiểu dữ liệu theo cấu trúc sau:

name char[20]

country char[20]

birthyear int

salary int

2. Tạo header menu chương trình:

Chuong trinh quan ly nhan su

1. Nhap lieu |2. Sap xep theo ten |3. Phan tich  |4. Tim nhan su theo ten |5. Luu file |6. Mo File |7. Thoat

Menu sẽ hiển thị khi chương trình bắt đầu.

Sau khi người dùng chọn tính năng và thực thi xong, trừ option 7 sẽ hiển thị thông báo xem người dung mong muốn tiếp tục không.

Ban muon tiep tuc khong  ?

- Co. (bam phim ‘y’, ‘Y’)

- Khong (bam phim  ‘n’, ‘N’)

- Clear man hinh ! (bam ‘c’, ‘C’)

Lua chon cua ban:

Nếu người dùng chọn trường hợp không hợp lệ, yêu cầu nhập lại.

Lưu ý: chương trình cần đáp ứng được yêu cầu người dùng nhập liệu trước khi sử dụng các option khác, nếu không sẽ thông báo lỗi cho người dùng, buộc người dùng phải nhập liệu nhân sự trước.

3. Nhập vào danh sách sinh viên:

Nếu người dùng chọn option 1, chương trình thực hiện những yêu cầu sau:

  • Yêu cầu người dùng nhập tổng số nhân sự
  • Nhập thông tin của mỗi nhân sự
  • Validate thông tin nhập vào theo yêu cầu:

Tuổi >= 18 và <= 60 ( tính theo năm sinh)

Lương phải => 2.000.000

Mô tả tính năng khi input nhân sự:

Nhap vao nhan su  [1]:

Name: Toan

Country: VN

Nam sinh: 1992

Luong: 12.000.000

Yêu cầu sử dụng pointer (con trỏ) cho các hàm làm tính năng làm việc với nhân sự.

4. Sắp xếp nhân sự theo lương giảm dần:

Khi người dùng chọn option 2, hiển thị ra danh sách nhân sự sắp xếp theo lương giảm dần:

Ten

Que quan

Nam sinh

Luong

Toan

vn

1992

1200

Nhan su 2

hn

1990

1400

Nhan su  3

QN

1987

1150

5. Thuật toán Tìm kiếm số lượng nhân sự  theo quê quán:

Khi người dùng chọn option 3: tính toán số lượng nhân sự  theo quê quán và hiển thị giống ví dụ sau:

Ket qua phan tich:

+ 2 nhan su que  ‘HN’.

+ 1 nhan su que  ‘Vn’.

6. Tìm kiếm sinh viên theo quê quán và lương thấp nhất:

Khi người dùng chọn option 4: Yêu cầu người dùng nhập quê quán  và lương thấp nhất (min)

Hiển thị tất cả những người dùng với quê quán trùng khớp và điểm cao hơn điểm thấp nhất người dùng nhập vào.

7. Lưu File:

Khi người dùng chọn option 5:

  • Yêu cầu người dùng nhập tên file cần xuất ra
  • Tạo file mode nhị phân
  • Nếu chương trình không tạo đc file, return error và thông báo lỗi cho người dùng
  • Nếu thành công, viết dữ liệu danh sách nhân sự đang lưu trữ trong object vào file
  • Thông báo với người dùng đã lưu thành công.

8. Mở file và hiển thị:

Khi người dùng chọn option 6:

  • Yêu cầu người dùng nhập tên file cần mở
  • Tạo file mode nhị phân
  • Nếu chương trình không mở  đc file, return error và thông báo lỗi cho người dùng
  • Đọc dữ liệu từ file và hiển thị ra màn hình
  • Đóng file.

Bài tập 6: Quản lý sách

1. Tạo 1 struct có tên Book gồm các thuộc tính: id, name, publishdate, author, pagenumber, price.

2. Nhập danh sách gồm n cuốn sách (n nhập từ bàn phím), lưu ý pagenumber và price phải > 0.

3. Hiển thị tất cả các cuốn sách.

4. Hiển thị tất cả các cuốn sách theo giá tăng dần

5. Hiển thị tất cả các cuốn sách theo số trang giảm dần

6. Tìm những cuốn sách có tên chứa cụm từ được nhập từ bàn phím

7. Tìm những cuốn sách có giá nằm trong khoảng giá min và max, với min và max được nhập từ bàn phím

8. Ghi file.

9. Đọc file.

» Tiếp: Bài tập phần tập tin (File)
« Trước: Bài tập phần hàm (function)
Các khóa học qua video:
Python SQL Server PHP C# Lập trình C Java HTML5-CSS3-JavaScript
Học trên YouTube <76K/tháng. Đăng ký Hội viên
Viết nhanh hơn - Học tốt hơn
Giải phóng thời gian, khai phóng năng lực
Copied !!!