1. Trang chủ
  2. » Luận Văn - Báo Cáo

báo cáo bài tập lớn :Bài toán quản lý sinh viên kí túc xá trường đại học Công Nghiệp Hà Nội

33 1,3K 2

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 33
Dung lượng 549 KB

Nội dung

báo cáo bài tập lớn :Bài toán quản lý sinh viên kí túc xá trường đại học Công Nghiệp Hà Nội

Trang 1

Mục lục

I.Bài toán quản lý sinh viên kí túc xá trường đại học Công Nghiệp Hà Nội

1.Mô tả bài toán………2

2.Phân tích bài toán……… 3

a.Sơ đồ phân cấp chức năng 3

b.Mô hình dữ liệu mức khung cảnh………4

c.Mô hình dữ liệu mức đỉnh……….5

d.Mô hình dữ liệu mức dưới đỉnh………6

e.Mô hình liên kết thực thể ………10

f.Mô hình dữ liệu quan hệ……… 13

II.Giải quyết bài toán 1.procedure……… 13

2.Function……….24

3.trigger……….26

4.view……….33

Trang 2

I.Bài toán quản lý sinh viên kí túc xá trường đại học Công

Nghiệp Hà Nội

1.Mô tả bài toán

Trong thời gian sinh viên sống trong ký túc ban quản lý ký túc cần quản lý những thông tin sau:

 Khi sinh viên vào sống trong ký túc xá thì mỗi sinh viên sẽ có một hồ sơ sinh viên bao gồm các thông tin : mã sinh viên, họ tên, phòng, quê …Nếu có sai sót về thông tin sinh viên thì ban quản lý ký túc sẽ sửa thông tin trên hồ sơ sinh viên Khi sinh viên không còn sống trong ký túc xá thì hồ sơ sẽ được xóa

 Thông tin về các phòng ở của sinh viên sẽ được cập nhật trên hệ thống Các thao tác đối với thông tin phòng gồm có :thêm thông tin phòng, sửa thông tin phòng nếu thấy sai sót, xóa thông tin phòng

 Khi sinh viên có nhu cầu mang tài sản riêng vào ký túc như bàn ghế , máy tính … thì tài sản đó sẽ được kiểm tra xem có đạt yêu cầu không Nếu không đạt yêu cầu thì sẽ không được mang vào ký túc Nếu đạt yêu cầu thì nhân viên ban quản lý ký túc sẽ lập thẻ tài sản gồm có các thông tin sau : mã thẻ tài sản , tên hợp đồng tài sản ,mã sinh viên ,thông tin về tài sản, ngày lập, người lập … lưu lại một bản và một bản gửi cho sinh viên Nếu có sự thay đổi về thông tin thẻ tài sản thì thông tin về thẻ tài sản có thể được sửa , xóa…

 Hàng tháng nhân viên ban quản lý ký túc sẽ thống kê số điện nước của từng phòng , sau đó sẽ lập hóa đơn điện nước và hóa đơn nước gửi đến cho từng phòng Sinh viên trong từng phòng sẽ phải có trách nhiệm thanh toán tiền điện nước của tháng đó

 Hàng tháng và kỳ học nhân viên ban quản lý ký túc sẽ thống kê số lượng sinhviên, tiền điện , tiền nước và gửi lên giám đốc ký túc xá

Trang 3

Quản lý sinh viên trong ký túc

Lập thẻ tài sản

Thêm thông tin tài sản sinh viên

Quản lý điện nước từng phòng

Thống kê số điện và nước

Lập hóa đơn điện

Lập hóa đơn nước Thống kê tài

sản sinh viên

Báo cáo thống kê

Sửa thông tin tài sản

Thêm hồ sơ

Sửa hồ sơ

Xóa hồ sơ

Thống kê số lượng sinh viên Thêm thông tin

tin ơp sinh viên

2.Phân tích bài toán

a.Sơ đồ phân cấp chức năng

Trang 4

b.Mô hình dữ liệu mức khung cảnh

Quản lý sinh viên ký túc xá Sinh viên

Ban quản lý ký túc

T h ô n g tin s in h v iê n

P h iế u x á c n h ậ n

B á o c o s ố l ư ợ g s i n v i ê n

T h ô n g b á o từ c h ố i n h ậ n tà i s ả n

T h ô n g tin tà i s ả n s in h v iê n

H ó a đ ơ n n ư ớ c

Nhân viên

H ó a đ ơ n đ iệ n

T h a n h to á n tiề n đ iệ n

T h a n h to á n tiề n n ư ớ c

Trang 5

c.Mô hình dữ liệu mức đỉnh

Sinh viên

Quản lý tài sản

Ban quản lý ký túc

Quản lý điện nước từng phòng

Quản lý hồ sơ sinh viên

Báo cáo thống kê

Hoá đơn nước

Hồ sơ sinh viên

Thẻ tài sản Nhân viên

Quản lý thông tin

phòng

phòng

Tài sản sinh viên Thông tin sinh viên

Hoá đơn điện

Trang 6

d.Mô hình dữ liệu mức dưới đỉnh

Sơ đồ mô hình luồng dữ liệu mức dưới đỉnh chức năng quản lý hồ sơ sinh viên:

Sinh viên

Thêm hồ sơ

Sửa hồ sơ

Xóa hồ sơHồ sơ sinh viên

Trang 7

Sơ đồ mô hình luồng dữ liệu mức dưới đỉnh chức năng quản lý tài sản sinh viên:

Sinh viên

Kiểm tra tài sản sinh viên

Thêm thông tin tài sản sinh viên

Sửa thông tin tài sản

Lập hợp đồng

Thông báo từ

chối

Xóa thông tin tài sản sinh viên

T h ô n g t i n t à i s ả n

T h n b á o t ừ c h i n h ậ p

T h n t n v ề t à i s ả n s i n v i ê n

Yêu cầu thêm thông tin tài sản

Tài sản sinh viên

Trang 8

Sơ đồ mô hình luồng dữ liệu mức dưới đỉnh chức năng quản lý điện nước từng phòng:

Lập hóa đơn tiền điện

Lập hóa đơn

Trang 9

Sơ đồ mô hình luồng dữ liệu mức dưới đỉnh chức năng báo cáo thống kê :

Ban quản lý ký túc

Thống kê số lượng

B á o c o s ố l ư ợ g s i n v i ê n B á o c á o t i ề n đ i ệ n n ư ớ c h à n g

t h á n g

Hóa đơn nước

Trang 10

Sơ đồ luồng dữ liệu mức dưới đỉnh chức năng quản lý thông tin phòng:

e.Mô hình liên kết thực thể

-Xác định các kiểu thực thể

Sinh viên:Mã sinh vên Tài Sản Sinh Viên:Mã tài sảnPhòng:Số phòng Hóa đơn điện:Mã hóa đơn điệnThẻ Tài Sản:Mã thẻ tài sản Hóa đơn nước:Mã hóa đơn nước

-Xác định liên kết và kiểu liên kết

Trang 11

Sinh Viên Thẻ tài sản

Tài sản sinh viên

Phòng

Hóa đơn điện

Hóa đơn nước

Trang 12

f.Mô hình dữ liệu quan hệ

Tai San Sinh Vien

MaTS

MaTheTS TenTS MauSac SoLuong

Hoa Don Nuoc

SoHDN

MaPhong NgayLapHDN NgayTTTN ThangTTTN SoNuoc GiaNuoc NguoiLapHDN

Hoa Don Dien

Trang 13

II.Giải quyết bài toán

Dựa trên các phân tích như trên chúng em xây dựng được các procedure , function, trigger và view như sau.

1.procedure

1.1 Tìm thông tin phòng:

create proc timthongtinphong

)

AS

SELECT MaphongFROM phong)

PRINT 'Khong Co Thong Tin Ve Phong Nay'else

begin

Trang 14

1.2 Tìm thông tin về tài sản sinh viên theo mã sinh viên

create proc thong_ke_TS_theo_masv

1.3 Tìm thông tin về tài sản sinh viên theo mã thẻ tài sản

create proc thong_ke_TS_theo_mathets

Trang 15

1.4 Thêm thông tin phòng

create Proc themphong

Trang 16

end

execute themphong 2132,loai2,4

1.5Thêm sinh viên

Create Proc Insert_sv(

PRINT 'Sinh vien nay da ton tai'else

Trang 17

1.7 Thêm thẻ tài sản

CREATE Proc themthetaisan (

Print 'the nay da ton tai'

else

if @masv not in (

select masvfrom sinhvien)

PRINT 'Sinh vien khong ton tai'else

Trang 18

@ngaylap ,

@nguoilapthe

)

end

execute themthetaisan TTS12, SV02,Laptop,"3/2/2090",'nguyen thi huyen'

1.8 Lập hóa đơn điện

create Proc themhddien

(

@Sohdd char (10)=null,

@maphong char (10)=null,

Trang 19

1.9 Lập hóa đơn nước

create Proc themhdnuoc

(

@Sohdn char (10)=null,

@maphong char (10)=null,

Trang 20

1.10 Tìm sinh viên theo mã sinh viên

Create Proc tim_sv

(@masv char (10))

as

if @masv not in (select masv

from sinhvien)begin

print 'khong ton tai sinh vien co ma nay'return

1.11 Thống kê tiền nước theo số hóa đơn nước

create Proc thongtin_hoadonnuoc

Trang 21

as

if @sohdn not in (select sohdn

from hoadonnuoc)begin

print 'khong ton tai hoa don co ma so nay'return

end

begin

select maphong,ngaylaphdn,ngaytttn,sonuoc,gianuoc,gianuoc*sonuoc as tongtien ,nguoilaphdn ,thangttn

from hoadonnuoc

where sohdn=@sohdn

end

exec thongtin_hoadonnuoc 'hdn01'

1.12 Thống kê tiền điện theo số hóa đơn điện

create Proc thongtin_hoadondien

(@sohdd char (10))

as

declare @kqua int

if @sohdd not in (select sohdd

from hoadondien)begin

print 'khong ton tai hoa don co ma so nay'return

end

begin

select maphong,ngaylaphdd,ngaytttd,sodien,giadien,giadien*sodien as tongtien ,nguoilaphdd ,thangttd

from hoadondien

where sohdd=@sohdd

end

exec thongtin_hoadondien 'HDD01'

1.13 Thống kê về tài sản sinh viên

CREATE proc thongke_taisan_theomathe

(@mathets char (10)

)

as

Trang 22

if @mathets not in (select mathets from thetaisan where mathets=@mathets)begin

print 'khong ton tai ma the tai san nay '

from thetaisan a inner join taisansinhvien b on a.mathets = b.mathets

inner join sinhvien c on a.masv =c.masvwhere a.mathets = @mathets

end

run

exec thongke_taisan_theomathe tts03

1.14 Xóa thông tin phòng

create proc xoa_phong

(@maphong char (10))

AS

delete from phong

where maphong =@maphong

exec xoa_phong p124

1.15 Xóa thông tin sinh viên

create proc xoa_sv

(@masv char (10))

AS

delete from sinhvien

where masv =@masv

exec xoa_sv sv02

1.16 Xóa thông tin hóa đơn điện

Create proc xoa_hoadondien

(@sohdd char (10))

AS

delete from hoadondien

where sohdd =@sohdd

exec xoa_hoadondien hdd01

1.17 Xóa thông tin hóa đơn nước

create proc xoa_hoadonnuoc

Trang 23

delete from hoadonnuoc

where sohdn =@sohdn

exec xoa_hoadonnuoc hdn01

1.18 Xóa thông tin tài sản sinh viên

create proc xoa_taisansv

1.19 Cập nhật thông tin phòng

create proc sua_phong(

@maphong char (10),

@tang int

)

As

if @maphong not in (select maphong from phong where maphong =@maphong)

print 'khong ton tai phong nay'

else

begin

update phong

set tang = @tang

where maphong =@maphong

end

exec sua_phong p123 ,3

1.20 Cập nhật giá điện

create proc suagiadien

Trang 24

1.21 Cập nhật giá nước

Create proc capnhatgianuoc

select * from hoadonnuoc

1.22 Cập nhật thông tin sinh viên

create proc capnhatthongtinsv

@masv char (10),@lop nvarchar (30)

exec capnhatthongtinsv sv02,'tienganh'

select * from sinhvien

2.Function

2.1 Hàm tính tổng các loại phòng

CREATE FUNCTION Fn_Tongsophong(@loaiphong NVARCHAR (10)) RETURNS INT

BEGIN

DECLARE @tongphong INT

SELECT @tongphong = COUNT (Loaiphong)

FROM Phong

WHERE loaiphong = @loaiphong

RETURN ISNULL (@tongphong,0)

END

EXECUTE

DECLARE @tongphong INT

Trang 25

PRINT 'tong so phong cua loai da nhap la:'

PRINT @tongphong

2.2 Tổng số sinh viên của từng loại phòng

create function tongSV (@loai nvarchar(10)) returns int

as

begin

DECLARE @TONG_sv INT

select @TONG_sv= count (sinhvien.maSV)

from phong inner join sinhvien on phong.maphong = sinhvien.maphong

where loaiphong = @loai

return isnull(@tong_sv,0)

end

EXCUTE

declare @tong_sv int

set @tong_sv = dbo.tongsv ('loai II')

print 'tong so sinh vien cua loai phong da nhap là'

print @tong_sv

2.3 Tổng số sinh viên theo tầng

create function tongsoSV (@tangso int) returns int

as

begin

DECLARE @TONG_sv INT

select @TONG_sv= count (sinhvien.maSV)

from phong inner join sinhvien on phong.maphong = sinhvien.maphong

where tang = @tangso

return isnull(@tong_sv,0)

end

EXCUTE

declare @tong_sv int

set @tong_sv = dbo.tongsosv (3)

print 'tong so sinh vien cua tang da nhap là'

print @tong_sv

2.4 Tính tổng tiền điện của một phòng trong một tháng

create function fn_tongtiendien(@thang int , @maphong char(10))

returns table

as

return (select maphong,ThangTTD as thang,sum([giadien]*[sodien]) as tongtienfrom hoadondien

where ThangTTD = @thang and maphong = @maphong

group by ThangTTD , maphong)

go

run

select * from dbo.fn_tongtiendien(2,'p124')

2.5 Tổng số tiền điện trong một tháng của cả ký túc xá

Trang 26

create function tong (@thang int ) returns table

select * from tong(2)

2.6 Tính tổng tiền nứơc của một phòng trong một tháng

create function fn_tongtiennuoc(@thang int, @maphong char(10) )

returns table

as

return (select maphong, ThangTTN as thang,sum([gianuoc]*[sonuoc]) as tongtienfrom hoadonnuoc

where thangTTN = @thang and maphong = @maphong

group by ThangTTN , maphong)

go

run

select * from dbo.fn_tongtiennuoc(1,'p123')

2.7 Tổng số tiền nước trong một tháng của cả ký túc xá

create function tongtn (@thang int ) returns table

3.1 Không cho chèn sinh viên nếu mã trùng

create trigger tg_Nhap_masv

on SinhVien

for insert

as

declare @masv char(10)

select @masv=maSV from inserted

if EXISTS(select * from SinhVien

where maSV=@masv)

begin

Trang 27

print 'ban khong the them sinh vien vao bang ! Hay nhap ma sinh vien khac'

return

end

go

3.2 Không cho chèn thêm phòng nếu trùng mã phòng

create trigger tg_nhap_phong

on Phong

for insert

as

declare @maphong char(10)

select @maphong=MaPhong from inserted

if EXISTS(select * from Phong

3.3 Không cho chèn thêm hóa đơn điện nếu trùng số hóa đơn điện

create trigger tg_nhap_HDD

on HoaDonDien

for insert

as

declare @sohdd char(10)

select @sohdd=SoHDD from inserted

if EXISTS(select * from HoaDonDien

where SoHDD=@sohdd)

begin

print 'ban khong the chen them hoa do

n dien vao bang ! Hay nhap so hoa don dien khac'

rollback transaction

return

end

go

3.4 Không cho chèn thêm hóa đơn nước nếu trùng số hóa đơn nước

create trigger tg_nhap_HDN

on HoaDonNuoc

for insert

as

declare @sohdn char(10)

select @sohdn=SoHDN from inserted

Trang 28

if EXISTS(select * from HoaDonNuoc

3.5 Không cho chèn thêm tài sản nếu trùng mã

create trigger tg_nhap_taisan

on TaiSanSinhVien

for insert

as

declare @mats char(10)

select @mats=MaTS from inserted

if EXISTS(select * from TaiSanSinhVien

where MaTS= @mats)

3.6 Không cho chèn thêm thẻ tài sản nếu trùng mã

create trigger tg_nhap_thets

on TheTaiSan

for insert

as

declare @tts char(10)

select @tts=MaTheTS from inserted

if EXISTS(select * from TheTaiSan

3.7 Thông báo không xóa được sinh viên nếu nhập sai mã sinh viên

Create trigger tg_del_sinhvien

on SinhVien

Trang 29

declare @masv char(10)

select @masv=MaSV from deleted

if not exists (select * from SinhVien where MaSV=@masv)

3.8 Thông báo không xóa được phòng nếu nhập mã phòng sai

create trigger tg_del_phong

on Phong

for delete

as

declare @maphong char(10)

select @maphong=MaPhong from deleted

if not exists (select * from Phong where MaPhong=@maphong)

3.9 Thông báo không xóa được hóa đơn nước nếu nhập sai số hóa đơn nước

create trigger tg_del_hdn

on HoaDonNuoc

for delete

as

declare @sohdn char(10)

select @sohdn=SoHDN from deleted

if not exists (select * from HoaDonNuoc where SoHDN=@sohdn)

3.10 Thông báo không xóa được hóa đơn nước nếu nhập sai số hóa đơn điện

create trigger tg_del_hdd

Trang 30

on HoaDonDien

for delete

as

declare @sohdd char(10)

select @sohdd=SoHDD from deleted

if not exists (select * from HoaDonDien where SoHDD=@sohdd)

3.11 Thông báo không xóa được tài sản nếu nhập sai mã tài sản

create trigger tg_del_taisan

on TaiSanSinhVien

for delete

as

declare @mats char(10)

select @mats=MaTS from deleted

if not exists (select * from TaiSanSinhVien where MaTS=@mats)

3.12 Thông báo không xóa được thẻ tài sản nếu nhập sai mã thẻ tài sản

create trigger tg_del_thetaisan

on TheTaiSan

for delete

as

declare @matts char(10)

select @matts=MaTheTS from deleted

if not exists (select * from TheTaiSan where MaTheTS=@matts)

begin

Trang 31

print 'Sai ma the tai tai san'

declare @thang int

declare @ngaylaphdn datetime

declare @ngaythanhtoan datetime

select @ngaylaphdn=NgayLapHDN ,@ngaythanhtoan=NgayTTTN ,

@thang=ThangTTN from inserted

select * from HoaDonNuoc

insert into HoaDonDien

Trang 32

declare @thang int

declare @ngaylaphdd datetime

declare @ngaythanhtoan datetime

select @ngaylaphdd=NgayLapHDD ,@ngaythanhtoan=NgayTTTD ,

@thang=ThangTTD from inserted

select * from HoaDonDien

insert into HoaDonDien

values ('HDD05','P124', '03/02/2009' ,'02/06/2009',40,2500,'Hanh',10)

3.15 Không cho chèn thêm sinh viên nếu số người trong phòng đầy

alter trigger chen_sinh_vien

on SinhVien

for insert

as

declare @maphong char(10)

declare @sosv int

Trang 33

SELECT dbo.TheTaiSan.MaTheTS, dbo.TheTaiSan.TenHD,

dbo.TheTaiSan.Masv, dbo.TheTaiSan.NgayLap, dbo.TaiSanSinhVien.MaTS, dbo.TaiSanSinhVien.TenTS, dbo.TaiSanSinhVien.MauSac,

FROM dbo.Phong INNER JOIN

dbo.SinhVien ON dbo.Phong.MaPhong = dbo.SinhVien.MaPhong

Ngày đăng: 01/05/2014, 15:16

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w