面向对象程序设计实训说明书电影院网上订票系统设计Word格式文档下载.docx
- 文档编号:17365289
- 上传时间:2022-12-01
- 格式:DOCX
- 页数:25
- 大小:325.76KB
面向对象程序设计实训说明书电影院网上订票系统设计Word格式文档下载.docx
《面向对象程序设计实训说明书电影院网上订票系统设计Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《面向对象程序设计实训说明书电影院网上订票系统设计Word格式文档下载.docx(25页珍藏版)》请在冰豆网上搜索。
(2)根据需求分析的内容进行概要设计和详细设计,并在小组中合理分工。
(3)按格式要求,每人根据自己完成的工作写出实训说明书。
4.自己承担的任务
(1)普通用户的登陆验证
(2)查看电影信息
(3)用户选择电影和座位
(4)用户提交订单,删除订单
5.设计成果形式及要求:
实训说明书
软件系统
6.工作计划及进度:
2015年
6.29-7.30需求分析
7.1-7.2概要设计和详细设计
7.3-7.7系统实现与测试
7.8撰写实训说明书
7.9验收答辩、成绩考核
7.10上交实训报告
一、需求分析
需求分析包括可行性分析、系统流程图和数据流图,数据字典。
可行性分析包括技术可行性、经济可行性和操作可行性。
1.1可行性分析
1.1.1技术可行性
根据电影院提出的系统功能、性能及实现系统的各种约束条件,根据新系统目标来衡量所需的技术是否具备,本系统是一个数据库管理和查询的系统,现有的技术已较为成熟,硬件、软件的性能要求、环境条件等各项条件良好,估计利用现有技术条件应完全可以达到该系统的功能目标。
同时,考虑给予的开发期限也较为充裕,预计系统是可以在规定期限内完成开发的。
由以上分析可知,影院售票系统的开发在技术上是可行的。
1.1.2经济可行性
电影院具有信息化的处理设施,并且拥有支持本系统的应用平台。
因此无需再投入资金购买其他设施。
系统的开发基于本人对程序开发的实践学习而来,电影院无需资金投入,并且软件开发过程投入的成本不高,因此开发经费完全可以接受。
由以上分析可知,影院售票系统在经济上是可行的。
1.1.3操作可行性
根据系统页面用户可以自动查询影片信息。
还可浏览完影片信息以后操作订票、退票等功能。
管理员也可以在后台添加、修改并删除影片信息,还可以管理注册用户信息和用户订票信息。
由以上分析可知本系统在操作上也是可行的。
1.2系统流程图
首先未注册的用户要先注册,注册完了以后输入用户名和密码进入页面。
根据网站上的影片信息用户可以选择自己喜欢的电影来订票。
然后订票信息会自动存储到后台订票信息数据当中。
本系统的具体流程为如图所示。
系统流程图
1.3数据流图
本系统的基本模型数据流图为如图所示。
系统基本模型数据流图
系统功能数据流图
1.4数据需求
(1)影片信息:
电影名称、导演、演员、电影简介、语言、片场(分钟)、放映日期、时间、价格、票数、
(2)订票信息:
电影名称、放映时间、放映大厅、座位号、票价(单价)
(3)用户信息:
用户名、用户密码、手机号
(4)放映厅信息:
放映大厅名字、座位数
1.5数据字典
Film(电影表)
列名
含义
类型
长度
取值范围
filmid
影片编号
Int
4
0-32767
FilmName
电影名称
varchar(20)
20
Director
导演
varchar(10)
10
Language
语言
timeLong
片长(分钟)
Int
2
Date
放映日期
varchar(50)
50
0-31
Money
价格
0-100
Number
票数
0-300
Time
放映时间
order(订票表)
orderid
主键
filmname
Hall
放映大厅
seatname
座位号
money
票的单价
Hall(放映大厅)
hall
放映大厅编号
varchar10)
User(用户信息表)
UID
用户序号
1-10
username
用户名
password
用户密码
0-9
Admin(管理员信息表)
Adminname
Seat(座位类别)
Seatid
座位编号
Nvarchar(10)
3
1-100
二、概要设计
从数据需求分析中得出系统的实体属性图,遵循三范式原则,对实体之间的依关系进
行了整合,得出本系统E-R图,如图所示。
系统E-R图
其中影片信息实体属性图又为如下图所示。
影片信息实体属性图
订单详情实体属性图为如图所示。
图影片场次实体属性图
用户实体属性图为如图所示。
图用户信息实体属性图
全局概念E-R图
三、详细设计
ER图向关系模型的转换
影片(影片编号,类别,票价,播放日期,名称,导演,片长)
影票(影票编号,票价,播放日期,影片名称,座位号)
注册用户(用户编号,用户名,密码)
放映大厅(大厅编号,名字)
座位(座位id,座位号)
Orders(orderId,FName,Time,Hall,Number,Money);
Seat(SEID,seatname);
Hall(HID,HHall);
User(username,password,phonenumber);
Film(FID,FilmName,FDirector,FLanguage,FLong,FDate,FMoney,FNumber,FTimeID);
Ticket(订票表)
其他
TId
影票号
主码
TFName
Nvarchar(20)
TDate
Nvarchar(50)
TTime
HID
放映大
厅编号
外部码
TNumber
TMoney
票数总价
SEID
SMoney
座位票价
SNumber
FID
FFilmName
FDirector
FLanguage
FLong
FDate
FMoney
FNumber
FTimeID
user(用户表)
phonenumber
用户电话
Varchar
11
Username
HHall
Nvachar10)
4、编码实现
文件目录
IOrderDAOimpl.java
packagecn.movie.impl;
importjava.sql.Connection;
importjava.sql.PreparedStatement;
importjava.sql.ResultSet;
importjava.util.ArrayList;
importjava.util.List;
importcn.movie.dao.IOrderDAO;
importcn.movie.vo.FilmInformation;
importcn.movie.vo.Order;
publicclassOrderDAOImplimplementsIOrderDAO{
privateConnectionconn;
privatePreparedStatementpstmt=null;
privatePreparedStatementpstmt1=null;
privatePreparedStatementpstmt2=null;
privatePreparedStatementpstmt3=null;
publicOrderDAOImpl(Connectionconn){
this.conn=conn;
}
@Override
publicbooleandoUpdate(Ordervo)throwsException{
booleanflag=false;
returnfalse;
publicbooleandoRemove(intid,Stringhall,Stringfilmname,Stringseatname)throwsException{
//System.out.println(id);
Stringsql="
DELETEFROMordersWHEREorderId=?
"
;
this.pstmt=this.conn.prepareStatement(sql);
this.pstmt.setInt(1,id);
Stringsql1="
selectseatnameafromhallwherehall='
+hall+"
'
"
this.pstmt1=this.conn.prepareStatement(sql1);
ResultSetrs=this.pstmt1.executeQuery();
rs.next();
//System.out.println("
++++++++++"
+rs.getString
(1));
Stringsql2="
insertinto"
+rs.getString
(1)+"
(seatname)values(?
)"
;
this.pstmt2=this.conn.prepareStatement(sql2);
this.pstmt2.setString(1,seatname);
this.pstmt2.executeUpdate();
Stringsql3="
updatefilmsetnumber=number+1wherefilmName=?
this.pstmt3=this.conn.prepareStatement(sql3);
this.pstmt3.setString(1,filmname);
this.pstmt3.executeUpdate();
if(this.pstmt.executeUpdate()>
0){
flag=true;
}
returnflag;
publicOrderfindById(Stringid)throwsException{
//TODOAuto-generatedmethodstub
returnnull;
publicList<
Order>
findAll(StringkeyWord,intcurrentPage,intlineSize)
throwsException{
List<
all=newArrayList<
();
select*fromorderswhereusername=?
this.pstmt.setString(1,keyWord);
ResultSetrs=pstmt.executeQuery();
while(rs.next()){
Orderorder=newOrder();
order.setOrderId(rs.getInt
(1));
order.setSeatname(rs.getString(3));
order.setFilmname(rs.getString(4));
order.setTime(rs.getString(6));
order.setHall(rs.getString(5));
order.setMoney(rs.getInt(7));
all.add(order);
returnall;
publicbooleandoCreate(Orderorder)throwsException{
INSERTINTOorders(username,seatname,filmname,hall,time,money)VALUES(?
?
)"
this.pstmt.setString(1,order.getUsername());
this.pstmt.setString(2,order.getSeatname());
this.pstmt.setString(3,order.getFilmname());
this.pstmt.setString(4,order.getHall());
this.pstmt.setString(5,order.getTime());
this.pstmt.setInt(6,order.getMoney());
Stringsql1="
updatefilmsetnumber=number-1wherefilmName=?
this.pstmt1=this.conn.prepareStatement(sql1);
this.pstmt1.setString(1,order.getFilmname());
this.pstmt1.executeUpdate();
Stringsql2="
+order.getHall()+"
ResultSetrs=pstmt2.executeQuery();
deletefrom"
whereseatname=?
this.pstmt3=this.conn.prepareStatement(sql3);
this.pstmt3.setString(1,order.getSeatname());
//System.out.println("
判断"
);
//System.out.println(flag);
publiclonggetAllCount(StringkeyWord)throwsException{
return0;
findAll()throwsException{
select*fromorders"
Orderorder=newOrder();
order.setUsername(rs.getString
(2));
order.setHall(rs.getString(4));
order.setTime(rs.getString(5));
order.setMoney(rs.getInt(6));
publicbooleandoRemove(Stringid)throwsException{
String>
getAllseat(StringkeyWord)throwsException{
//System.out.println(keyWord);
+keyWord+"
selectseatnamefrom"
+rs.getString
(1);
ResultSetrs1=pstmt1.executeQuery();
seatname=newArrayList<
inti=0;
while(rs1.next()){
//System.out.println(rs.getString
(1));
seatname.add(rs1.getString
(1));
returnseatname;
}
OrderServlet.java
packagecn.movie.servlet;
importjava.io.IOException;
importjava.io.PrintWriter;
importjavax.servlet.ServletException;
importjavax.servlet.http.HttpServlet;
importjavax.servlet.http.HttpServletRequest;
importjavax.servlet.http.HttpServletResponse;
importjavax.servlet.http.HttpSession;
importcn.movie.factory.DAOFactory;
publicclassOrderServletextendsHttpServle
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 面向 对象 程序设计 说明书 电影院 网上 订票 系统 设计