礼堂购票系统Word文档格式.docx
《礼堂购票系统Word文档格式.docx》由会员分享,可在线阅读,更多相关《礼堂购票系统Word文档格式.docx(24页珍藏版)》请在冰豆网上搜索。
1.引言
在学校给学生提供的各种活动中,礼堂每周末的电影播放给了大家放松的机会。
既可以几乎免费的看最新的大片,也不用到处找电影院,满足了学生的课余需求。
因此,有必要提供一个购票软件,方便大家查询和订票。
在计算机日益普及的今天,对我们这些大学生来说,网络的使用已经十分普遍了。
所以,使用网络购票是十分方便同学们的。
无论是查看学校礼堂的电影信息,还是直接购票,都可以有效的帮助到同学们。
这就是本网页设计的重要原因。
本文以高校电影订票系统开发过程为背景,全文分为目录、需求分析、概要设计、逻辑设计、物理设计,以及系统的实现等全过程。
在程序设计与调试上采用了自上而下,逐步细化,逐步完善的原则。
采用结构化的功能模块设计系统功能,可读性好,易于扩充。
基本功能全面,系统可读性好,易于维护、更新,安全性好。
2.需求分析
进行系统设计,首先要对系统的现状进行分析。
根据系统的目标、需求和功能,制定和选择一个较好的系统方案,从而达到一个合理的优化系统。
河海大学常州校区为学生们提供了闲暇时光的娱乐生活,为我们准备了礼堂的电影播放服务。
最初由于礼堂的电影播放知道的人少,所以不会显得不便。
随着电影播放的需求火爆,和学生们便宜看电影的需求,该系统的建立不但给管理者带来了方便,也节省了工作时间从而提高了工作效率。
需求分析是在于要弄清用户对开发的数据库应用系统的确切要求。
数据库设计的第一步是明确数据库的目的和如何使用,也就是说需要从数据库中得到哪些信息。
明确目的之后,就可以确定您需要保存哪些主题的信息(表),以及每个主题需要保存哪些信息(表中字段)。
在构造系统时,首先从需求出发构造数据库表,然后再由数据库表结合需求划分系统功能模块。
这样,就把一个大的系统分解成了几个小系统。
这里把系统的层次划分为了四个部分:
学生登录管理、电影订票、电影评论、电影信息查询能够实现以下功能:
为订票的学生进行统一的管理;
②能够实现对订票的有效管理;
③能够进行电影的评论;
④能够进行电影信息的查询功能;
2.1业务需求
从读者角度考虑的业务流程图:
2.2功能需求
a.系统能对电影信息进行管理。
b.系统不需要管理学生除姓名以外的信息。
对每一名学生用户最多预订的电影数目为5场。
c.预订时,管理人员记录学生的姓名、预订电影名称和预订日期。
d.操作人员可以根据电影名称、放映时间、两者之一或两者的任意组合查询电影信息。
e.操作人员可以查询预订某电影的所有学生的姓名;
也可以查询某学生预订的所有电影名称;
还可以根据学生的姓名、电影名称查询学生预订时间、购票时间
g.系统由礼堂工作人员操作。
分为:
系统管理员、,电影信息管理员和票务管理员,每人对应相应的权限。
h.报表的打印输出。
i.所有操作人员凭帐号和密码登陆系统。
2.3数据需求
系统处理的对象有:
学生信息:
学生编号,姓名,性别,学号
管理员信息:
管理员编号,姓名,性别,权限,登录口令,住址,电话
电影信息:
电影编号,电影名称,电影公司,电影时长,摘要,存储位置,产地分类,发行日期
订票信息:
电影编号,学生编号,电影名,订票日期,播放日期,播放时间,票价
订票历史信息:
电影编号,学生编号,电影,订票日期,播放日期
讨论信息:
学生编号,电影编号,电影名,讨论信息
数据流图和数据字典如下:
顶层数据流图:
第1层数据流图:
(学生登录,管理员查询,管理员修改)
第2层数据流图:
(读者订票)
第3层数据流图:
(学生讨论)
数据字典如下:
名字:
电影信息
别名:
电影表
描述:
视频库中所有电影的各种信息和位置描述
定义:
电影信息=电影编号+电影名称+电影时长+电影大小+电影位置+播放次数+电影提供者
位置:
提供给服务器处理
购票信息
购票记录
对所有购票学生信息和电影信息记录
购票信息=学生学号+学生姓名+电影编号+电影名称+电影时长+座位信息+购票时间
服务器保存,使用时输出、
咨询信息
咨询记录
最新电影和评论的记录
咨询信息=电影名称+上映时间+学生推荐度
学生信息
学生数据库
保存所有在校学生信息的表
学生信息=学生学号+学生姓名+学生登录密码
电影编号
唯一地标识电影表中一个特定电影的关键域
电影编号=8{字符}8
电影信息
购票信息
电影名称
电影的主要信息
电影名称=1{字符}20
咨询信息
电影时长
电影播放所需的时间
电影时长=1{数字}3
电影大小
电影的存储大小
电影大小=1{数字}4
电影位置
电影在服务器中位置的描述
电影位置=0{字母或符号}20
播放次数
电影是否被播放的记录
播放次数=0{数字}1
电影提供者
管理员获得电影的渠道
电影提供者=(字符)
学生学号
唯一地标识学生表中一个特定学生的关键域
学生学号=10{数字}10
学生信息
学生姓名
学生学号所对应的主要学生信息
学生姓名=2{字符}4
座位信息
学生购票时所选的座位编号
座位信息=行号+列号
购票时间
购票时间的记录
购票时间=年+月+日
上映时间
新电影的上映时间
上映时间=年+月
学生推荐度
新电影的推荐程度
学生推荐度=(数字)
学生登录密码
学生订票实名制的登录密码
登录密码=6{数字}6
学生信息
年
年的记录
年=[2011|2012]
月
月的记录
月=[1|2|3|4|5|6|7|8|9|10|11|12]
购票时间
日
日的记录
日=[1|2|3……|31]
表1.3处理逻辑列表
处理编号
处理功能
处理过程
PR-1
判断学生查询涉及的功能模块
已有电影信息模块、学生信息模块、学生类别信息模块、订票信息模块、订票历史信息模块、管理员模块:
先确定查询所涉及的功能模块;
然后,根据要查询的内容,确定查询数据流向;
最后显示查询结果。
PR-2
判断电影、学生修改要涉及的模块,同时把相应的修改数据传到相应的模块之中
已有电影信息模块、学生信息模块、学生类别信息模块、管理员信息模块:
先确定更新所涉及的功能模块;
然后,把更新信息传送到相应的模块中;
最后,进行相应的更新操作。
2.4安全性和完整性要求
1)安全性要求
系统安全性要求体现在数据库安全性、信息安全性和系统平台的安全性等方面。
安全性先通过视图机制,不同的用户只能访问系统授权的视图,这样可提供系统数据一定程度上的安全性,再通过分配权限、设置权限级别来区别对待不同操作者对数据库的操作来提高数据库的安全性;
系统平台的安全性体现在操作系统的安全性、计算机系统的安全性和网络体系的安全性等方面。
2)完整性要求
系统完整性要求系统中数据的正确性以及相容性。
可通过建立主、外键,使用check约束,或者通过使用触发器和级联更新。
3概要设计
3.1系统结构与组成
系统开发的总体目标是实现电影订票的系统化和自动化,缩短观影者的等待时间,减轻工作人员的工作量,方便工作人员对它的操作,提高管理的质量和水平,做到高效、智能化管理,从而达到提高礼堂电影播放效率的目的。
主要任务是对学生信息、管理员信息、电影信息、订票信息、播放信的基本信息的操作及外理。
系统采用C/S结构。
系统组成如下:
3.2概念数据库设计
概念设计阶段主要是将需求分析阶段得到的用户需求抽象为信息结构(概念模型)的过程,它是整个数据库设计的关键。
E-R图如下:
(3)各E-R图各实体的属性如下所示:
讨论:
Discuss(discuss_ID,stu_ID,film_ID,discuss_Detail,)
FilmMessage(film_ID,film_Name,film_Place,film_Time,film_Show,film_Image)
登陆:
Login(stu_ID,Password,stu_Name)
电影播放:
Show(show_ID,film_ID,film_Name,show_Place,show_Time)
各E-R图中联系的属性如下所示:
购票:
Ticket(film_ID,show_ID,ticket_ID,cost,seat)
3.3逻辑数据库设计
以上的概念设计阶段是独立于任何一种数据模型的,但是逻辑设计阶段就与选用的DBMS产品发生关系了,系统逻辑设计的任务就是将概念设计阶段设计好的基本E-R图转换为选用DBMS产品所支持的数据模型相符合的逻辑结构。
具体内容包括:
将E-R图转换成关系模型、模型优化、数据库模式定义、用户子模式设计。
3.3.1将E-R图转换为关系模型
实体型转换为关系模式。
实体的属性就是关系的属性,实体的码就是关系的码。
对于实体间的联系则有以下不同的情况:
一个m:
n联系转换为一个关系模式。
与该联系相连的各实体的码以及联系本身的属性均转换为关系的属性,而关系的码为各实体码的组合。
一个1:
n联系可以转换为一个独立的关系模式,也可以与n端对应的关系模式合并。
如果转换为一个独立的关系模式,则与该联系相连的各实体的码以及联系本身的属性均转换为关系的属性,而关系的码为n端实体的码。
一个1:
1联系可以转换为一个独立的关系模式,也可以与任意一端对应的关系模式合并。
三个或三个以上实体间的一个多元联系可以转换为一个关系模式。
与该多元联系相连的各实体的码以及联系本身的属性均转换为关系的属性,而关系的码为各实体码的组合具有相同码的关系模式可合并。
由于读者类别与读者、馆室与图书的联系方式是1:
n(一对多),可以将其之间的联系与n端实体读者、图书合并,管理员与图书之间的维护联系也是1:
n(一对多),同样也将其之间的联系与n端实体合并,而读者与图书之间的借阅和归还联系方式则是n:
m(多对多),这样要把它们之间的联系转化为独立的关系模式,读者与管理员之间的罚款联系是m:
n(多对多),将其联系也转化成独立的关系模式,具体的基本E-R图向关系模型的转化如下:
Discuss(discuss_ID,stu_ID,film_ID,discuss_Detail)
3.3.3数据库模式定义
表2.1电影信息表
列名
数据类型
可否为空
说明
film_ID
Int
notnull
film_Name
Char(50)
film_Place
Char(20)
电影产地
film_Time
datetime
电影上映时间
film_Show
电影播放次数
film_Image
Text
电影海报
表2.2讨论表
discuss_ID
bigint
讨论留言编号
stu_ID
int
discuss_Detail
char(256)
讨论细节
表2.3学生登陆表
stu_ID
学生编号
Password
登录密码
stu_Name
char(10)
表2.4购票表
show_ID
电影场次
ticket_ID
int
电影票编号
cost
票价
seat
座位
表2.5电影播放表
播放编号
char(50)
show_Place
char(20)
播放地点
show_Time
播放时间
3.3.4视图(用户子模式)定义
表2.7用户子模式定义
编号
用户子模式(View)
作用(共性:
提供数据保密和安全保护机制)
V-1
viFilmMessage
便于查询和修改电影的基本信息
V-2
viTicket
为了将完整的票务信息提取出来
表2.8票据基本信息视图
Show_ID
Longint
Film_ID
Film_Name
Char
Show_Time
Date_Time
电影播放时间
Film_show
电影播放
Film_TIme
电影时间
Ticket_ID
票编号
Cost
票价格
座位号
表2.9电影和播放信息视图
Film_Place
电影发行地
Show_Place
char
电影播放地点
Datatime
4.详细设计与实现
4.1建立数据库、数据表、视图、索引
4.1.1建立数据库
createdatabaseFILM;
4.1.2建立数据表
(1)讨论表的建立:
createtableDiscuss(
discuss_IDbigintnotnull,
stu_IDbigintnull,
film_IDintnull,
discuss_Detailchar(256)null,
discuss_Timedatetimenull,
constraintPK_DISCUSSprimarykeynonclustered(discuss_ID),
foreignkey(stu_ID)referencesLogin,
foreignkey(film_ID)referencesFilmMessage
)
(2)电影信息表的建立:
createtableFilmMessage(
film_IDintnotnull,
film_Namechar(50)notnull,
film_Placechar(20)null,
film_Timedatetimenull,
film_Showintnull,
film_Imagetextnull,
constraintPK_FILMMESSAGEprimarykeynonclustered(film_ID)
(3)学生登陆表的建立:
createtableLogin(
stu_IDbigintnotnull,
Passwordbigintnotnull,
stu_Namechar(10)null,
constraintPK_LOGINprimarykeynonclustered(stu_ID)
(4)电影播放表的建立:
createtableShow(
show_IDbigintnotnull,
film_Namechar(50)null,
show_Placechar(20)null,
show_Timedatetimenull,
constraintPK_SHOWprimarykeynonclustered(show_ID),
(5)购票表的建立:
createtableTicket(
ticket_IDintnotnull,
ticket_Timedatetimenull,
constraintPK_TICKETprimarykey(film_ID,show_ID),
foreignkey(film_ID)referencesFilmMessage,
foreignkey(show_ID)referencesShow
4.1.3建立视图
(1)用于查询电影基本信息的视图定义如下:
createviewviFilmMessage(电影编号,电影名,电影产地,电影海报)
as
selectfilm_ID,film_Name,film_Place,film_Image
fromFilmMessage
(2)用于读者基本信息查询的视图定义如下:
createviewviTicket(票据编号,电影编号,播放编号,价格)
selectticket_ID,film_ID,show_ID,cost
fromTicket
4.1.4建立索引
createindexdis_FKonDiscuss(stu_IDASC)
createindexfilm_dis_FKonDiscuss(film_IDASC)
createindexfilm_news_FKonNews(film_IDASC)
createindexRelationship_2_FKonShow(film_IDASC)
)4.1.5建立触发器
1.当删除电影信息中的一行时,将播放表中的信息也一并删除
createtriggerfilm_deleteonFilmMessage
fordelete
deletefromShow
whereShow.film_IDin(selectfilm_IDfromdeleted)
2.当单个学生订票数超过5时,禁止继续订票
createtriggerticket_insertonTicket
forinsert
declare@c1int
select@c1=count(*)fromTicketwherestu_No=(selectstu_Nofrominserted)
if(@c1>
=5)
begin
rollback
print'
超过了5张票,不能再订'
end
4.2数据入库
系统包括订票基本信息管理、学生基本信息管理、管理员信息管理、新闻信息管理、查询信息管理等四大功能模块,共有6张基本表,采用事先在Excel中录入数据,然后使用SQLServer2000数据导入/导出向导功能,直接将数据导入到相应的基本表中。
4.3创建各个功能的存储过程
系统共创建了3个存储过程,具体如下:
1、film_show_name存储过程用于电影信息和播放信息的模糊查询
createprocedurefilm_show_name(@fnamevarchar(20))
(
selectFilmMessage.film_IDas电影编号,film_Nameas电影名,film_Placeas电影产地,show_Timeas播放时间,show_Placeas播放地点
fromFilmMessag