1. Bài tập nhập và hiển thị thông tin sinh viên bằng struct trong C

Bài tập này chúng ta sẽ sử dụng các kiến thức từ ngôn ngữ lập trình C như: cách nhập xuất cơ bản trong ngôn ngữ lập trình C,cách sử dụng hàm trong C, cách sử dụng struct trong ngôn ngữ lập trình C và sử dụng vòng lặp for để duyệt thông tin của từng sinh viên.

Yêu cầu bài tập là sử dụng Struct trong C tạo cấu trúc sinh viên gồm các thông tin: tên sinh viên, mã sinh viên, lớp học và năm sinh. Nhập thông tin các sinh viên và sau đó in các thông tin này trên màn hình.

2. Lời giải

Để thực hiện bài toán này chúng ta cần có kiến thức cơ bản về ngôn ngữ lập trình C, các cách nhập xuất cơ bản trong C, cách sử dụng hàm trong C, cách sử dụng struct trong ngôn ngữ lập trình C và sử dụng vòng lặp for để duyệt thông tin của từng sinh viên.

Các bước thực hiện yêu cầu của bài tập nhập và hiển thị thông tin sinh viên bằng struct trong C như sau:

Bước 1: Ta khai báo một cấu trúc struct SinhVien gồm có: char TenSV[50](tên sinh viên); char MaSV[50](mã sinh viên); char Lop[50](lớp); int NamSinh(năm sinh).

Bước 2: Ta khỏi tạo hàm void Nhap(SinhVien sv[], int n) dùng để nhập dữ liệu từ bàn phím thông tin của sinh viên. Trong hàm ta sử dụng vòng for bắt đầu từ int i=0, kết thúc khi i<n và mỗi lần i tăng lên 1 để nhập dữ liệu cho từng sinh viên từ sv[0] đến sv[n-1], trong vòng for thì nhập vào dữ liệu của sinh viên.

Bước 3: Ta khởi tạo hàm void Xuat(SinhVien sv[], int n) dùng để hiển thị dữ liệu của sinh viên ra màn hình. Trong hàm ta sử dụng vòng for bắt đầu từ int i=0, kết thúc khi i<n và mỗi lần i tăng lên một để hiển thị dữ liệu của từng sinh viên từ sv[0] đến sv[n-1] ra màn hình, trong vòng for in dữ liệu của sinh viên ra màn hình.

Bước 4: Trong hàm main ta khởi tạo biến SinhVien sv[100] (mảng sv kiểu dữ liệu SinhVien có tối đa 100 phần tử), biến int n (số lượng sinh viên) và nhập dữ liệu từ bàn phím và cho n.

Bước 5: Ta gọi hàm Nhap(sv,n) và Xuat(sv,n) rồi chạy chương trình.

Chương trình giải bài tập nhập và hiển thị thông tin sinh viên bằng struct trong C như sau:

#include <stdio.h> 
struct SinhVien{
    char TenSV[50];
    char MaSV[50];
    char Lop[50];
    int NamSinh;
};
void Nhap(SinhVien sv[], int n){// ham nhap thong tin sinh vien
    for(int i=0; i<n; i++){
        printf("\nNhap thong tin sinh vien thu %d:",i);
        printf("\nNhap ten sinh vien:");
        fflush(stdin);//xoa bo dem
        gets(sv[i].TenSV);
        printf("\nNhap ma sinh vien:");
        fflush(stdin);//xoa bo dem
        gets(sv[i].MaSV);
        printf("\nNhap lop:");
        fflush(stdin);//xoa bo dem
        gets(sv[i].Lop);
        printf("\nNhap nam sinh:");
        scanf("%d", &sv[i].NamSinh);
    }
}
void Xuat(SinhVien sv[], int n){//ham hien thi thong tin sinh vien
    printf("\n-----THONG TIN SINH VIEN----\n");
    printf("TenSv \t\t MaSV \t Lop \t NamSinh \n");
    for(int i=0; i<n; i++){
        printf("%s \t %s \t %s \t %d \n",sv[i].TenSV,sv[i].MaSV,sv[i].Lop,sv[i].NamSinh);
    }
}
int main(){ 
    SinhVien sv[100];// khai bao mang sv kieu SinhVien co toi da 100 phan tu
    int n; // khai bao so sinh vien
    printf("Nhap so sinh vien:");
    scanf("%d",&n);
    Nhap(sv,n);
    Xuat(sv,n);
}

Kết quả:

Nhap so sinh vien:2

Nhap thong tin sinh vien thu 0:
Nhap ten sinh vien:Nguyen Van A

Nhap ma sinh vien:A001

Nhap lop:CNPM

Nhap nam sinh:2002

Nhap thong tin sinh vien thu 1:
Nhap ten sinh vien:Dinh Van B

Nhap ma sinh vien:C002

Nhap lop:TMDT

Nhap nam sinh:1999

-----THONG TIN SINH VIEN----
TenSv            MaSV    Lop     NamSinh
Nguyen Van A     A001    CNPM    2002
Dinh Van B       C002    TMDT    1999

3. Tổng kết

Sau khi làm bài tập này các bạn cần phải hiểu và nắm được những kiến thức sau:

  • Cách nhập xuất cơ bản trong ngôn ngữ lập trình C.
  • Cách sử dụng hàm trong C.
  • Cách sử dụng struct trong C.
  • Cách sử dụng vòng lặp để duyệt thông tin của từng sinh viên trong C.
  • Cách nhập và hiển thị thông tin sinh viên trong C.