电影票网上订票标准系统盐城工学院.docx
《电影票网上订票标准系统盐城工学院.docx》由会员分享,可在线阅读,更多相关《电影票网上订票标准系统盐城工学院.docx(42页珍藏版)》请在冰点文库上搜索。
电影票网上订票标准系统盐城工学院
NIIT-4ProjectTraining
实训报告
专业
计算机科学与技术
学生姓名
班级
学号
指导教师
刘颖
完成日期
目录
一、设计题目……………………………………………………………………1
二、项目概述……………………………………………………………………3
三、项目系统总体需求…………………………………………………………3
四、课题设计的基本思想,原理和算法描述…………………………………3
五、源程序及注释,运行示例及结果分析…………………………………14
六、总结和展望………………………………………………………………80
七、参考资料…………………………………………………………………
一.设计题目:
Sound&StageEntertainment影院订票管理
二、项目概述
Sound&StageEntertainment成立于1995年。
它一开始是一家项目管理公司,后来涉及地产并在全美建造了15座世界级的影剧院。
这些电影院都是综合性多厅影院,可同时放映2到4部电影。
公司从这些电影院获得了巨大的收益。
三.项目系统总体需求
Sound&StageEntertainment管理15家影剧院。
每个电影院都具有一个订票中心,人们可以从这些订票中心购买当前和即将放映的场次的门票。
此外,人们可以通过电话询问特定放映的可用空位。
在上一次董事会上,Sound&StageEntertainment的CEORogerHanks指出了现有系统存在以下问题:
■人们需要排很长的队来购买门票。
■人们需要访问电影院以订购即将放映的场次的门票。
■仅在电影院的工作时间内才允许提前订购门票。
■人们发现,当他们希望通过电话询问特定放映的可用空位时,电话在大多数时间都处于占线状态。
因此,他们必须亲自来到电影院以查看特定放映的可用空位。
■人们需要来到电影院或阅读报纸以了解新发布的演出信息。
RogerHanks经过观察发现来到电影院的人数正迅速增长。
电影院具有很大的座位容量,但是放映的场次正在使影院越来越拥挤。
同时,许多人花了很长时间排队,但是仍然无法获得当前放映的门票。
四.课题设计的基本思想,原理和算法描述
1.目的
(1)进一步巩固所学的基础知识;
(2)锻炼自己的理论与实践相融合的运用能力;
(3)熟练掌握具体软件开发平台下(VisualStudio2010)的动手能力,掌握应用程序设计的方法与技巧;
2.基本思想及原理
该网站将供以下两种不同类型的用户使用:
客户和管理员。
该网站将对每种类型的用户提供不同的界面。
客户的网站界面将使其能够:
⏹查看当前在所有剧院上映的电影的详细信息
⏹查看将在一星期内在不同的剧院上映的电影的详细信。
⏹向网站注册以成为会员
⏹在成功登录后在线订购电影票
⏹更改密码
当客户尝试订购特定电影票时,系统将查看该场次的可用座位。
如果客户要求的电影票数量超出了可用的座位数,则用户将会被重定向到显示相应消息的另一个页面。
此外,该页面将显示该电影的具有可用位置的所有播出的详细信息。
然而,如果具有足够的可用座位数,则将为客户生成一个编号。
客户只需在播出开始前在中心获取门票时报出该编号。
管理员网站界面将使其能够:
⏹输入正在各个剧院上映的电影的详细信息。
⏹输入将在这些剧院上映的新电影的详细信息。
⏹更新横幅以显示促销方案。
⏹查看客户反馈。
⏹更改他或她的密码。
开发环境:
VisualStudio2010
数据库:
ACCESS
3.功能分析
(1)前台系统功能主要分为两大部分:
影片相关功能、及会员服务相关功能。
另一项重要而不在menu中直接呈现(但会在网页中适当位置出现)的是【订票】功能。
a.影片相关功能:
首页是提供近期热映影片以及即将上映影片的概况,可通过页面跳转进行对影片的详细查询。
还有场次以及订票功能。
同时提供场次表,可直接查询目前上映影片中的所有场次,方便观众不需要到现场查询每部影片的场次。
另外提供进阶查询,可使观众了解每部影片的导演、主演、类型、剧情等资讯。
b.会员服务相关功能有会员登入、会员注册。
会员登入以后可查询每部影片的场次,并在网上直接进行订票操作。
该功能极大满足了观众自由选择座位的权利。
图3-1前台系统功能
前台系统构架的设计是为了方便观众无需登录其他网站查询自己感兴趣的影片了解导演、主演、剧情等相关内容,也无需到影城现场咨询每部上映影片的场次表。
通过该网上订票系统,观众可在家中轻松的进行所有操作,包括在线订票的功能。
而且,观众在订票过程中出现某场次的座位已经订满或是没有自己想要的座位时,系统会出现“订票失败,可选择其它场次观看本部影片”的提示。
以此来通知观众,降低了现场订票的失败率,同时也节约了观众到影城排队买票的时间。
这个设计还有益于影城售票人员,他们通过观众网上订票的操作可以快捷地掌握每场次的座位安排以及观众的信息,再根据影片各场次是否满座,在网上直接提示订票的观众。
(2)配置数据库
本系统数据库管理系统选择MicrosoftSQLServer2000,数据库连接使用ADO技术。
数据库连接代码如下:
<%dimstr
onerrorresumenext
str=”provider=sqloledb;data
source=127.0.0.1;UID=sa;PWD=;DATABASE=Booking_online”
setconn=server.createobject(“ADODB.CONNECTION”)
iferrthen
err.clear
response.write(“数据库连接错误”)
else
conn.openstr
iferrthen
err.clear
response.write(“数据库打开错误!
”)
endif
endif%>
4.数据分析与建模
(1)数据库E-R图:
(2)流程图:
5.数据库建立:
(1)总体设计
(2)各单位以表的形式如下:
数据流:
数据流名称
构成
电影信息表
Film
座位类别
Seat
折扣表
Agio
订票表
Ticket
登录类型表
Types
钱箱表
Money
电影类型
Sort
会员类型
MemberTypes
大厅
Hall
会员信息
Member
放映时间表
Time
Film:
列名
含义
类型
长度
取值范围
FID
影片编号
Int
4
0-32767
FFilmName
电影名称
Nvarchar(20)
20
FDirector
导演
Nvarchar(10)
10
FPlay
演员
Nvarchar(50)
50
FIntro
电影简介
Nvarchar(1000)
1000
FLanguage
语言
Nvarchar(10)
10
FLong
片长(分钟)
Int
FDate
放映日期
Nvarchar(50)
50
0-31
FMoney
价格
Int
0-100
FNumber
票数
Int
0-300
FNum
座位编号
Nvarchar(50)
50
0-300
FPhoto
海报
Nvarchar(50)
50
FPew
硬座数量
Nvarchar(10)
10
150
FComPew
软座数量
Nvarchar(10)
10
100
FLove
情侣座数量
Nvarchar(10)
10
50
FSortID
电影类别
Int
2
0-99
FTimeID
放映日期
Int
Seat:
列名
含义
类型
长度
取值范围
SEID
主键
Int
1-10
SType
座位的类型
Nvarchar(10)
10
1-10
SMoney
座位票价
Int
2
0-99
SNumber
座位编号
Nvarchar(10)
3
1-100
Agio:
列名
含义
类型
长度
取值范围
AID
折扣类
型编号
Int
AType
折扣类型
Nvarchar(10)
10
ARebate
折扣
Int
Ticket:
列名
含义
类型
长度
取值范围
TId
主键
Int
TFName
电影名称
Nvarchar(20)
20
TPhone
电话
Nvarchar(13)
13
0-9
TCard
身份证等证件
Nvarchar(50)
50
TDate
放映日期
Nvarchar(50)
50
TTime
放映时间
Nvarchar(50)
50
THall
放映大厅
Nvarchar(10)
10
TNumber
座位号
Int
TTicketPrice
票的单价
Int
TPayMoney
打折后的价格
Int
TCount
订购票的数量
Int
TMoney
票数总价
Int
TAgio
折扣类型
Nvarchar(20)
Type:
列名
含义
类型
长度
取值范围
TID
用户序号
Int
2
1-10
TLgoinType
用户类型
Nvarchar(10)
10
1-10
TLgionId
用户名
Nvarchar(10)
10
50
TLgionPwd
用户密码
Nvarchar(10)
10
0-9
Money:
列名
含义
类型
长度
取值范围
MSum
售票总额
Int
5
0-31767
FID
影片编号
Int
4
0-32767
Filmsort:
列名
含义
类型
长度
取值范围
SOID
类型编号
Int
2
0-99
SSort
电影类型
Nvarchar
Member:
列名
含义
类型
长度
取值范围
MID
会员编号
Int
MType
会员类型
Nvachar
MDiscount
折扣
Nvachar
MName
用户姓名
Nvachar
MIDcard
会员身份证号
Nvacharr(18)
18
0-9
MPhone
会员的联系电话
Nvachar(13)
13
0-9
Time:
列名
含义
类型
长度
取值范围
TID
标识列;
Int
TTime
放映时间
Nvachar
HID
放映大厅编号
Int
Hall:
列名
含义
类型
长度
取值范围
HID
放映大厅编号
Int
HHall
放映大厅
Nvachar10)
五.源程序及注释(部分代码),运行示例及结果分析(截图分析)
1、源程序
(1)、用户登录
usingSystem;
usingSystem.Data;
usingSystem.Data.OleDb;
usingSystem.Configuration;
usingSystem.Collections;
usingSystem.Web;
usingSystem.Web.Security;
usingSystem.Web.UI;
usingSystem.Web.UI.WebControls;
usingSystem.Web.UI.WebControls.WebParts;
usingSystem.Web.UI.HtmlControls;
namespaceTicketBookingSystem
{
publicpartialclassLogin:
System.Web.UI.Page
{
protectedvoidPage_Load(objectsender,EventArgse)
{
}
protectedvoidreset_btn_Click(objectsender,EventArgse)
{
this.username_txt.Text="";
this.password_txt.Text="";
}
protectedvoidsubmit_btn_Click(objectsender,EventArgse)
{
stringstrCon="Provider=Microsoft.Jet.OLEDB.4.0;DataSource=";
strCon+=MapPath("ticketBooking.mdb");
OleDbConnectioncon=newOleDbConnection(strCon);
OleDbCommandcmd=newOleDbCommand("select*from[user]whereusername='"+this.username_txt.Text+"'andpassword='"+this.password_txt.Text+"'",con);
con.Open();
OleDbDataReaderdr=cmd.ExecuteReader();
if(dr.Read())
{
this.Label1.Visible=false;
HttpCookiecookie=newHttpCookie("TicketBooking");
DateTimedtNow=DateTime.Now;
TimeSpantsMinute=newTimeSpan(1,0,0);//onehourcookies
cookie.Expires=dtNow.Add(tsMinute);
cookie.Values.Add("username",this.username_txt.Text.ToString());
cookie.Values.Add("familyname",dr["familyname"].ToString());
cookie.Values.Add("givenname",dr["givenname"].ToString());
Session["username"]=this.username_txt.Text;
Response.AppendCookie(cookie);
Response.Redirect("Index.aspx");
}
else
{
this.Label1.Visible=true;
}
con.Close();
}
}
}
(2)主界面
usingSystem;
usingSystem.Data;
usingSystem.Data.OleDb;
usingSystem.Configuration;
usingSystem.Collections;
usingSystem.Web;
usingSystem.Web.Security;
usingSystem.Web.UI;
usingSystem.Web.UI.WebControls;
usingSystem.Web.UI.WebControls.WebParts;
usingSystem.Web.UI.HtmlControls;
namespaceTicketBookingSystem
{
publicpartialclass_Default:
System.Web.UI.Page
{
protectedvoidPage_Load(objectsender,EventArgse)
{
inti=0;
stringstrCon="Provider=Microsoft.Jet.OLEDB.4.0;DataSource=";
strCon+=MapPath("ticketBooking.mdb");
OleDbConnectioncon=newOleDbConnection(strCon);
stringstrSQL="select[movieid],[moviename],[pictureURL]from[movies]";
con.Open();
OleDbCommandcmd=newOleDbCommand(strSQL,con);
OleDbDataReaderdr=cmd.ExecuteReader();
while(dr.Read())
{
if(i==0)
{
this.Image_1.ImageUrl=dr["pictureURL"].ToString();
this.lab_moviename_1.Text=dr["moviename"].ToString();
this.Label_id_1.Text=dr["movieid"].ToString();
this.Image_1.Visible=true;
this.lab_moviename_1.Visible=true;
this.btn_detail_1.Visible=true;
this.btn_addCart_1.Visible=true;
}
elseif(i==1)
{
this.Image_2.ImageUrl=dr["pictureURL"].ToString();
this.lab_moviename_2.Text=dr["moviename"].ToString();
this.Label_id_2.Text=dr["movieid"].ToString();
this.Image_2.Visible=true;
this.lab_moviename_2.Visible=true;
this.btn_detail_2.Visible=true;
this.btn_addCart_2.Visible=true;
}
elseif(i==2)
{
this.Image_3.ImageUrl=dr["pictureURL"].ToString();
this.Label_id_3.Text=dr["movieid"].ToString();
this.lab_moviename_3.Text=dr["moviename"].ToString();
this.Image_3.Visible=true;
this.lab_moviename_3.Visible=true;
this.btn_detail_3.Visible=true;
this.btn_addCart_3.Visible=true;
}
elseif(i==3)
{
this.Image_4.ImageUrl=dr["pictureURL"].ToString();
this.lab_moviename_4.Text=dr["moviename"].ToString();
this.Label_id_4.Text=dr["movieid"].ToString();
this.Image_4.Visible=true;
this.lab_moviename_4.Visible=true;
this.btn_detail_4.Visible=true;
this.btn_addCart_4.Visible=true;
}
elseif(i==4)
{
this.Image_5.ImageUrl=dr["pictureURL"].ToString();
this.lab_moviename_5.Text=dr["moviename"].ToString();
this.Label_id_5.Text=dr["movieid"].ToString();
this.Image_5.Visible=true;
this.lab_moviename_5.Visible=true;
this.btn_detail_5.Visible=true;
this.btn_addCart_5.Visible=true;
}
elseif(i==5)
{
this.Image_6.ImageUrl=dr["pictureURL"].ToString();
this.lab_moviename_6.Text=dr["moviename"].ToString();
this.Image_6.Visible=true;
this.Label_id_6.Text=dr["movieid"].ToString();
this.lab_moviename_6.Visible=true;
this.btn_detail_6.Visible=true;
this.btn_addCart_6.Visible=true;
}
elseif(i==6)
{
this.Image_7.ImageUrl=dr["pictureURL"].ToString();
this.lab_moviename_7.Text=dr["moviename"].ToString();
this.Label_id_7.Text=dr["movieid"].ToString();
this.Image_7.Visible=true;
this.lab_moviename_7.Visible=true;
this.btn_detail_7.Visible=true;
this.btn_addCart_7.Visible=true;
}
elseif(i==7)
{
this.Image_8.ImageUrl=dr["pictureURL"].ToString();
this.lab_moviename_8.Text=dr["moviename"].ToString();