Tải bản đầy đủ (.pdf) (28 trang)

Báo cáo bài tập lớn nhập môn lập trình đề tài quản lý điểm sinh viên

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (990.05 KB, 28 trang )

ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINH
TRƯỜNG ĐẠI HỌC BÁCH KHOA TP.HỒ CHÍ MINH
--------*-------

BÁO CÁO
BÀI TẬP LỚN NHẬP MƠN LẬP TRÌNH
Đề tài : QUẢN LÝ ĐIỂM SINH VIÊN
GVHD: TS. TRẦN QUANG
Nhóm sinh viên thực hiện:

Họ và tên

MSSV

Phạm Hồng Duy

1510494

Phạm Phú Hưng

1511404

Nguyễn Hoài Sơn

1512840

Năm học : 2016 - 2017

1



PHÂN CƠNG CƠNG VIỆC
Họ tên SV

MSSV

Cơng việc
(% đóng góp của mỗi thành viên )

Phạm Hoàng Duy

1510494 Viết main.c, sinhvien.c, sinhvien.h

35%
Soạn báo cáo

35%
Viết giaovu.c, useforgiaovu.c, quyengiaovu.c,
giaovu.h
Soạn báo cáo
Viết project quanlydulieu
Đề xuất ý tưởng thiết kế chương trình

Phạm Phú Hưng

1511404

Nguyễn Hồi Sơn

1512840 Viết giaovien.c, giaovien.h


30%

2


MỤC LỤC

Trang

GIỚI THIỆU ĐỀ TÀI : ……………………………………………………………..4
Ý TƯỞNG THIẾT KẾ CHƯƠNG TRÌNH : ……………………………………...4
1. Mơ tả nghiệp vụ : ………………………………………………………………...4
2. Ý tưởng thiết kế : ………………………………………………………………...5
III. TỔ CHỨC CHƯƠNG TRÌNH : ……………………………………………………6
Project sẽ có các file :
1. main.c :…………………………………………………………………………….6
2. giaovu.c :…………………………………………………………………………..6
3. useforgiaovu.c :……………………………………………………………………8
4. quyengiaovu.c :……………………………………………………………………9
5. giaovien.c :………………………………………………………………………....9
6. sinhvien.c :…………………………………………………………………………9
7. giaovu.h :………………………………………………………………………….10
8. giaovien.h :………………………………………………………………………..10
9. sinhvien.h :………………………………………………………………………..10
IV. HƯỚNG DẪN SỬ DỤNG CHƯƠNG TRÌNH :……………………………………10
V.
KẾT QUẢ CHẠY CHƯƠNG TRÌNH :…………………………………………….11
1. Giao diện Menu chính :…………………………………………………………..11
2. Mục 3 : Giáo vụ :………………………………………………………………….11
3. Mục 2 : Giáo viên :………………………………………………………………..22

4. Mục 1 : Sinh viên :………………………………………………………………...25
VI. PHẦN TÂM ĐẮC NHẤT :…………………………………………………………..26
VII. KẾT LUẬN :………………………………………………………………………….27
VIII. PHẦN THU LẠI ĐƯỢC :……………………………………………………………28
IX. TÀI LIỆU THAM KHẢO :…………………………………………………………..28
I.
II.

3


Đề tài : QUẢN LÝ ĐIỂM SINH VIÊN
I.

GIỚI THIỆU ĐỀ TÀI :
Đề tài : Quản lý điểm sinh viên
 Với một số lượng lớn sinh viên cùng với đó mỗi sinh viên lại có số lượng mơn học
và số lượng điểm thành phần cho từng môn học cũng rất lớn, nhu cầu quản lý điểm
sinh viên trong các trường Đại học được đặt ra, từ đó xuất hiện các chương trình
Quản lý điểm sinh viên .
 Đối tượng sử dụng trong chương trình : sinh viên, giáo viên,... sử dụng để xem
thông tin và quản lý điểm , thông tin của từngsinh viên.
 Ý nghĩa thực tế của chương trình : Giúp hệ thống thông tin cá nhân, điểm thành
phần, điểm rèn luyện của từng sinh viên, dễ kiểm soát điểm một cách dễ dàng, và
thao tác trên dữ liệu dễ dàng và thuận tiện hơn.

II.

Ý TƯỞNG THIẾT KẾ CHƯƠNG TRÌNH :
1. Mơ tả nghiệp vụ :

 Chương trình quản lý điểm sinh viên cung cấp cho người dùng các lựa chọn khác
nhau cho từng đối tượng sử dụng nhưng có mối liên hệ chặt chẽ giữa các chức
năng của chương trình. Các chức năng của chương trình : quyền sinh viên, quyền
giáo viên, quyền giáo vụ .
 Các chức năng,lựa chọn trong chương trình :
 Quyền sinh viên :
 Dùng MSSV riêng của mình để xem thơng tin về điểm thành phần của
từng môn ( điểm giữa kỳ, bài tập lớn, cuối kì, điểm trung bình) có đạt
chuẩn đầu ra của mơn hay khơng; điểm rèn luyện; có khả năng nhận học
bổng hay không,... tương úng với lớp mà sinh viên đang học.
 Xuất ra thông tin điểm của mỗi sinh viên sau khi sinh viên đó nhập MSSV
của mình , gồm điểm nhiều mơn khác nhau , mỗi mơn có nhiều điểm thành
phần : giữa kì, bài tập lớn, cuối kì; điểm trung bình mơn học,....
 Quyền giáo vụ :
 Tạo danh sách lớp, thêm sinh viên mới vào danh sách ( khơng trùng với
sinh viên đã có sẵn trước đó), sửa tên sinh viên đã có, xóa tên sinh viên ra
khỏi danh sách của lớp tương ứng, xem tồn bộ danh sách sinh viên của
một lớp,...
 Tính toán điểm rèn luyện của sinh viên cho từng lớp tương ứng bao gồm :
nhập điểm rèn luyện cho từng sinh viên, sửa điểm rèn luyện, xem điểm rèn
luyện, điểm trung bình học kì, trung bình của tất cả sinh viên trong cùng
một lớp,...
 Quyền giáo viên :

4


 Nhập điểm cho từng sinh viên tương ứng với mỗi lớp, mỗi sinh viên sẽ
được nhập điểm của nhiều môn học khác nhau, tương ứng với mỗi môn
học sẽ có các điểm thành phần : giữa kì, bài tập lớn, cuối kì,... sẽ có hàm

tính điểm trung bình cho từng sinh viên,...
 Sửa điểm cho từng sinh viên, in danh sách tên sinh cùng với điểm sau khi
đã sửa,...
2. Ý tưởng thiết kế
a. Tạo các biến toàn cục thuộc kiểu cấu trúc:
struct sv{
unsigned int stt;// số thứ tự sinh viên
unsigned int mssv;// mã số sinh viên
char ten[size];//tên sinh viên
char lop[size];// lớp sinh viên
unsigned int dr;// điểm rèn luyện của sinh viên
float tbhk;// điểm trung bình học kì của sinh viên
float tb;// điểm trung bình (80%tbhk+2%drl)
int check;//ghi chú kết quả của sinh viên sau mỗi học kì
+ check = 0// khơng có ghi chú
+ check = 1// khi(tbhk>=8)&(drl>=80): đạt học bổng
+check = -1// khi(tbhk<=4)&(drl<=30): dừng HK tiếp theo
};
struct monhoc{
int a;//số thứ tự mơn học
char tenmon[size];//tên mơn học
int sotinchi;//số tín chỉ
};
struct mon{
int a,b;//a là số thứ tự môn, b là số thứ tự sinh viên
char tenmon[size];// tên môn học
int sotinchi;// số tín chỉ
float gk;//điểm giữa kì
float btl;//điểm bài tập lớn
float ck;//điểm cuối kì


5


float tbm;//điểm trung bình mơn học = 30%gk+30%btl+40%ck };
b. Tạo các file ghi và xuất dữ liệu tương ứng





sinhvien.dat, sinhvien1.dat// ghi và xuất dữ liệu vào struct sv
diem.dat, diem1.dat//ghi và xuất dữ liệu vào struct mon
mon.dat, mon.dat//ghi và xuất dữ liệu vào struct monhoc
temp.dat // chép dữ liệu tạm ra ngoài, hỗ trợ hàm delname1, delnme2.

Các file trên hoàn toàn độc lập với nhau, để liên kết dữ liệu của chúng, thêm
các biến số thứ tự (được tô màu xanh lá) vào các biến struct, trong đó sv.stt đồng
thời là mon.b, mon.a đồng thời là monhoc.a. (do cùng cách qui ước).
Các biến này giúp giải quyết hầu hết các vấn đề của quá trình quản lý, vd:
 Nhập MSSV, tìm điểm của sinh viên đó: trong khi tìm MSSV trong file
sinhvien.dat, ta tìm được sv.stt = n; tìm kiếm mon.b == n trong file diem.dat
ta tìm được các điểm số tương ứng.
 Xuất bảng thống kê điểm của 1 môn học của tất cả sinh viên: từ số thứ tự mơn
học monhoc.a = n trong file mon.dat, tìm kiếm mon.a == n trong file diem.dat
ta tìm được các điểm số tương ứng và giá trị mon.b == m, tìm kiếm sv.stt ==
m ta tìm được sinh viên tương ứng với từng điểm số vừa tìm đươc.
 .....
c. Các file gốc hỗ trợ chương trình
 mssv, mssv1: chứa mssv của CK15KSCD & CK15KSCK.

 ten, ten1: chứa tên của CK15KSCD & CK15KSCK.
 lop, lop1: chứa lớp của CK15KSCD & CK15KSCK.
III. TỔ CHỨC CHƯƠNG TRÌNH :
Project sẽ có các file :
1. main.c : chương trình chính.
2. giaovu.c: chứa các hàm con xử lý các chức năng của quyền giáo vụ :
a. void resetsv(FILE *fptr,FILE *id,FILE *name,FILE *lop,int n): hàm tạo file
sinhvien.dat chứa tên, lớp, mssv, điểm RL, điểm TBHK, điểm TB, số thứ tự,...của
biến struct sv, trong đó cho các biến: gk, btl, ck, check bằng 0.
 fptr: ghi dữ liệu file sinhvien.dat chế độ “wb”
 id: xuất dữ liệu từ file mssv ra sv.mssv chế độ “r”
 name: xuất dữ liệu từ file ten ra sv.ten chế độ “r”
 lop: xuất dữ liệu từ file lop ra sv.lop chế độ “r”
 n: tổng số sinh viên trong lớp
* Ý tường tạo hàm: giúp rút ngắn q trình nhập thơng tin sinh viên bằng cách
tạo trước 3 file chứa tên, mssv, lớp từ danh sách lớp có sẳn và ghi vào file
sinhvien.dat thơng qua struct sv.

6


b. void nhapsv(FILE *fptr,char s[],unsigned int x,unsigned int z): hàm thêm sinh
viên vào file sinhvien, đồng thời cũng tạo ra các điểm ban đầu có giá trị 0 .
 fptr: ghi dữ liệu vào sinhvien.dat chế độ “ab”
 s: tên lớp sinh viên được thêm vào
 x: tổng số sinh viên lớp hiên có
 z: mssv của sinh viên cuối danh sách lớp (mặc định là sinh viên có mssv cao
nhất)
*Ý tưởng tạo hàm: dùng n(đồng thời là số thứ tự của sinh viên cuối danh sách)
để đánh số thứ tự cho các sinh viên được thêm vào bằng vòng lặp for, kết hợp tạo

tự động mssv cho sinh viên mới bằng cách cộng 1 vào mssv trước đó.
c. void xemsv(FILE *fptr) :hàm xuất danh sách lớp gồm số thứ tụ, tên và MSSV.
 fptr: xuất dữ liệu từ file sinhvien.dat chế độ “rb”
d. void xemdiemsv(FILE *fptr) :hàm xuất tất cả các thông tin sinh viên trong struct
sv{} , cho biết tình trạng sinh viên (có học bổng, bị dừng học kì kế tiếp) thơng qua
sv.check
 fptr: xuất dữ liệu từ file sinhvien.dat chế độ “rb”
e. void modifyname(FILE *fptr) : hàm thay đổi tên sinh viên.
 fptr: xuất và ghi dữ liệu vào file sinhvien.dat chế độ “rb+”
*Ý tưởng tạo hàm: hàm u cầu nhập mssv, từ đó tìm kiếm thông tin sinh viên
tương ứng, dùng sv.stt để xác định vị trí sinh viên cần thay đổi tên và ghi lại vào
file sinhvien.dat.
f. int delname1(FILE *fptr) và void delname2(FILE *fptr) : kết hợp 2 hàm để xóa
tên sinh viên khỏi danh sách, số thứ tự sinh viên cũng được dồn lên vào vị trí sinh
viên đã bị xóa.
 delname1: fptr xuất dữ liệu từ file sinhvien.dat chế độ “rb”
 delname2:fptr ghi dữ liệu vào file sinhvien.dat chế độ “wb”
*Ý tưởng tạo hàm:
 delname1: mở file temp.dat chế độ “wb” ghi dữ liệu vào đó từ file
sinhvien.dat (trừ dữ liệu của sinh viên bị xóa), đặt lại số thứ tự cho các sinh
viên, xác định sinh viên cần xóa bằng cách yêu cầu nhập mssv, trả về 1 nếu
tìm thấy sinh viên cần xóa, trả về 0 nếu khơng tìm thấy.
 delname 2: kết hợp với delname1 bằng lệnh if, thực hiện nếu delname1 trả
vế 1, mở file temp.dat chế độ “rb” chép dữ liệu từ đây vào sinhvien.dat.
g. void nhaprl(FILE *fptr) : hàm nhập điểm rèn luyện cho tất cả sinh viện trong một
lớp.
 fptr: mở file sinhvien.dat chế độ “rb+”
*Ý tưởng tạo hàm: dùng fread đọc hàm kết hợp vòng lặp while, để trỏ từ đầu tới
cuối file, dùng sv.stt để xác định vị trí chép điểm rèn luyện vào cho sinh viên.


7


Đây thực chất là hàm sửa điểm rèn luyện vì void resetsv() đã tạo cho tất cả các
điểm rèn luyện bằng 0.
h. void modifyrl(FILE *fptr) : hàm thay đổi điểm rèn luyện của sinh viên.
 fptr: mở file sinhvien.dat chế độ “rb+”
*Ý tưởng tạo hàm: tương tự hàm nhaprl, nhưng yêu cầu mssv để chỉ thay đổi
điểm rèn luyện cho 1 sinh viên tương ứng.
i. void xemrl(FILE *svien) : hàm xuất số thứ tự, tện, lớp và điểm rèn luện của các
sinh viên trong lớp.
 fptr: xuất dữ liệu từ file sinhvien.dat chế độ “rb”
j. void caltb(FILE *svien,FILE *diem) : hàm tính điểm trung bình học kì và điểm
trung bình của tất cả sinh viên .
 svien: gọi file sinhvien.dat chế độ “rb+”
 diem: gọi file diem.dat chế độ “rb”
*Ý tưởng tạo hàm: đọc svien trong vòng lặp while1, đọc diem trong while2 (lồng
trong while 1), while1 xuất lần lượt số thứ tự (sv.stt) while2 tìm các giá trị
mon.b == sv.stt (tương ứng từng sinhvien), và tính tốn sv.tbhk, sv.tb, sv.check
theo công thức cho trước và ghi lại vào sinhvien.dat (dùng sv.stt để xác định vị
trí cần ghi)
k. void resetdiem(FILE *di,FILE *mo,int n): u cầu nhập số mơn, số tín chỉ, tên
môn và tạo ra các điểm thành phần của từng môn của từng sinh viên bằng 0
 di: gọi file diem.dat chế độ “wb”
 mo: goi file mon.dat chế độ “wb”
*Ý tưởng tạo hàm: dùng 2 vòng lặp for trong đó vịng lặp ngồi u cầu nhập
tên mơn, đồng tời đánh số thứ tự cho từng môn (mon.a) với giá trị tăng dần,
vòng lặp trong yêu cầu nhập điểm thành phần (diểm từng môn của mỗi sinh
viên) đánh số thứ tự tăng dần (mon.b) cho mỗi lần lặp, cách gán giá trị này tương
tự mảng 2 chiều: mỗi nhóm điểm thành phần có mon.a và mon.b khác nhau đại

diện cho
3. useforgiaovu.c: chứa các hàm hỗ trợ cho việc nhập xuất dữ liệu được tốt hơn trong
quyền giáo vụ:
a. chuanhoaten(char s[size]): hàm chuẩn hóa tên, bao gồn xóa dấu cách dư, in hoa
chữ đầu và viết thường các chữ còn lại.Ý tưởng: kết hợp hàm chuẩn hóa chuổi đã
học với tolower, toupper trong thư viên ctype.h
b. xoakt(char s[size],int i): hàm xóa kí tự s[i] trong chuỗi s dùng kết hợp với hàm
chuanhoaten.
c. chon() : hàm tạo menu lựa chọn giữa 2 lớp: CK15KSCD và CK15KSCK
( 2 file danh sách lớp đã được tạo từ việc nhập thông tin của quyền giáo vụ ).
d. chonmon(FILE *mo): in ra danh sách các môn học (đã được tạo ra từ hàm
resetdiem ), gọi file mon.dat chế độ “rb”

8


e. unsigned int tong(FILE *fptr) : hàm trả về tồng số sinh viên trong một lớp (tìm
số thứ tự của sinh viên cuối danh sách), gọi file sinhvien.dat chế độ “rb”
f. unsigned int mssv(FILE *fptr) : hàm trả về MSSV cao nhất lớp (mặc định là sinh
viên xếp cuối danh sách), gọi file sinhvien.dat chế độ “rb”.

4. quyengiaovu.c:
a. void giaovumodifysv(): hàm chứa các case thực hiện quyền giáo vụ thay đổi
thông tin sinh viên.
b. void giaovumodifydiem(): hàm chứa các case thực hiện quyền giáo vụ về điểm
sinh viên
c. void quyengiaovu(): hàm chứa 2 case gọi ra hàm giaovumodifysv() và
giaovumodifydiem()
5. giaovien.c: chứa các hàm xử lý các chức năng của quyền giáo viên :
a. void nhapdiem(FILE *fptr,FILE *f,const int n,const int k):nhập điểm cho tất

cả sinh viên của lớp, mỗi khi nhập xong 1 cột điểm sẽ có lựa chọn tiếp tục
nhập hoặc dừng lại
 fptr: gọi file sinhvien.dat “rb”
 di: hàm gọi file diem.dat “rb+”
 n: là monhoc.a (số thứ tự môn học)
 k: tổng số sinh viên của lớp
*Ý tưởng tạo hàm: tương tự hàm nhaprl, trong đó gọi k để kết hợp cùng với
mon.a và mon.b để xác đinh vị trí ghi dữ liệu vào diem.dat, mỗi khi nhập vào
một cột điểm thành phần thì cũng tính lại điểm trung bình mơn và ghi vào
diem.dat
b. void modifydiem(FILE *fptr,FILE *f,const int n); sửa điểm cho 1 sinh viên
 fptr: gọi file sinhvien.dat “rb”
 di: hàm gọi file diem.dat “rb+”
 n: là monhoc.a (số thứ tự môn học)
 k: tổng số sinh viên của lớp
*Ý tưởng tạo hàm: tương tự hàm void nhapdiem nhưng yêu cầu nhập mssv của
sinh viên cần thay đổi điểm, dùng sv.stt truy xuất được từ sinhvien.dat kết hợp
mon.a để tìm đúng điểm của mơn học của sinh viên cần sửa, kế hợp thêm k để
xác định vị trí cần ghi vào file diem.dat
c. void thongkediem(FILE *svien,FILE *diem,int n); xuất bảng thống kê điểm
của lớp của môn học
 fptr: gọi file sinhvien.dat “rb”
 diem: gọi file diem.dat “rb”
d. void quyengiaovien(int n) : gọi ra các case thực hiện các quyền của giáo viên
 n: số thứ tự môn học
6. sinhvien.c : chứa các hàm xử lý các chức năng của quyền sinh viên :

9



a. void loaderanim(): hàm tăng tính nghệ thuật cho chương trình, thể hiện như
máy đang kiểm tra mật khẩu.
b. int findname(FILE *fptr,FILE *di): xuất thông tin sinh viên, tất cả các cột
điểm thành phần, tình trạng sinh viên ( được học bổng hay bị dừng học kì kế
tiếp)
 fptr: gọi file sinhvien.dat “rb”
 di: gọi file diem.dat ”rb”
c. void SV(): hàm gọi các case chứa quyền của sinh viên
7. giaovu.h : chứa tên các hàm của quyền giáo vụ đã có trong giaovu.c, useforgiaovu.c,
quyengiaovu.c.
8. giaovien.h: chứa tên các hàm của quyền giáo viên đã có trong giaovien.c.
9. sinhvien.h: chứa tên các hàm của quyền giáo vụ đã có trong sinhvien.c.
Ghi chú : #define size 100
IV. HƯỚNG DẪN SỬ DỤNG CHƯƠNG TRÌNH :
 Chương trình được viết mơ phỏng lại hệ thống MyBK, theo đó có 3 đối tượng sử dụng
là giáo viên, sinh viên và phòng giáo vụ, tuy nhiên chương trình này hiện tại chỉ được
sử dụng bởi 1 cá nhân duy nhất nên nếu lần đầu đăng nhập vào hệ thống cần tuân theo
các bước sau để đảm bảo hệ thống phát huy được hết các tính năng và rút ngắn thời
gian nhập dữ liệu:
1. Ở cửa sồ “HE THONG QUAN LY ĐIEM SINH VIEN” nhập 3( giaovu)
2. Ở cửa sổ “QUYEN GIAO VU” nhập 1(thay doi thong tin sinh vien), nhập tiếp
1(reset danh sach lop), nhập tiếp 1(CO), lần lượt reset cả 2 lớp CK15KSCD và
CK15KSCK
3. Sau khi thốt khỏi “reset danh sach lop”, có thể chọn các lựa chọn cịn lại hoặc
khơng tùy theo nhu cầu.
4. Exit khỏi “QUYEN GIAO VU” và trở về cửa sổ “QUYEN GIAO VU” đầu tiên,
nhập 2(thay doi diem sinh vien)-> nhập 1(tao bang diem)->nhập 1(CO)->tạo bảng
điểm cho cả 2 lớp(nhập số mơn và số tín chỉ) bảng điểm giống hệt nhau (hoặc ít
nhất cũng có cùng số mơn)
5. Trở về cửa sồ “HE THONG QUAN LY ĐIEM SINH VIEN”, chọn 2(giao vien),

chọn môn học muốn nhập điểm->nhập 1(nhap diem) hoặc 2(nhap mssv...) để nhập
điểm cho sinh viên (có thể nhập điểm cho tất cả hoặc chỉ cho 1 sinh viên), lựa chọn
thứ 3(thong ke bang diem) có thể được chọn hặc không tùy theo nhu cầu.
6. Trở về cửa sồ “HE THONG QUAN LY ĐIEM SINH VIEN”, chọn 3(giao vu),
chon 2(thay doi diem sinh vien), chọn tiếp 2(nhap diem ren luyen) hoặc 3(sửa điểm
rèn luyện) để nhập điểm rèn luyện cho sinh viên.
7. Đến đây có thể thực hiện tất cả các chức năng cịn lại mà khơng gặp trở ngại gì.
 Nguyên nhân vì sao phải tuân thủ các bước trên:
1. Reset danh sách sinh viên buộc phải thực hiện đầu tiên vì nó tạo ra danh sách sinh
viên phục vụ các lựa chọn sau. Các lựa chọn còn lại như thêm sinh viên, xóa sinh
viên,... nếu được thực hiện cũng phải thực hiện ngay sau bước reset vì chúng làm

10


thay đổi danh sách sinh viên( mà sẽ ảnh hưởng đến kết quả của các chức năng khác
trong hệ thống)
2. Tạo bảng điểm được thực hiện trước bước nhập điểm của giáo viên vì chương trình
chì hỗ trợ các hàm thay đổi điểm nên chỉ thực hiện được sau khi bảng điểm đã
được lưu lại.
3. Nhập hoặc sửa bảng điểm rèn luyện, phải thực hiện sau khi việc nhập điểm của
giáo viên đã hồn thành, vì nó bao hàm ln cả hàm tính điểm trung bình của sinh
viên.
 Nhận xét: Các bước trên không phải hạn chế của hệ thống mà thực tế quá trình quản
lý điểm là như vậy:
1. Đầu học kì, phịng giáo vụ tạo danh sách lớp (reset danh sach lop)
2. Trong thởi gian học, nếu có thay đổi thơng tin sinh viên, phịng giáo vụ sẽ cập nhật
lại danh sách (
3. Phòng giáo vụ tạo bảng điểm khi đã biết được số sinh viên và số mơn học (tạo
bảng điểm)

4. Cuối học kì(khi bảng điểm đã dược tạo và khơng có thay đổi gì nữa), các giáo viên
đăng nhập vào hệ thống để nhập điểm cho mơn học của mình.
5. Sau khi các giáo viên hồn tất nhập điểm, phòng giáo vụ sẽ nhập điểm rèn luyện,
đồng thời tính điểm TBHK, TB cho sinh viên.
6. Bây giờ các sinh viên có thể xem điểm của mình 1 cách chính xác nhất

V.

KẾT QUẢ CHẠY CHƯƠNG TRÌNH:
1) Giao diện Menu chương trình :

2) Mục 3 : Giáo vụ : ( giáo vụ có chức năng quản lý các chức năng về truy cập thông
tin của sinh viên và giáo viên )
 Mục này có các chức năng :

11


 Thay đổi thông tin sinh viên.
 Thay đổi điểm sinh viên .
 Exit
Ghi chú : Cần có mật khẩu mới có thể truy cập được chức năng giáo vụ (mật
khẩu : 1511404 )

2.1) Mục : Thay đổi thông tin sinh viên :
 Mục này có các chức năng :
 Reset danh sách lớp.
 Thêm sinh viên vào danh sách
 Update ten sinh vien
 Xóa sinh viên khỏi danh sách

 Xem danh sách lớp
 Exit

2.1.1) Mục : Reset danh sách lớp :

12


 Sau khi chọn chương trình sẽ hỏi bạn có muốn Reset danh sách lớp hay không
( đây là lựa chọn nguy hiểm có thể dẫn đến mất dữ liệu đã nhập nên cần có
sự chắc chắn trước khi thực hiện chức năng này ) . Nếu chọn “CĨ” chương
trình sẽ Reset danh sách lớp, nếu chọn “KHÔNG” sẽ quay về màn hình giao
diện trước đó.

 Sau khi chọn “CĨ” sẽ có các lựa chọn để reset danh sách lớp :
 Lớp CK15KSCD
 Lớp CK15KSCK
 Exit

Danh sách lớp CK15KSCD , CK15KSCK sau khi reset :

2.1.2 ) Mục : Thêm sinh viên vào danh sách :

13


 Cũng có 2 lớp để lựa chọn, giả sử chọn lớp CK15KSCD

 Nhập vào số sinh thêm : giả sử chọn số lượng là 2 sinh viên


 Nhập tên 2 sinh viên mới cần thêm : ví dụ Nguyễn Minh, Phạm Hương ( có
thể nhập khơng đúng theo qui tắc đặt tên trong tiếng việt hoặc có nhiều dấu
cách ) chương trình vẫn có thể tự động chuẩn hóa theo qui tắc đặt tên và bỏ đi
những dấu cách thứa .

 Danh sách lớp CK15KSCD sau khi thêm 2 sinh viên mới ( sau khi đã chuẩn
hóa tên )
2.1.3 ) Mục : Update ten sinh vien :
 Sửa tên sinh viên đã có trong danh sách của một trong 2 lớp CK15KSCD,
CK15KSCK
 Cũng có 2 lớp để lựa chọn, giả sử chọn lớp CK15KSCD

14


 Nhập MSSV và tên sinh viên muốn sửa.
 Ví dụ : muốn sửa sinh viên có MSSV là 1512840 tên Nguyễn Hoài Sơn thành
Nguyễn Văn Huỳnh Sơn. ( vẫn có thể chuẩn hóa nếu tên được nhập sai so với
qui tắc đặt tên hoặc có nhiều dấu cách thừa )

- Danh sách lớp CK15KSCD sau khi đã cập nhật tên của sinh viên Nguyễn Hoài
Sơn thành Nguyễn Văn Huỳnh Sơn.

15


 Nếu MSSV của sinh viên cần sửa khơng có trong danh lớp, sẽ hiển thị

2.1.4) Mục : Xóa sinh viên khỏi danh sách :
 Chức năng : xóa sinh viên sinh khỏi danh sách sau khi nhập MSSV của sinh

viên đó.
 Sau khi chọn chương trình sẽ hỏi bạn có muốn xóa sinh viên hay khơng ( đây
là lựa chọn nguy hiểm có thể dẫn đến mất dữ liệu đã nhập nên cần có sự chắc
chắn trước khi thực hiện chức năng này ) . Nếu chọn “CÓ” chương trình sẽ
xóa tên sinh viên ra khỏi danh sách, nếu chọn “KHƠNG” sẽ quay về màn hình
giao diện trước đó.

 Cũng có 2 lớp để lựa chọn , giả sử chọn lớp CK15KSCD
 Nhập MSSV của sinh viên cần xóa khỏi lớp

16


Ví dụ : cần xóa sinh viên có MSSV là : 1510075 ( Nguyễn Thành Quốc Anh )

 Danh sách sinh viên lớp CK15KSCD sau khi xóa

 Nếu MSSV của sinh viên cần sửa khơng có trong danh sách lớp sẽ hiển thị

2.1.5) Mục : Xem danh sách lớp :

17


 Xem danh sách sinh viên sau khi đã thêm sinh viên, update thơng tin sinh viên,
xóa sinh viên.

2.1.6) Mục : Exit :

2.2) Mục :Thay đổi điểm sinh viên :

 Mục này có các chức năng :
 Tạo bảng điểm.
 Nhập điểm rèn luyện .
 Sửa điểm rèn luyện .
 Xem điểm rèn luyện, điểm trung bình học kí, điểm trung bình.
 Exit

18


2.2.1) Mục : Tạo bảng điểm : ( ở chức năng này khi giáo vụ thực hiện chức năng
tạo bảng điểm sẽ tạo ra số mơn, số tín chỉ cho mỗi mơn. Thì giáo viên mới có quyền
sửa,nhập điểm và tương tự như thế đối với sinh viên mới có quyền truy cập xem
điểm bằng MSSV của mình )
 Sau khi chọn chương trình sẽ hỏi bạn có muốn tạo bảng điểm ( Reset điểm )
hay không ( đây là lựa chọn nguy hiểm vì chức năng này giống như tạo một
bảng điểm với các mơn hồn tồn mới nên có thể dẫn đến mất dữ liệu đã nhập,
vì vậy cần có sự chắc chắn trước khi thực hiện chức năng này ) . Nếu chọn
“CĨ” chương trình sẽ Reset điểm , nếu chọn “KHƠNG” sẽ quay về màn hình
giao diện trước đó.

 Chức năng : tạo bảng điểm cho phép giáo viên nhập vào các điểm thành phần
(giữa kì; bài tập lớn; cuối kỳ ) của từng môn . Ở đây cũng có 2 sự lựa chọn là
lớp CK15KSCD và CK15KSCK, ở đây nhập số môn,tên môn tương tự cho 2
lớp.
 Ví dụ : ở đây nhập vào 4 mơn : Giải tích, Lý, Nhập mơn lập trình, Điều khiển
tự động với số chỉ tương ứng là : 3;4;3;3

2.2.2) Mục : Nhập điểm rèn luyện :
 Chức năng : cho phép nhập điểm rèn luyện của từng sinh viên trong một lớp,

trong q trình nhập có thể nhập một số lượng sinh viên cụ thể rồi thoát khỏi
chức năng này khơng nhất thiết phải nhập hết một lần.
Ví dụ : nhập điểm rèn luyện cho SV : Nguyễn Thành Quốc Anh là 95 sau đó
người dùng vẫn có thể lựa chọn nhập sinh viên tiếp theo hoặc thoát ra khỏi
chức năng này.

19


 Sau khi nhập xong sẽ có bảng thống kê điểm rèn luyện của tất cả sinh viên
trong một lớp.
 Hai lớp đều thực hiện quá trình nhập điểm rèn luyện tương tự .

2.2.3) Mục : Sửa điểm rèn luyện :
 Chức năng : sửa điểm rèn luyện của sinh viên sau khi nhập vào MSSV của sinh
viên đó, cuối cùng in ra bảng điểm rèn luyện của cả lớp với điểm rèn luyện của
sinh viên vừa mới sửa.
Ví dụ: Sửa điểm rèn luyện của sinh viên Nguyễn Thành Quốc Anh từ 95 thành
100, rồi in ra bảng điểm rèn luyện sau khi sửa.

20


2.2.4 ) Mục : Xem điểm rèn luyện, điểm trung bình học kỳ, điểm trung bình :
 Chức năng xem điểm rèn luyện, điểm trung bình học kỳ, điểm trung bình của
tất cả sinh viên trong một lớp.

21



*Ghi chú : Do chưa nhập điểm từng môn nên phần điểm TB chưa có
2.2.5) Mục : Exit :

2.3)

Mục : Exit :

3) Mục 2 : Giáo viên :
 Chức năng : có thể nhập và sửa điểm sinh viên theo số mơn cùng số tín chỉ của
mơn tương ứng mà giáo vụ đã cung cấp trước đó.
 Cũng tương tự như giáo vụ người dùng cần có mật khẩu mới có thể truy cập được
chức năng này. ( mật khẩu : 1511404 )
 Sau khi đăng nhập vào giáo viên hệ thống sẽ yêu cầu chọn môn cần nhập, sửa điểm
trong những môn đã được khai báo ở phần giáo vụ
Ví dụ : ở phần giáo vụ đã khai báo 4 mơn : Giải tích, Lý, Nhập mơn lập trình, Điều
khiển tự động; nên hệ thống sẽ yêu cầu chọn 1 trong 4 mơn đó để thực hiện việc
nhập,sửa điểm . Giả sử chọn mơn giải tích để xử lý việc nhập, sửa điểm .

22


Quyền giáo viên trong từng môn học gồm :
 Nhập điểm
 Nhập MSSV để sửa điểm cho sinh viên muốn sửa.
 Thống kê bảng điểm .
 Exit.
3.1) Mục : Nhập điểm :
 Chức năng : nhập điểm thành phần của môn được chỉ định cho từng sinh viên
tương ứng với lớp, sau khi nhập xong có thể nhập điểm sinh viên tiếp theo hoặc
thoát khỏi phần nhập điểm.


3.2) Mục : Nhập MSSV để sửa điểm cho sinh viên muốn sửa :
 Nhập MSSV cần sửa điểm tương ứng đúng với lớp của mình, nhập điểm cần
sửa, sau khi sửa xong điểm sẽ được cập nhật và in ra màn hình.


23


 Nếu nhập MSSV của sinh viên khơng có trong lớp chương trình sẽ thơng báo :

3.3) Mục : Thống kê bảng điểm :
 Chức năng : thống kê bảng điểm tất cả thành viên trong lớp tương ứng với môn
học đã chọn

24


3.4 ) Mục : Exit :

4) Mục 1 : Sinh viên
 Khi sinh viên đăng nhập ( không cần mật khẩu ) vào chức năng này sẽ xem được
toàn bộ thơng tin về điểm của mình : điểm từng mơn học, điểm từng thành phần
của mơn học đó ( giữa kì, bài tập lớn, cuối kì ), điểm rèn luyện, điểm trung bình
học kì, điểm trung bình, có được nhận học bổng hay khơng, có đạt chuẩn đầu ra
mơn học hay khơng,...
 Mục Sinh viên có 2 chức năng :
 Xem thơng tin sinh viên
 Thốt


4.1) Mục : Xem thơng tin sinh viên :
 Chọn lớp tương ứng :

 Nhập MSSV để xem thông tin về điểm của sinh viên ( ví dụ : xem Điểm
của sinh viên : Nguyễn Thành Quốc Anh có MSSV: 1510075 )

25


×