第一篇:酒店管理系統(tǒng) (數(shù)據(jù)庫(kù)課程設(shè)計(jì))
數(shù)據(jù)庫(kù) 酒店管理系統(tǒng) 課程設(shè)計(jì)(基于 SQL server 2000)
實(shí)現(xiàn)過(guò)程
1.1 通過(guò)查詢(xún)分析器實(shí)現(xiàn)建立數(shù)據(jù)庫(kù)、數(shù)據(jù)表
------------------------------創(chuàng)建數(shù)據(jù)庫(kù)和數(shù)據(jù)表---(1)創(chuàng)建酒店管理系統(tǒng)數(shù)據(jù)庫(kù)
CREATE DATABASE 酒店管理系統(tǒng)(2)創(chuàng)建客房信息表
CREATE TABLE 客房
(客房編號(hào) CHAR(8)PRIMARY KEY,客房類(lèi)型 CHAR(8)NOT NULL,價(jià)格 SMALLMONEY NOT NULL,床位數(shù) INT NOT NULL,使用狀態(tài) CHAR(8)NOT NULL)
INSERT INTO 客房 VALUES('101','一',100,1,'在使用')INSERT INTO 客房 VALUES('102','二',200,2,'在使用')INSERT INTO 客房 VALUES('103','二',200,1,'在使用')INSERT INTO 客房 VALUES('104','三',300,2,'在使用')INSERT INTO 客房 VALUES('105','三',300,1,'未使用')
(3)創(chuàng)建客戶信息表
CREATE TABLE 客戶
(客戶編號(hào) CHAR(8)PRIMARY KEY, 客戶名稱(chēng) CHAR(10)NOT NULL,身份證號(hào) CHAR(18)NOT NULL,聯(lián)系地址 CHAR(25),聯(lián)系電話 CHAR(10))INSERT INTO 客戶 VALUES('1001','王一',12234,'江西','3245354')INSERT INTO 客戶 VALUES('1002','張三',34234,'江西','2442442')INSERT INTO 客戶 VALUES('1003','李四',56465,'江西','5654645')INSERT INTO 客戶 VALUES('1004','王錢(qián)',65435,'江西','5676577')INSERT INTO 客戶 VALUES('1005','孫志',11464,'江西','4234343')
(4)創(chuàng)建入住登記表
CREATE TABLE 入住登記
(客房編號(hào) CHAR(8)FOREIGN KEY REFERENCES 客房(客房編號(hào)),客戶編號(hào) CHAR(8)FOREIGN KEY REFERENCES 客戶(客戶編號(hào)),預(yù)定日期 DATETIME,預(yù)定數(shù)量 INT, PRIMARY KEY(客房編號(hào),客戶編號(hào)))
INSERT INTO 入住登記 VALUES('101','1001',2010-10-10,1)INSERT INTO 入住登記 VALUES('102','1002',2010-12-10,1)INSERT INTO 入住登記 VALUES('103','1003',2010-12-26,1)INSERT INTO 入住登記 VALUES('104','1004',2010-12-9,1)--------創(chuàng)建查詢(xún)視圖---------1.2系統(tǒng)功能相應(yīng)的查詢(xún)視圖:
(1)客戶信息查詢(xún)視圖
CREATE VIEW 客戶信息查詢(xún)
AS SELECT * FROM 客戶
(2)客房信息查詢(xún)
CREATE VIEW 客房信息查詢(xún)
AS SELECT
* FROM 客房
(3)入住信息查詢(xún)
CREATE VIEW 入住登記信息查詢(xún) AS SELECT
* FROM 入住登記
(4)入住信息查詢(xún)
CREATE VIEW 入住信息查詢(xún)
AS SELECT入住登記.客房編號(hào),客戶名稱(chēng),入住登記.客戶編號(hào),客房.客房類(lèi)型,價(jià)格,使用狀態(tài)
FROM 客房,客戶,入住登記
WHERE 客房.客房編號(hào)=入住登記.客房編號(hào) AND 入住登記.客戶編號(hào)=客戶.客戶編號(hào)
---------------建立索引-----------------------1.3建立索引及數(shù)據(jù)入庫(kù)
1.建立客房編號(hào),價(jià)格,客戶編號(hào),客戶名稱(chēng)的索引 創(chuàng)建客房表索引:
CREATE UNIQUE INDEX UKF ON 客房(客房編號(hào),價(jià)格)
創(chuàng)建客戶表索引:
CREATE UNIQUE INDEX UKH ON 客戶(客戶編號(hào),客戶名稱(chēng))
創(chuàng)建入住表索引:
CREATE UNIQUE INDEX URZ ON 入住登記(客戶編號(hào),客房編號(hào))2.數(shù)據(jù)入庫(kù)
方法一 酒店管理系統(tǒng)包括客房信息表,客戶信息表,入住登記信息表。采用Excel中錄入數(shù)據(jù),然后使用SQL Server 2000數(shù)據(jù)導(dǎo)入、導(dǎo)出功能直接將數(shù)據(jù)導(dǎo)入到相應(yīng)的基本表。
方法二 在查詢(xún)分析器中插入相關(guān)數(shù)據(jù),用SQL語(yǔ)句插入。
----------創(chuàng)建存儲(chǔ)過(guò)程----------------------1.4建立存儲(chǔ)過(guò)程
1.4.1客房信息存儲(chǔ)過(guò)程
插入客房信息存儲(chǔ)過(guò)程:
CREATE PROCEDURE 插入客房信息(@KFB CHAR(8), @KFL CHAR(8), @JG SMALLMONEY, @CWS INT, @SYZT CHAR(8))AS INSERT INTO 客房 VALUES(@KFB,@KFL,@JG,@CWS,@SYZT)
修改客房信息存儲(chǔ)過(guò)程:
CREATE PROCEDURE 修改客房信息(@KFB CHAR(8), @KFL CHAR(8), @JG SMALLMONEY, @CWS INT, @SYZT CHAR(8))AS UPDATE 客房
SET 客房類(lèi)型=@KFL,價(jià)格=@JG,床位數(shù)=@CWS,使用狀態(tài)=@SYZT WHERE 客房編號(hào)=@KFB 刪除客房信息存儲(chǔ)過(guò)程:
CREATE PROCEDURE 刪除客房信息(@KFB CHAR(8))AS DELETE FROM 客房 WHERE 客房編號(hào)=@KFB
1.4.2客戶信息存儲(chǔ)過(guò)程
插入客戶信息
CREATE PROCEDURE 插入客戶信息(@KHB CHAR(8), @KFM CHAR(10), @SFZ CHAR(18), @LXDZ CHAR(25), @LXDH CHAR(10))AS INSERT INTO 客戶 VALUES(@KHB,@KFM,@SFZ,@LXDZ,@LXDH)修改客戶信息
CREATE PROCEDURE 修改客戶信息(@KHB CHAR(8), @KFM CHAR(10), @SFZ CHAR(18), @LXDZ CHAR(25), @LXDH CHAR(10))AS UPDATE 客戶
SET 客戶名稱(chēng)=@KFM,身份證號(hào)=@SFZ,聯(lián)系地址=@LXDZ,聯(lián)系電話=@LXDH WHERE 客戶編號(hào)=@KHB
刪除客戶信息
CREATE PROCEDURE 刪除客戶信息(@KHB CHAR(8))AS DELETE FROM 客戶
WHERE 客戶編號(hào)=@KHB
EXEC 刪除客戶信息 @KHB='10009'
3.4.3創(chuàng)建入住信息存儲(chǔ)過(guò)程 插入入住信息
CREATE PROCEDURE 插入入住信息(@KFB CHAR(8), @KHB CHAR(8), @YDRQ DATETIME, @YDSL INT)AS INSERT INTO 入住登記 VALUES(@KFB,@KHB,@YDRQ,@YDSL)
修改入住信息
CREATE PROCEDURE 修改入住信息(@KFB CHAR(8), @KHB CHAR(8), @YDRQ DATETIME, @YDSL INT)AS UPDATE 入住登記
SET 客房編號(hào)=@KFB,預(yù)定日期=@YDRQ ,預(yù)定數(shù)量=@YDSL WHERE 客戶編號(hào)=@KHB
刪除入住信息
CREATE PROCEDURE 刪除入住信息(@KHB CHAR(8))AS DELETE
FROM 入住登記
WHERE 客戶編號(hào)=@KHB
1.5查詢(xún)存儲(chǔ)過(guò)程的創(chuàng)建
客房編號(hào)查詢(xún)
CREATE PROCEDURE 客房編號(hào)查詢(xún)(@KFB CHAR(8), @KFL CHAR(8)OUTPUT, @JG SMALLMONEY OUTPUT, @CWS INT OUTPUT, @SYZT CHAR(8)OUTPUT)AS SELECT @KFL=客房類(lèi)型,@JG=價(jià)格,@CWS=床位數(shù),@SYZT=使用狀態(tài) FROM 客房
WHERE 客房編號(hào)=@KFB
客戶編號(hào)查詢(xún)
CREATE PROCEDURE 客戶編號(hào)查詢(xún)(@KHB CHAR(8), @KFM CHAR(10)OUTPUT , @SFZ CHAR(18)OUTPUT, @LXDZ CHAR(25)OUTPUT, @LXDH CHAR(10)OUTPUT)AS SELECT @KFM=客戶名稱(chēng),@SFZ=身份證號(hào),@LXDZ=聯(lián)系地址,@LXDH=聯(lián)系電話 FROM 客戶
WHERE 客戶編號(hào)=@KHB
入住客戶編號(hào)查詢(xún)
CREATE PROCEDURE 入住客戶編號(hào)查詢(xún)(@KFB CHAR(8)OUTPUT, @KHB CHAR(8), @YDRQ DATETIME OUTPUT, @YDSL INT OUTPUT)AS SELECT @KFB=客房編號(hào),@YDRQ=預(yù)定日期,@YDSL=預(yù)定數(shù)量 FROM 入住登記
WHERE 客戶編號(hào)=@KHB
--------建立觸發(fā)器--------------1.6、建立觸發(fā)器保證數(shù)據(jù)的一致性
客房使用狀態(tài)的控制
CREATE TRIGGER 控制觸發(fā)器
ON 入住登記 FOR INSERT AS
UPDATE 客房
SET 使用狀態(tài)='使用中' WHERE 客房編號(hào)=ANY(SELECT 客房編號(hào) FROM INSERTED)
控制入住信息刪除的觸發(fā)器
CREATE TRIGGER 入住刪除觸發(fā)器
ON 入住登記 FOR DELETE AS BEGIN DELETE FROM 客戶 WHERE 客戶編號(hào)=ANY(SELECT 客戶編號(hào) FROM DELETED)
UPDATE 客房
SET 使用狀態(tài)='未使用' WHERE 客房編號(hào)=ANY(SELECT 客房編號(hào) FROM DELETED)END 客戶信息刪除的控制
CREATE TRIGGER 客戶刪除觸發(fā)器
ON 客戶
FOR DELETE AS BEGIN DELETE FROM 入住
WHERE 客戶編號(hào)=ANY(SELECT 客戶編號(hào) FROM DELETED)
UPDATE 客房
SET 使用狀態(tài)='未使用' WHERE 客房編號(hào)=ANY(SELECT 客房編號(hào) FROM DELETED)END
客房刪除觸發(fā)器
CREATE TRIGGER 客房刪除觸發(fā)器
ON 客房
FOR DELETE AS
DELETE FROM 入住
WHERE 客戶編號(hào)=ANY(SELECT 客戶編號(hào) FROM DELETED)
酒店管理系統(tǒng)數(shù)據(jù)庫(kù)腳本
------------------------數(shù)據(jù)庫(kù)初始化------set nocount on set dateformat mdy go
use master
go if exists(select * from sysdatabases where name='酒店管理系統(tǒng)')
/*刪除在master中已存*/ /*在的名為酒店管理系統(tǒng)的數(shù)據(jù)庫(kù)*/ drop database 酒店管理系統(tǒng) go--------------------------酒店管理系統(tǒng)的建立-create database 酒店管理系統(tǒng) on primary /*設(shè)定系統(tǒng)主文件*/(name='酒店管理系統(tǒng)_data', filename='d:酒店管理系統(tǒng).mdf', size=10, maxsize=50, filegrowth=5)
log on
/*創(chuàng)建事務(wù)日志文件*/(name='酒店管理系統(tǒng)_log', filename='d:酒店管理系統(tǒng).ldf', size=5, maxsize=25, filegrowth=5)go
---------(注:刪除查詢(xún)分析器中的以上代碼后,運(yùn)行以下代碼)-----------------建立信息表----------use 酒店管理系統(tǒng)
if exists(select * from sysobjects where name='客戶')drop table 客戶 go print 'drop table 客戶' print 'create table 客戶' go /*客戶信息表*/ CREATE TABLE 客戶
/*創(chuàng)建客戶信息表*/(客戶編號(hào) CHAR(8)PRIMARY KEY, 客戶名稱(chēng) CHAR(10)NOT NULL, 身份證號(hào) CHAR(18)NOT NULL, 聯(lián)系地址 CHAR(25), 聯(lián)系電話 CHAR(10))go--------------------------插入客戶數(shù)據(jù)-----------------------INSERT INTO 客戶 VALUES('1001','王一',12234,'江西','3245354')INSERT INTO 客戶 VALUES('1002','張三',34234,'江西','2442442')INSERT INTO 客戶 VALUES('1003','李四',56465,'江西','5654645')INSERT INTO 客戶 VALUES('1004','王錢(qián)',65435,'江西','5676577')INSERT INTO 客戶 VALUES('1005','孫志',11464,'江西','4234343')if exists(select * from sysobjects where name='客房')drop table 客房 go print 'drop table 客房' print 'create table 客房' go /*客房信息表*/ CREATE TABLE 客房
/*創(chuàng)建客房信息表*/(客房編號(hào) CHAR(8)PRIMARY KEY, 客房類(lèi)型 CHAR(8)NOT NULL, 價(jià)格 SMALLMONEY NOT NULL, 床位數(shù) INT NOT NULL, 使用狀態(tài) CHAR(8)NOT NULL)go-----------------------插入客房數(shù)據(jù)----------------------INSERT INTO 客房 VALUES('101','一',100,1,'使用中')INSERT INTO 客房 VALUES('102','二',200,2,'使用中')INSERT INTO 客房 VALUES('103','二',200,1,'使用中')INSERT INTO 客房 VALUES('104','三',300,2,'使用中')INSERT INTO 客房 VALUES('105','三',300,1,'使用中')if exists(select * from sysobjects where name='入住登記')drop table 入住登記 go print 'drop table 入住登記' print 'create table 入住登記' go /*入住登記信息表*/ CREATE TABLE 入住登記
/*創(chuàng)建入住登記信息表*/(客房編號(hào) CHAR(8)FOREIGN KEY REFERENCES 客房(客房編號(hào)),客戶編號(hào) CHAR(8)FOREIGN KEY REFERENCES 客戶(客戶編號(hào)),預(yù)定日期 DATETIME,預(yù)定數(shù)量 INT, PRIMARY KEY(客房編號(hào),客戶編號(hào)))go
---------------插入入住登記信息數(shù)據(jù)----------------------INSERT INTO 入住登記 VALUES('101','1001',2010-10-10,1)INSERT INTO 入住登記 VALUES('102','1002',2010-12-10,1)INSERT INTO 入住登記 VALUES('103','1003',2010-12-26,1)INSERT INTO 入住登記 VALUES('104','1004',2010-12-9,1)go
-----建立索引-------------------
CREATE UNIQUE INDEX UKF ON 客房(客房編號(hào),價(jià)格)go CREATE UNIQUE INDEX UKH ON 客戶(客戶編號(hào),客戶名稱(chēng))go CREATE UNIQUE INDEX URZ ON 入住登記(客戶編號(hào),客房編號(hào))go
----建立觸發(fā)器-------------------------建立控制觸發(fā)器(保證在客房使用狀態(tài)的一致性)------if exists(select * from sysobjects where name='控制觸發(fā)器')drop trigger 控制觸發(fā)器 GO CREATE TRIGGER 控制觸發(fā)器
ON 入住登記 FOR INSERT AS
UPDATE 客房
SET 使用狀態(tài)='使用中' WHERE 客房編號(hào)=ANY(SELECT 客房編號(hào) FROM INSERTED)go
--------建立入住刪除觸發(fā)器(保證信息刪除的一致性)----------if exists(select * from sysobjects where name='入住刪除觸發(fā)器')drop trigger 入住刪除觸發(fā)器 GO CREATE TRIGGER 入住刪除觸發(fā)器
ON 入住登記 FOR DELETE AS BEGIN DELETE FROM 客戶
WHERE 客戶編號(hào)=ANY(SELECT 客戶編號(hào) FROM DELETED)
UPDATE 客房
SET 使用狀態(tài)='未使用' WHERE 客房編號(hào)=ANY(SELECT 客房編號(hào) FROM DELETED)END go-------建立客房刪除觸發(fā)器(保證刪除的一致性)---------if exists(select * from sysobjects where name='客房刪除觸發(fā)器')drop trigger 客房刪除觸發(fā)器 GO CREATE TRIGGER 客房刪除觸發(fā)器
ON 客房
FOR DELETE AS
DELETE FROM 入住
WHERE 客戶編號(hào)=ANY(SELECT 客戶編號(hào) FROM DELETED)go---------創(chuàng)建查詢(xún)視圖----------------
CREATE VIEW 入住信息查詢(xún)
AS SELECT 入住登記.客房編號(hào),客戶名稱(chēng),入住登記.客戶編號(hào),客房.客房類(lèi)型,價(jià)格,使用狀態(tài)
FROM 客房,客戶,入住登記
WHERE 客房.客房編號(hào)=入住登記.客房編號(hào) AND 入住登記.客戶編號(hào)=客戶.客戶編號(hào) go
---------建立存儲(chǔ)過(guò)程------------------------------客房信息插入存儲(chǔ)過(guò)程--------------------------CREATE PROCEDURE 插入客房信息(@KFB CHAR(8), @KFL CHAR(8), @JG SMALLMONEY, @CWS INT, @SYZT CHAR(8))AS INSERT INTO 客房 VALUES(@KFB,@KFL,@JG,@CWS,@SYZT)GO
--------------------客房信息修改的存儲(chǔ)過(guò)程---------------------CREATE PROCEDURE 修改客房信息(@KFB CHAR(8), @KFL CHAR(8), @JG SMALLMONEY, @CWS INT, @SYZT CHAR(8))AS UPDATE 客房
SET 客房類(lèi)型=@KFL,價(jià)格=@JG,床位數(shù)=@CWS,使用狀態(tài)=@SYZT WHERE 客房編號(hào)=@KFB go--------------------客房信息刪除的存儲(chǔ)過(guò)程---------------------CREATE PROCEDURE 刪除客房信息(@KFB CHAR(8))AS DELETE FROM 客房 WHERE 客房編號(hào)=@KFB GO--------------------客戶信息插入的存儲(chǔ)過(guò)程---------------------CREATE PROCEDURE 插入客戶信息(@KHB CHAR(8), @KFM CHAR(10), @SFZ CHAR(18), @LXDZ CHAR(25), @LXDH CHAR(10))AS INSERT INTO 客戶 VALUES(@KHB,@KFM,@SFZ,@LXDZ,@LXDH)go--------------------客戶信息修改的存儲(chǔ)過(guò)程---------------------CREATE PROCEDURE 修改客戶信息(@KHB CHAR(8), @KFM CHAR(10), @SFZ CHAR(18), @LXDZ CHAR(25), @LXDH CHAR(10))AS UPDATE 客戶
SET 客戶名稱(chēng)=@KFM,身份證號(hào)=@SFZ,聯(lián)系地址=@LXDZ,聯(lián)系電話=@LXDH WHERE 客戶編號(hào)=@KHB GO--------------------客戶信息刪除的存儲(chǔ)過(guò)程---------------------CREATE PROCEDURE 刪除客戶信息(@KHB CHAR(8))AS DELETE FROM 客戶
WHERE 客戶編號(hào)=@KHB go--------------------入住信息插入的存儲(chǔ)過(guò)程---------------------CREATE PROCEDURE 插入入住信息(@KFB CHAR(8), @KHB CHAR(8), @YDRQ DATETIME, @YDSL INT)AS INSERT INTO 入住登記 VALUES(@KFB,@KHB,@YDRQ,@YDSL)go--------------------入住信息修改的存儲(chǔ)過(guò)程---------------------CREATE PROCEDURE 修改入住信息(@KFB CHAR(8), @KHB CHAR(8), @YDRQ DATETIME, @YDSL INT)AS UPDATE 入住登記
SET 客房編號(hào)=@KFB,預(yù)定日期=@YDRQ ,預(yù)定數(shù)量=@YDSL WHERE 客戶編號(hào)=@KHB go--------------------入住信息刪除的存儲(chǔ)過(guò)程---------------------CREATE PROCEDURE 刪除入住信息(@KHB CHAR(8))AS DELETE
FROM 入住登記
WHERE 客戶編號(hào)=@KHB go--------------------客房編號(hào)查詢(xún)的存儲(chǔ)過(guò)程-----------------------if exists(select * from sysobjects where name='客房編號(hào)查詢(xún)')drop procedure 客房編號(hào)查詢(xún) GO CREATE PROCEDURE 客房編號(hào)查詢(xún)(@KFB CHAR(8))AS SELECT 客房類(lèi)型,價(jià)格,床位數(shù),使用狀態(tài) FROM 客房
WHERE 客房編號(hào)=@KFB go--------------------客戶編號(hào)查詢(xún)的存儲(chǔ)過(guò)程-----------------------if exists(select * from sysobjects where name='客戶編號(hào)查詢(xún)')drop procedure 客戶編號(hào)查詢(xún) GO CREATE PROCEDURE 客戶編號(hào)查詢(xún)(@KHB CHAR(8))AS SELECT 客戶編號(hào),客戶名稱(chēng),身份證號(hào),聯(lián)系地址,聯(lián)系電話 FROM 客戶
WHERE 客戶編號(hào)=@KHB go--------------------入住信息查詢(xún)的存儲(chǔ)過(guò)程-----------------------if exists(select * from sysobjects where name='入住客戶編號(hào)查詢(xún)')drop procedure 入住客戶編號(hào)查詢(xún) GO CREATE PROCEDURE 入住客戶編號(hào)查詢(xún)(@KHB CHAR(8))AS SELECT 客戶編號(hào),客房編號(hào),預(yù)定日期,預(yù)定數(shù)量 FROM 入住登記
WHERE 客戶編號(hào)=@KHB
第二篇:數(shù)據(jù)庫(kù)課程設(shè)計(jì) 圖書(shū)管理系統(tǒng)(精選)
課 程 設(shè) 計(jì)
軟件工程與數(shù)據(jù)庫(kù) 課程設(shè)計(jì) 任務(wù)書(shū)
學(xué)院名稱(chēng):
數(shù)學(xué)與計(jì)算機(jī)學(xué)院
課程代碼:_6014419_ 專(zhuān)
業(yè):
年
級(jí):
一、設(shè)計(jì)題目
圖書(shū)管理系統(tǒng)
二、主要內(nèi)容
一個(gè)簡(jiǎn)單的圖書(shū)管理系統(tǒng)包括圖書(shū)館內(nèi)書(shū)籍的信息、學(xué)校在校學(xué)生的信息以及學(xué)生的借閱信息。此系統(tǒng)功能分為面向?qū)W生和面向管理員兩部分,其中學(xué)生可以進(jìn)行借閱、續(xù)借、歸還和查詢(xún)書(shū)籍等操作,管理員可以完成書(shū)籍和學(xué)生的增加,刪除和修改以及對(duì)學(xué)生,借閱、續(xù)借、歸還的確認(rèn)。如:
圖書(shū)室有各種圖書(shū)一萬(wàn)多冊(cè)。
每種圖書(shū)都有書(shū)名、書(shū)號(hào)(ISBN)、一名或多名作者(譯者)、出版社、定價(jià)和內(nèi)容簡(jiǎn)介。
借書(shū)證記錄有借閱者的姓名、所在單位、職業(yè)等。
憑借書(shū)證借書(shū),每次最多能借8本書(shū)。借書(shū)期限最長(zhǎng)為30天。實(shí)現(xiàn)新進(jìn)圖書(shū)的數(shù)據(jù)錄入。
實(shí)現(xiàn)對(duì)所有購(gòu)進(jìn)圖書(shū)的分類(lèi)查詢(xún)和分類(lèi)統(tǒng)計(jì)。能夠按書(shū)名、作者等分類(lèi)查詢(xún)現(xiàn)有圖書(shū)的數(shù)量。
記錄借閱者的個(gè)人資料和所借圖書(shū)的書(shū)名、書(shū)號(hào)數(shù)據(jù)等。
三、具體要求
1、完成系統(tǒng)的需求分析
通過(guò)需求分析確定系統(tǒng)需要處理的數(shù)據(jù)的需求,要求使用數(shù)據(jù)庫(kù)的輔助設(shè)計(jì)工具(PowerDesigner等),建立業(yè)務(wù)處理模型。
課 程 設(shè) 計(jì)
2、完成系統(tǒng)概念結(jié)構(gòu)設(shè)計(jì) 概念數(shù)據(jù)模型(CDM)用于完成數(shù)據(jù)庫(kù)的設(shè)計(jì),與人和數(shù)據(jù)庫(kù)平臺(tái)和具體數(shù)據(jù)存儲(chǔ)結(jié)構(gòu)和工具無(wú)關(guān)。首先選擇局部應(yīng)用畫(huà)出分E-R圖,最終形成系統(tǒng)的E-R圖
3、完成系統(tǒng)邏輯結(jié)構(gòu)設(shè)計(jì)
按照E-R圖轉(zhuǎn)換成關(guān)系模式的規(guī)則,將CDM轉(zhuǎn)換成邏輯數(shù)據(jù)模型,并為每個(gè)關(guān)系模式設(shè)計(jì)主鍵、外鍵。分析關(guān)系模式中的依賴(lài)關(guān)系,對(duì)關(guān)系模式規(guī)范化處理
4、完成系統(tǒng)物理結(jié)構(gòu)設(shè)計(jì)
為每個(gè)關(guān)系分配存儲(chǔ)長(zhǎng)度,建立數(shù)據(jù)庫(kù)的索引和視圖,定義關(guān)系中的主碼和外碼,寫(xiě)出關(guān)系創(chuàng)建和查詢(xún)的SQL語(yǔ)句。
5、編碼 選擇你自己熟悉的開(kāi)發(fā)工具完成一個(gè)DBS系統(tǒng)的編碼工作。源代碼格式規(guī)范,注釋不少于三分之一
四、主要技術(shù)路線提示
1.仔細(xì)閱讀設(shè)計(jì)指導(dǎo)書(shū)內(nèi)容,認(rèn)真掌握任務(wù)要求?2.需求分析? 3.概念結(jié)構(gòu)設(shè)計(jì)? 4.邏輯結(jié)構(gòu)設(shè)計(jì)?5.物理結(jié)構(gòu)設(shè)計(jì)?6.編碼.2.后臺(tái)推薦采用SQL server或Oracle;前臺(tái)開(kāi)發(fā)環(huán)境不限制。可采用ADO,ODBC,OLE DB或JDBC連接數(shù)據(jù)庫(kù),并調(diào)用系統(tǒng)存儲(chǔ)過(guò)程、自定義存儲(chǔ)過(guò)程、函數(shù)等。
五、進(jìn)度安排
第1周: 數(shù)據(jù)庫(kù)系統(tǒng)概念模型、數(shù)據(jù)模型設(shè)計(jì),創(chuàng)建數(shù)據(jù)庫(kù)以及相關(guān)對(duì)象; 第2周: 前臺(tái)程序開(kāi)發(fā),撰寫(xiě)報(bào)告,接受檢查。
六、完成后應(yīng)上交的材料
1. 源程序一份(包含數(shù)據(jù)庫(kù))
2. 課程設(shè)計(jì)報(bào)告一份
七、推薦參考資料
1.王珊.數(shù)據(jù)庫(kù)系統(tǒng)概論(第四版).高等教育出版社 2.閃四清.數(shù)據(jù)庫(kù)系統(tǒng)原理與應(yīng)用教程.清華大學(xué)出版社
課 程 設(shè) 計(jì)
3.周龍?bào)J.數(shù)據(jù)庫(kù)管理系統(tǒng)實(shí)現(xiàn)技術(shù).中國(guó)地質(zhì)大學(xué)出版社 4.張海藩.軟件工程概論.清華大學(xué)出版社 5.陳明 編著.實(shí)用軟件工程基礎(chǔ).清華大學(xué)出版社
6.成先海.數(shù)據(jù)庫(kù)基礎(chǔ)與應(yīng)用-SQL SERVER2000.機(jī)械工業(yè)出版社出版
指導(dǎo)教師 簽名日期 年 月 日 系 主 任 審核日期 年 月 日
第三篇:數(shù)據(jù)庫(kù)課程設(shè)計(jì)學(xué)籍管理系統(tǒng)
學(xué)籍管理系統(tǒng)
本次數(shù)據(jù)庫(kù)課程設(shè)計(jì)是以Access數(shù)據(jù)庫(kù)作為后臺(tái)以VB作為前臺(tái)的應(yīng)用型設(shè)計(jì)課程。
綜合我們所學(xué)的兩大課程創(chuàng)建應(yīng)用型的數(shù)據(jù)庫(kù)系統(tǒng),大大的提高了我們學(xué)生的動(dòng)手能力,作到了理論與實(shí)踐相結(jié)合。一.題目說(shuō)明:
學(xué)生學(xué)藉管理系統(tǒng)是典型的學(xué)藉管理系統(tǒng)(MIS),其開(kāi)發(fā)主要包括后臺(tái)數(shù)據(jù)庫(kù)的建立和維護(hù)以及前端應(yīng)用程序的開(kāi)發(fā)兩個(gè)方面。對(duì)于前者要求建立起數(shù)據(jù)一致性和完整性強(qiáng)、數(shù)據(jù)安全性好的庫(kù)。而對(duì)于后者則要求應(yīng)用程序功能完備,易使用等特點(diǎn)。
本系統(tǒng)主要完成對(duì)學(xué)生情況和學(xué)生成績(jī)的管理,包括數(shù)據(jù)庫(kù)中表的添加、刪除等。系統(tǒng)還可以完成對(duì)各類(lèi)信息的瀏覽、添加、刪除、等功能。
系統(tǒng)的核心是數(shù)據(jù)庫(kù)中各個(gè)表聯(lián)系,每一個(gè)表的修改都將聯(lián)動(dòng)的影響其它的表,當(dāng)完成對(duì)數(shù)據(jù)的操作時(shí)系統(tǒng)會(huì)自動(dòng)地完成數(shù)據(jù)庫(kù)的修改。查詢(xún)功能也是系統(tǒng)的核心之一,在系統(tǒng)中即有單條件查詢(xún)和多條件查詢(xún),也有精確查詢(xún)和模糊查詢(xún),系統(tǒng)不僅有靜態(tài)的條件查詢(xún),也有動(dòng)態(tài)生成的條件查詢(xún),其目的都是為了方便用戶使用。系統(tǒng)有完整的用戶添加、刪除和密碼修改功能,并具備報(bào)表打印功能。關(guān)鍵字:窗體、數(shù)據(jù)庫(kù)、vb6.0、access2000。
學(xué)生學(xué)籍管理系統(tǒng)被廣泛應(yīng)用于各類(lèi)學(xué)校的學(xué)生學(xué)籍管理工作中,要求其具有實(shí)用性強(qiáng)、使用方便、效率高和安全可靠等特點(diǎn)。本管理系統(tǒng)正是圍繞以上幾個(gè)方面進(jìn)行開(kāi)發(fā)的,在開(kāi)發(fā)過(guò)程中充分考慮到本系統(tǒng)的應(yīng)用特點(diǎn),并進(jìn)行了大量的檢驗(yàn),證明其的確達(dá)到了設(shè)計(jì)的要求,是一個(gè)已具備了實(shí)際應(yīng)用能力的軟件。本文主要論述學(xué)生學(xué)籍管理系統(tǒng)的開(kāi)發(fā)過(guò)程,在涉及到VB及Access中的部分知識(shí)以舉例的方式進(jìn)行講解 二.總體設(shè)計(jì):
我的總體設(shè)計(jì)如下:
(1).利用Access建立數(shù)據(jù)庫(kù),并在該數(shù)據(jù)庫(kù)下創(chuàng)建五張表格,分別是學(xué)生表、課程表、選課表、學(xué)生選課表以及口令表。
(2)利用VB來(lái)建立界面并對(duì)它進(jìn)行設(shè)計(jì)和修改,大體框架如下: FORM1 用于首界面
FORM2 用于登陸此系統(tǒng)的登錄界面
FORM3 是主窗體,在這上面建立相應(yīng)的菜單 如:文件——退出、添加用戶(FORM4)數(shù)據(jù)信息——管理使用(FORM5)
基本操作——學(xué)生操作、選課操作、課程操作(FORM6、FORM7、FORM8)(3)對(duì)以上的界面進(jìn)行設(shè)計(jì)以及對(duì)所要操作的部件進(jìn)行編程。
三.常用控件的說(shuō)明: 所有的Windows應(yīng)用程序窗口或?qū)υ捒颍际怯芍T如文本框、列表框、命令按扭、滾動(dòng)條、命令菜單等組成的。VB通過(guò)控件工具箱提供了它們與用戶進(jìn)行交
互的可視化部件,即控件。程序開(kāi)發(fā)人員只需要通過(guò)簡(jiǎn)單的操作,在窗體上安排所需要的控件,完成應(yīng)用程序的用戶界面設(shè)計(jì)即可。序號(hào)
名稱(chēng)
功能 Label標(biāo)簽
用于說(shuō)明 Textbox文本框
用于文本輸入或顯示 3 Frame框架
用于組合控件 Commandbutton命令按扭
單擊執(zhí)行命令 5 Timer計(jì)時(shí)期
用于定時(shí) Data數(shù)據(jù)控件
用于訪問(wèn)數(shù)據(jù)庫(kù)
三.詳細(xì)說(shuō)明:
1.數(shù)據(jù)庫(kù)的建立與設(shè)計(jì):
數(shù)據(jù)庫(kù)是有結(jié)構(gòu)的數(shù)據(jù)集合,它與一般的數(shù)據(jù)文件不同,(其中的數(shù)據(jù)是無(wú)結(jié)構(gòu)的)是一串文字或數(shù)字流。數(shù)據(jù)庫(kù)中的數(shù)據(jù)可以是文字、圖象、聲音等。
Access數(shù)據(jù)庫(kù)由六種對(duì)象組成,它們是表、查詢(xún)、窗體、報(bào)表、宏和模塊。
(1).表(Table)——表是數(shù)據(jù)庫(kù)的基本對(duì)象,是創(chuàng)建其他5種對(duì)象的基礎(chǔ)。表由記錄組成,記錄由字段組成,表用來(lái)存貯數(shù)據(jù)庫(kù)的數(shù)據(jù),故又稱(chēng)數(shù)據(jù)表。
(2).查詢(xún)(Query)——查詢(xún)可以按索引快速查找到需要的記錄,按要求篩選記錄并能連接若干個(gè)表的字段組成新表。
(3).窗體(Form)——窗體提供了一種方便的瀏覽、輸入及更改數(shù)據(jù)的窗口。還可以創(chuàng)建子窗體顯示相關(guān)聯(lián)的表的內(nèi)容。窗體也稱(chēng)表單。
(4).報(bào)表(Report)——報(bào)表的功能是將數(shù)據(jù)庫(kù)中的數(shù)據(jù)分類(lèi)匯總,然后打印出來(lái),以便分析。
(5).宏(Macro)——宏相當(dāng)于DOS中的批處理,用來(lái)自動(dòng)執(zhí)行一系列操作。Access列出了一些常用的操作供用戶選擇,使用起來(lái)十分方便。
(6).模塊(Module)——模塊的功能與宏類(lèi)似,但它定義的操作比宏更精細(xì)和復(fù)雜,用戶可以根據(jù)自己的需要編寫(xiě)程序。模塊使用Visual Basic編程。
我們利用Access來(lái)建立數(shù)據(jù)庫(kù),我們的庫(kù)中有五張表格,其分別是學(xué)生表、課程表、選課表、學(xué)生選課表以及口令表。
我們就以學(xué)生表為例做一個(gè)簡(jiǎn)單的說(shuō)明:
我們使用設(shè)計(jì)器來(lái)創(chuàng)建表的,我的這張表有七個(gè)字段,每個(gè)字段的名稱(chēng)分別是:學(xué)號(hào)、班級(jí)、姓名、性別、出生年月、民族、地址、電話號(hào)碼,每個(gè)字段有七個(gè)數(shù)據(jù)。我并對(duì)其字段的屬性進(jìn)行了重新的修改,以做到不浪費(fèi)其空間。
我具體的實(shí)施步驟是:?jiǎn)?dòng)數(shù)據(jù)庫(kù)管理器——建立數(shù)據(jù)庫(kù)——建立數(shù)據(jù)表結(jié)構(gòu)——輸入記錄。
最終產(chǎn)生了這樣的一個(gè)數(shù)據(jù)庫(kù):(如下)
2.VB界面的建立設(shè)計(jì)以及程序的編寫(xiě)說(shuō)明:
VB 是在Windows操作平臺(tái)下,用于開(kāi)發(fā)和創(chuàng)建具有圖形用戶界面的應(yīng)用程序的強(qiáng)有力工具之一。VB為開(kāi)發(fā)Windows應(yīng)用程序不僅提供了全新的相對(duì)簡(jiǎn)單的方式,而且也引進(jìn)了新的程序設(shè)計(jì)方法——面向?qū)ο蟮脑O(shè)計(jì)方法(00P)。從傳統(tǒng)的面向過(guò)程的程序設(shè)計(jì),轉(zhuǎn)移到更先進(jìn)的面向?qū)ο蟮某绦蛟O(shè)計(jì),無(wú)論是對(duì)老的程序員,還是初學(xué)者,都是一個(gè)挑戰(zhàn)。而學(xué)習(xí)VB,則是掌握這一新的程序設(shè)計(jì)方法的一條捷徑。
(1).界面的設(shè)計(jì)和程序的編寫(xiě):
設(shè)計(jì)一個(gè)像這樣的友好的界面,我考慮到它的顏色的配制,界面的大小,界面所載的內(nèi)容的多少等,在后臺(tái)我用定時(shí)器給其限定時(shí)間讓它在一定的時(shí)間后自動(dòng)跳到下一個(gè)界面。
這個(gè)界面是系統(tǒng)的主界面,用戶可以在通過(guò)系統(tǒng)登錄后直接到我們的主界面上來(lái)進(jìn)行相應(yīng)的操作,我的主界面采用的是一張?zhí)K州市職業(yè)大學(xué)的圖片,在這個(gè)圖片的上面有三個(gè)菜單,分別是文件、數(shù)據(jù)信息和基本操作。在各自的下面還有與之相對(duì)應(yīng)的子菜單,文件下有退出和添加用戶,數(shù)據(jù)信息下有管理使用,基本操作下有學(xué)生操作、選課操作和課程操作。我利用FORMn.SHOW命令連接到相對(duì)應(yīng)的界面上。
我們的界面有好幾張我就對(duì)其中的一張進(jìn)行詳細(xì)的分析:
這是一張學(xué)生選課瀏覽表的界面,這也是對(duì)應(yīng)我的主界面菜單中的數(shù)據(jù)信息下的管理使用子菜單的一張界面,在這張界面中包含了8個(gè)LABEL標(biāo)簽控件、7個(gè) TEXTBOX文本框控件、6個(gè)COMMANDBUTTON命令按扭控件、1個(gè)FRAME框架控件和1個(gè)DATA部件。我利用DATA部件將界面與 ACCESS數(shù)據(jù)庫(kù)相連接,具體的操作是利用DATABASENAME與數(shù)據(jù)庫(kù)連接,在RECORDSOURCE中找到與之對(duì)應(yīng)的表,再用 DATASOURCE、DATAFIELD與個(gè)文本框內(nèi)容對(duì)應(yīng),從而實(shí)現(xiàn)界面與數(shù)據(jù)庫(kù)的連接。下面是程序的編寫(xiě)過(guò)程:
顯示前一個(gè)數(shù)據(jù): COMMAND1:
Private Sub Command1_Click()If Data1.Recordset.RecordCount = 0 Then MsgBox “沒(méi)有記錄” Else If Data1.Recordset.BOF Then Data1.Recordset.MoveFirst MsgBox “這是第一條記錄!” Else Data1.Recordset.MovePrevious If Data1.Recordset.BOF = True Then
Data1.Recordset.MoveFirst MsgBox “這是第一條記錄!” End If End If End If End Sub 顯示第一個(gè)數(shù)據(jù): COMMAND2:
Private Sub Command2_Click()If Data1.Recordset.RecordCount = 0 Then MsgBox “沒(méi)有記錄” Else Data1.Recordset.MoveFirst End If End Sub 顯示最后一個(gè)數(shù)據(jù): COMMAND4:
Private Sub Command4_Click()If Data1.Recordset.RecordCount = 0 Then MsgBox “沒(méi)有記錄” Else Data1.Recordset.MoveLast End If End Sub 顯示后一個(gè)數(shù)據(jù): COMMAND3:
Private Sub Command3_Click()If Data1.Recordset.RecordCount = 0 Then MsgBox “沒(méi)有記錄” Else If Data1.Recordset.EOF Then Data1.Recordset.MoveLast MsgBox “這是最后一條記錄!” Else Data1.Recordset.MoveNext If Data1.Recordset.EOF = True Then Data1.Recordset.MoveLast MsgBox “這是最后一條記錄!” End If End If End If End Sub 添加一個(gè)數(shù)據(jù):COMMAND6 Private Sub command6_Click()If Command6.Caption = “添加” Then
Command1.Enabled = 0 Command2.Enabled = 0 Command3.Enabled = 0 Command4.Enabled = 0 Command6.Caption = “確定” Command5.Caption = “放棄” If Data1.Recordset.RecordCount > 0 Then Data1.Recordset.MoveLast End If Data1.Recordset.AddNew Text1.SetFocus Else Command1.Enabled =-1 Command2.Enabled =-1 Command3.Enabled =-1 Command4.Enabled =-1 Command6.Caption = “添加” Command5.Caption = “刪除” Text2.Enabled = 0 Text5.Enabled = 0 Text3.Enabled = 0 Text4.Enabled = 0 Text6.Enabled = 0 Text7.Enabled = 0 Data1.Recordset.Update Command1.SetFocus End If End Sub 刪除一個(gè)記錄:COMMAND5 Private Sub Command5_Click()If Command5.Caption = “放棄” Then Command4.Enabled =-1 Command5.Enabled =-1 Command6.Enabled =-1 Command3.Enabled =-1 Command1.Caption = “添加” Command2.Caption = “刪除” Text2.Enabled = 0 Text5.Enabled = 0 Text6.Enabled = 0 Text7.Enabled = 0 Text1.Enabled = 0
Else If Data1.Recordset.RecordCount = 0 Then MsgBox “沒(méi)有記錄”, 32, “注意” Exit Sub Else str1 = MsgBox(“刪除該記錄嗎?”, 17, “刪除”)If str1 = 1 Then Data1.Recordset.Delete Data1.Refresh If Data1.Recordset.RecordCount = 0 Then MsgBox “記錄數(shù)為零” Data1.Recordset.AddNew End If End If End If End If End Sub
四、在此過(guò)程中遇到的問(wèn)題以及解決方法: 在開(kāi)始編寫(xiě)程序的時(shí)候總是有一些出錯(cuò),在查找有關(guān)書(shū)籍和向老師詢(xún)問(wèn)后得出了結(jié)果。在將界面與數(shù)據(jù)庫(kù)相連接的時(shí)候,不知道用哪種方法,在老師的幫助下我學(xué)會(huì)了兩種方法:1.DATA、2.ADODC。我最終使用DATA這種方法。
五、心得體會(huì):
在這次的設(shè)計(jì)過(guò)程中,我學(xué)到的不僅是知識(shí),我還認(rèn)識(shí)到許多事情。這次設(shè)計(jì)使我的編程水平提高了一大步,使我充分的認(rèn)識(shí)到合作的可貴。由于這次設(shè)計(jì)涉及到數(shù)據(jù)庫(kù),我的學(xué)到了不少編程工具與數(shù)據(jù)庫(kù)連接的知識(shí),對(duì)數(shù)據(jù)庫(kù)的操作有了進(jìn)一步的了解。這次設(shè)計(jì)對(duì)我的綜合能力是一次很好的鍛煉,但是我必須承認(rèn)自己的能力和知識(shí)還很膚淺。所以今后我的學(xué)習(xí)道路還是很漫長(zhǎng)的。最后,在這里我要衷心的感謝我們的指導(dǎo)老師牛麗、程淵,謝謝她的悉心指導(dǎo)和熱心幫助。由于我水平有限,加之時(shí)間短暫,故學(xué)籍管理系統(tǒng)中還有許多不足之處,請(qǐng)老師批評(píng)指正,我會(huì)在以后的制作中不斷改進(jìn),不斷完善。
第四篇:酒店管理系統(tǒng)課程設(shè)計(jì)
軟件開(kāi)發(fā)環(huán)境與工具
課程設(shè)計(jì)
實(shí)驗(yàn)題目:酒店管理系統(tǒng) 指導(dǎo)老師:南麗麗
專(zhuān)業(yè)班級(jí):計(jì)算機(jī)科學(xué)與技術(shù)系1105班 姓 名:陳阿艷(2011100516)
王媛(2011100529)
閆麗穎(2011100503)樊建紅(2011100515)2013年 12月13日
目錄
第一章…………………………………前言
1.1…………………………………………………選題背景
1.2…………………………………………………課題研究的目的和意義
1.3…………………………………………………本文的研究?jī)?nèi)容
1.4…………………………………………………國(guó)內(nèi)外現(xiàn)狀
第二章…………………………………開(kāi)發(fā)環(huán)境及工具介紹 2.1………………………………………………..Visual Basic.NET簡(jiǎn)介
2.2…………………………………………............SQL Server2005 第三章…………………………………系統(tǒng)分析
3.1…………………………………………………..可行性分析
3.2…………………………………………………...需求分析
3.2.1…………………….酒店管理部分
3.2.1.1……………..客戶管理
第四章…………………………………數(shù)據(jù)庫(kù)設(shè)計(jì)
4.1…………………………………………………..數(shù)據(jù)庫(kù)設(shè)計(jì)截圖 4.2………………………………………………….權(quán)限設(shè)置 4.3………………………………………………….客戶信息表 4.4………………………………………………….房態(tài)表 4.5………………………………………………….結(jié)算表
第五章…………………………………系統(tǒng)實(shí)現(xiàn)
5.1…………………………………………………登陸
5.2…………………………………………………客戶入住
5.3…………………………………………………客戶結(jié)算退房
5.4…………………………………………………以“老板”為例,展示系統(tǒng)功能
第六章…………………………………主要代碼 第七章…………………………………總結(jié)
第1章 前 言
1.1 選題背景
酒店業(yè)是一個(gè)前景廣闊而又競(jìng)爭(zhēng)激烈的行業(yè)。改革開(kāi)放以來(lái),我國(guó)的酒店業(yè)迅速發(fā)展,已經(jīng)成為一個(gè)具有相當(dāng)規(guī)模的產(chǎn)業(yè)。由于我國(guó)的旅游業(yè)迅速發(fā)展,通過(guò)調(diào)查,我國(guó)在2020年將成為世界上第四大旅游國(guó)家;同時(shí)我國(guó)加入世界貿(mào)易組織,酒店業(yè)將完全開(kāi)放,這個(gè)時(shí)候,我國(guó)的酒店業(yè)將面臨著前所未有的機(jī)遇和挑戰(zhàn)。但是,現(xiàn)在甚至還有一些酒店還停留在由人工操作和管理階段,這樣已經(jīng)無(wú)法適應(yīng)當(dāng)前的發(fā)展趨勢(shì)。因此,要想使酒店的工作質(zhì)量和效率提高,采用先進(jìn)的計(jì)算機(jī)網(wǎng)絡(luò) 通信技術(shù)改變酒店業(yè)務(wù)模式,實(shí)現(xiàn)酒店業(yè)務(wù)管理的自動(dòng)化已經(jīng)成為一種必然。
酒店管理系統(tǒng)采用B/S結(jié)構(gòu)。按照按國(guó)家星級(jí)賓館標(biāo)準(zhǔn)化業(yè)務(wù)程序流式設(shè)計(jì),會(huì)采用主流開(kāi)發(fā)工具來(lái)開(kāi)發(fā),搭建比較穩(wěn)定可靠安全的服務(wù)端來(lái)輔佐客戶管理,并且還采用數(shù)據(jù)庫(kù)mysql,會(huì)通過(guò)測(cè)試用例來(lái)達(dá)到測(cè)試效果,技術(shù)支持會(huì)采用輕量級(jí)框架struts和hibernate持久化來(lái)完成,服務(wù)器采用tomcat,通過(guò)powerdesigner來(lái)設(shè)計(jì)數(shù)據(jù)模型為最初業(yè)務(wù)流程的概念設(shè)計(jì)階段和詳細(xì)設(shè)計(jì)階段打好基礎(chǔ)[1]。
1.2 課題研究的目的和意義
對(duì)酒店整個(gè)來(lái)說(shuō),對(duì)酒店經(jīng)營(yíng)狀況起決定作用的是酒店的服務(wù)管理水平。如何利用先進(jìn)的管理手段來(lái)提高酒店的管理水平成為酒店業(yè)務(wù)發(fā)展的當(dāng)務(wù)之急。面對(duì)信息時(shí)代的機(jī)遇和挑戰(zhàn),利用科技手段提高酒店的管理無(wú)疑是一條行之有效的途徑。雖然計(jì)算機(jī)管理并不是酒店管理走向成功的關(guān)鍵元素,但它可以最大限度地發(fā)揮準(zhǔn)確、快捷、高效等作用,對(duì)酒店的業(yè)務(wù)管理提供強(qiáng)有力的支持。因此,采用全新的計(jì)算機(jī)網(wǎng)絡(luò)和酒店業(yè)務(wù)管理系統(tǒng),已成為提高酒店的管理效率,使作業(yè)人員與管理系統(tǒng)之間靈活互動(dòng),實(shí)現(xiàn)流暢的工作流銜接,幫助酒店有效地進(jìn)行 3 業(yè)務(wù)管理,釋放最大價(jià)值。酒店業(yè)務(wù)管理系統(tǒng)在達(dá)到在節(jié)省人力資源成本的同時(shí),可以提高業(yè)務(wù)效率,并能夠及時(shí)、準(zhǔn)確、迅速地滿足顧客服務(wù)的需求[2]。
1.3 本文的研究?jī)?nèi)容
課程設(shè)計(jì)選題《酒店管理系統(tǒng)》主要研究了:酒店業(yè)務(wù)的管理(劃分為,登陸界面部分,查詢(xún)界面部分,入住界面部分,退房界面部分)。
1.4 國(guó)內(nèi)外現(xiàn)狀
隨著我國(guó)經(jīng)濟(jì)體制改革的不斷深化和我國(guó)經(jīng)濟(jì)的快速發(fā)展,我國(guó)人民的收入不斷提高,消費(fèi)觀念也有提高,對(duì)服務(wù)質(zhì)量的要求也有很大的提高。各地把旅游業(yè)當(dāng)作本 地經(jīng)濟(jì)發(fā)展的重要支柱之一。酒店作為人們食宿、娛樂(lè)、休閑的場(chǎng)所而得到了快速的發(fā)展。社會(huì)上也成立了各種類(lèi)型,不同規(guī)模的酒店服務(wù)企業(yè)。如何為客戶提供更 加準(zhǔn)確及時(shí)的服務(wù),成為各個(gè)酒店競(jìng)爭(zhēng)關(guān)鍵。所以酒店業(yè)務(wù)信息化建設(shè)就成為了客戶衡量酒店提供商服務(wù)標(biāo)準(zhǔn)的一個(gè)準(zhǔn)則,信息系統(tǒng)成為了基礎(chǔ)。
隨著Internet技術(shù)的進(jìn)一步發(fā)展和普及,不能很好的適應(yīng)世界經(jīng)濟(jì)發(fā)展的形式和我國(guó)國(guó)民經(jīng)濟(jì)建設(shè)的需要,市場(chǎng)現(xiàn)有的產(chǎn)品化的酒店業(yè)務(wù)軟件系統(tǒng)在不斷發(fā) 展中的酒店的需求?;赪EB的酒店管理系統(tǒng)的總體設(shè)計(jì)目標(biāo)能夠建立完善、高效、可靠的酒店業(yè)務(wù)信息系統(tǒng),為酒店提供良好的信息環(huán)境[3]。
第2章 開(kāi)發(fā)環(huán)境及工具介紹
2.1Visual Basic.NET簡(jiǎn)介
Visual Basic.NET通??s寫(xiě)為VB.NET,在某些特定情況下也直接簡(jiǎn)稱(chēng)VB,比如在.NET這個(gè)大話題下或者與其他.NET語(yǔ)言一起討論的時(shí)候。
Visual Basic.NET屬Basic系語(yǔ)言,其語(yǔ)法特點(diǎn)是以極具親和力的英文單詞為基礎(chǔ)標(biāo)識(shí),以及與自然語(yǔ)言極其相近的邏輯表達(dá),有時(shí)候你會(huì)覺(jué)得寫(xiě)VB.NET代碼就好像在寫(xiě)英文句子一樣,從這個(gè)角度來(lái)說(shuō),VB.NET似乎是最高級(jí)的一門(mén)編程語(yǔ)言,當(dāng)然在Basic系語(yǔ)言中VB.NET也確實(shí)是迄今為止最強(qiáng)大的一門(mén)編程語(yǔ)言。
Visual Basic.NET的應(yīng)用范圍包括windows桌面、web以及當(dāng)下突然覺(jué)醒的正在奮力追趕的第三大移動(dòng)平臺(tái)Windows phone。
2.2 SQL Server2005 SQL Server 是一個(gè)關(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng)。它最初是由Microsoft、Sybase 和Ashton-Tate三家公司共同開(kāi)發(fā)的,于1988 年推出了第一個(gè)OS/2版本。在Windows NT 推出后,Microsoft與Sybase 在SQL Server 的開(kāi)發(fā)上就分道揚(yáng)鑣了,Microsoft 將SQL Server移植到Windows NT系統(tǒng)上,專(zhuān)注于開(kāi)發(fā)推廣SQL Server 的Windows NT 版本。Sybase 則較專(zhuān)注于SQL Server在UNⅨ操作系統(tǒng)上的應(yīng)用。
Microsoft SQL Server 2005 是一個(gè)全面的數(shù)據(jù)庫(kù)平臺(tái),使用集成的商業(yè)智能(BI)工具提供了企業(yè)級(jí)的數(shù)據(jù)管理。Microsoft SQL Server 2005數(shù)據(jù)庫(kù)引擎為關(guān)系型數(shù)據(jù)和結(jié)構(gòu)化數(shù)據(jù)提供了更安全可靠的存儲(chǔ)功能,使您可以構(gòu)建和管理用于業(yè)務(wù)的高可用和高性能的數(shù)據(jù)應(yīng)用程序。
第3章
系統(tǒng)分析
3.1 可行性分析
隨著旅游業(yè)的發(fā)展,酒店、餐飲娛樂(lè)行業(yè)日趨發(fā)達(dá),引入全方位的電腦服務(wù)和電腦管理日益流行。同時(shí),酒店和餐廳娛樂(lè)業(yè)引入電腦服務(wù)和管理也取得了優(yōu)良的經(jīng)濟(jì) 效益和社會(huì)效益。為此,國(guó)家建設(shè)部已于最近作出明確規(guī)定:凡星級(jí)酒店在項(xiàng)目審批時(shí),其設(shè)計(jì)方案必須包括電腦管理系統(tǒng),否則不予立項(xiàng)??梢?jiàn),酒店管理電腦化 勢(shì)在必行。酒店管理系統(tǒng)將先進(jìn)的電腦技術(shù)與現(xiàn)代酒店服務(wù)管理完美地結(jié)合起來(lái),實(shí)現(xiàn)了住宿、餐飲、娛樂(lè)全新概念的服務(wù)和管理方式。
一個(gè)成熟的酒店管理系統(tǒng)不僅僅是記錄酒店客人的信息,提供查詢(xún),報(bào)表打印等一系列簡(jiǎn)單的工作,它能讓工作人員從煩瑣的手工操作中解脫,并且酒店管理系統(tǒng)本 身就代表著一種管理方法。隨著它的深入,將帶動(dòng)企業(yè)的運(yùn)做,為管理和決策提供支持。為了達(dá)到這個(gè)要求,它必須依靠高起點(diǎn)的硬件環(huán)境和軟件開(kāi)發(fā)工具來(lái)保證系 統(tǒng)的穩(wěn)定和正常運(yùn)行。酒店電腦系統(tǒng)要求24小時(shí)連續(xù)運(yùn)行,數(shù)據(jù)量大,可靠性要求高,因此整個(gè)電腦系統(tǒng)供電采用專(zhuān)線方式,加配UPS(不間斷供電系統(tǒng)),并合理接地,以便保障整套系統(tǒng)的正常運(yùn)行[7]。
3.2 需求分析
系統(tǒng)需對(duì)用戶登錄進(jìn)行管理。使用各功能模塊時(shí),系統(tǒng)應(yīng)驗(yàn)證用戶身份的有效性,否則要求用戶登錄。另外,允許用戶對(duì)自己的密碼進(jìn)行修改。
系統(tǒng)應(yīng)提供客房的分類(lèi)管理功能,可分類(lèi)制訂客房面積、價(jià)格、是否配備空調(diào)等客房類(lèi)型,對(duì)不同標(biāo)準(zhǔn)的客房進(jìn)行有效管理。系統(tǒng)可實(shí)現(xiàn)對(duì)客房信息的添加、刪除以及修改。
在進(jìn)行入住/退房管理時(shí),系統(tǒng)可以根據(jù)客房當(dāng)前的狀態(tài)自動(dòng)提示可用服務(wù)(入住/退房)。如果客房沒(méi)有客人入住,則該客房的可用服務(wù)為“入住”;否則,可用服務(wù)為“退房”。
系統(tǒng)的客戶端在Windows平臺(tái)下運(yùn)行,服務(wù)器端可在Windows平臺(tái)或UNIX平臺(tái)下運(yùn)行。系統(tǒng)還需要有較好的安全性和可擴(kuò)展性[8]。
需求分析是從客戶的需求中提取出軟件系統(tǒng)能夠幫助用戶解決的業(yè)務(wù)問(wèn)題,通過(guò)對(duì)用戶業(yè)務(wù)問(wèn)題的分析,規(guī)劃出系統(tǒng)的功能模塊,即定義用例。這個(gè)步驟是對(duì)理解需求的升華,直接關(guān)系到該系統(tǒng)的質(zhì)量。
整個(gè)系統(tǒng)可以分為2大部分。酒店網(wǎng)站部分(客戶服務(wù)網(wǎng)站)和酒店管理部分(管理員部分)。本系統(tǒng)只做了有關(guān)酒店管理的一部分。3.2.1 酒店管理部分
1.客房管理: 預(yù)訂客房管理、客房查詢(xún)、退房管理。
前臺(tái)服務(wù)員的主要職能是負(fù)責(zé)訂房和退房,以及查詢(xún)?nèi)胱〉目蛻粜畔?。所有該角色只可以使用部分功能,包括預(yù)定管理、客戶信息查詢(xún),入住管理,退房管理功能。
第四章 數(shù)據(jù)庫(kù)設(shè)計(jì)
4.1 數(shù)據(jù)庫(kù)設(shè)計(jì)截圖
4.2權(quán)限設(shè)置
4.3客戶信息表
4.4房態(tài)表
4.5結(jié)算表
第5章 系統(tǒng)實(shí)現(xiàn)
5.1登陸
分別用三種身份登陸,所得到的權(quán)限也就不同
老板經(jīng)理員工
5.2客戶入?。ㄍㄟ^(guò)添加客戶信息,自動(dòng)計(jì)算應(yīng)付房費(fèi))
5.3客戶結(jié)算退房
5.4以“老板”為例,展示系統(tǒng)功能
(1)查詢(xún)房態(tài)
住著人的房間有:
通過(guò)房間號(hào)查某間房的房態(tài)
(2)職工管理
添加職工
設(shè)置權(quán)限
第登陸
Public Class Login
Private Sub Btn_Login_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)Handles Btn_Login.Click
Data_Access.User_info.LoginUser_info.User_id = Me.Txt_Name.Text
Data_Access.User_info.LoginUser_info.User_pwd = Me.Txt_pwd.Text
Dim s As Integer
s = Business_Logic_Layer.Data_Check.User_Check
If s = 1 Then
MsgBox(“歡迎使用假日酒店管理系統(tǒng)”, MsgBoxStyle.Information + MsgBoxStyle.OkOnly)
Main_Form.Show()
Me.Close()
Else
If s =-1 Then
MsgBox(“用戶名錯(cuò)誤!”, MsgBoxStyle.Information + MsgBoxStyle.OkOnly)
Else
MsgBox(“密碼錯(cuò)誤!”, MsgBoxStyle.Information + MsgBoxStyle.OkOnly)
End If
End If
End Sub
6章 主要代碼
Private Sub Btn_Cancel_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)Handles Btn_Cancel.Click
Me.Close()
End Sub
Private Sub Login_Load(ByVal sender As System.Object, ByVal e As System.EventArgs)Handles MyBase.Load
End Sub End Class
主界面
Public Class Main_Form
Private Sub Main_Form_Load(ByVal sender As System.Object, ByVal e As System.EventArgs)Handles MyBase.Load
Call Init_Tree()
End Sub
Public Sub Init_Tree()
Me.TreeV.Nodes.Clear()
Dim s As String
s = “select * from gg_Menu where isStop='0'”
Dim dr As SqlClient.SqlDataReader
dr = myCommon.getData.get_dr(s)
Dim myNode As TreeNode
While dr.Read
myNode = New TreeNode
myNode.Text = dr.Item(“MenuName”)
If Business_logic_layer.Judge.Judge_Auth(dr.Item(“Typeid”))= False Then
Continue While
End If
myNode.Name = dr.Item(“Typeid”)
If dr.Item(“isGroup”)= “0” Then
myNode.Tag = dr.Item(“Form”)
Else
myNode.Tag = “"
End If
If dr.Item(”P(pán)arid“)= ”0“ Then
Me.TreeV.Nodes.Add(myNode)
Else
If Me.TreeV.Nodes.Find(dr.Item(”P(pán)arid“), True).Length > 0 Then
Me.TreeV.Nodes.Find(dr.Item(”P(pán)arid“), True)(0).Nodes.Add(myNode)
End If
End If
End While
dr.Close()
End Sub
Private Sub TreeV_AfterSelect(ByVal sender As System.Object, ByVal e As System.Windows.Forms.TreeViewEventArgs)Handles TreeV.AfterSelect
If e.Node.Tag = ”“ Then Exit Sub
Dim formName As String
formName = ”Hotel_Manager.“ & e.Node.Tag
Dim f As Form
'
f = CType(Activator.CreateInstance(Type.GetType(formName)), Form)
f.Show()
f.MdiParent = Me
f.WindowState = FormWindowState.Maximized
End Sub
Private Sub 退出ToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)Handles 注á?é銷(xiāo)¨2ToolStripMenuItem.Click
Data_Access.User_info.LoginUser_info.User_id = ”“
Data_Access.User_info.LoginUser_info.User_name = ”“
Data_Access.User_info.LoginUser_info.User_pwd = ”“
Login.Show()
Me.Close()
End Sub
Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs)Handles Timer1.Tick
Me.Tool_lb_name.Text = ”登陸者“ & Data_Access.User_info.LoginUser_info.User_name
Me.Tool_lb_date.Text = ”日期“ & Format(Now, ”yyyy-MM-dd“)
Me.Tool_lb_time.Text = ”時(shí)間“ & Format(Now, ”long time“)
End Sub
Private Sub 退出ToolStripMenuItem1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)Handles 退出ToolStripMenuItem1.Click
Me.Close()
End Sub End Class 入住
Public Class Ruzhu_login
Private Sub Ruzhu_login_Load(ByVal sender As System.Object, ByVal e As System.EventArgs)Handles MyBase.Load
Me.Txt_no.Text = myCommon.getNewCode.get_NewCode
Call Init_Cbox()
End Sub
Private Sub Cbox_type_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs)Handles Cbox_type.SelectedIndexChanged
Dim s As String
s = ”select * from Fang where Fang_state='空' and Fang_type='“ & Me.Cbox_type.Text & ”'“
Dim dr As SqlClient.SqlDataReader
dr = myCommon.getData.get_dr(s)
Cbox_fang_no.Items.Clear()
While dr.Read
Cbox_fang_no.Items.Add(dr!Fang_num)
Txt_yajin.Text = dr!Fang_yajin
Txt_danjia.Text = dr!Fang_price
End While
dr.Close()
End Sub
Private Sub Btn_ok_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)Handles Btn_ok.Click
Dim s As String
Dim ID_Card As String
ID_Card = Me.Txt_ID.Text
Dim cAge As Integer
cAge = myCommon.getAge.get_age(ID_Card)
Dim stoptime As String
stoptime = ”0000/00/00 00:00:00“
s = ”insert into Customer values('“ & Txt_no.Text & ”','“ & Txt_name.Text & ”','“ & Cbox_sex.Text & ”','“ & cAge.ToString & ”','“ & Txt_ID.Text _
& ”','“ & Cbox_type.Text & ”','“ & Cbox_fang_no.Text & ”','“ & Now & ”','“ & stoptime & ”','“ & Txt_yajin.Text _
& ”','“ & Txt_days.Text & ”','“ & Txt_yingjiao.Text & ”','“ & Txt_yijiao.Text & ”')“
Dim s2 As String
s2 = ”update Fang set Fang_state='滿' where Fang_num='“ & Cbox_fang_no.Text & ”'“
Try
myCommon.getData.cmd_ex(s)
myCommon.getData.cmd_ex(s2)
MsgBox(”添加成功!“, MsgBoxStyle.Information + MsgBoxStyle.OkOnly)
myCommon.getNewCode.getNewSaveCode()
Catch ex As Exception
MsgBox(”添加失?。 ?& ex.Message, MsgBoxStyle.Information + MsgBoxStyle.OkOnly)15
End Try
End Sub
Private Sub Btn_jisuan_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)Handles Btn_jisuan.Click
Me.Txt_yingjiao.Text = Txt_danjia.Text * Txt_days.Text + Txt_yajin.Text
End Sub
Private Sub Btn_add_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)Handles Btn_add.Click
Me.Txt_no.Text = myCommon.getNewCode.get_NewCode
Txt_name.Text = ”“
Cbox_sex.Items.Clear()
Txt_ID.Text = ”“
Cbox_type.Items.Clear()
Cbox_fang_no.Items.Clear()
Txt_yajin.Text = ”“
Txt_days.Text = ”“
Txt_yingjiao.Text = ”“
Txt_yijiao.Text = ”“
Txt_address.Text = ”“
Txt_danjia.Text = ”“
Call Init_Cbox()
End Sub
Sub Init_Cbox()'為性別和房間類(lèi)型進(jìn)行添加
Cbox_sex.Items.Add(”男“)
Cbox_sex.Items.Add(”女“)
Cbox_type.Items.Add(”單人間“)
Cbox_type.Items.Add(”雙人間“)
End Sub End Class 結(jié)算
Public Class Jiesuan
Dim str As String
Private Sub Jiesuan_Load(ByVal sender As System.Object, ByVal e As System.EventArgs)Handles MyBase.Load
Call Btn_show_Click(sender, e)
End Sub
Private Sub Btn_jiesuan_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)Handles Btn_jiesuan.Click
Dim s As String
Dim yajin As String
Dim yijiao As String
Dim str As String
str = Now
str = Mid(str, 1, 10)
s = ”select yajin,yijiao from Customer where Start_time like '“ & str & ”%' “
Dim dr As SqlClient.SqlDataReader
dr = myCommon.getData.get_dr(s)
While dr.Read
yajin = dr!yajin + yajin
yijiao = dr!yijiao + yijiao
End While
dr.Close()
s = ”select count(*)from Jiesuan where Riqi like '“ & str & ”%' “
Dim conn As New SqlClient.SqlConnection
conn.ConnectionString = myCommon.getstrconn.get_strconn
Dim cmd As New SqlClient.SqlCommand
cmd.Connection = conn
cmd.CommandType = CommandType.Text
cmd.CommandText = s
conn.Open()
If CType(cmd.ExecuteScalar(), Integer)= 0 Then
Try
s = ”insert into Jiesuan values('“ & str & ”','“ & yijiao & ”','“ & yajin & ”','“ & yijiaoyajin & ”' where Riqi='“ & str & ”'“
myCommon.getData.cmd_ex(s)
Catch ex As Exception
MsgBox(”結(jié)算時(shí)出錯(cuò)誤!“)
End Try
End If
End If
s = ”select * from Jiesuan where Riqi='“ & str & ”'“
Dim ds As DataSet
ds = myCommon.getData.get_ds(s)
DGView_jiesuan.DataSource = ds.Tables(0)
End Sub
Private Sub Btn_show_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)Handles Btn_show.Click
Dim s As String
s = ”select * from Jiesuan“
Dim ds As DataSet
ds = myCommon.getData.get_ds(s)
DGView_jiesuan.DataSource = ds.Tables(0)
End Sub
Private Sub Btn_jingli_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)Handles Btn_jingli.Click
Dim str As String
str = Now
str = Mid(str, 1, 10)
If Data_Access.User_info.LoginUser_info.User_job = ”經(jīng)理“ Then
Dim s As String
s = ”update Jiesuan set jinglishenhe='“ & Data_Access.User_info.LoginUser_info.User_name & ”' where Riqi='“ & str & ”'“
Try
myCommon.getData.cmd_ex(s)
Call Btn_show_Click(sender, e)
Catch ex As Exception
MsgBox(”審核失??!“)
End Try
Else
MsgBox(”你沒(méi)有權(quán)限!“)
End If
End Sub
Private Sub Btn_laoban_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)Handles Btn_laoban.Click
Dim str As String
str = Now
str = Mid(str, 1, 10)
If Data_Access.User_info.LoginUser_info.User_job = ”老板“ Then
Dim s As String
s = ”update Jiesuan set laobanshenhe='“ & Data_Access.User_info.LoginUser_info.User_name & ”' where Riqi='“ & str & ”'“
Try
myCommon.getData.cmd_ex(s)
Call Btn_show_Click(sender, e)
Catch ex As Exception
MsgBox(”審|核失??!“)
End Try
Else
MsgBox(”你沒(méi)有權(quán)限!“)
End If
End Sub End Class
退房
Public Class Tuifang_login
Dim dv As DataView
Private Sub Btn_chaxun_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)Handles Btn_chaxun.Click
Dim str As String
str = ”select * from Customer_Fang where Fang_no='“ & Me.Txt_fang_no.Text & ”'“
Dim ds As DataSet
ds = myCommon.getData.get_ds(str)
dv = ds.Tables(”temp“).DefaultView
DGView_tuifang.DataSource = dv
End Sub
Private Sub Btn_Tuifang_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)Handles Btn_Tuifang.Click
Dim s As String
s = ”update Fang set Fang_state='空?' where Fang_num='“ & dv.Item(0).Item(”Fang_no“).ToString & ”'“
Dim s2 As String
s2 = ”update Customer set yingjiao='“ & dv.Item(0).Item(”yingjiao“)dv.Item(0).Item(”yajin“)& ”' where Customer_no='“ & dv.Item(0).Item(”Customer_no“)& ”'“
Try
myCommon.getData.cmd_ex(s)
myCommon.getData.cmd_ex(s2)
MsgBox(”退房成功!“, MsgBoxStyle.Information + MsgBoxStyle.OkOnly)
Catch ex As Exception
MsgBox(”退房失??!“ & ex.Message, MsgBoxStyle.Information + MsgBoxStyle.OkOnly)
End Try
End Sub
Private Sub Panel2_Paint(ByVal sender As System.Object, ByVal e As System.Windows.Forms.PaintEventArgs)Handles Panel2.Paint
End Sub
查詢(xún)
Private Sub Btn_Customer_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)Handles Btn_Customer.Click
Show_all_coustomer()
End Sub
Private Sub Btn_Chaxun_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)Handles Btn_Chaxun.Click
Dim str As String
If Chaxun_Fang.Text <> ”“ And Chaxun_name.Text <> ”“ Then
str = ”Fang_no='“ & Chaxun_Fang.Text & ”' and Customer_name='“ & Chaxun_name.Text & ”'“
ElseIf Chaxun_Fang.Text <> ”“ And Chaxun_name.Text = ”“ Then
str = ”Fang_no='“ & Chaxun_Fang.Text & ”'“
ElseIf Chaxun_Fang.Text = ”“ And Chaxun_name.Text <> ”“ Then
str = ” Customer_name='“ & Chaxun_name.Text & ”'“
End If
Call Show_all(str)
End Sub
Private Sub Panel2_Paint(ByVal sender As System.Object, ByVal e As System.Windows.Forms.PaintEventArgs)Handles Panel2.Paint
End Sub End Class
管理
Public Class cManager
Sub show_Role_Auth()
Dim s As String
s = ”select * from Role_Auth_V where Role_Name<>'老板'“
Dim ds As DataSet
ds = myCommon.getData.get_ds(s)
DGView_Role_Auth.DataSource = ds.Tables(”temp“)
End Sub
Private Sub cManager_Load(ByVal sender As System.Object, ByVal e As System.EventArgs)Handles MyBase.Load
Dim s As String
s = ”select * from Role_Auth_V where Role_Name<>'老板'“
Dim ds As DataSet
ds = myCommon.getData.get_ds(s)
DGView_Role_Auth.DataSource = ds.Tables(”temp“)
Dim dr As SqlClient.SqlDataReader
s = ”select * from gg_Menu where MenuName<>'權(quán)限T'and MenuName<>'權(quán)限管理'“
dr = myCommon.getData.get_dr(s)
While dr.Read
Cbox_Auth.Items.Add(dr.Item(”MenuName“))
End While
dr.Close()
s = ”select * from Role where Role_Name<>'老板'“
dr = myCommon.getData.get_dr(s)
While dr.Read
Cbox_Role.Items.Add(dr.Item(”Role_Name“))
End While
dr.Close()
End Sub
Private Sub DGView_Role_Auth_CellClick(ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs)Handles DGView_Role_Auth.CellClick
Me.Cbox_Role.Text = DGView_Role_Auth.CurrentRow.Cells.Item(0).Value.ToString
Me.Cbox_Auth.Text = DGView_Role_Auth.CurrentRow.Cells.Item(1).Value.ToString
End Sub
Private Sub Btn_add_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)Handles Btn_add.Click
Dim s As String
Dim RoleID As String
Dim TypeID As String
s = ”select Role_id from Role where Role_name='“ & Cbox_Role.Text & ”'“
Dim dr As SqlClient.SqlDataReader
dr = myCommon.getData.get_dr(s)
While dr.Read
RoleID = dr!Role_ID
End While
dr.Close()
s = ”select TypeId from gg_Menu where MenuName='“ & Cbox_Auth.Text & ”'“
dr = myCommon.getData.get_dr(s)
While dr.Read
TypeID = dr!TypeId
End While
dr.Close()
s = ”insert into Role_Auth values('“ & RoleID & ”','“ & TypeID & ”')“
Try
myCommon.getData.cmd_ex(s)
MsgBox(”添加成功!“, MsgBoxStyle.Information + MsgBoxStyle.OkOnly)
Catch ex As Exception
MsgBox(”添加失敗!“ & ex.Message, MsgBoxStyle.Information + MsgBoxStyle.OkOnly)
End Try
Call show_Role_Auth()
End Sub
Private Sub Btn_del_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)Handles Btn_del.Click
Dim s As String
Dim RoleID As String
Dim TypeID As String
s = ”select Role_id from Role where Role_name='“ & Cbox_Role.Text & ”'“
Dim dr As SqlClient.SqlDataReader
dr = myCommon.getData.get_dr(s)
While dr.Read
RoleID = dr!Role_id
End While
dr.Close()
s = ”select TypeId from gg_Menu where MenuName='“ & Cbox_Auth.Text & ”'“
dr = myCommon.getData.get_dr(s)
While dr.Read
TypeID = dr!TypeId
End While
dr.Close()
s = ”delete from Role_Auth where Role_ID='“ & RoleID & ”'and Type_Id='“ & TypeID & ”' “
Try
myCommon.getData.cmd_ex(s)
MsgBox(”刪除成功!“, MsgBoxStyle.Information + MsgBoxStyle.OkOnly)
Catch ex As Exception
MsgBox(”刪除失敗!“ & ex.Message, MsgBoxStyle.Information + MsgBoxStyle.OkOnly)
End Try
Call show_Role_Auth()
End Sub
Private Sub DGView_Role_Auth_CellContentClick(ByVal sender As System.Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs)Handles DGView_Role_Auth.CellContentClick
End Sub End Class 22
員工管理
Public Class Staff_Manager
Private Sub Btn_show_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)Handles Btn_show.Click
Dim s As String
s = ”select * from Staff where Staff_job='職員“
Dim ds As DataSet
ds = myCommon.getData.get_ds(s)
DGView_staff.DataSource = ds.Tables(0)
End Sub
Private Sub Btn_add_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)Handles Btn_add.Click
Dim s As String
s = ”insert into Staff values('“ & Txt_no.Text & ”','“ & Txt_name.Text & ”','“ & Cbox_sex.Text & ”','“ & Txt_pwd.Text _
& ”','職員'“ & Txt_address.Text & ”','“ & Txt_tel_no.Text & ”')“
Try
myCommon.getData.cmd_ex(s)
MsgBox(”添加成功!“)
Catch ex As Exception
MsgBox(”添加失敗“ & ex.Message)
End Try
End Sub
Private Sub Btn_del_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)Handles Btn_del.Click
Dim s As String
s = ”delete from Staff where Staff_no='“ & Txt_no.Text & ”'“
Try
myCommon.getData.cmd_ex(s)
MsgBox(”刪除成功!“)
Catch ex As Exception
MsgBox(”刪除失敗“ & ex.Message)
End Try
End Sub
Private Sub Btn_chaxun_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)Handles Btn_chaxun.Click 23
Dim s As String
s = ”select * from Staff where Staff_no='“ & Txt_chaxun_no.Text & ”' and Staff_job='職員'"
Dim ds As DataSet
ds = myCommon.getData.get_ds(s)
DGView_staff.DataSource = ds.Tables(0)
End Sub
Private Sub Staff_Manager_Load(ByVal sender As System.Object, ByVal e As System.EventArgs)Handles MyBase.Load
Call Btn_show_Click(sender, e)
End Sub
Private Sub DGView_staff_CellClick(ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs)Handles DGView_staff.CellClick
Txt_no.Text = DGView_staff.CurrentRow.Cells.Item(0).Value.ToString
Txt_name.Text = DGView_staff.CurrentRow.Cells.Item(1).Value.ToString
Cbox_sex.Text = DGView_staff.CurrentRow.Cells.Item(2).Value.ToString
Txt_address.Text = DGView_staff.CurrentRow.Cells.Item(5).Value.ToString
Txt_tel_no.Text = DGView_staff.CurrentRow.Cells.Item(6).Value.ToString
End Sub
Private Sub Panel2_Paint(ByVal sender As System.Object, ByVal e As System.Windows.Forms.PaintEventArgs)Handles Panel2.Paint
End Sub End Class
第7章 總 結(jié)
經(jīng)過(guò)這段時(shí)間的精心設(shè)計(jì),系統(tǒng)的基本功能已經(jīng)實(shí)現(xiàn),并能實(shí)踐于一些業(yè)務(wù)管理過(guò)程中,但酒店業(yè)務(wù)管理系統(tǒng)是一個(gè)龐大的工程,要使網(wǎng)絡(luò)交互功能的實(shí)現(xiàn),腳本的設(shè)計(jì),網(wǎng)頁(yè)的構(gòu)架,網(wǎng)頁(yè)的美工,文字的編輯,非一朝一夕可盡善盡美的,這需要一個(gè)長(zhǎng)期的摸索與完善過(guò)程,同時(shí)還要在實(shí)踐中發(fā)現(xiàn)與操作者使用要求不相符合的 地方還要修改。子系統(tǒng)功能雖已基本實(shí)現(xiàn),但仍有諸多地方需要修改。隨著酒店業(yè)務(wù)的擴(kuò)展,服務(wù)的增加,酒店業(yè)務(wù)管理系統(tǒng)也逐漸發(fā)展、完善。如果沒(méi)有一套可靠的酒店業(yè)務(wù)管理系統(tǒng),但憑手工操作,不僅效率低下,而且會(huì)極大地形象到酒店的服務(wù)質(zhì)量。要在酒店服務(wù)中選擇好適合自己酒店實(shí)際情況的業(yè)務(wù)管理系統(tǒng)不僅 要考慮該系統(tǒng)在酒店的實(shí)用性,還要考慮酒店對(duì)該系統(tǒng)所能夠承擔(dān)費(fèi)用的能力,以及這個(gè)系統(tǒng)對(duì)操作員來(lái)說(shuō)的操作難易程度。通過(guò)本次課程設(shè)計(jì)中,我們掌握了VB.NET編程技能,SQL以及JDBC連接數(shù)據(jù)庫(kù)和動(dòng)態(tài)頁(yè)面的用法。比較全面的鞏固了下面向?qū)ο蟮木幊趟枷?。在本次課程設(shè)計(jì)中,我們懂得了謹(jǐn)慎和團(tuán)結(jié)的重要性,明確分工也使我們提高了實(shí)驗(yàn)的效率,這對(duì)我們以后的學(xué)習(xí)工作都有很大的幫助。
第五篇:數(shù)據(jù)庫(kù)課程設(shè)計(jì) 計(jì)算機(jī)教務(wù)管理系統(tǒng)
中北大學(xué)
數(shù)據(jù)庫(kù)課程設(shè)計(jì)
說(shuō) 明 書(shū)
學(xué) 院、系: 專(zhuān)
業(yè): 學(xué) 生 姓 名: 設(shè) 計(jì) 題 目:
李翰超
軟件學(xué)院 軟件工程
學(xué) 號(hào): 1221010619
計(jì)算機(jī)等級(jí)考試教務(wù)管理系統(tǒng)
起 迄 日 期: 2014年5月26日-2014年6月20日 指 導(dǎo) 教 師:
2012 年 6月 21 日.引言
隨著全國(guó)計(jì)算機(jī)等級(jí)考試的全面推廣,我市學(xué)生每年參加兩次全國(guó)計(jì)算機(jī)等級(jí)考試,考試管理工作量相當(dāng)大。但是靠人工的方式管理等級(jí)考試相關(guān)的信息,這種管理方式存在著許多缺點(diǎn),如:工作效率低、統(tǒng)計(jì)容易出錯(cuò),另外時(shí)間一長(zhǎng),將產(chǎn)生大量的文件和數(shù)據(jù),這對(duì)于查找、更新和維護(hù)都帶來(lái)了不少的困難。所以開(kāi)發(fā)一個(gè)計(jì)算機(jī)等級(jí)考試成績(jī)管理系統(tǒng)是非常必要的。2.需求分析
計(jì)算機(jī)等級(jí)考試分為若干種類(lèi):如:計(jì)算機(jī)一級(jí)VB、C語(yǔ)言;計(jì)算機(jī)二級(jí)VB、C語(yǔ)言、C++;計(jì)算機(jī)三級(jí)數(shù)據(jù)庫(kù)、網(wǎng)絡(luò)技術(shù);計(jì)算機(jī)四級(jí)數(shù)據(jù)庫(kù)工程師、網(wǎng)絡(luò)工程師。對(duì)于每個(gè)種類(lèi),考試分為筆試和機(jī)試.計(jì)算機(jī)等級(jí)考試工作過(guò)程如下:每個(gè)考生在報(bào)名時(shí),登記姓名、性別、報(bào)考種類(lèi)、學(xué)校、身份證號(hào)、個(gè)人照片等??荚囖k公室根據(jù)考生報(bào)考的種類(lèi),以及所在的考區(qū)來(lái)安排考場(chǎng),編排準(zhǔn)考證號(hào)碼,打印準(zhǔn)考證。考生參加考試后,登記每個(gè)考生每項(xiàng)的成績(jī),并計(jì)算出每個(gè)考生筆試和機(jī)試的成績(jī)是否都>=60分。對(duì)機(jī)試和筆試都>=60分的考生,按所在考區(qū)打印通過(guò)證書(shū),同一考區(qū)按準(zhǔn)考證號(hào)碼順序打印出通過(guò)證書(shū),分發(fā)給考生;計(jì)算機(jī)四級(jí)只要筆試成績(jī)>=60則通過(guò);打印成績(jī)表供考試辦公室留存、備查。
開(kāi)發(fā)計(jì)算機(jī)等級(jí)考試成績(jī)管理系統(tǒng),有計(jì)算機(jī)輔助實(shí)現(xiàn)上述過(guò)程,代替人工操作,節(jié)省人力、時(shí)間,提高工作效率。
2.1 處理對(duì)象(1)用戶帳號(hào)密碼管理 對(duì)考點(diǎn)代碼,考點(diǎn)名稱(chēng)進(jìn)行管理 用戶與密碼進(jìn)行管理(2)報(bào)名管理功能模塊
報(bào)各庫(kù)錄入(姓名不能不空,之間不能有空格)增加、刪除、修改、瀏覽(3)準(zhǔn)考證管理模塊
準(zhǔn)考證生成規(guī)則:xxx+yy+zz+kk 其中XXX為考點(diǎn)代碼;YY為語(yǔ)言代碼,XX為考場(chǎng)號(hào),KK為座位號(hào)(4)考務(wù)管理功能模塊
考生信息查詢(xún)、瀏覽 成績(jī)管理模塊
成績(jī)數(shù)據(jù)錄入、接收
成績(jī)合成(總成績(jī)=筆試成績(jī)*0.6+上機(jī)成績(jī)*0.4),按大于或等于60合格
2.2數(shù)據(jù)字典:
考生信息表(考生主鍵(主鍵),姓名,性別,出生年份,民族,身份證號(hào),聯(lián)系地址,聯(lián)系電話,備注)
準(zhǔn)考證表(準(zhǔn)考證號(hào)主鍵,準(zhǔn)考證號(hào))
成績(jī)表(成績(jī)表主鍵,筆試成績(jī),上機(jī)成績(jī),總成績(jī))
級(jí)別語(yǔ)言代碼表(級(jí)別語(yǔ)言代碼主鍵,級(jí)別語(yǔ)言代碼,級(jí)別,語(yǔ)言)考生考點(diǎn)信息表(考生考點(diǎn)主鍵,考點(diǎn)代碼,考點(diǎn)名稱(chēng),)用戶帳號(hào)管理(用戶帳號(hào)主鍵,用戶名,密碼)
信息操作表(考生主鍵(主鍵),準(zhǔn)考證號(hào)主鍵, 級(jí)別語(yǔ)言代碼主鍵,考生考點(diǎn)主鍵,用戶帳號(hào)主鍵)
3.E-R圖
4.關(guān)系模型
考生信息表(考生主鍵(主鍵),姓名,性別,出生年份,民族,身份證號(hào),聯(lián)系地址,聯(lián)系電話,備注)
準(zhǔn)考證表(準(zhǔn)考證號(hào)主鍵,準(zhǔn)考證號(hào))
成績(jī)表(成績(jī)表主鍵,筆試成績(jī),上機(jī)成績(jī),總成績(jī))
級(jí)別語(yǔ)言代碼表(級(jí)別語(yǔ)言代碼主鍵,級(jí)別語(yǔ)言代碼,級(jí)別,語(yǔ)言)
考生考點(diǎn)信息表(考生考點(diǎn)主鍵,考點(diǎn)代碼,考點(diǎn)名稱(chēng),)用戶帳號(hào)管理(用戶帳號(hào)主鍵,用戶名,密碼)
信息操作表(考生主鍵(主鍵),準(zhǔn)考證號(hào)主鍵, 級(jí)別語(yǔ)言代碼主鍵,考生考點(diǎn)主鍵,用戶帳號(hào)主鍵)
其模式定義:
見(jiàn)附件:模式定義。
5.物理設(shè)計(jì)
本數(shù)據(jù)庫(kù)共有5張表組成,其中t_manage表為管理表,而其他4張表:t_grade,t_information,t_level,t_regist都為基本表,當(dāng)要查詢(xún)所需要的信息時(shí),就用連接查詢(xún)將管理表和基本表連接在一起,從而看到想看到信息。
6.數(shù)據(jù)庫(kù)實(shí)施
create table t_grade(grade number primary key, write number, shangji number, totalgrade number);alter table t_grade add constraint write check(write<=40 and write>=0);alter table t_grade add constraint shangji check(shangji<=60 and
shangji>=0);alter table t_grade add constraint totalgrade check
(totalgrade=write+shangji);
insert into t_grade values(001,40,50,90);insert into t_grade values(002,30,50,80);insert into t_grade values(003,20,60,80);insert into t_grade values(004,25,50,75);insert into t_grade values(005,30,40,70);create table t_information(information number, sname varchar2(20)not null, gender varchar2(2)check(gender='n' or gender='v'), birth number, nation varchar2(20)not null, idnumber char(18), address varchar2(20)not null, phone number not null, note varchar2(20),primary key(information));alter table t_information add constraint birth check(birth<=20020101 and
birth>=19200101);
insert into t_information values
(006,'ling','n',19950302,'han','***014','shanxi','0101111',null);insert into t_information values
(007,'wang','n',19950607,'han','***014','shanxi','0101241',null);insert into t_information values
(008,'john','n',19950504,'german','***014','german','010234511' ,'forgien');insert into t_information values
(009,'liu','v',19930407,'han','***014','shanxi','010123511',nul l);insert into t_information values
(010,'yuan','n',19910408,'han','***014','shanxi','0101211',null);create table t_level(leve number primary key, codes number not null, language varchar2(15)not null);insert into t_level values(015,01,'chinese');insert into t_level values(016,01,'chinese');insert into t_level values(017,02,'chinese');insert into t_level values(018,01,'english');insert into t_level values(019,01,'chinese');
create table t_regist(regist number, place varchar2(14), registnumber varchar2(9), primary key(regist));
insert into t_regist values(020,10101,'14010101');insert into t_regist values(021,10201,'14010102');insert into t_regist values(022,11101,'14010103');insert into t_regist values(023,12101,'14010104');insert into t_regist values(024,15103,'14010105');create table t_user(use number, username varchar2(14)not null, code varchar2(20)not null, primary key(use));
insert into t_user values(025,'ling','asasn');insert into t_user values(026,'wang','asasn');insert into t_user values(027,'john','sdrhy');insert into t_user values(028,'liu','eryery');insert into t_user values(029,'yuan','hjlmyu');
create table t_manage(information number, grade number, leve number, use number, regist number, foreign key(grade)references t_grade(grade), foreign key(information)references t_information(information), foreign key(leve)references t_level(leve), foreign key(regist)references t_regist(regist), foreign key(use)references t_user(use));
insert into t_manage values(006,001,015,025,020);5
insert into t_manage values(007,002,016,026,021);insert into t_manage values(008,003,017,027,022);insert into t_manage values(009,004,018,028,023);insert into t_manage values(010,005,019,029,024);
7.系統(tǒng)調(diào)試
通過(guò)sql語(yǔ)句對(duì)其進(jìn)行調(diào)試,以測(cè)試其正確性,如圖1,2,3,4,5
圖 1 6
圖 2
圖 3 7
圖 4 用自然連接查詢(xún):
圖 5
8.心得體會(huì)
本次課程設(shè)計(jì)主要設(shè)計(jì)一個(gè)計(jì)算機(jī)管理系統(tǒng),我的大體思路就是將基本信息錄入到基本表當(dāng)中,并保證沒(méi)有重復(fù)屬性,然后設(shè)計(jì)一個(gè)管理表,讓其它基本表參照這個(gè)管理表,這個(gè)管理表當(dāng)中只有各表主鍵,需要查看信息時(shí),就將兩表連接。。
這次課設(shè)我覺(jué)得有兩個(gè)難點(diǎn),一個(gè)是表間的參照,另一個(gè)是約束條件的設(shè)置,尤其是約束條件一定要充分考慮到,還有當(dāng)有那種范圍值的約束時(shí)要在建表后要用alter修改,而不是在定義時(shí)直接約束。
最后一點(diǎn)是關(guān)于主鍵的問(wèn)題,主鍵最好別用學(xué)號(hào)什么的,最好應(yīng)該用連續(xù)的、無(wú)意義的數(shù)字,create sequence之后,每加一個(gè)元組就用一次nextval,這樣可以讓電腦自動(dòng)排號(hào)。