第一篇:酒店管理系统 (数据库课程设计)
数据库 酒店管理系统 课程设计(基于 SQL server 2000)
实现过程
1.1 通过查询分析器实现建立数据库、数据表
------------------------------创建数据库和数据表---(1)创建酒店管理系统数据库
CREATE DATABASE 酒店管理系统(2)创建客房信息表
CREATE TABLE 客房
(客房编号 CHAR(8)PRIMARY KEY,客房类型 CHAR(8)NOT NULL,价格 SMALLMONEY NOT NULL,床位数 INT NOT NULL,使用状态 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)创建客户信息表
CREATE TABLE 客户
(客户编号 CHAR(8)PRIMARY KEY, 客户名称 CHAR(10)NOT NULL,身份证号 CHAR(18)NOT NULL,联系地址 CHAR(25),联系电话 CHAR(10))INSERT INTO 客户 VALUES('1001','王一',12234,'江西','3245354')INSERT INTO 客户 VALUES('1002','张三',34234,'江西','2442442')INSERT INTO 客户 VALUES('1003','李四',56465,'江西','5654645')INSERT INTO 客户 VALUES('1004','王钱',65435,'江西','5676577')INSERT INTO 客户 VALUES('1005','孙志',11464,'江西','4234343')
(4)创建入住登记表
CREATE TABLE 入住登记
(客房编号 CHAR(8)FOREIGN KEY REFERENCES 客房(客房编号),客户编号 CHAR(8)FOREIGN KEY REFERENCES 客户(客户编号),预定日期 DATETIME,预定数量 INT, PRIMARY KEY(客房编号,客户编号))
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)--------创建查询视图---------1.2系统功能相应的查询视图:
(1)客户信息查询视图
CREATE VIEW 客户信息查询
AS SELECT * FROM 客户
(2)客房信息查询
CREATE VIEW 客房信息查询
AS SELECT
* FROM 客房
(3)入住信息查询
CREATE VIEW 入住登记信息查询 AS SELECT
* FROM 入住登记
(4)入住信息查询
CREATE VIEW 入住信息查询
AS SELECT入住登记.客房编号,客户名称,入住登记.客户编号,客房.客房类型,价格,使用状态
FROM 客房,客户,入住登记
WHERE 客房.客房编号=入住登记.客房编号 AND 入住登记.客户编号=客户.客户编号
---------------建立索引-----------------------1.3建立索引及数据入库
1.建立客房编号,价格,客户编号,客户名称的索引 创建客房表索引:
CREATE UNIQUE INDEX UKF ON 客房(客房编号,价格)
创建客户表索引:
CREATE UNIQUE INDEX UKH ON 客户(客户编号,客户名称)
创建入住表索引:
CREATE UNIQUE INDEX URZ ON 入住登记(客户编号,客房编号)2.数据入库
方法一 酒店管理系统包括客房信息表,客户信息表,入住登记信息表。采用Excel中录入数据,然后使用SQL Server 2000数据导入、导出功能直接将数据导入到相应的基本表。
方法二 在查询分析器中插入相关数据,用SQL语句插入。
----------创建存储过程----------------------1.4建立存储过程
1.4.1客房信息存储过程
插入客房信息存储过程:
CREATE PROCEDURE 插入客房信息(@KFB CHAR(8), @KFL CHAR(8), @JG SMALLMONEY, @CWS INT, @SYZT CHAR(8))AS INSERT INTO 客房 VALUES(@KFB,@KFL,@JG,@CWS,@SYZT)
修改客房信息存储过程:
CREATE PROCEDURE 修改客房信息(@KFB CHAR(8), @KFL CHAR(8), @JG SMALLMONEY, @CWS INT, @SYZT CHAR(8))AS UPDATE 客房
SET 客房类型=@KFL,价格=@JG,床位数=@CWS,使用状态=@SYZT WHERE 客房编号=@KFB 删除客房信息存储过程:
CREATE PROCEDURE 删除客房信息(@KFB CHAR(8))AS DELETE FROM 客房 WHERE 客房编号=@KFB
1.4.2客户信息存储过程
插入客户信息
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 客户名称=@KFM,身份证号=@SFZ,联系地址=@LXDZ,联系电话=@LXDH WHERE 客户编号=@KHB
删除客户信息
CREATE PROCEDURE 删除客户信息(@KHB CHAR(8))AS DELETE FROM 客户
WHERE 客户编号=@KHB
EXEC 删除客户信息 @KHB='10009'
3.4.3创建入住信息存储过程 插入入住信息
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 客房编号=@KFB,预定日期=@YDRQ ,预定数量=@YDSL WHERE 客户编号=@KHB
删除入住信息
CREATE PROCEDURE 删除入住信息(@KHB CHAR(8))AS DELETE
FROM 入住登记
WHERE 客户编号=@KHB
1.5查询存储过程的创建
客房编号查询
CREATE PROCEDURE 客房编号查询(@KFB CHAR(8), @KFL CHAR(8)OUTPUT, @JG SMALLMONEY OUTPUT, @CWS INT OUTPUT, @SYZT CHAR(8)OUTPUT)AS SELECT @KFL=客房类型,@JG=价格,@CWS=床位数,@SYZT=使用状态 FROM 客房
WHERE 客房编号=@KFB
客户编号查询
CREATE PROCEDURE 客户编号查询(@KHB CHAR(8), @KFM CHAR(10)OUTPUT , @SFZ CHAR(18)OUTPUT, @LXDZ CHAR(25)OUTPUT, @LXDH CHAR(10)OUTPUT)AS SELECT @KFM=客户名称,@SFZ=身份证号,@LXDZ=联系地址,@LXDH=联系电话 FROM 客户
WHERE 客户编号=@KHB
入住客户编号查询
CREATE PROCEDURE 入住客户编号查询(@KFB CHAR(8)OUTPUT, @KHB CHAR(8), @YDRQ DATETIME OUTPUT, @YDSL INT OUTPUT)AS SELECT @KFB=客房编号,@YDRQ=预定日期,@YDSL=预定数量 FROM 入住登记
WHERE 客户编号=@KHB
--------建立触发器--------------1.6、建立触发器保证数据的一致性
客房使用状态的控制
CREATE TRIGGER 控制触发器
ON 入住登记 FOR INSERT AS
UPDATE 客房
SET 使用状态='使用中' WHERE 客房编号=ANY(SELECT 客房编号 FROM INSERTED)
控制入住信息删除的触发器
CREATE TRIGGER 入住删除触发器
ON 入住登记 FOR DELETE AS BEGIN DELETE FROM 客户 WHERE 客户编号=ANY(SELECT 客户编号 FROM DELETED)
UPDATE 客房
SET 使用状态='未使用' WHERE 客房编号=ANY(SELECT 客房编号 FROM DELETED)END 客户信息删除的控制
CREATE TRIGGER 客户删除触发器
ON 客户
FOR DELETE AS BEGIN DELETE FROM 入住
WHERE 客户编号=ANY(SELECT 客户编号 FROM DELETED)
UPDATE 客房
SET 使用状态='未使用' WHERE 客房编号=ANY(SELECT 客房编号 FROM DELETED)END
客房删除触发器
CREATE TRIGGER 客房删除触发器
ON 客房
FOR DELETE AS
DELETE FROM 入住
WHERE 客户编号=ANY(SELECT 客户编号 FROM DELETED)
酒店管理系统数据库脚本
------------------------数据库初始化------set nocount on set dateformat mdy go
use master
go if exists(select * from sysdatabases where name='酒店管理系统')
/*删除在master中已存*/ /*在的名为酒店管理系统的数据库*/ drop database 酒店管理系统 go--------------------------酒店管理系统的建立-create database 酒店管理系统 on primary /*设定系统主文件*/(name='酒店管理系统_data', filename='d:酒店管理系统.mdf', size=10, maxsize=50, filegrowth=5)
log on
/*创建事务日志文件*/(name='酒店管理系统_log', filename='d:酒店管理系统.ldf', size=5, maxsize=25, filegrowth=5)go
---------(注:删除查询分析器中的以上代码后,运行以下代码)-----------------建立信息表----------use 酒店管理系统
if exists(select * from sysobjects where name='客户')drop table 客户 go print 'drop table 客户' print 'create table 客户' go /*客户信息表*/ CREATE TABLE 客户
/*创建客户信息表*/(客户编号 CHAR(8)PRIMARY KEY, 客户名称 CHAR(10)NOT NULL, 身份证号 CHAR(18)NOT NULL, 联系地址 CHAR(25), 联系电话 CHAR(10))go--------------------------插入客户数据-----------------------INSERT INTO 客户 VALUES('1001','王一',12234,'江西','3245354')INSERT INTO 客户 VALUES('1002','张三',34234,'江西','2442442')INSERT INTO 客户 VALUES('1003','李四',56465,'江西','5654645')INSERT INTO 客户 VALUES('1004','王钱',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 客房
/*创建客房信息表*/(客房编号 CHAR(8)PRIMARY KEY, 客房类型 CHAR(8)NOT NULL, 价格 SMALLMONEY NOT NULL, 床位数 INT NOT NULL, 使用状态 CHAR(8)NOT NULL)go-----------------------插入客房数据----------------------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 入住登记
/*创建入住登记信息表*/(客房编号 CHAR(8)FOREIGN KEY REFERENCES 客房(客房编号),客户编号 CHAR(8)FOREIGN KEY REFERENCES 客户(客户编号),预定日期 DATETIME,预定数量 INT, PRIMARY KEY(客房编号,客户编号))go
---------------插入入住登记信息数据----------------------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 客房(客房编号,价格)go CREATE UNIQUE INDEX UKH ON 客户(客户编号,客户名称)go CREATE UNIQUE INDEX URZ ON 入住登记(客户编号,客房编号)go
----建立触发器-------------------------建立控制触发器(保证在客房使用状态的一致性)------if exists(select * from sysobjects where name='控制触发器')drop trigger 控制触发器 GO CREATE TRIGGER 控制触发器
ON 入住登记 FOR INSERT AS
UPDATE 客房
SET 使用状态='使用中' WHERE 客房编号=ANY(SELECT 客房编号 FROM INSERTED)go
--------建立入住删除触发器(保证信息删除的一致性)----------if exists(select * from sysobjects where name='入住删除触发器')drop trigger 入住删除触发器 GO CREATE TRIGGER 入住删除触发器
ON 入住登记 FOR DELETE AS BEGIN DELETE FROM 客户
WHERE 客户编号=ANY(SELECT 客户编号 FROM DELETED)
UPDATE 客房
SET 使用状态='未使用' WHERE 客房编号=ANY(SELECT 客房编号 FROM DELETED)END go-------建立客房删除触发器(保证删除的一致性)---------if exists(select * from sysobjects where name='客房删除触发器')drop trigger 客房删除触发器 GO CREATE TRIGGER 客房删除触发器
ON 客房
FOR DELETE AS
DELETE FROM 入住
WHERE 客户编号=ANY(SELECT 客户编号 FROM DELETED)go---------创建查询视图----------------
CREATE VIEW 入住信息查询
AS SELECT 入住登记.客房编号,客户名称,入住登记.客户编号,客房.客房类型,价格,使用状态
FROM 客房,客户,入住登记
WHERE 客房.客房编号=入住登记.客房编号 AND 入住登记.客户编号=客户.客户编号 go
---------建立存储过程------------------------------客房信息插入存储过程--------------------------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
--------------------客房信息修改的存储过程---------------------CREATE PROCEDURE 修改客房信息(@KFB CHAR(8), @KFL CHAR(8), @JG SMALLMONEY, @CWS INT, @SYZT CHAR(8))AS UPDATE 客房
SET 客房类型=@KFL,价格=@JG,床位数=@CWS,使用状态=@SYZT WHERE 客房编号=@KFB go--------------------客房信息删除的存储过程---------------------CREATE PROCEDURE 删除客房信息(@KFB CHAR(8))AS DELETE FROM 客房 WHERE 客房编号=@KFB GO--------------------客户信息插入的存储过程---------------------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--------------------客户信息修改的存储过程---------------------CREATE PROCEDURE 修改客户信息(@KHB CHAR(8), @KFM CHAR(10), @SFZ CHAR(18), @LXDZ CHAR(25), @LXDH CHAR(10))AS UPDATE 客户
SET 客户名称=@KFM,身份证号=@SFZ,联系地址=@LXDZ,联系电话=@LXDH WHERE 客户编号=@KHB GO--------------------客户信息删除的存储过程---------------------CREATE PROCEDURE 删除客户信息(@KHB CHAR(8))AS DELETE FROM 客户
WHERE 客户编号=@KHB go--------------------入住信息插入的存储过程---------------------CREATE PROCEDURE 插入入住信息(@KFB CHAR(8), @KHB CHAR(8), @YDRQ DATETIME, @YDSL INT)AS INSERT INTO 入住登记 VALUES(@KFB,@KHB,@YDRQ,@YDSL)go--------------------入住信息修改的存储过程---------------------CREATE PROCEDURE 修改入住信息(@KFB CHAR(8), @KHB CHAR(8), @YDRQ DATETIME, @YDSL INT)AS UPDATE 入住登记
SET 客房编号=@KFB,预定日期=@YDRQ ,预定数量=@YDSL WHERE 客户编号=@KHB go--------------------入住信息删除的存储过程---------------------CREATE PROCEDURE 删除入住信息(@KHB CHAR(8))AS DELETE
FROM 入住登记
WHERE 客户编号=@KHB go--------------------客房编号查询的存储过程-----------------------if exists(select * from sysobjects where name='客房编号查询')drop procedure 客房编号查询 GO CREATE PROCEDURE 客房编号查询(@KFB CHAR(8))AS SELECT 客房类型,价格,床位数,使用状态 FROM 客房
WHERE 客房编号=@KFB go--------------------客户编号查询的存储过程-----------------------if exists(select * from sysobjects where name='客户编号查询')drop procedure 客户编号查询 GO CREATE PROCEDURE 客户编号查询(@KHB CHAR(8))AS SELECT 客户编号,客户名称,身份证号,联系地址,联系电话 FROM 客户
WHERE 客户编号=@KHB go--------------------入住信息查询的存储过程-----------------------if exists(select * from sysobjects where name='入住客户编号查询')drop procedure 入住客户编号查询 GO CREATE PROCEDURE 入住客户编号查询(@KHB CHAR(8))AS SELECT 客户编号,客房编号,预定日期,预定数量 FROM 入住登记
WHERE 客户编号=@KHB
第二篇:数据库课程设计 图书管理系统(精选)
课 程 设 计
软件工程与数据库 课程设计 任务书
学院名称:
数学与计算机学院
课程代码:_6014419_ 专
业:
年
级:
一、设计题目
图书管理系统
二、主要内容
一个简单的图书管理系统包括图书馆内书籍的信息、学校在校学生的信息以及学生的借阅信息。此系统功能分为面向学生和面向管理员两部分,其中学生可以进行借阅、续借、归还和查询书籍等操作,管理员可以完成书籍和学生的增加,删除和修改以及对学生,借阅、续借、归还的确认。如:
图书室有各种图书一万多册。
每种图书都有书名、书号(ISBN)、一名或多名作者(译者)、出版社、定价和内容简介。
借书证记录有借阅者的姓名、所在单位、职业等。
凭借书证借书,每次最多能借8本书。借书期限最长为30天。实现新进图书的数据录入。
实现对所有购进图书的分类查询和分类统计。能够按书名、作者等分类查询现有图书的数量。
记录借阅者的个人资料和所借图书的书名、书号数据等。
三、具体要求
1、完成系统的需求分析
通过需求分析确定系统需要处理的数据的需求,要求使用数据库的辅助设计工具(PowerDesigner等),建立业务处理模型。
课 程 设 计
2、完成系统概念结构设计 概念数据模型(CDM)用于完成数据库的设计,与人和数据库平台和具体数据存储结构和工具无关。首先选择局部应用画出分E-R图,最终形成系统的E-R图
3、完成系统逻辑结构设计
按照E-R图转换成关系模式的规则,将CDM转换成逻辑数据模型,并为每个关系模式设计主键、外键。分析关系模式中的依赖关系,对关系模式规范化处理
4、完成系统物理结构设计
为每个关系分配存储长度,建立数据库的索引和视图,定义关系中的主码和外码,写出关系创建和查询的SQL语句。
5、编码 选择你自己熟悉的开发工具完成一个DBS系统的编码工作。源代码格式规范,注释不少于三分之一
四、主要技术路线提示
1.仔细阅读设计指导书内容,认真掌握任务要求2.需求分析 3.概念结构设计 4.逻辑结构设计5.物理结构设计6.编码.2.后台推荐采用SQL server或Oracle;前台开发环境不限制。可采用ADO,ODBC,OLE DB或JDBC连接数据库,并调用系统存储过程、自定义存储过程、函数等。
五、进度安排
第1周: 数据库系统概念模型、数据模型设计,创建数据库以及相关对象; 第2周: 前台程序开发,撰写报告,接受检查。
六、完成后应上交的材料
1. 源程序一份(包含数据库)
2. 课程设计报告一份
七、推荐参考资料
1.王珊.数据库系统概论(第四版).高等教育出版社 2.闪四清.数据库系统原理与应用教程.清华大学出版社
课 程 设 计
3.周龙骧.数据库管理系统实现技术.中国地质大学出版社 4.张海藩.软件工程概论.清华大学出版社 5.陈明 编著.实用软件工程基础.清华大学出版社
6.成先海.数据库基础与应用-SQL SERVER2000.机械工业出版社出版
指导教师 签名日期 年 月 日 系 主 任 审核日期 年 月 日
第三篇:数据库课程设计学籍管理系统
学籍管理系统
本次数据库课程设计是以Access数据库作为后台以VB作为前台的应用型设计课程。
综合我们所学的两大课程创建应用型的数据库系统,大大的提高了我们学生的动手能力,作到了理论与实践相结合。一.题目说明:
学生学藉管理系统是典型的学藉管理系统(MIS),其开发主要包括后台数据库的建立和维护以及前端应用程序的开发两个方面。对于前者要求建立起数据一致性和完整性强、数据安全性好的库。而对于后者则要求应用程序功能完备,易使用等特点。
本系统主要完成对学生情况和学生成绩的管理,包括数据库中表的添加、删除等。系统还可以完成对各类信息的浏览、添加、删除、等功能。
系统的核心是数据库中各个表联系,每一个表的修改都将联动的影响其它的表,当完成对数据的操作时系统会自动地完成数据库的修改。查询功能也是系统的核心之一,在系统中即有单条件查询和多条件查询,也有精确查询和模糊查询,系统不仅有静态的条件查询,也有动态生成的条件查询,其目的都是为了方便用户使用。系统有完整的用户添加、删除和密码修改功能,并具备报表打印功能。关键字:窗体、数据库、vb6.0、access2000。
学生学籍管理系统被广泛应用于各类学校的学生学籍管理工作中,要求其具有实用性强、使用方便、效率高和安全可靠等特点。本管理系统正是围绕以上几个方面进行开发的,在开发过程中充分考虑到本系统的应用特点,并进行了大量的检验,证明其的确达到了设计的要求,是一个已具备了实际应用能力的软件。本文主要论述学生学籍管理系统的开发过程,在涉及到VB及Access中的部分知识以举例的方式进行讲解 二.总体设计:
我的总体设计如下:
(1).利用Access建立数据库,并在该数据库下创建五张表格,分别是学生表、课程表、选课表、学生选课表以及口令表。
(2)利用VB来建立界面并对它进行设计和修改,大体框架如下: FORM1 用于首界面
FORM2 用于登陆此系统的登录界面
FORM3 是主窗体,在这上面建立相应的菜单 如:文件——退出、添加用户(FORM4)数据信息——管理使用(FORM5)
基本操作——学生操作、选课操作、课程操作(FORM6、FORM7、FORM8)(3)对以上的界面进行设计以及对所要操作的部件进行编程。
三.常用控件的说明: 所有的Windows应用程序窗口或对话框,都是由诸如文本框、列表框、命令按扭、滚动条、命令菜单等组成的。VB通过控件工具箱提供了它们与用户进行交
互的可视化部件,即控件。程序开发人员只需要通过简单的操作,在窗体上安排所需要的控件,完成应用程序的用户界面设计即可。序号
名称
功能 Label标签
用于说明 Textbox文本框
用于文本输入或显示 3 Frame框架
用于组合控件 Commandbutton命令按扭
单击执行命令 5 Timer计时期
用于定时 Data数据控件
用于访问数据库
三.详细说明:
1.数据库的建立与设计:
数据库是有结构的数据集合,它与一般的数据文件不同,(其中的数据是无结构的)是一串文字或数字流。数据库中的数据可以是文字、图象、声音等。
Access数据库由六种对象组成,它们是表、查询、窗体、报表、宏和模块。
(1).表(Table)——表是数据库的基本对象,是创建其他5种对象的基础。表由记录组成,记录由字段组成,表用来存贮数据库的数据,故又称数据表。
(2).查询(Query)——查询可以按索引快速查找到需要的记录,按要求筛选记录并能连接若干个表的字段组成新表。
(3).窗体(Form)——窗体提供了一种方便的浏览、输入及更改数据的窗口。还可以创建子窗体显示相关联的表的内容。窗体也称表单。
(4).报表(Report)——报表的功能是将数据库中的数据分类汇总,然后打印出来,以便分析。
(5).宏(Macro)——宏相当于DOS中的批处理,用来自动执行一系列操作。Access列出了一些常用的操作供用户选择,使用起来十分方便。
(6).模块(Module)——模块的功能与宏类似,但它定义的操作比宏更精细和复杂,用户可以根据自己的需要编写程序。模块使用Visual Basic编程。
我们利用Access来建立数据库,我们的库中有五张表格,其分别是学生表、课程表、选课表、学生选课表以及口令表。
我们就以学生表为例做一个简单的说明:
我们使用设计器来创建表的,我的这张表有七个字段,每个字段的名称分别是:学号、班级、姓名、性别、出生年月、民族、地址、电话号码,每个字段有七个数据。我并对其字段的属性进行了重新的修改,以做到不浪费其空间。
我具体的实施步骤是:启动数据库管理器——建立数据库——建立数据表结构——输入记录。
最终产生了这样的一个数据库:(如下)
2.VB界面的建立设计以及程序的编写说明:
VB 是在Windows操作平台下,用于开发和创建具有图形用户界面的应用程序的强有力工具之一。VB为开发Windows应用程序不仅提供了全新的相对简单的方式,而且也引进了新的程序设计方法——面向对象的设计方法(00P)。从传统的面向过程的程序设计,转移到更先进的面向对象的程序设计,无论是对老的程序员,还是初学者,都是一个挑战。而学习VB,则是掌握这一新的程序设计方法的一条捷径。
(1).界面的设计和程序的编写:
设计一个像这样的友好的界面,我考虑到它的颜色的配制,界面的大小,界面所载的内容的多少等,在后台我用定时器给其限定时间让它在一定的时间后自动跳到下一个界面。
这个界面是系统的主界面,用户可以在通过系统登录后直接到我们的主界面上来进行相应的操作,我的主界面采用的是一张苏州市职业大学的图片,在这个图片的上面有三个菜单,分别是文件、数据信息和基本操作。在各自的下面还有与之相对应的子菜单,文件下有退出和添加用户,数据信息下有管理使用,基本操作下有学生操作、选课操作和课程操作。我利用FORMn.SHOW命令连接到相对应的界面上。
我们的界面有好几张我就对其中的一张进行详细的分析:
这是一张学生选课浏览表的界面,这也是对应我的主界面菜单中的数据信息下的管理使用子菜单的一张界面,在这张界面中包含了8个LABEL标签控件、7个 TEXTBOX文本框控件、6个COMMANDBUTTON命令按扭控件、1个FRAME框架控件和1个DATA部件。我利用DATA部件将界面与 ACCESS数据库相连接,具体的操作是利用DATABASENAME与数据库连接,在RECORDSOURCE中找到与之对应的表,再用 DATASOURCE、DATAFIELD与个文本框内容对应,从而实现界面与数据库的连接。下面是程序的编写过程:
显示前一个数据: COMMAND1:
Private Sub Command1_Click()If Data1.Recordset.RecordCount = 0 Then MsgBox “没有记录” 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 显示第一个数据: COMMAND2:
Private Sub Command2_Click()If Data1.Recordset.RecordCount = 0 Then MsgBox “没有记录” Else Data1.Recordset.MoveFirst End If End Sub 显示最后一个数据: COMMAND4:
Private Sub Command4_Click()If Data1.Recordset.RecordCount = 0 Then MsgBox “没有记录” Else Data1.Recordset.MoveLast End If End Sub 显示后一个数据: COMMAND3:
Private Sub Command3_Click()If Data1.Recordset.RecordCount = 0 Then MsgBox “没有记录” 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 添加一个数据: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 删除一个记录: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 “没有记录”, 32, “注意” Exit Sub Else str1 = MsgBox(“删除该记录吗?”, 17, “删除”)If str1 = 1 Then Data1.Recordset.Delete Data1.Refresh If Data1.Recordset.RecordCount = 0 Then MsgBox “记录数为零” Data1.Recordset.AddNew End If End If End If End If End Sub
四、在此过程中遇到的问题以及解决方法: 在开始编写程序的时候总是有一些出错,在查找有关书籍和向老师询问后得出了结果。在将界面与数据库相连接的时候,不知道用哪种方法,在老师的帮助下我学会了两种方法:1.DATA、2.ADODC。我最终使用DATA这种方法。
五、心得体会:
在这次的设计过程中,我学到的不仅是知识,我还认识到许多事情。这次设计使我的编程水平提高了一大步,使我充分的认识到合作的可贵。由于这次设计涉及到数据库,我的学到了不少编程工具与数据库连接的知识,对数据库的操作有了进一步的了解。这次设计对我的综合能力是一次很好的锻炼,但是我必须承认自己的能力和知识还很肤浅。所以今后我的学习道路还是很漫长的。最后,在这里我要衷心的感谢我们的指导老师牛丽、程渊,谢谢她的悉心指导和热心帮助。由于我水平有限,加之时间短暂,故学籍管理系统中还有许多不足之处,请老师批评指正,我会在以后的制作中不断改进,不断完善。
第四篇:酒店管理系统课程设计
软件开发环境与工具
课程设计
实验题目:酒店管理系统 指导老师:南丽丽
专业班级:计算机科学与技术系1105班 姓 名:陈阿艳(2011100516)
王媛(2011100529)
闫丽颖(2011100503)樊建红(2011100515)2013年 12月13日
目录
第一章…………………………………前言
1.1…………………………………………………选题背景
1.2…………………………………………………课题研究的目的和意义
1.3…………………………………………………本文的研究内容
1.4…………………………………………………国内外现状
第二章…………………………………开发环境及工具介绍 2.1………………………………………………..Visual Basic.NET简介
2.2…………………………………………............SQL Server2005 第三章…………………………………系统分析
3.1…………………………………………………..可行性分析
3.2…………………………………………………...需求分析
3.2.1…………………….酒店管理部分
3.2.1.1……………..客户管理
第四章…………………………………数据库设计
4.1…………………………………………………..数据库设计截图 4.2………………………………………………….权限设置 4.3………………………………………………….客户信息表 4.4………………………………………………….房态表 4.5………………………………………………….结算表
第五章…………………………………系统实现
5.1…………………………………………………登陆
5.2…………………………………………………客户入住
5.3…………………………………………………客户结算退房
5.4…………………………………………………以“老板”为例,展示系统功能
第六章…………………………………主要代码 第七章…………………………………总结
第1章 前 言
1.1 选题背景
酒店业是一个前景广阔而又竞争激烈的行业。改革开放以来,我国的酒店业迅速发展,已经成为一个具有相当规模的产业。由于我国的旅游业迅速发展,通过调查,我国在2020年将成为世界上第四大旅游国家;同时我国加入世界贸易组织,酒店业将完全开放,这个时候,我国的酒店业将面临着前所未有的机遇和挑战。但是,现在甚至还有一些酒店还停留在由人工操作和管理阶段,这样已经无法适应当前的发展趋势。因此,要想使酒店的工作质量和效率提高,采用先进的计算机网络 通信技术改变酒店业务模式,实现酒店业务管理的自动化已经成为一种必然。
酒店管理系统采用B/S结构。按照按国家星级宾馆标准化业务程序流式设计,会采用主流开发工具来开发,搭建比较稳定可靠安全的服务端来辅佐客户管理,并且还采用数据库mysql,会通过测试用例来达到测试效果,技术支持会采用轻量级框架struts和hibernate持久化来完成,服务器采用tomcat,通过powerdesigner来设计数据模型为最初业务流程的概念设计阶段和详细设计阶段打好基础[1]。
1.2 课题研究的目的和意义
对酒店整个来说,对酒店经营状况起决定作用的是酒店的服务管理水平。如何利用先进的管理手段来提高酒店的管理水平成为酒店业务发展的当务之急。面对信息时代的机遇和挑战,利用科技手段提高酒店的管理无疑是一条行之有效的途径。虽然计算机管理并不是酒店管理走向成功的关键元素,但它可以最大限度地发挥准确、快捷、高效等作用,对酒店的业务管理提供强有力的支持。因此,采用全新的计算机网络和酒店业务管理系统,已成为提高酒店的管理效率,使作业人员与管理系统之间灵活互动,实现流畅的工作流衔接,帮助酒店有效地进行 3 业务管理,释放最大价值。酒店业务管理系统在达到在节省人力资源成本的同时,可以提高业务效率,并能够及时、准确、迅速地满足顾客服务的需求[2]。
1.3 本文的研究内容
课程设计选题《酒店管理系统》主要研究了:酒店业务的管理(划分为,登陆界面部分,查询界面部分,入住界面部分,退房界面部分)。
1.4 国内外现状
随着我国经济体制改革的不断深化和我国经济的快速发展,我国人民的收入不断提高,消费观念也有提高,对服务质量的要求也有很大的提高。各地把旅游业当作本 地经济发展的重要支柱之一。酒店作为人们食宿、娱乐、休闲的场所而得到了快速的发展。社会上也成立了各种类型,不同规模的酒店服务企业。如何为客户提供更 加准确及时的服务,成为各个酒店竞争关键。所以酒店业务信息化建设就成为了客户衡量酒店提供商服务标准的一个准则,信息系统成为了基础。
随着Internet技术的进一步发展和普及,不能很好的适应世界经济发展的形式和我国国民经济建设的需要,市场现有的产品化的酒店业务软件系统在不断发 展中的酒店的需求。基于WEB的酒店管理系统的总体设计目标能够建立完善、高效、可靠的酒店业务信息系统,为酒店提供良好的信息环境[3]。
第2章 开发环境及工具介绍
2.1Visual Basic.NET简介
Visual Basic.NET通常缩写为VB.NET,在某些特定情况下也直接简称VB,比如在.NET这个大话题下或者与其他.NET语言一起讨论的时候。
Visual Basic.NET属Basic系语言,其语法特点是以极具亲和力的英文单词为基础标识,以及与自然语言极其相近的逻辑表达,有时候你会觉得写VB.NET代码就好像在写英文句子一样,从这个角度来说,VB.NET似乎是最高级的一门编程语言,当然在Basic系语言中VB.NET也确实是迄今为止最强大的一门编程语言。
Visual Basic.NET的应用范围包括windows桌面、web以及当下突然觉醒的正在奋力追赶的第三大移动平台Windows phone。
2.2 SQL Server2005 SQL Server 是一个关系数据库管理系统。它最初是由Microsoft、Sybase 和Ashton-Tate三家公司共同开发的,于1988 年推出了第一个OS/2版本。在Windows NT 推出后,Microsoft与Sybase 在SQL Server 的开发上就分道扬镳了,Microsoft 将SQL Server移植到Windows NT系统上,专注于开发推广SQL Server 的Windows NT 版本。Sybase 则较专注于SQL Server在UNⅨ操作系统上的应用。
Microsoft SQL Server 2005 是一个全面的数据库平台,使用集成的商业智能(BI)工具提供了企业级的数据管理。Microsoft SQL Server 2005数据库引擎为关系型数据和结构化数据提供了更安全可靠的存储功能,使您可以构建和管理用于业务的高可用和高性能的数据应用程序。
第3章
系统分析
3.1 可行性分析
随着旅游业的发展,酒店、餐饮娱乐行业日趋发达,引入全方位的电脑服务和电脑管理日益流行。同时,酒店和餐厅娱乐业引入电脑服务和管理也取得了优良的经济 效益和社会效益。为此,国家建设部已于最近作出明确规定:凡星级酒店在项目审批时,其设计方案必须包括电脑管理系统,否则不予立项。可见,酒店管理电脑化 势在必行。酒店管理系统将先进的电脑技术与现代酒店服务管理完美地结合起来,实现了住宿、餐饮、娱乐全新概念的服务和管理方式。
一个成熟的酒店管理系统不仅仅是记录酒店客人的信息,提供查询,报表打印等一系列简单的工作,它能让工作人员从烦琐的手工操作中解脱,并且酒店管理系统本 身就代表着一种管理方法。随着它的深入,将带动企业的运做,为管理和决策提供支持。为了达到这个要求,它必须依靠高起点的硬件环境和软件开发工具来保证系 统的稳定和正常运行。酒店电脑系统要求24小时连续运行,数据量大,可靠性要求高,因此整个电脑系统供电采用专线方式,加配UPS(不间断供电系统),并合理接地,以便保障整套系统的正常运行[7]。
3.2 需求分析
系统需对用户登录进行管理。使用各功能模块时,系统应验证用户身份的有效性,否则要求用户登录。另外,允许用户对自己的密码进行修改。
系统应提供客房的分类管理功能,可分类制订客房面积、价格、是否配备空调等客房类型,对不同标准的客房进行有效管理。系统可实现对客房信息的添加、删除以及修改。
在进行入住/退房管理时,系统可以根据客房当前的状态自动提示可用服务(入住/退房)。如果客房没有客人入住,则该客房的可用服务为“入住”;否则,可用服务为“退房”。
系统的客户端在Windows平台下运行,服务器端可在Windows平台或UNIX平台下运行。系统还需要有较好的安全性和可扩展性[8]。
需求分析是从客户的需求中提取出软件系统能够帮助用户解决的业务问题,通过对用户业务问题的分析,规划出系统的功能模块,即定义用例。这个步骤是对理解需求的升华,直接关系到该系统的质量。
整个系统可以分为2大部分。酒店网站部分(客户服务网站)和酒店管理部分(管理员部分)。本系统只做了有关酒店管理的一部分。3.2.1 酒店管理部分
1.客房管理: 预订客房管理、客房查询、退房管理。
前台服务员的主要职能是负责订房和退房,以及查询入住的客户信息。所有该角色只可以使用部分功能,包括预定管理、客户信息查询,入住管理,退房管理功能。
第四章 数据库设计
4.1 数据库设计截图
4.2权限设置
4.3客户信息表
4.4房态表
4.5结算表
第5章 系统实现
5.1登陆
分别用三种身份登陆,所得到的权限也就不同
老板经理员工
5.2客户入住(通过添加客户信息,自动计算应付房费)
5.3客户结算退房
5.4以“老板”为例,展示系统功能
(1)查询房态
住着人的房间有:
通过房间号查某间房的房态
(2)职工管理
添加职工
设置权限
第登陆
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(“欢迎使用假日酒店管理系统”, MsgBoxStyle.Information + MsgBoxStyle.OkOnly)
Main_Form.Show()
Me.Close()
Else
If s =-1 Then
MsgBox(“用户名错误!”, MsgBoxStyle.Information + MsgBoxStyle.OkOnly)
Else
MsgBox(“密码错误!”, 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(”Parid“)= ”0“ Then
Me.TreeV.Nodes.Add(myNode)
Else
If Me.TreeV.Nodes.Find(dr.Item(”Parid“), True).Length > 0 Then
Me.TreeV.Nodes.Find(dr.Item(”Parid“), 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 注Á¡é销¨²ToolStripMenuItem.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 = ”时间“ & 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()'为性别和房间类型进行添加
Cbox_sex.Items.Add(”男“)
Cbox_sex.Items.Add(”女“)
Cbox_type.Items.Add(”单人间“)
Cbox_type.Items.Add(”双人间“)
End Sub End Class 结算
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(”结算时出错误!“)
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 = ”经理“ 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(”你没有权限!“)
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(”你没有权限!“)
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
查询
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<>'权限T'and MenuName<>'权限管理'“
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章 总 结
经过这段时间的精心设计,系统的基本功能已经实现,并能实践于一些业务管理过程中,但酒店业务管理系统是一个庞大的工程,要使网络交互功能的实现,脚本的设计,网页的构架,网页的美工,文字的编辑,非一朝一夕可尽善尽美的,这需要一个长期的摸索与完善过程,同时还要在实践中发现与操作者使用要求不相符合的 地方还要修改。子系统功能虽已基本实现,但仍有诸多地方需要修改。随着酒店业务的扩展,服务的增加,酒店业务管理系统也逐渐发展、完善。如果没有一套可靠的酒店业务管理系统,但凭手工操作,不仅效率低下,而且会极大地形象到酒店的服务质量。要在酒店服务中选择好适合自己酒店实际情况的业务管理系统不仅 要考虑该系统在酒店的实用性,还要考虑酒店对该系统所能够承担费用的能力,以及这个系统对操作员来说的操作难易程度。通过本次课程设计中,我们掌握了VB.NET编程技能,SQL以及JDBC连接数据库和动态页面的用法。比较全面的巩固了下面向对象的编程思想。在本次课程设计中,我们懂得了谨慎和团结的重要性,明确分工也使我们提高了实验的效率,这对我们以后的学习工作都有很大的帮助。
第五篇:数据库课程设计 计算机教务管理系统
中北大学
数据库课程设计
说 明 书
学 院、系: 专
业: 学 生 姓 名: 设 计 题 目:
李翰超
软件学院 软件工程
学 号: 1221010619
计算机等级考试教务管理系统
起 迄 日 期: 2014年5月26日-2014年6月20日 指 导 教 师:
2012 年 6月 21 日.引言
随着全国计算机等级考试的全面推广,我市学生每年参加两次全国计算机等级考试,考试管理工作量相当大。但是靠人工的方式管理等级考试相关的信息,这种管理方式存在着许多缺点,如:工作效率低、统计容易出错,另外时间一长,将产生大量的文件和数据,这对于查找、更新和维护都带来了不少的困难。所以开发一个计算机等级考试成绩管理系统是非常必要的。2.需求分析
计算机等级考试分为若干种类:如:计算机一级VB、C语言;计算机二级VB、C语言、C++;计算机三级数据库、网络技术;计算机四级数据库工程师、网络工程师。对于每个种类,考试分为笔试和机试.计算机等级考试工作过程如下:每个考生在报名时,登记姓名、性别、报考种类、学校、身份证号、个人照片等。考试办公室根据考生报考的种类,以及所在的考区来安排考场,编排准考证号码,打印准考证。考生参加考试后,登记每个考生每项的成绩,并计算出每个考生笔试和机试的成绩是否都>=60分。对机试和笔试都>=60分的考生,按所在考区打印通过证书,同一考区按准考证号码顺序打印出通过证书,分发给考生;计算机四级只要笔试成绩>=60则通过;打印成绩表供考试办公室留存、备查。
开发计算机等级考试成绩管理系统,有计算机辅助实现上述过程,代替人工操作,节省人力、时间,提高工作效率。
2.1 处理对象(1)用户帐号密码管理 对考点代码,考点名称进行管理 用户与密码进行管理(2)报名管理功能模块
报各库录入(姓名不能不空,之间不能有空格)增加、删除、修改、浏览(3)准考证管理模块
准考证生成规则:xxx+yy+zz+kk 其中XXX为考点代码;YY为语言代码,XX为考场号,KK为座位号(4)考务管理功能模块
考生信息查询、浏览 成绩管理模块
成绩数据录入、接收
成绩合成(总成绩=笔试成绩*0.6+上机成绩*0.4),按大于或等于60合格
2.2数据字典:
考生信息表(考生主键(主键),姓名,性别,出生年份,民族,身份证号,联系地址,联系电话,备注)
准考证表(准考证号主键,准考证号)
成绩表(成绩表主键,笔试成绩,上机成绩,总成绩)
级别语言代码表(级别语言代码主键,级别语言代码,级别,语言)考生考点信息表(考生考点主键,考点代码,考点名称,)用户帐号管理(用户帐号主键,用户名,密码)
信息操作表(考生主键(主键),准考证号主键, 级别语言代码主键,考生考点主键,用户帐号主键)
3.E-R图
4.关系模型
考生信息表(考生主键(主键),姓名,性别,出生年份,民族,身份证号,联系地址,联系电话,备注)
准考证表(准考证号主键,准考证号)
成绩表(成绩表主键,笔试成绩,上机成绩,总成绩)
级别语言代码表(级别语言代码主键,级别语言代码,级别,语言)
考生考点信息表(考生考点主键,考点代码,考点名称,)用户帐号管理(用户帐号主键,用户名,密码)
信息操作表(考生主键(主键),准考证号主键, 级别语言代码主键,考生考点主键,用户帐号主键)
其模式定义:
见附件:模式定义。
5.物理设计
本数据库共有5张表组成,其中t_manage表为管理表,而其他4张表:t_grade,t_information,t_level,t_regist都为基本表,当要查询所需要的信息时,就用连接查询将管理表和基本表连接在一起,从而看到想看到信息。
6.数据库实施
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.系统调试
通过sql语句对其进行调试,以测试其正确性,如图1,2,3,4,5
图 1 6
图 2
图 3 7
图 4 用自然连接查询:
图 5
8.心得体会
本次课程设计主要设计一个计算机管理系统,我的大体思路就是将基本信息录入到基本表当中,并保证没有重复属性,然后设计一个管理表,让其它基本表参照这个管理表,这个管理表当中只有各表主键,需要查看信息时,就将两表连接。。
这次课设我觉得有两个难点,一个是表间的参照,另一个是约束条件的设置,尤其是约束条件一定要充分考虑到,还有当有那种范围值的约束时要在建表后要用alter修改,而不是在定义时直接约束。
最后一点是关于主键的问题,主键最好别用学号什么的,最好应该用连续的、无意义的数字,create sequence之后,每加一个元组就用一次nextval,这样可以让电脑自动排号。