Thiết kế chương trình hệ thống quản lý sinh viên
I. Quy trình phân tích thiết kế chương trình
1. Phân tích xác định yêu cầu
Như trong phần nêu lên tính cấp bách của đề tài, hệ thống quản lý sinh viên
nội trú của trường ĐHKTQD hiện nay có nhiều tính bất cập, cụ thể là hầu hết các
công việc đều làm bằng tay, thủ công vừa mất thời gian vừa gây nên nhiều nhầm
lẫn không đáng có, chính vì vậy yêu cầu đặt ra cho hệ thống hiện nay điều đầu tiên
là phải có tốc độ nhanh, giảm nhẹ gánh nặng cho người quản lý, giảm đến mức tối
đa những nhầm lẫn không đáng có, khi sinh viên có nhu cầu sẽ có một mẫu đăng kí
được soạn thảo bằng Word sinh viên điền các thông tin cần thiết vào phiếu đăng kí,
sau đó nộp cho ban quản lý nhập vào máy bằng phần mềm này, ban quản lý sẽ điền
thông tin cần thiết vào máy và lưư vào cơ sở dữ liệu, đồng thời xếp phòng luôn cho
sinh viên, sau khi hoàn thành phần nhập dữ liệu về thông tin đăng kí của sinh vien,
điều cần làm tiếp theo là in danh sách sinh viên ở các phòng để sinh viên được biết,
như vậy sẽ có báo cáo đầu ra là danh sách sinh viên trong KTX, báo cáo này cũng
sẽ được cung cấp cho ban quản lý khi cần thiết, trong quá trình quản lý có thể sẽ có
những sinh viên xin chuyển phòng, xin ra ngoài, hoặc có thể là xin vào KTX, khi
đó có thể dùng modul “Quản lý sinh viên” thực hiện nhiệm vụ xóa, sửa, thêm, bớt
cho các yêu cầu này. Hàng tháng, KTX cần phải quản lý tiền điện và đồ dùng vệ
sinh cho sinh viên như giấy vệ sinh, xô, chậu, chổi lau nhà, … Khi đó sẽ có một
modul chuyên quản lý phần này gọi là “Quản lý tiền điện-Đồ dùng”, gộp lại như
vậy là vì chỉ khi nào phòng nào đó nộp tiền điện thì sẽ nhận được đồ dùng, nếu
không thì sẽ không được nhận, cuối tháng người quản lý có thể xem xet xem
phòng nào đã nộp tiền điện hoặc phòng nào chưa nộp để có thể đốc thúc hoặc đem
ra hình phạt là cắt điện phòng đó cho đến khi nộp được tiền điện, thông tin này
được cung cấp bằng báo cáo “Tiền điện – đồ dùng” . Đồng thời trong quá trình ở
của sinh viên sẽ có những sinh viên vi phạm kỷ luật và ban quản lý cần lưu lại
danh sách những sinh viên vi phạm kỷ luật này để có những hình phạt thích hợp,
đồng thời có thể báo cáo lên giám đốc trung tâm dịch vụ danh sách sinh viên vi
phạm kỷ luật trong quá trình ở KTX. Như vật sẽ có một modul chuyên quản lý
phần này là “Kỷ luật” đầu vào là những sinh viên nào vi phạm kỷ luật đang trú
-Danh mục: gồm các modul để cập nhập các danh mục cho quá trình cập
nhập cho danh sách sinh viên, tiền điện, kỷ luật…như danh mục nhà, danh mục
phòng, danh mục tỉnh, danh mục dân tộc, danh mục tôn giáo, danh mục ngành,
khóa học, lớp học.
-Quản lý: gồm các modul quản lý sinh viên, quản lý tiền điện – đồ dùng, kỷ
luật.
-Báo cáo: là những thông tin đầu ra, gồm có: danh sách sinh viên, bảng kê
tiền điện, bảng danh sách sinh viên bị kỷ luật.
Sơ đồ chức năng của chương trình quản lý sinh viên KTX
5. Thiết kế cơ sở dữ liệu
Cơ sở dữ liệu của hệ thống sẽ bao gồm những bảng sau:
- Bảng command: chứa các thông tin về hệ thống menu như tên menu,
caption, file chương trinh cần gọi khi người dùng click chọn. Đây là kỹ thuật
tạo menu động được sử dụng rộng rãi hiện nay.
- Bảng sysvar: là bảng lưu các biến hệ thống, được khai báo là public để sử
dụng trong chương trình gồm có các trường STT, Name, Type, value,
default.
- Bảng inivar: là bảng có cấu trúc tương tự như bảng sysvar, nó chứa thông tin
về biến sử dụng cho các tùy chọn của hệ thống như người quản lý, năm quản
lý, tháng, giá điện…
- Bảng userinfor: là bảng chứa thông tin về người dùng.
- Các bảng danh mục: Gồm dmnha (danh mục nhà), dmPhong (danh mục
phòng), dmTG (danh mục tôn giáo), dmTinh (Danh mục tỉnh), dmDT (Danh
mục tôn giáo), dmNganh (Danh mục ngành), dmKhoa (danh mục khóa),
dmLop (danh mục lớp). Tất cả các bảng này đều có cấu trúc tương tự nhau
gồm hai trường chính là mã và tên, ngoài ra còn có thể có thêm trường ghi
chú.
- Các bảng dữ liệu về sinh viên (sinh_vien), bảng tiền điện (tien_dien), bảng
kỷ luật (ky_luat).
Trong chương trình những bảng trên được để trong các thư mục system
trong thư mục COD đều có cấu trúc tương tự
-Bảng dmNha:
Trong đó ma_nha là khóa chính.
6. Bảng sinh_vien:
Tên trường Kiểu Độ rộng Chú thích
Nam C 4 Năm quản lý
Ma_sv C 10 Mã sinh viên, khóa chính
Ho_dem C 20 Họ đệm
Ten C 20 Tên
Gioi_tinh C 4 Giới tính
Ngay_sinh D 8 Ngày sinh
Noi_sinh C 30 Nơi sinh
So_cmnd C 12 Số chứng minh nhân dân
Dan_toc C 15 Dân tộc
Ton_giao C 20 Tôn giáo
Ten_bo C 30 Tên bố
Nghe_bo C 15 Nghề bố
Ten_me C 30 Tên mẹ
Nghe_me C 15 Nghề mẹ
Lop C 20 Lớp
Nganh C 20 Ngành
Khoa C 15 Khoa
Ma_phong C 4 Mã phòng
Ma_nha C 4 Mã nhà
Photo_file Memo 4 Ảnh
• Trong bảng trên ma_sv+ma_phong+ma_nha tạo thành khóa chính của bảng, nó xác định một
sinh viên duy nhất ở nhà nào, phòng nào.
7. Bảng ky_luat:
• Bảng này có cấu trúc tương tự như bảng sinh viên, chỉ lược bỏ bớt
một số thông tin không cần thiết.
• Bảng danh sách sinh viên bị kỷ luật:
3. Các modul và mã nguồn chương trình
Danh sách các modul chương trình:
- BrowTBL.prg
PROCEDURE BrowTable
PARAMETERS tblTable,priKey,_fieldName
_oldSelect=SELECT()
_oldRecno=RECNO()
tmp= '&tblTable'
IF !USED(tmp)
SELECT 0
USE ../cod/&tblTable ALIAS &tblTable
ELSE
SELECT 0
SELECT &tblTable
ENDIF
ON KEY LABEL enter do Takerecord
ON KEY LABEL ESC do TakeRecord
BROWSE NOWAIT NAME oBrowse1;
TITLE "Bang danh sach sinh vien trong KTX: F3-Sua, F4-
Them moi, Ctrl+F-Tim kiem, F8-Xoa, ESC-Thoat" ;
FONT M_Font_name, M_font_Size;
WINDOW M_WinBrw
DO HookObjectBrowse WITH oBrowse1 IN P_prog+'s_lib'
BROWSE LAST
ON KEY LABEL ESC
ON KEY LABEL ENTER
SELECT (_oldSelect)
IF _oldRecno<=RECCOUNT()
GO _oldRecno
close database
- dmDT
IF !USED('dmDT')
SELECT 0
USE p_cod+'dmDT' ALIAS dmDT
INDEX ON ma_DT TO ma_DT
SET ORDER TO ma_DT
ELSE
SELECT 0
SELECT dmDT
SET ORDER TO ma_DT
ENDIF
*************************************************************
********
PRIVATE m_nhan, m_huy, _form,_rec_no,M_moi, objBrow
DO batdau
PROCEDURE batdau
ON KEY LABEL F3 do _moi_sua with [S]
ON KEY LABEL F4 do _moi_sua with [M]
ON KEY LABEL F8 do xoa
*!* BROWSE NAME objBrow TITLE "F3-Sua, F4-Them moi, F8-
Xoa, ESC-Thoat" NOAPPEND NODELETE NOEDIT ;
*!* nomenu IN SCREEN
SELECT dmDT
GO TOP
BROWSE NAME oBrowse;
NOAPPEND NODELETE NOMODIFY NOWAIT
nomenu ;
WINDOW M_WinBrw ;
WHEN