Bởi
Nguyễn Văn Hiếu-
121215
This entry is part 67 of 69 in the series Học C Không Khó
86 / 100
Chương trình quản lý sinh viên, quản lý nhân viên, cán bộ là những bài tập khá phổ biến và cần sử dụng kiến thức về struct để lập trình. Đây là những bài tập giúp các bạn sinh viên ôn luyện về kiểu cấu trúc struct. Tại bài viết này, Nguyễn Văn Hiếu Blog sẽ giải một bài tập struct minh họa – đó là chương trình quản lý sinh viên.
NỘI DUNG BÀI VIẾT
1. Đề bài chương trình quản lý sinh viên
- Khai báo kiểu dữ liệu SinhVien có các trường họ tên, giới tính, tuổi, điểm toán – lý – hóa và điểm trung bình.
- Nhập vào danh sách N sinh viên
- Xuất danh sách N sinh viên
- Tính điểm trung bình cho N sinh viên
- Sắp xếp N sinh viên theo thứ tự tăng dần của điểm trung bình
- Xếp loại N sinh viên
- Xuất danh sách N sinh viên ra file
- Viết chương trình dạng menu cho phép sử dụng các tính năng trên
2. Kiến thức cần có
- Kiến thức lập trình cơ bản
- Kiến thức về hàm con
- Struct trong C
- Cách sử dụng cấu trúc lặp: for, do while, while
- Cách sử dụng cấu trúc điều khiển & rẽ nhánh: if else, switch case
- Nhập xuất file
?Tham khảo ngay: Dịch vụ code thuê đồ án CNTT của Lập Trình Không Khó
3. Code chương trình quản lý sinh viên
Dưới đây là code tham khảo cho bài tập chương trình quản lý sinh viên đã nêu.
Các bạn có thể khai báo kiểu cấu trúc SinhVien như sau:
1
2
3
4
5
6
7
struct SinhVien{
char ten[30];
char gt[5];
int age;
float dT, dL, dH;
float dtb = 0;
};
Viết lại tên kiểu dữ liệu để viết ngắn hơn
1
typedef SinhVien SV;
Khai báo các hàm sẽ sử dụng trong chương trình:
1
2
3
4
5
6
7
8
9
void nhap[SV &sv];
void nhapN[SV a[], int n];
void xuat[SV sv];
void xuatN[SV a[], int n];
void tinhDTB[SV &sv];
void sapxep[SV a[], int n];
void xeploai[SV a];
void xeploaiN[SV a[], int n];
void xuatFile[SV a[], int n, char fileName[]];
Ý tưởng nhập danh sách sinh viên: Viết hàm nhập thông tin của 1 sinh viên, sau đó viết hàm nhập nhiều sinh viên chỉ cần dùng for và gọi hàm nhập 1 sinh viên.
Ý tưởng xuất danh sách sinh viên tương tự ý tưởng nhập.
Các chức năng khác các bạn vui lòng xem code để hiểu rõ hơn.
C++1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
// Nếu bạn bị lỗi thư viện conio.h => Do bạn dùng C++ bản mới.
// Hãy kéo xuống comment và lấy code update nhé.
#include
#include
#include
struct SinhVien{
char ten[30];
char gt[5];
int age;
float dT, dL, dH;
float dtb = 0;
};
typedef SinhVien SV;
void nhap[SV &sv];
void nhapN[SV a[], int n];
void xuat[SV sv];
void xuatN[SV a[], int n];
void tinhDTB[SV &sv];
void sapxep[SV a[], int n];
void xeploai[SV a];
void xeploaiN[SV a[], int n];
void xuatFile[SV a[], int n, char fileName[]];
int main[]{
int key;
char fileName[] = "DSSV.txt";
int n;
bool daNhap = false;
do{
printf["\nNhap so luong SV: "]; scanf["%d", &n];
}while[n