1、logo课 程 设 计设计题目 健身中心会员管理系统学生姓名 学 号 专业班级 指导老师 信息工程学 院 计算机系XX年X月X日目录摘 要1第一章 绪 论21.1课题介绍21.2设计目标31.3 设计内容3第二章 需求分析42.1系统需求分析42.2数据库需求分析52.2.1数据流图52.2.2数据字典6第三章 数据分析和建模63.1概念模型63.2 E-R图向关系模型转换7第四章 数据库建立84.1数据库逻辑结构设计84.2数据库物理结构设计134.3系统功效结构24第五章 结 论24参考资料25致 谢26摘 要伴随信息技术在管理上越来越深入而广泛应用,管理信息系统实施在技术上已逐步成熟。管
2、理信息系统是一个不停发展新型学科,任何一个单位要生存要发展,要高效率地把内部活动有机地组织起来,就必需建立和本身特点相适应管理信息系统。本系统采取SQL Server 数据库进行开发。本文首先对健身中心VIP管理系统设计进行了具体需求分析;然后给出了健身中心VIP管理系统设计方案及系统具体实现,实现了健身中心VIP管理系统构建,关键包含系统会员信息添加,会员信息查询,会员信息修改,会员注销时删除会员信息。最终,经过测试和分析,说明该系统运行稳定、可靠,含有一定使用价值。第一章 绪 论1.1课题介绍信息时代已经来临,信息处理利器计算机应用于各行各业日常管理,为各行各业现代化带来了从未有过动力和机
3、遇,为各行各业飞速发展提供了无限潜力。采取计算机管理信息系统已成为现代管理科学化和现代化关键标志,给多种行业带来了显著经济效益和社会效益。在此背景下,本文叙述了健身中心VIP管理系统设计实现。经过对多种数据库管理系统模型分析,结合现代大家精神物质实际需求,和对健身消费需求,本文说明了健身中心VIP管理系统开发过程及多种技术细节。本系统是适应时代发展需要,提升管理效率而开发设计。 健身中心VIP管理系统关键任务,经过实现会员信息计算机管理,以提升工作效率。实现计算机管理最好技术就是数据库技术。我们能够利用数据库将全部会员信息情况存入计算机,再配置上功效丰富用户接口,以满足用户需求。一个会员信息管
4、理系统应达成目标是提供立即、广泛信息服务,加紧信息检索效率,实况灵活查询,减轻管理人员制作报表和统计分析负担,且系统规模不太大但又要确保支持日常工作要求,方便系统应易于扩充,方便以后统一联网和管理,提升管理水平。 考虑到系统管理员对会员信息管理事务起着直接作用,所以我们讨论认为系统对系统管理员来进行管理是很有必需,所以在课程设计中加入了管理员登陆这一功效,只有管理员输入唯一工作证号和正确密码以后才能进行正常管理工作,这么也方便了健身中心对管理员考勤和统计管理员工作成绩。会员信息是以管理员管理为基础,其中包含会员信息录入,添加,注销,删除等操作。1.2设计目标在当今社会,计算机占据了很关键位置,
5、这些大部分全部是经过使用软件而提升生产、管理效率来表现。本文研究健身中心VIP管理系统恰好就是这么性质一个软件。 计算机关键是借助软件用来存放、更新数据,并有统计帐目标功效。严格说,这并不是智能化,不过,这么处理模式比已往人工处理好处显然还是很显著,全部数据全部由数据库管理,能够随时动态提取、存放数据,并能够将修改后数据覆盖掉原有数据;使用管理系统软件,即使企业需要投入一定资金,但同时却能够使处理速度成倍、成十倍增加,使在固有时间内能让尽可能多会员办理完手续,增加了销售收入,而且能够降低职员数量,是企业愈加精简;因为计算机是一个高精度机器,所以使用计算机软件辅助后,犯错几率也就变得很低了。1.
6、3 设计内容1需求分析需求分析任务是正确了解并分析健身中心VIP管理系统需要和要求,搞清健身中心VIP管理系统要达成目标和实现功效,得到数据字典和数据流图。2概念结构设计将需求分析得到用户需求抽象为信息结构即概念模型(E-R图)。先设计E-R图,然后集成得到E-R图,最终经过消除无须要冗余,设计基础E-R图。 3数据分析和建模逻辑设计任务就是把概念设计阶段设计好基础E-R图转换为和选择DBMS产品所支持数据模型相符合逻辑结构。首先根据E-R图向数据模型转换规则,将概念结构转换为DBMS所支持数据模型;然后对关系模式进行优化。4数据库实施(1)表建立 需要明确数据库需要建立多少表,和每个表中所要
7、包含内容。在建立表过程中。要对每个表进行字段属性设置。(2)表之间关系设置 为数据库设置了不一样表以后必需告诉DBMS怎样将这些信息合并在一起,所以要定义表之间关系。(3)完成相关查询 关键包含已录入会员基础信息:查看信息,添加信息,修改信息和删除信息等功效。第二章 需求分析2.1系统需求分析系统分析是开发管理信息系统关键性阶段,是一个从不停认识和逐步细化过程,是下一阶段工作基础,是为下一阶段进行物理方案设计、处理“怎么做”提供依据,基关键性关键表现在“了解需求”和“表示需求”两方面。经过对现行系统具体调研,关键是从系统角度了解用户需要,确定新系统综合要求,并提出这些需求实现条件和需求应达成标
8、准,也就是确定新系统要做什么,做到什么程度。经过调查,要求系统需要有以下功效:1、因为该系统使用对象多,要求有很好权限管理; 2、原始数据修改简单方便,支持多条件修改3、方便数据查询,支持多条件查询;4、在对应权限下,删除数据方便简单,数据稳定性好;5、数据计算自动完成,尽可能降低人工干预2.2数据库需求分析2.2.1数据流图数据流图图2.1所表示:会员基础信息系统管理员会员卡 图2.1 数据流图2.2.2数据字典:数据字典是以数据库中数据基础单元为单位,按一定次序排列,对其内容作具体说明数据集。针对健身中心会员管理系统得到过程和数据步骤分析,设计得到以下数据项和数据结构:会员,包含数据项关键
9、有:姓名,性别,年纪,健身项目,联络方法会员卡,包含数据项关键有:卡号,姓名,卡类型,缴费时间,到期时间管理员,包含数据项关键有:账号,密码,性别,年纪第三章 数据分析和建模3.1概念模型在本系统中,关键功效包含:1、会员信息录入、修改、查询和删除。2、管理员管理健身中心VIP系统。依据所学数据库基础知识和以上对此次课程设计系统分析,最终画出系统实体关系图(E-R图)图3.1所表示。会员办理会员卡年纪卡类型卡号性别联络电话到期时间健身项目缴费时间性别管理员账号年纪管理管理理1nnnnn姓名姓名密码图3.1 E-R图3.2 E-R图向关系模型转换将图3.1概念模型转换为下列关系模型:会员(姓名,
10、性别,年纪,健身项目,联络方法)会员卡(卡号,姓名,卡类型,缴费时间,到期时间)管理员(账号,密码,性别,年纪)第四章 数据库建立4.1数据库逻辑结构设计1.创建JSGL数据库,代码以下:CREATE DATABASE JSGLON(NAME=JSGL_dat,FILENAME=D:JSGL_dat.mdf,SIZE=5,MAXSIZE=10,FILEGROWTH=10%)LOG ON(NAME=XSGL,FILENAME=D:JSGL.ldf,SIZE=5,MAXSIZE=10,FILEGROWTH=15%)图4.1 JSGL数据库2.建立数据表:(1)会员表建立,代码以下:USE JSGL
11、GOCREATE TABLE Huiy(姓名 char(30) NOT NULL PRIMARY KEY, 性别 char(30) NOT NULL DEFAULT 男, 年纪 decimal CHECK(年纪0 and年纪0 and 年纪150) )图4.6 管理员表将管理员表插入数据,代码以下:USE JSGLGOinsert into Gly(账号,密码, 性别,年纪)values(无痕天空,AH883721,男,32)insert into Gly(账号,密码, 性别,年纪)values(龙驹断剑,ZDK12345,男,28)insert into Gly(账号,密码, 性别,年纪)v
12、alues(你不露痕迹,XP154321,男,28)图4.7 插入数据后管理员表4.2数据库物理结构设计1.建立索引:为了提升查询和更新速度、确保数据一致性,本课程设计建立以下索引:对于HuiY表,按姓名建立主键索引(primary key约束)索引组织方法为聚集索引。对于Kab表,按卡号建立主键索引(primary key约束)索引组织方法为唯一聚集索引。代码以下:USE JSGLGOCREATE CLUSTERED INDEX IX_nameON HuiY(姓名)WITH FILLFACTOR=20USE JSGLGOCREATE UNIQUE CLUSTERED INDEX IX_num
13、berON Kab(卡号)WITH FILLFACTOR=40删除卡表中索引IX_number:USE JSGLGODROP INDEX Kab. IX_number2.建立视图:为了愈加具体查询会员信息特建立以下会员信息视图并使用select语句进行查询,代码以下:use JSGLGOcreate view 会员信息视图asselect Huiy.姓名,Huiy.性别,Huiy.联络方法,Kab.卡号,Kab.卡类型,Kab.缴费时间,Kab.到期时间from Huiy,Kabwhere Huiy.姓名=Kab.姓名select *from 会员信息视图图4.8 会员信息视图现只需查询季卡会
14、员信息,特将会员信息视图修改以下:use JSGLGOALTER view 会员信息视图asselect Huiy.姓名,Huiy.性别,Huiy.联络方法,Kab.卡号,Kab.卡类型,Kab.缴费时间,Kab.到期时间from Huiy,Kabwhere Huiy.姓名=Kab.姓名ADD Kab.卡类型=季卡select *from 会员信息视图图4.9 修改后视图3.建立游标:用SQL语句对表进行操作时,得到结果通常是一组统计,不过有时需要单独对其中某一条统计进行处理,能够经过建立游标实现对其中一行或几行进行单独操作。这里经过卡类型来集中处里Kab表中会员信息。(1)对年卡会员建立名为
15、Kab_cur1游标,代码以下:USE JSGLDECLARE Kab_cur1 CURSORGLOBALSCROLLFORSELECT *FROM Kab WHERE 卡类型=年卡FOR UPDATE OF 卡号,姓名,卡类型,缴费时间,到期时间GOOPEN Kab_cur1FETCH FIRST FROM Kab_cur1 FETCH NEXT FROM Kab_cur1图4.10 Kab_cur1(2)对季卡会员建立名为Kab_cur2游标,代码以下:USE JSG DECLARE Kab_cur2 CURSORGLOBALSCROLLFORSELECT *FROM Kab WHERE
16、卡类型=季卡FOR UPDATE OF 卡号,姓名,卡类型,缴费时间,到期时间GOOPEN Kab_cur2FETCH FIRST FROM Kab_cur2FETCH NEXT FROM Kab_cur2图4.11 Kab_cur2(3)对月卡会员建立名为Kab_cur3游标,代码以下:DECLARE Kab_cur3 CURSORGLOBALSCROLLFORSELECT *FROM Kab WHERE 卡类型=月卡FOR UPDATE OF 卡号,姓名,卡类型,缴费时间,到期时间GOOPEN Kab_cur3FETCH FIRST FROM Kab_cur3 FETCH NEXT FRO
17、M Kab_cur3图4.12 Kab_cur34.存放过程建立创建名为select_Huiy存放过程,该过程可查询全部会员信息,代码以下:USE JSGLGOIF EXISTS(EXISTS name FROM sysobjects WHERE name=select_HuiyAND type=P)DROP PROCEDURE select_HuiyGOCREATE PROCEDURE select_HuiyASSELECT * FROM HuiyORDER BY Huiy.年纪GOEXEC select_HuiyGO图4.13 select_Huiy当需要改为能检索街舞会员信息时,用ALT
18、ER PROCEDURE 重新定义该存放过程代码以下:USE JSGLGOALTER PROCEDURE select_HuiyWITH ENCRYPTIONASSELECT * FROM HuiyWHERE 健身项目=街舞ORDER BY Huiy.年纪GOEXEC select_HuiyGO图4.14 select 街舞会员将select_Huiy存放过程名改为Huiy_information,代码以下:USE JSGLGOsp_rename select_Huiy,Huiy_information图4.15 Huiy_information删除存放过程Huiy_information,代
19、码以下:USE JSGLGODROP PROCEDURE Huiy_information5.触发器建立此触发器是建立在Kab表上,进行修改操作 for insert 。在有会员车时间和系统时间进行比较。假如系统时间大于发车时间即列车已开走则不许可退票代码以下:USE JSGLGOif exists (select name from sysobjectswhere name=Huiy_deleteand type=tr)drop trigger Huiy_deletegocreate trigger Huiy_delete on Kabinstead of deleteasdelete fr
20、om Kabwhere 到期时间 IN(select 到期时间 from deleted)godelete Kab where 到期时间=-12-12select *from Kab图4.16 Huiy_delete触发器4.3系统功效结构依据需求分析和数据库设计,构画出健身中心会员管理系统功效结构图,以下所表示:会员档案添加会员档案修改会员档案删除卡信息添加卡信息修改卡信息删除卡信息浏览会员缴费浏览会员缴费查询添加用户重新登录更改密码系统管理会员缴费管理会员卡管理会员档案管理会员管理系统图4.17 系统功效结构图第五章 结 论经过这次课程设计,我对数据库基础知识有了深入了解:存放过程设计表现
21、了程序和数据库链接及具体程序怎样将操作反应到数据库;视图是从一个或多个基础表(或视图)导出表,其数据随基表中数据改变而改变,经过它能够看到自己感爱好数据;对于触发器,我了解了建立语法要求及所代表意思,和在维护数据库数据一致性方面关键作用。在数据库建立过程中,我对数据库优化、完整性、一致性等有了更深认识,熟悉了数据库建立通常方法和过程。但因为能力有限,此课程设计还有很多不足:系统功效还不够完善,权限设置还不完整,数据库设计也比较简单。参考资料1郑阿奇,刘启芬,顾韵华.SQL Server应用教程.人民邮电出版社 2刘亚姝,李金莱.ASP网络编程技术和实践M.清华大学出版社 3明日科技等编著. A
22、SP程序开发范例宝典(第二版)M.人民邮电出版社4李春葆,曾慧.SQL Server 应用系统开发教程.清华大学出版社 5李晓黎.ASP+SQL Server网络应用系统开发和实例.人民邮电出版社6闪四清. SQL Server 基础教程.清华大学出版社.7王珊.撒师煊.数据库系统概论.高等教育出版社.8王能斌.数据库系统教程.干等教育出版社.9王珊,陈红.数据库系统教程,清华大学出版社.10邦贵,郭胜.数据库开发入门和范例解析.机械工业出版.11李洪飞.管理信息系统开发应用实例教程.人民邮电出版社.致 谢本文是在万家华老师热情关心和指导下完成,她渊博知识和严谨治学作风使我受益匪浅,对顺利完成
23、本课题设计起到了很大作用。课题指导期间,万老师严谨细致地进行修改斧正,最终使得该篇文章得以成型。在此向她表示我最衷心感谢!在论文完成过程中,本人还得到了其它老师和很多同学热心帮助,在此向她们表示深深谢意!最终向在百忙之中评审课程设计老师表示衷心感谢!课程设计任务及成绩院(系):信息工程学院 教研室:软件教研室学 号学生姓名黄红兵张道奎 徐鹏专业班级10级软件技术班课程设计题目健身中心会员管理系统课 程 设 计 任 务1、实现健身会员信息相关操作,方便快速得到得到会员多种信息,而且能经过后台管理实现会员信息更新、插入、删除等操作。2、掌握利用数据库原理进行后台设计和管理;掌握SQL Server
24、 基础操作;掌握后台和前台连接;掌握前台对后台进行访问操作。3、经过课程设计,加深对数据库课程所学内容深入了解和巩固;加深对结构化课程设计思想了解,并设计合理模块化结构;提升程序开发功效,能利用合理控制步骤编写清楚高效 程序;培养分析问题、处理问题能力。4、在课程设计过程中,充足发挥小组优势完成课程设计,同时认真体会小组合作关键性和必需性。成绩成绩: 指导老师签字: 年 月 日注:为方便交流特附上数据库代码CREATE DATABASE JSGLON(NAME=JSGL_dat,FILENAME=D:JSGL_dat.mdf,SIZE=5,MAXSIZE=10,FILEGROWTH=10%)L
25、OG ON(NAME=XSGL,FILENAME=D:JSGL.ldf,SIZE=5,MAXSIZE=10,FILEGROWTH=15%)CREATE TABLE Huiy(姓名 char(30) NOT NULL PRIMARY KEY, 性别 char(30) NOT NULL DEFAULT 男, 年纪 decimal CHECK(年纪0 and 年纪0 and 年纪150) )insert into Huiy(姓名 ,性别,年纪, 健身项目,联络方法)values(刘明,男,19,散打,)insert into Huiy(姓名 ,性别,年纪, 健身项目,联络方法)values(李平,女
26、,19,街舞,)insert into Huiy(姓名 ,性别,年纪, 健身项目,联络方法)values(张亮,男,20,器械健身,)insert into Huiy(姓名 ,性别,年纪, 健身项目,联络方法)values(王丽,女,19,跆拳道,)insert into Huiy(姓名 ,性别,年纪, 健身项目,联络方法)values(陈强,男,21,街舞,)insert into Kab(卡号,姓名,卡类型,缴费时间,到期时间)values(1001,李平,年卡,-03-22,-03-22)insert into Kab(卡号,姓名,卡类型,缴费时间,到期时间)values(1002,王丽
27、,季卡,-05-11,-08-11)insert into Kab(卡号,姓名,卡类型,缴费时间,到期时间)values(1003,陈强,年卡,-06-15,-06-15)insert into Kab(卡号,姓名,卡类型,缴费时间,到期时间)values(1004,刘明,季卡,-07-09,-10-09)insert into Kab(卡号,姓名,卡类型,缴费时间,到期时间)values(1005,张亮,月卡,-02-24,-03-24)insert into Gly(账号,密码, 性别,年纪)values(无痕天空,AH883721,男,32)insert into Gly(账号,密码,
28、性别,年纪)values(龙驹断剑,ZDK12345,男,28)insert into Gly(账号,密码, 性别,年纪)values(你不露痕迹,XP154321,男,28)update Huiy set 年纪=年纪+1 update Huiy set 性别=男 where 姓名=李平delete from Huiy where 姓名=刘明delete from Kab where 卡号=1004select 姓名, 健身项目 from Huiyselect * from Huiyselect 姓名, 出生年份为: , year(getdate() - 年纪 from Huiyselect
29、姓名, 卡类型 ,到期时间 from Kab select * from Huiy where 年纪 between 18 and 22select 姓名 from Huiy where 姓名 like 李索引use JSGLGOcreate nonclustered index IX_hnameon Huiy (姓名)with fillfactor=20create unique index IX_hno_hnameon Kab (卡号,姓名)with ignore_dup_key建立会员信息视图use JSGLGOcreate view 会员信息视图asselect Huiy.姓名,Hui
30、y.性别,Huiy.联络方法,Kab.卡号,Kab.卡类型,Kab.缴费时间,Kab.到期时间from Huiy,Kabwhere Huiy.姓名=Kab.姓名select *from 会员信息视图use JSGLGOALTER view 会员信息视图asselect Huiy.姓名,Huiy.性别,Huiy.联络方法,Kab.卡号,Kab.卡类型,Kab.缴费时间,Kab.到期时间from Huiy,Kabwhere Huiy.姓名=Kab.姓名ADD Kab.卡类型=季卡select *from 会员信息视图游标USE JSGLDECLARE Kab_cur1 CURSORGLOBALSC
31、ROLLFORSELECT *FROM Kab WHERE 卡类型=年卡FOR UPDATE OF 卡号,姓名,卡类型,缴费时间,到期时间GOOPEN Kab_cur1FETCH FIRST FROM Kab_cur1 FETCH NEXT FROM Kab_cur1DECLARE Kab_cur2 CURSORGLOBALSCROLLFORSELECT *FROM Kab WHERE 卡类型=季卡FOR UPDATE OF 卡号,姓名,卡类型,缴费时间,到期时间GOOPEN Kab_cur2FETCH FIRST FROM Kab_cur2FETCH NEXT FROM Kab_cur2 D
32、ECLARE Kab_cur3 CURSORGLOBALSCROLLFORSELECT *FROM Kab WHERE 卡类型=月卡FOR UPDATE OF 卡号,姓名,卡类型,缴费时间,到期时间GOOPEN Kab_cur3FETCH FIRST FROM Kab_cur3 FETCH NEXT FROM Kab_cur3 存放过程创建名为select_Huiy存放过程,该过程可查询全部会员信息。USE JSGLGOIF EXISTS(EXISTS name FROM sysobjects WHERE name=select_HuiyAND type=P)DROP PROCEDURE se
33、lect_HuiyGOCREATE PROCEDURE select_HuiyASSELECT * FROM HuiyORDER BY Huiy.年纪GOEXEC select_HuiyGO当需要改为能检索街舞会员信息时,用ALTER PROCEDURE 重新定义该存放过程。USE JSGLGOALTER PROCEDURE select_HuiyWITH ENCRYPTIONASSELECT * FROM HuiyWHERE 健身项目=街舞ORDER BY Huiy.年纪GOEXEC select_HuiyGO将select_Huiy存放过程名改为Huiy_informationUSE JSGLGOsp_rename select_Huiy,Huiy_information删除存放过程Huiy_informationUSE JSGLGODROP PROCEDURE Huiy_information触发器USE JSGLGOif exists (select name from sysobjectswhere