Tải bản đầy đủ (.doc) (15 trang)

BÁO CÁO BÀI TẬP LỚN MÔN HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU: Xây dựng phần mềm quản lý điểm học tập theo hệ thống đào tạo theo tín chỉ

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 (207.79 KB, 15 trang )

TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP HÀ NỘI
KHOA CÔNG NGHỆ THÔNG TIN
---o0o---

BÁO CÁO BÀI TẬP LỚN

MÔN: HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU
ĐỀ TÀI: Xây dựng phần mềm quản lý điểm học tập theo hệ
thống đào tạo theo tín chỉ
Giảng viên hướng dẫn:Ths. Đỗ Ngọc Sơn

Lớp KTPM2-K6
Nhóm : Đỗ Đức Long

Hà Nội 2016


Lời nói đầu
Sau khi kết thúc môn học SQL, với vốn kiến thức đã tích lũy được trong quá
trình học và thực hành, nhóm chúng em xin nhận thực hiện đề tài :“Xây dựng phần
mềm quản lý điểmhọc tập theo hệ thống đào tạo theo tín chỉ”.
Đây là một đề tài hay và thực tế, với đề tài này, chúng em có thể vận dụng
hết những kiến thức đã được học để hoàn thành nó, và mục đích khi chúng em làm
đề tài là rèn luyện, thực hành các lý thuyết đã được học để đảm bảo rằng mình đã
tiếp nhận được một số lượng kiến thức cơ bản cần phải có và cách áp dụng nó,
tránh trường hợp chỉ biết lý thuyết sách vở.
Đề tài này thực sự là một đề tài bổ ích, từ nó có thể phát sinh ra rất nhiều vấn
đề liên quan. Khi mới bắt đầu bắt tay vào công việc, bản than em đã nghĩ cũng có
vẻ đơn giản nhưng khi thực sự bắt tay vào công việc em mới nhận ra rằng nó không
hề đơn giản. Nhiều khi em lục tung cả google lên chỉ để hiểu được bản chất một lỗi
nhỏ nào đó hoặc chỉ đơn giản như chỉ để tìm hiểu một vài đoạn code. Tuy nhiên với


khả năng có hạn thì vẫn còn rất nhiều vấn đề còn bỏ ngỏ, chúng em hy vọng sẽ
nhận được những lời nhận xét và góp ý từ thầy hơn là về mặt điểm số, đề tài này sẽ
cho thấy khả năng và giới hạn hiện tại của chúng em, và chúng em rất mong sau
khi được thầy chỉ dẫn thì có thể tiến bộ hơn.
Hiện tại thì đề tài của chúng em vẫn còn dang dở, nhiều thủ tục và hàm chưa
kịp viết xong, và nhất là phần kết nối sang C# để có thể nhập xuất dữ liệu chúng
em vẫn chưa làm được nên mong thầy thông cảm, chúng em sẽ cố gắng bổ sung
vào buổi chất vấn, chúng em xin cảm ơn.


MỤC LỤC


Chương 1: Khảo sát bài toán, phân tích thiết kế hệ thống
I. Khảo sát bài toán
Sau khi tiến hành khảo sát thực tế về hệ thống quản lý điểm sinh viên theo hệ thống
đào tạo theo tín chỉ của trường ĐH Công Nghiệp Hà Nội, nhóm chúng em đã rút ra
được những ý sau:
1.Yêu cầu, mục đích
Với đề tài là một phần mềm quản lý điểm sinh viên theo tín chỉ thì mục đích chính
cần đạt được đó là tính ứng dụng cao, tức là phần mềm phải đáp ứng được nhu cầu
sử dụng của mọi đối tượng liên quan, mà ở đây bao gồm sinh viên, giáo viên và
phòng quản lý chất lượng, mang lại sự tiện ích cho việc quản lý và tra cứu điểm và
đảm bảo tính bảo mật thông tin cao, do đó, phần mềm phải thỏa mãn một số yêu
cầu tối thiểu như sau:
- Giao diện đơn giản, dễ sử dụng, các thao tác hiển thị rõ ràng, bố cục hợp lý.
- Thực hiện được các thao tác thêm, sửa, xóa, tìm kiếm một cách dễ dàng.
- Có sự ràng buộc dữ liệu, nếu trong qua trình tác động tới dữ liệu có sai sót
thì thao tác sẽ bị hủy và đưa ra thông báo cho người dùng (sử dụng các
trigger).

- Có chức năng đăng nhập để phân biệt các đối tượng người dùng, đảm bảo
quyền lợi và tính bảo mật.

1


2.Sơ đồ khảo sát

2


II. Phân tích, thiết kế hệ thống
Sau đây nhóm chúng em xin trình bày về ý tưởng và thiết kế hệ thống phần
mềm quản lý điểm sinh viên:
1.Các CSDL nhập vào
- SINHVIEN (masv, tensv, ngaysinh, gioitinh, quequan, malop)
- LOP (malop, tenlop, mahe, manganh, makhoahoc)
- NGANHHOC (manganh, tennganh)
- MONHOC (mamonhoc, tenmonhoc, sotc, hinhthucthi)
- KHOAHOC (makhoa, tenkhoa ,namkhaigiang, nambegiang)
- DIEMTB (masv, mamonhoc, malop, kt1, kt2, kt3, chuyencan, giua ky,
diemtb)
- DIEMTHI (masv, mamonhoc, malop, diemtb, diemthi, diemtbc)
- QUANLY

(tendangnhap,

matkhau,

hoten,


ngaysinh,

gioitinh,

dienthoai,email)
2.Các view hiển thị
View chính là những yêu cầu hiển thị ra màn hình, tức là những thông tin
cung cấp cho người dùng, mà ở đây chủ yếu là thông tin về điểm số.
Với đề tài này thì sẽ cần phải hiển thị thông tin của sinh viên và các điểm số của
họ, bao gồm kết quả học tập, kết quả thi, điểm tổng kết trung bình, điểm tín chỉ và
điểm tích lũy chung, các điểm tổng kết thì sẽ được tự động tính toán theo các công
thức quy định.
- BANGDIEM( masv, hoten , tenlop , tenmonhoc , kt1 , kt2 , kt3 ,
chuyencan , diemtb , diemtbc )


3.Các hàm, thủ tục, trigger cần thiết
Để có thể hiển thị danh sách điểm theo từng sinh viên, theo lớp hay theo môn
học, hay để tìm kiếm nhanh chóng thông tin của một sinh viên nào đó, ta cần sử
dụng hàm và thủ tục lưu trữ.
Ngoài ra thì mỗi sinh viên sẽ có điểm trung bình chung học kỳ và điểm trung
bình chung tích lũy, ta cũng sẽ dùng một hàm hoặc thủ tục để tính.
Để thực hiện việc nhập, sửa hay xóa các thông tin của sinh viên, ta cũng cần
sử dụng đến thủ tục lưu trữ, và để đảm bảo các thao tác này diễn ra chính xác và
bảo mật thì ta cần sử dụng các trigger.
III. Phân tích hệ thống bên giao diện C#
Trước hết, nếu có thể thì chúng em sẽ tạo một giao diện đăng nhập và giao
quyền sử dụng cho người dùng, nếu là sinh viên thì chỉ được phép xem điểm; nếu
là giáo viên hoặc người quản lý thì sẽ dùng tài khoản của mình để đăng nhập vào

trang quản lý vào thực hiện các thao tác bổ sung, sửa, xóa dữ liệu…



Chương II Thực hiện chương trình với SQL server
I. Các code chương trình SQL
1. Tạo bảng SINHVIEN
Create table SINHVIEN
(

MASV

nchar(10)

PRIMARY KEY,

TENSV

nvarchar(50)

not null,

NGAYSINH

date,

GIOITINH bit,
QUEQUAN

nvarchar(50)


MALOP

nvarchar(15)

not null,
not null

)

2. Tạo bảng LOP
Create table LOP
(
MALOP

nvarchar(15)

PRIMARY KEY,

TENLOP

nvarchar(50))

not null,

HE

nvarchar(4)

not null,


MAKHOA nvarchar(3))
MANGANH
)

nvarchar(3))

not null,
not null


3. Tạo bảng NGANHHOC
Create table NGANHHOC
(
manganh

nvarchar(3)

PRIMARY KEY,

tennganh

nvarchar(50)

not null

)

4. Tạo bảng MONHOC
Create table MONHOC

(
MAMONHOC

nchar(6)

PRIMARY KEY,

TENMONHOC

nvarchar(50)

not null,

SOTINCHI tinyint

not null

)
5. Tạo bảng KHOAHOC
Create table KHOAHOC
(
MAKHOAHOC

nvarchar(3)

TENKHOAHOC nvarchar(4)
HE

nvarchar(50)


KHAIGIANG
BEGIANG date

date,

PRIMARY KEY,
not null,
not null,


)
6. Tạo bảng DIEMTB
Create table DIEMTB
(
MASV

char(10)

not null,

MAMONHOC

nchar(6))

not null,

MALOP

nvarchar(15)


not null,

KT1

decimal(4, 1)

not null,

KT2

decimal(4, 1),

KT3

decimal(4, 1),

CHUYENCAN

decimal(4, 1)

not null,

GIUAKY

decimal(4, 1)

not null,

DIEMTB


decimal(4, 1)

not null,

CONSTRAINT

pk_diemtb

KEY(MASV,MAMONHOC)
)
7. Tạo bảng DIEMTBC
Create table DIEMTHI
(
MASV

nchar(10)

not null,

MAMONHOC

nchar(6)

not null,

MALOP

nvarchar(15)

SOTINCHI tinyint


not null,
not null,

PRIMARY


DIEMTB

decimal(4, 1)

not null,

DIEMTHI decimal(4, 1)

not null,

DIEMTBC decimal(4, 1)

not null,

CONSTRAINT

pk_diemthi

PRIMARY

KEY

(MASV,MAMONHOC)

)
8. Tạo bảng QUANLY
Create table QUANLY
(
TENDANGNHAP

nvarchar(50)

PRIMARY KEY,

MATKHAU

nvarchar(50)

not null,

HOTEN

nvarchar(50)

NGAYSINH
GIOITINH

not null,

date,
bit,

DIENTHOAI


nvarchar(20)

not null,

EMAIL

nvarchar(100)

not null

)
9. Tạo view kết quả học tập
View này sẽ hiển thị điểm thành phần và điểm tổng kết của các sinh viên của tất cả
các môn học
create view ketqua (Masv, Hoten, Lop, monhoc, diemtx, diemgk,
diemcc,diemtbkt)
as
select sinhvien.masv,TENSV,tenlop,tenmonhoc,kt1,giuaky,chuyencan,
diemtbkt=((KT1+GIUAKY*2+chuyencan)/4)


from

sinhvien,lop,monhoc,DIEMTB

where

sinhvien.malop=lop.malop
and sinhvien.masv=diemtb.masv
and monhoc.mamonhoc=diemtb.mamonhoc

and

lop.malop=diemtb.malop

select * from ketqua
10. Tạo view kết quả thi
View này sẽ cho biết điểm thi các lần thi và điểm trung bình cộng cũng như điểm
quy ra điểm tín chỉ của sinh viên
create view ketquathi(masv, hoten , lop , monhoc , sotc , diemthi ,
diemtbc , diemchu)
as
select sinhvien.masv , TENSV , tenlop , tenmonhoc ,
monhoc.sotinchi , diemthi ,
diemtbc=(((KT1+GIUAKY*2+CHUYENCAN)/4) + DIEMTHI*2)/3,
case
when diemtbc<4.0 then 'F'
when diemtbc between 4.0 and 5.4 then 'D'
when diemtbc between 5.5 and 7.0 then 'C'
when diemtbc between 7.0 and 8.4 then 'B'
when diemtbc >8.4 then 'A'
end
from sinhvien,lop,monhoc,DIEMTB,diemthi
where

sinhvien.malop=lop.malop


and sinhvien.masv=DIEMTB.masv
and monhoc.MAMONHOC=diemtb.mamonhoc
and lop.malop=diemtb.malop

and lop.malop=diemthi.malop
and sinhvien.masv=diemthi.masv
and diemthi.mamonhoc=diemtb.mamonhoc
and diemthi.mamonhoc=monhoc.mamonhoc
select *from ketquathi
11. Tạo thủ tục xem điểm theo danh sách lớp
Thủ tục này sẽ cho phép ta xem điểm thành phần các môn học theo danh sách lớp,
ta cũng có thể mở rộng thành xem điểm từng môn theo danh sách lớp.
Theo điểm TB trên lớp
create proc xem_diem_lop
@malop nchar(50)
as
select sinhvien.masv , tensv , lop.malop , tenmonhoc , kt1 ,
chuyencan , diemtbkt=((kt1+giuaky*2+chuyencan)/4)
from sinhvien,lop,monhoc,diemtb
where

sinhvien.malop=lop.malop
and sinhvien.masv=diemtb.masv
and monhoc.mamonhoc=diemtb.mamonhoc
and lop.malop=diemtb.malop
and @malop=lop.malop

Theo điểm TBC

giuaky

,



create proc xem_diem_lop
@malop nchar(50)
as
select sinhvien.masv , tensv , lop.malop , tenmonhoc , kt1 ,
giuaky ,chuyencan, diemtbkt=((kt1+giuaky*2+chuyencan)/4)
from sinhvien,lop,monhoc,diemtb
where

sinhvien.malop=lop.malop
and sinhvien.masv=diemtb.masv
and monhoc.mamonhoc=diemtb.mamonhoc
and lop.malop=diemtb.malop
and @malop=lop.malop

12. Tạo thủ tục xem điểm theo từng sinh viên
Xem điểm của từng sinh viên, ta chỉ cần nhập mã sinh viên là sẽ xem được kết quả
học tập của tất cả các môn học.
create proc xem_diem_sv
@masv nchar(10)
as
select
sinhvien.masv,hoten,tenlop,tenmh,diemtx,diemgk,diemcc,
diemtbkt=((diemtx+diemgk*2+diemcc)/4)
from sinhvien,lop,monhoc,diemtp
where sinhvien.malop=lop.malop and sinhvien.masv=diemtp.masv
and monhoc.mamh=diemtp.mamh and lop.malop=diemtp.malop
and @masv=sinhvien.masv




×