Professional Documents
Culture Documents
Bao Cao CSDL Thi
Bao Cao CSDL Thi
1
Lời Nói Đầu
Ngày nay công nghệ thông tin nói chung, tin học nói riêng đã đóng góp một vai
trò quan trọng trong đời sống con người. Các thành tựu đã, đang và sẽ được ứng
dụng, phát triển trong các lĩnh vực kinh tế-chính trị-quân sự của quốc gia. Nếu như
trước đây, máy tính chỉ được sử dụng để nghiên cứu khoa học-kĩ thuật, thì ngày nay
nó đã ứng dụng cho nhiều mục đích khác nhau như : Quản lý, lưu trữ dữ liệu, giải
trí, điều khiển tự động… Như vậy, công nghệ thông tin đã trở thành một công cụ
quản lý cho toàn bộ hệ thống xã hội.
Những năm gần đây, ở nước ta itn học học đã ứng dụng rộng rãi tyrong lĩnh vực
giáo dục và đào tạo. Việc ứng dụng phần mềm quản lý trong các trường học đã trợ
giúp rất nhiều cho các nhà quản lý từ khâu quản sinh, quản lý quá trình giảng dạy
học tập, rèn lyện Những năm gần đây, ở nước ta tin học đã ứng dụng rộng rãi trong
lĩnh vực giáo dục và quản lý học phí-lệ phí của sinh viên… đảm bảo nhanh chóng
và chsinh xác.Vì sự cần thiết này mà chúng em đã quyết định chọn đề tài “Quản Lý
Học Phí” làm đề tài thi kết thúc môn học của mình.
Trong quá trình thực hiện đề tài , do kiến thức và năng lực của bản thân còn hạn
chế nên không tránh khỏi nhưng khiếm khuyết. Chúng em rất mong tiếp tục nhận
được sự chỉ bảo và góp ý từ phía thầy cô. Chúng em xin chân thành cảm ơn !!!
2
PHẦN I: Mô Tả Hệ Thống
1. Mục đích yêu cầu
a. Nội dung
Khi lập chương trình quản lý thu học phí của’
sinh viên nghĩa là các thao tác tới đối tượng cần quản lý là sinh viên.
Như nhập mới, xem danh sách, tình trạng nộp học phí và các thông tin
về những vấn đề liên quan. Nội dung của đề tài là xây dựng một phần
mềm để thực hiện các yêu cầu trên. Trợ giúp việc quản lý thu học phí
của sinh viên được dễ dàng hơn và giảm bớt khó khăn.
b. Các yêu càu cần giải quyết
Chương trình thực hiện những yêu cầu sau:
+ Quản lý thông tin về hồ sơ lý lịch của sinh viên
+ Các thông tin về việc nộp học phí của sinh viên trong trường
2. Mô tả nghiệp vụ đề tài
+Lệnh tạo database lệnh tạo tất cả các bảng
+Lệnh insert dữ liệu cho các bảng
+Lệnh select*from cho tất cả các bảng
+Mô tả yêu cầu và thực hiện nội dung trong sql
+Cập nhật dữ liệu, truy vấn con hàm kết hợp, gom nhóm, điều kiện
nhóm, lập trình sql.
+Tạo thủ tục gồm thêm, sửa, xóa.
+Tạo hàm
+Tạo trigger gồm thêm, sửa, xóa.
3. Mô tả dữ liệu
Quản lý học phí, lệ phí của sinh viên trong một học kì của một trường
đại học
3
MaLop MaHP TênHP MaBL MaHP NgayNop
Hoc ky
(1,n) Chi Tiet
Lop hoc phan Có
Bien Lai
(1,1)
MucTC_HK
Có MaBL
(1,1) Ghi
So Tien
(1,1)
Muc Thu
SoTien
Bien Lai
Ten NV Chuc vu So DT
NgayNop
Hoc ky Nhan vien
MaNV
Ma NV Có
Hoc ky SoluongSv
SV_MonHoc
MaBL
MaSV
MaLop
TenLop GioiTinh
Học
MaDoiTuong
Lop
SoSV
MaLop
Có
TenSV
MaKhoa Sinh vien
NamSinh
Có
MaKhoa
(n,1)
TenKhoa
Có MaSV
MaKhoa
Khoa
MaDoiTuong
DiaChi DoiTuongMienGiam
SoDT
4
TenDoiTuong
TyleMienGiam
4. Chuyển đổi từ mô hình liên kết thực thể sang mô hình quan hệ.
a. Bước 1 Chuyển các tập thực thể thành quan hệ
SinhVien ( MaSV,TenSV,GioiTinh,NamSinh)
NhanVien ( MaNV,TenNV,ChucVu,SDT,NgaySinh,GioiTinh)
Lop ( MaL,TenL,SoSV,MaKhoa)
Khoa ( MaKhoa,TenKhoa,Dia_Chi,SoDT)
DoiTuongMienGiam ( MaDT,TenDT,TiLeMienGiam)
BienLai ( MaBL, MaNV,SoTien,NgayNop)
MucThu ( Muc_TC_HK,SoTien)
LopHocPhan ( MaHP,TenHP,HocKy,MaMucThu)
b. Bước 2: Chuyển các mối liên kết
+ Mối quan hệ SinhVien – Lop chuyển MaL làm khóa ngoại trong quan
hệ SinhVien
+ Mối quan hệ SinhVien – Khoa chuyển MaKhoa làm khóa ngoại trong
quan hệ SinhVien
+ Mối quan hệ SinhVien – DoiTuongMienGiam chuyển MaDT làm
khóa ngoại trong quan hệ SinhVien
+ Mối quan hệ Lop – Khoa chuyển MaKhoa làm khóa ngoại trong quan
hệ Lop
+ Mối quan hệ SinhVien – BienLai chuyển thành một quan hệ mới
SinhVien – MonHoc ( MaSV,MaBL,SoLuongSV)
+ Mối quan hệ LopHocPhan – BienLai chuyển thành một quan hệ mới
Chi_Tiet_Bien_Lai ( MaHP,MaBL,NgayNop)
5. Mô hình quan hệ
Mô hình quan hệ của đề tài bao gồm 10 bảng:
KHOA(MaKhoa, TenKhoa, Dia_Chi, SoDT)
LOP(MaLop, TenLop, SoSV, MaKhoa)
SINHVIEN(MaSV, TenSV, GioiTinh, Namsinh, MaLop, MaKhoa,
MaDoiTuong)
5
NHANVIEN(MaNV, TenNV, ChucVu, SoDT, NgaySinh, GioiTinh)
BIENLAI(MaBL, SoTien, NgayNop, MaNV)
LOPHOCPHAN(MaHP, TenHP, HocKy, MaMucThu)
MUCTHU(MucTC_HK, SoTien)
DOI_TUONG_MIEN_GIAM(MaDoiTuong, TenDoiTuong,
TyLeMienGiam)
SINHVIEN_MONHOC(MaSV, MaBL, SoLuongSV)
CHI_TIET_BIENLAI(MaBL, MaHP, Ngaynop)
6
CREATE TABLE [dbo].LOP(
[MaLop] NCHAR(10) PRIMARY KEY NOT NULL,
[TenLop] NVARCHAR(100) NOT NULL,
[SoSV] INT,
[MaKhoa] NCHAR(10) REFERENCES KHOA([MaKhoa])
)
7
[TyLeMienGiam] int NOT NULL
)
8
CREATE TABLE [dbo].MUCTHU(
[MucTC_HK] INT PRIMARY KEY,
[SoTien] INT NOT NULL
)
9
CREATE TABLE [dbo].SINHVIEN_MONHOC(
[MaSV] NCHAR(10) REFERENCES SINHVIEN([MaSV]),
[MaBL] NCHAR(10) REFERENCES BIENLAI([MaBL]),
[SoLuongSV] INT,
CONSTRAINT SV_MH PRIMARY KEY (MaSV,MaBL)
)
10
[HocKy] INT NOT NULL,
[MaMucThu] INT REFERENCES MUCTHU([MucTC_HK])
)
11
2. Mô hình Diagram
12
INSERT INTO NHANVIEN values ('NV14',N'Lê Thanh Hải',N'Lễ
Tân','0947774774','1/1/1990',N'Nam')
INSERT INTO NHANVIEN values ('NV15',N'Lê Văn Tiến',N'Trực điện
thoại','0989889889','1/1/1990',N'Nam')
INSERT INTO NHANVIEN values ('NV16',N'Dương Văn Nam',N'Tư vấn
','01677227102','1/1/1990',N'Nam')
INSERT INTO NHANVIEN values ('NV17',N'Hà Sơn Bình',N'Chăm sóc khách
hàng','01688228102','1/1/1990',N'Nam')
INSERT INTO NHANVIEN values ('NV18',N'Trần Thị Hảo ',N'kế
̃')
hoặch','01699229102','1/1/1990',N'NƯ
INSERT INTO NHANVIEN values ('NV19',N'Trần Trọng Ninh',N'Kinh
doanh','01655225102','1/1/1990',N'Nam')
INSERT INTO NHANVIEN values ('NV20',N'Lê Văn Tuyển',N'Đầu
tư','01633223102','1/1/1990',N'Nam')
b. Bảng khoa
INSERT INTO KHOA values ('K01',N'Khoa CNTT','H1P101','041256')
INSERT INTO KHOA values ('K02',N'Khoa Hóa Lý kỹ thuật','H1P201','041256')
INSERT INTO KHOA values ('K03',N'Khoa Vũ Khí','H1P301','041256')
INSERT INTO KHOA values ('K04',N'Khoa Cơ Khí ','H1P401','041256')
INSERT INTO KHOA values ('K05',N'Khoa Điện tử viễn thông','H1P501','041256')
INSERT INTO KHOA values ('K06',N'Khoa Khoa Học Máy Tính','H1P601','041256')
INSERT INTO KHOA values ('K07',N'Khoa Tổ Chức Liên Lạc','H1P701','041256')
INSERT INTO KHOA values ('K08',N'Khoa Công Nghệ Phần Mềm','H1P801','041256')
INSERT INTO KHOA values ('K09',N'Khoa Hệ Thống Thông Tin','H1P901','041256')
INSERT INTO KHOA values ('K010',N'Khoa Đào Tạo Sau Đại
Học','H1P102','041256')
INSERT INTO KHOA values ('K011',N'Khoa Tào Tạo Du Học','H1P103','041256')
INSERT INTO KHOA values ('K012',N'Khoa Quốc Tế ','H1P202','041256')
INSERT INTO KHOA values ('K013',N'Khoa An Toàn Thông Tin','H1P302','041256')
INSERT INTO KHOA values ('K014',N'Khoa Công Nghệ Thực
Phẩm','H1P402','041256')
INSERT INTO KHOA values ('K015',N'Khoa Công Nghệ Dệt May','H1P502','041256')
INSERT INTO KHOA values ('K016',N'Khoa Liên Kết Đào Tạo','H1P602','041256')
INSERT INTO KHOA values ('K017',N'Trung Tâm Tiếng Anh','H1P702','041256')
INSERT INTO KHOA values ('K018',N'Khoa Công Nghệ Web','H1P802','041256')
INSERT INTO KHOA values ('K019',N'Khoa Triết Học','H1P902','041256')
INSERT INTO KHOA values ('K020',N'Khoa Tự Động Hóa','H1P1001','041256')
c. Bảng lớp
INSERT INTO LOP values ('L01','CNTT14',97,'K01')
INSERT INTO LOP values ('L02','DĐT14',99,'K03')
INSERT INTO LOP values ('L03','ĐTVT14',87,'K03')
INSERT INTO LOP values ('L04','CNHH14',67,'K04')
INSERT INTO LOP values ('L05','KHMT14',57,'K01')
INSERT INTO LOP values ('L06','KTPM14',78,'K01')
INSERT INTO LOP values ('L07','HTTT14',50,'K01')
INSERT INTO LOP values ('L08','CĐT14',100,'K03')
INSERT INTO LOP values ('L09','CNNTT13',60,'K01')
INSERT INTO LOP values ('L010','ĐT13',66,'K03')
INSERT INTO LOP values ('L011','CĐT13',69,'K03')
INSERT INTO LOP values ('L012','ĐTVT13',55,'K03')
INSERT INTO LOP values ('L013','KHMT13',40,'K01')
INSERT INTO LOP values ('L014','HTTT13',43,'K01')
INSERT INTO LOP values ('L015','CNHH13',66,'K04')
INSERT INTO LOP values ('L016','KTPM13',77,'K01')
INSERT INTO LOP values ('L017','CNHH12',88,'K04')
13
INSERT INTO LOP values ('L018',N'Tin HỌC 11_A',97,'K01')
INSERT INTO LOP values ('L019',N'Tin học 11_B',97,'K01')
INSERT INTO LOP values ('L020',N'Tin Học 11_C',97,'K01')
14
INSERT INTO MucThu values ('251','3300000')
INSERT INTO MucThu values ('350','4400000')
INSERT INTO MucThu values ('252','3200000')
INSERT INTO MucThu values ('253','3100000')
INSERT INTO MucThu values ('254','3300000')
INSERT INTO MucThu values ('256','1800000')
INSERT INTO MucThu values ('257','1900000')
INSERT INTO MucThu values ('258','2000000')
INSERT INTO MucThu values ('259','3000000')
INSERT INTO MucThu values ('351','4000000')
INSERT INTO MucThu values ('352','2900000')
INSERT INTO MucThu values ('353','3700000')
INSERT INTO MucThu values ('354','4400000')
INSERT INTO MucThu values ('355','3500000')
INSERT INTO MucThu values ('356','4100000')
INSERT INTO MucThu values ('357','3600000')
INSERT INTO MucThu values ('358','4800000')
INSERT INTO MucThu values ('359','4700000')
15
INSERT INTO LOPHOCPHAN values ('HP15',N'Đảm bảo an toàn thông
tin','5','354')
INSERT INTO LOPHOCPHAN values ('HP16',N'Lý thuyết hệ điều hành','5','355')
INSERT INTO LOPHOCPHAN values ('HP17',N'Mạng viễn thông','4','356')
INSERT INTO LOPHOCPHAN values ('HP18',N'Toán chuyên đề ','5','357')
INSERT INTO LOPHOCPHAN values ('HP19',N'Cấu trúc máy tính','3','358')
INSERT INTO LOPHOCPHAN values ('HP20',N'Xác suất thống kê','3','359')
16
SELECT * FROM KHOA
SELECT * FROM LOP
SELECT * FROM SINHVIEN
SELECT * FROM MUCTHU
SELECT * FROM BIENLAI
SELECT * FROM CHI_TIET_BIENLAI
SELECT * FROM SINHVIEN_MONHOC
SELECT * FROM LOPHOCPHAN
SELECT * FROM DOI_TUONG_MIEN_GIAM
--Đưa ra MaSV, HoTen, GT của những sinh viên thuộc lớp có số sinh viên > 70
SELECT MaSV, sv.TenSV, sv.GioiTinh
FROM SINHVIEN SV, LOP L
WHERE SoSV > 70 AND SV.MaLop=L.MaLop
--Đưa ra MaSV, HoTen của những sinh viên thuộc lớp có tên là CNTT14
SELECT MaSV, TenSV
FROM SINHVIEN
WHERE EXISTS
(SELECT *
FROM LOP L, Sinhvien SV
WHERE L.MaLop = SV.MaLop AND TenLop='CNTT14' )
--Đưa ra Mã nhân viên, họ tên nhân viên và mã biên lai của những nhân viên
viết cùng một biên lai
SELECT NV.MaNV,TenNV
FROM NHANVIEN NV, (SELECT MaNV,MaBL FROM BIENLAI) AS BL
WHERE NV.MaNV= BL.MaNV
--Đưa ra mã học phần , tên học phần tương ứng của nhưng học phần có cùng 1
mã mức thu
SELECT MaHP, TenHP
FROM LOPHOCPHAN LHP, MUCTHU MT
WHERE MT.MucTC_HK= LHP.MaMucThu
-- Đưa ra mã biên lai, ngày nộp của những biên lai có mã học phần là 'HP10'
SELECT MaBL, NgayNop
FROM BIENLAI
WHERE exists (SELECT MaHP
FROM CHI_TIET_BIENLAI
WHERE MaHP='HP10' )
-- Đưa ra mã sinh viên, họ tên , tên lớp tương ứng của sinh viên và cả những
sinh viên chưa thuộc lớp nào
SELECT MaSV,TenSV, TenLop, L.MaLop, SV.MaLop
17
FROM LOP L LEFT JOIN SINHVIEN SV
ON L.MaLop=SV.MaLop
--Tạo trigger để khi thêm một học phần thì thông báo mã học phần vừa được
thêm
CREATE TRIGGER THEMHP ON LOPHOCPHAN FOR INSERT
AS
DECLARE @Ma NCHAR(10)
BEGIN
SELECT @Ma=MaHP FROM INSERTED
PRINT' Ma hoc Phan vua them la'+@ma
END
--Tạo trigger khi xóa một sinh viên thì thông báo ra mã sinh viên vừa xóa
CREATE TRIGGER XOASV ON SINHVIEN INSTEAD OF DELETE
AS
DECLARE @MaSV NCHAR(10)
BEGIN
SELECT @MaSV
DELETE SINHVIEN_MONHOC WHERE MaSV=@MaSV
DELETE SINHVIEN WHERE MaSV=@MaSV
PRINT' Ma sinh vien vua xoa la'+@MaSV
END
--Tạo hàm có một tham số là @MaKhoa NCHAR(10), thực hiện thống kê số lớp
theo mã khoa nhập vào, nếu giá trị biến @MaKhoa nhập vào là kí tự trống hoặc
NULL thì thống kê lớp theo từng khoa
CREATE FUNCTION Func_TongL(@MaLop NCHAR(10))
RETURNS @BangThongKe TABLE
(
MaKhoa NCHAR(10),
TongSoLop int
)AS
BEGIN
IF(@MaKhoa is NULL) OR(@MaKhoa=' ')
INSERT INTO @BangThongKe
SELECT MaKhoa, COUNT(MaLop)
FROM LOP
GROUP BY MaKhoa
ELSE
INSERT INTO @BangThongKe
SELECT MaKhoa, COUNT(MaLop)
FROM LOP
WHERE MaKhoa=@MaKhoa
GROUP BY MaKhoa
18
RETURN
END
--TEST
SELECT * FROM dbo.func_TongL('K1')
19
20
21
22
23