Chúng ta đi từ một chương trình tào lao được thêm mắm muối từ chương trình Hello World! huyền thoại tới chương trình tào lao phiên bản 2 với vòng lặp, mảng....trong phần trước, và giờ đây chúng ta chuẩn bị viết một chương trình cũng...tào lao, nhưng là phiên bản 3.
"Trái tim" của chương trình tào lao phiên bản 2 là một hàm với tham số là một mảng tên của sinh viên. Tuy nhiên, nó chỉ là một mảng họ tên sinh viên, ngoài ra không có bất cứ thông tin gì khác. Trong phiên bản 3, chúng ta cần sử dụng mảng cấu trúc để lưu giữ thông tin của sinh viên.
Hình dung chương trình
- Chúng ta sẽ cần khai báo một cấu trúc SinhVien, gọi là struct SinhVien
- Chúng ta sẽ cần một hàm để nhập mảng cấu trúc, gọi là nhapSinhVien()
- Chúng ta sẽ cần một hàm để xuất mảng cấu trúc, gọi là xuatSinhVien()
Vẫn với phong cách...tào lao, trước hết chúng ta sẽ xây móng của chương trình.
Đây là những thủ tục đầu tiên
#include <stdio.h>
int main()
{
return 0;
}
Sử dụng IDE Online để chạy thử
Để tiếp tục, chúng ta sẽ hình dung về các hàm:
Chúng ta ví dụ với một cấu trúc tương tự thế này:
struct NhanVien thongTinNhanVien[50] = {
"Tran Van A", "tranvanA@email.com","123 so 2, Da Nang" ....,
"Le Van B", "levanB@email.com","456 so 3, Da Nang" .....
"Nguyen Thi C", "nguyenthiC@email.com", "789 so 4, Da Nang" .....
};
Sẽ rất khó để viết một hàm in toàn bộ thông tin như vậy, chúng ta nên xây dựng 2 hàm dùng cho việc này: Hàm thứ nhất để in thông tin cho 1 biến struct, hàm thứ hai in ra toàn bộ mảng struct.
Hàm thứ hai hoạt động tương tự như hàm in danh sách sinh viên trong phiên bản 2, nghĩa là sử dụng vòng lặp For. Ví dụ có 50 sinh viên thì nó sẽ lặp lại 50 lần lệnh in của HÀM THỨ NHẤT.
Hàm thứ nhất có nhiệm vụ in thông tin của MỘT SINH VIÊN. Ví dụ:
"Tran Van A", "tranvanA@email.com","123 dương so 2, Da Nang" ....
Hàm thứ nhất sẽ nhập thông tin bằng lệnh get() hoặc fgets().
Bây giờ chúng ta sẽ bắt đầu bước tiếp theo.
Đầu tiên quan trọng nhất đó là khai báo cấu trúc:
struct SinhVien{
char hoten[50];
char email[50];
char diaChi[60];
char chuyenNganh[40];
double diemTrungBinh;
};
Chúng ta cũng sẽ dùng lệnh typedef struct SinhVien SinhVien; bên dưới khai báo cấu trúc
Còn đây là khai báo hàm, đặt trên main(). Ta sẽ cần khai báo 4 hàm, tất cả đều là void vì chúng ta không cần giá trị trả về.
void nhap(SinhVien x);
void nhapSinhVien(SinhVien a[], int n);
void xuat(SinhVien x);
void xuatSinhVien(SinhVien a[], int n);
Vẫn sử dụng IDE Online, bấm Run để chạy chương trình, mọi thứ ổn.
Chúng ta thêm 4 định nghĩa hàm bên dưới main()
void nhap(SinhVien x){
}
void nhapSinhVien(SinhVien a[], int n){
}
void xuat(SinhVien x){
}
void xuatSinhVien(SinhVien a[], int n){
}
Chương trình tào lao phiên bản 3 sẽ có bộ khung thế này
#include "stdio.h"
struct SinhVien{
char hoten[50];
char email[50];
char diaChi[60];
char chuyenNganh[40];
double diemTrungBinh;
};
typedef struct SinhVien SinhVien;
void nhap(SinhVien x);
void nhapSinhVien(SinhVien a[], int n);
void xuat(SinhVien x);
void xuatSinhVien(SinhVien a[], int n);
int main(){
return 0;
}
void nhap(SinhVien x){
}
void nhapSinhVien(SinhVien a[], int n){
}
void xuat(SinhVien x){
}
void xuatSinhVien(SinhVien a[], int n){
}
Bấm Run để chạy thử
Chúng ta sẽ tạm dùng phần 1 ở đây.
Không có nhận xét nào:
Đăng nhận xét