Tải bản đầy đủ (.docx) (117 trang)

Thiết kế chương trình hệ thống quản lý 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 (1.36 MB, 117 trang )

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ú


trong KTX, và báo cáo đầu ra là “Danh sách sinh viên bị kỷ luật”. Tất cả những
công việc trên khi thực hiện phải có khả năng lọc dữ liệu theo nhà, theo năm quản
lý, theo tháng quản lý, ví dụ như tiền điện nhà 1, tháng 1, năm 2006. Đồng thời khi
vào chương trình thì phải có xác thực quyền sử dụng, chọn nhà quản lý để tránh
gây khó khăn khi tìm kiếm cũng như lọc bớt những sinh viên không thuộc phạm vi
quản lý của nhà hiện tại.
2. Mô hình IFD của chương trình
Dựa vào những yêu cầu của hệ thống đã phân tích như trên chúng ta có sơ
đồ IFD của quá trình duyệt đơn đăng kí nội trú của sinh viên, in danh sách sinh
viên theo phòng để sinh viên có thể xem phòng mình ở, đồng thời cung cấp danh
sách sinh viên hiện có cho ban quản lý khi cần thiết. Khi có danh sách sinh viên
rồi, trong trường hợp có sinh viên nào vi phạm kỷ luật, sẽ được lưu vào danh sách
sinh viên vi phạm kỷ luật, với điều kiện là sinh viên vi phạm phải thuộc về danh
sách sinh viên đang nội trú. Khi có sự yêu cầu của ban giám đốc máy tính sẽ cung
cấp danh sách sinh viên vi phạm nội quy. Từ đó ta có mô hình IFD của hệ thống đó
nhu sau:

Tiếp theo là sơ đồ luồng thông tin IFD của quá trình quản lý tiền điện và đồ
dùng của các phòng hàng tháng. Theo yêu cầu quản lý, đầu năm sau khi sắp xếp
chỗ ở cho sinh viên, ban quản lý sẽ tiến hành phân phát các đồ dùng cần thiết cho
sinh viên, sau đó hàng tháng sẽ tiến hành thu tiền điện của các phòng và đồng thời
phân phát đồ dùng cho tháng đó, sau khi xác định số điện phải nộp tiền thì sẽ có
một danh sách tiền điện được cung cấp cho các phòng biết được số tiền phải nộp là
bao nhiêu, từ đó ta có luồng thông tin sau:
3.Mô hình DFD của chương trình
4. Sơ đồ chức năng
Sau đây là sơ đồ chức năng của chương trình, đó cũng là bản thiết kế hệ
thống menu của chương trình, bao gồm các menu lớn sau:
-Hệ thống: gồm các thiết lập chung cho hệ thống, phân quyền người dùng,
thay người dùng khác.

-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

(command, sysvar, inivar), cod ( chứa các bảng danh mục), data (sinh_vien,
tien_dien, Ky_luat). Khi cập nhật danh sách sinh viên, tiền điện hàng tháng, hoặc
sinh viên bị kỷ luật, sẽ có một số hoặc tất cả các danh mục cần dùng đến, các bảng
danh mục là các bảng ở phía nhiều trong mối quan hệ một – nhiều với các bảng dữ
liệu.
Sau đây là thiết kế các bảng cùng với kiểu của chúng:
1. -Bảng command:
• menuid : chứa id của menu cấp lớn nhất như hệ thống, danh mục,
quản lý, báo cáo.
• Menuid0: chứa id các menu con của các menu lớn.
• Bar: caption của các menu
• Bar2: sử dụng trong trường hợp chuyển sang tiếng Anh
• Images : icon cho menu
• Pro: lệnh thực hiện modul chương trình khi gọi đến.
• Menuid+menuid0 tạo thành khóa chính.
2. Bảng sysvar
• Name: Tên biến hệ thống, là khóa chính
• Type: kiểu biến
• Diễn giải : chú thích cho biến
• Value: giá trị cần gán khi tạo biến
• Default : giá trị mặc định khi biến là rỗng
3. Bảng inivar
• Bảng này có cấu trúc như bảng sysvar
• Name là khóa chính
4. Bảng userinfor
• User_id là khóa chính.
• Right : chứa các id của các menu mà người dùng được quyền truy
cập.
• Is_admin: xác định xem người dùng có phải là Admin hay không.
5. Các bảng danh mục: ở đây chỉ lấy một bảng làm minh họa, các bảng khác

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.

8. Bảng tien_dien:
Tên trường Kiểu Độ rộng Chú thích
Nam C 4 Năm quản lý
Thang C 10 Tháng quản lý
Ma_phong C 4 Mã phòng
Ma_nha C 4 Mã nhà
So_sd C 4 Số điện sử dụng
So_nop D 4 Số phải nộp
Thanh_tien C 7 Thành tiền
Nop_td C 4 Đã nộp tiền hay chưa
Do_dung C 4 Đã nhận đồ dùng hay chưa
• Bảng này có khóa chính là ma_phong+ma_nha
6.Thiết kế cấu trúc chương

II. Xây dựng chương trình
1. Thiết kế màn hình giao diện
• Màn hình login:
• Màn hình quản lý người dùng:
• Màn hình tạo mới người dùng:
• Màn hình phân quyền:
• Màn hình thiết lập tùy chọn:
• Màn hình browse danh sách các danh mục:
Các màn hình danh mục khác, màn hình danh sách sinh viên, màn hình danh
sách sinh viên vi phạm kỷ luật đều tương tự như trên.
• Màn hình cập nhập và thay đổi thông tin sinh viên đăng kí :
• Màn hình quản lý tiền điện, đồ dùng:
• Màn hình cập nhập sinh viên vi phạm kỷ luật:
2.Thiết kế các báo cáo
• 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:
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

ENDIF
_oldSelect=''
_oldRecno=0
ENDPROC
***************************
PROCEDURE takeRecord
PUBLIC _m_ma
PUBLIC _m_ten
IF RECCOUNT()>0
_recno=RECNO()
GO _recno
_m_ma=&PriKey
_m_ten=&_fieldName
ENDIF
USE IN &tblTable
ENDPROC

- del_bak_file.prg
delete file P_ws+"*.bak"
delete file P_ws+"*.err"
delete file P_prog+"*.bak"
delete file P_prog+"*.err"
delete file P_repo+"*.bak"
delete file P_repo+"*.err"
delete file P_System+"*.bak"
delete file P_System+"*.err"
quit
clear all
clear event
close table all

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

Change_Color_Of_Browse(RECNO(),,oBrowse);
TITLE "Danh muc dan toc: F3-Sua, F4-Them moi,
Ctrl+F-Tim kiem F8-Xoa, ESC-Thoat" ;
FONT M_Font_name, M_font_Size;
Color SCHEME 10
Obrowse.readonly = .T.
DO HookObjectBrowse WITH oBrowse IN
P_prog+'S_lib'
BROWSE LAST
ON KEY LABEL F3
ON KEY LABEL F4
ON KEY LABEL F8
IF USED('dmDT')
USE IN dmDT
ENDIF
DELETE file ma_DT.idx
ENDPROC
**-------------------------------------------------------
PROCEDURE _moi_sua
PARAMETERS _moi_sua,rec_no
IF _moi_sua==[S]
*!* m.ma_DT=nha.ma_DT
*!* m.ten_dt=nha.ten_dt

×