Menu
CoddyTech

Ôn tập: struct dữ liệu học sinh

Thuộc phần Logic và luồng điều khiển trong hành trình C của Coddy. Bài học 43 trên 63.

challenge icon

Thử thách

Dễ

Tạo một chương trình C minh họa toàn bộ quy trình sử dụng struct trong hệ thống quản lý sinh viên. Chương trình của bạn cần:

  1. Định nghĩa một struct có tên Student với các thành viên sau:
    • Một số nguyên id để lưu mã số sinh viên
    • Một số thực grade để lưu điểm của sinh viên
  2. Trong hàm main, tạo một biến Student có tên student1
  3. Đọc mã số và điểm của sinh viên từ đầu vào bằng scanf:
    • Đọc một số nguyên làm mã số và lưu vào student1.id
    • Đọc một số thực làm điểm và lưu vào student1.grade
  4. Sau khi đọc đầu vào, thực hiện các bước kiểm tra và tính toán sau:
    • Nếu điểm lớn hơn 100.0, đặt điểm thành 100.0
    • Nếu điểm nhỏ hơn 0.0, đặt điểm thành 0.0
    • Tính điểm thưởng bằng cách cộng 5.0 vào điểm hiện tại, sau khi kiểm tra
    • Nếu điểm thưởng vượt quá 100.0, đặt điểm thưởng thành 100.0
  5. In thông tin sinh viên theo đúng định dạng sau:
    • Student Information:
    • ID: [id]
    • Original Grade: [grade]
    • Bonus Grade: [bonus_grade]
    • Grade Status: [status]
  6. Xác định trạng thái điểm như sau:
    • Nếu điểm ban đầu từ 90.0 trở lên: Excellent
    • Nếu điểm ban đầu từ 80.0 đến 89.9: Good
    • Nếu điểm ban đầu từ 70.0 đến 79.9: Average
    • Nếu điểm ban đầu dưới 70.0: Needs Improvement

Thử thách này kiểm tra mức độ hiểu của bạn về cách định nghĩa struct, tạo biến, truy cập thành viên bằng toán tử dấu chấm, xử lý đầu vào bằng scanf và dùng logic điều kiện để kiểm tra, xử lý dữ liệu. Bạn sẽ luyện tập toàn bộ quy trình làm việc với struct trong một tình huống thực tế.

Tự làm thử

#include <stdio.h>

// TODO: Định nghĩa struct Student tại đây

int main() {
    // TODO: Tạo biến Student tên là student1
    
    // Đọc đầu vào
    int id;
    float grade;
    scanf("%d", &id);
    scanf("%f", &grade);
    
    // TODO: Lưu các giá trị đầu vào vào các thành viên của struct
    
    // TODO: Kiểm tra tính hợp lệ của điểm và tính điểm thưởng
    
    // TODO: Xác định trạng thái điểm
    
    // In ra kết quả
    printf("Student Information:\n");
    printf("ID: %d\n", /* TODO: In ra ID của sinh viên */);
    printf("Original Grade: %.1f\n", /* TODO: In ra điểm ban đầu */);
    printf("Bonus Grade: %.1f\n", /* TODO: In ra điểm thưởng */);
    printf("Grade Status: %s\n", /* TODO: In ra trạng thái điểm */);
    
    return 0;
}

Tất cả bài học trong Logic và luồng điều khiển

Tự luyện tập: Trình biên dịch C online