电影销售管理系统.docx
- 文档编号:10379822
- 上传时间:2023-02-10
- 格式:DOCX
- 页数:32
- 大小:238.61KB
电影销售管理系统.docx
《电影销售管理系统.docx》由会员分享,可在线阅读,更多相关《电影销售管理系统.docx(32页珍藏版)》请在冰豆网上搜索。
电影销售管理系统
电影销售管理系统
电影售票预定系统档案
一.摘要
随着人们生活水平的不断提高,人们生活的消费和需求也越来越旺盛。
电影院售票系统可以实现影片的登记和电影票的购买,可以方便的进行电影以及实时影票信息的查询等,从而做到方便的售票操作,方便了工作人员的同时也让顾客能够轻轻松松地买票,我们的宗旨是一个字:
快!
;两个字:
便捷。
因此,该系统主要根据实际需求,划分了电影信息管理,每场电影的坐位信息管理,每个电影的预定情况,并选用VisualStudio.NET2008开发工具和SQLServer2005数据库,采用B/S模式实现了从客户来访、报价、订购等多个环节数据的跟踪管理服务,基本上满足了电影销售管理流程。
关键词:
销售管理;B/S模式;数据库;.NET
1.2定义:
查询:
对数据库的操作的一种,用于搜索数据信息。
插入:
对数据库的操作的一种,用于将数据存入数据库中。
更新:
对数据库的操作的一种,用于更改数据库中的数据信息。
软件结构图:
反映软件系统的功能模块之间的关系的数据图。
二.电影售票预定系统的需求分析
2.1系统需求
本电影售票预定系统是一个协助影院进行全面管理的一个信息管理系统。
本管理系统在实现上应满足以下需求:
1.能达到网站和影院间的无缝链接和数据的共享。
2.为系统提供数据支持。
3.不同级别的用户拥有相应的权限使用该系统,从而大大提高了系统的安全性和管理效率。
首先将电影信息入库,然后影院通过与客户的交易活动,将相关信息存入库,然后影院通过销售信息的查询获得电影票销售的情况,通过库存查询获得影院目前的剩票情况。
由此可分析系统需要达到以下目标:
1.能很好地完成电影票售前管理。
售前管理包括影院信息,电影场次,电影片名信息的入库作业。
2.能详细地记录影院和客户的交易过程,即订票或退票的情况。
3.能详细地记录电影场次跟票数量的关系,即某场的电影和剩余票的关系。
4.能及时准确地获得影院和市场的需求。
即通过对电影场次,片名及票务销售的情况信息查询获得相应的结果,以备公司作为参考,从而安排更好的电影场次。
5.能够对各场电影票销售的情况进行相应的记录。
包括对订票,退票,修改等。
6.能够对不同权限的用户进行合理的管理。
包括添加用户,删除用户,用户账号和密码管理等。
2.2数据字典描述
数据字典是各累数据描述的集合。
对数据库设计来讲,数据字典是进行详细的数据收集和数据分析所获得的主要结果。
数据字典通常包括数据项、数据结构、数据流、数据存储和处理过程5个部分。
其中数据项是最小的组成单位,若干个数据项可以组成一个数据结构,数据字典对数据项和数据结构的定义来描述数据流、数据存储的逻辑内容。
数据字典是关于数据库中数据的描述,即元数据,而不是数据本身。
数据本身将存在物理数据库中,由数据库系统管理。
数据字典有助于这些数据的进一步管理和控制,为设计人员和数据库管理员在数据库设计、实现和运行阶段控制有关数据提供依据。
2.3程序描述
各功能详细描述:
本系统主要用于电影票预订,所以提供了以下几个子功能:
用户注册,用户登陆,电影详细内容,生成订单,退订订单,付款,以及后台方面的电影的添加,以及电影的查询等后台功能。
1、用户注册:
新用户可以通过注册会员来登陆。
2、用户登陆:
登陆后的会员才能进行购票,查询订单。
3、电影详细内容:
点击进入后可以查看电影的详细信息。
包括:
时长,价格,上映的时间等。
4、生成订单:
该项功能提供用户选择购买电影票的数量,及取消订单等操作。
5、退订功能:
会员可以选择是否取消已经生成的电影订单。
6、付款:
此页面用户可以选择付款方式,并最终确定订单的生成。
7、后台电影的添加:
该功能只有机场管理员有权力操作,管理员可以通过影院电影场次的安排来增加电影的内容,信息等操作。
三.概念结构设计
3.1软件结构:
3.2E-R图向关系模型转换:
电影售票预定系统的基本E-R图
下面分别介绍表的结构:
1电影表结构
编号
字段名称
结构类型
大小
说明
1
电影编号
Int
主键
2
电影名
char
20
主键
3
价格
Money
不允许为空
4
时长
Char
10
不允许为空
5
上映时间
Datetime
允许为空
6
电影简介
Char
200
不允许为空
7
票数
Int
不允许为空
8
图片
Char
60
不允许为空
2订单表结构
编号
字段名称
结构类型
大小
说明
1
订单编号
Int
主键
2
会员名
char
20
不允许为空
3
订单日期
Datetime
20
不允许为空
4
发货方式
Char
20
不允许为空
5
付款方式
Char
20
不允许为空
6
总金额
Float
不允许为空
7
是否发货
Bit
不允许为空
8
备注
Next
允许为空
3购物车表结构
编号
字段名称
结构类型
大小
说明
1
购物车编号
Int
不允许为空
2
会员名
Char
12
外键
3
电影编号
Int
不允许为空
4
数量
Int
不允许为空
4管理员表结构
编号
字段名称
结构类型
大小
说明
1
用户名
Char
20
不允许为空
2
密码
Char
32
不允许为空
3
权限
Int
不允许为空
5会员表结构
编号
字段名称
结构类型
大小
说明
1
会员名
Char
12
不允许为空
2
名字
Char
20
不允许为空
3
密码
Char
32
不允许为空
4
性别
Char
2
允许为空
5
出生日期
Datetime
允许为空
6
联系地址
nchar
60
不允许为空
7
联系电话
Char
13
不允许为空
8
邮政编码
Char
6
不允许为空
6详细订单表结构
编号
字段名称
结构类型
大小
说明
1
订单编号
Int
外键
2
会员名
Char
12
不允许为空
3
电影编号
Int
不允许为空
4
数量
Int
不允许为空
3.3源程序代码
创建数据库电影售票
创建6个表,两个视图
创建电影表
USE[电影售票]
GO
/******对象:
Table[dbo].[电影表]脚本日期:
12/23/201115:
57:
34******/
SETANSI_NULLSON
GO
SETQUOTED_IDENTIFIERON
GO
SETANSI_PADDINGON
GO
CREATETABLE[dbo].[电影表](
[电影编号][int]NOTNULL,
[电影名][char](20)NULL,
[价格][money]NULL,
[时长][char](10)NULL,
[上映时间][datetime]NULL,
[电影简介][char](200)NULL,
[票数][int]NULL,
[图片][char](60)NULL
)ON[PRIMARY]
创建订单表
CREATETABLE[dbo].[订单表](
[订单编号][int]NOTNULL,
[会员名][char](20)NULL,
[订单日期][datetime]NULL,
[发货方式][char](20)NULL,
[付款方式][char](20)NULL,
[总金额][float]NULL,
[是否发货][bit]NULL,
[备注][ntext]NULL,
CONSTRAINT[PK_订单表]PRIMARYKEYCLUSTERED
(
[订单编号]ASC
)WITH(PAD_INDEX=OFF,STATISTICS_NORECOMPUTE=OFF,IGNORE_DUP_KEY=OFF,ALLOW_ROW_LOCKS=ON,ALLOW_PAGE_LOCKS=ON)ON[PRIMARY]
)ON[PRIMARY]TEXTIMAGE_ON[PRIMARY]
创建购物车表
CREATETABLE[dbo].[购物车表](
[购物车编号][int]NOTNULL,
[会员名][char](12)NULL,
[电影编号][int]NULL,
[数量][int]NULL,
CONSTRAINT[PK_购物车表]PRIMARYKEYCLUSTERED
(
[购物车编号]ASC
)WITH(PAD_INDEX=OFF,STATISTICS_NORECOMPUTE=OFF,IGNORE_DUP_KEY=OFF,ALLOW_ROW_LOCKS=ON,ALLOW_PAGE_LOCKS=ON)ON[PRIMARY]
)ON[PRIMARY]
创建管理员表
CREATETABLE[dbo].[管理员表](
[用户名][char](20)NOTNULL,
[密码][char](32)NULL,
[权限][int]NULL
)ON[PRIMARY]
创建会员表
CREATETABLE[dbo].[会员表](
[会员名][char](12)NOTNULL,
[名字][char](20)NULL,
[密码][char](32)NULL,
[性别][char]
(2)NULL,
[出生日期][datetime]NULL,
[联系地址][nchar](60)NULL,
[联系电话][char](13)NULL,
[邮政编码][char](6)NULL,
CONSTRAINT[PK_会员表]PRIMARYKEYCLUSTERED
(
[会员名]ASC
)WITH(PAD_INDEX=OFF,STATISTICS_NORECOMPUTE=OFF,IGNORE_DUP_KEY=OFF,ALLOW_ROW_LOCKS=ON,ALLOW_PAGE_LOCKS=ON)ON[PRIMARY]
)ON[PRIMARY]
创建详细订单表
CREATETABLE[dbo].[详细订单表](
[订单编号][int]NULL,
[会员名][char](12)NULL,
[电影编号][int]NULL,
[数量][int]NULL
)ON[PRIMARY]
创建购物车视图
SETANSI_NULLSON
GO
SETQUOTED_IDENTIFIERON
GO
ALTERVIEW[dbo].[购物车视图]
AS
SELECTdbo.购物车表.购物车编号,dbo.购物车表.会员名,dbo.购物车表.电影编号,dbo.购物车表.数量,dbo.电影表.电影名,dbo.电影表.价格
FROMdbo.购物车表INNERJOIN
dbo.电影表ONdbo.购物车表.电影编号=dbo.电影表.电影编号
创建详细订单视图
ALTERVIEW[dbo].[详细订单视图]
AS
SELECTdbo.订单表.订单编号,dbo.订单表.会员名,dbo.订单表.发货方式,dbo.订单表.订单日期,dbo.订单表.付款方式,dbo.订单表.是否发货,dbo.订单表.备注,
dbo.详细订单表.数量,dbo.详细订单表.电影编号,dbo.电影表.电影名,dbo.电影表.价格,dbo.订单表.总金额
FROMdbo.订单表INNERJOIN
dbo.详细订单表ONdbo.订单表.订单编号=dbo.详细订单表.订单编号INNERJOIN
dbo.电影表ONdbo.详细订单表.电影编号=dbo.电影表.电影编号
存储过程
ALTERprocedure[dbo].[添加电影计划]
@电影编号int,
@电影名char(20),
@价格money,
@时长char(10),
@上映时间datetime,
@电影简介char(200),
@票数int,
@图片char(60),
@返回值char(50)output
as
begin
if(selectCOUNT(*)from电影表where电影编号=@电影编号)>0
set@返回值='库中已有,请先重新信息'
return-1
end
insertinto电影表
values(@电影编号,@电影名,@价格,@时长,@上映时间,@电影简介,@票数,@图片);
set@返回值='添加成功'
return1
网页界面
定义一个DB类
usingSystem;
usingSystem.Data;
usingSystem.Configuration;
usingSystem.Web;
usingSystem.Web.Security;
usingSystem.Web.UI;
usingSystem.Web.UI.WebControls;
usingSystem.Web.UI.WebControls.WebParts;
usingSystem.Web.UI.HtmlControls;
usingSystem.Data.SqlClient;
///
///DB的摘要说明
///
publicclassDB
{
publicSqlConnectionCon=newSqlConnection();
publicSqlCommandCom=newSqlCommand();
publicSqlDataAdapterDa=newSqlDataAdapter();
publicDataSetDs=newDataSet();
publicDB()
{
//
//TODO:
在此处添加构造函数逻辑
//
}
//定义一个用于返回数据库连接字符串的方法
publicStringGetConnectionString()
{
StringConStr;
ConStr=@"DataSource=.\SQL2005;InitialCatalog=电影售票;PersistSecurityInfo=True;UserID=sa;Password=sql2005";
returnConStr;
}
//定义一个用于返回数据集的公共查询方法
publicDataSetGetDataTableBySql(StringSqlStr)
{
Con.ConnectionString=GetConnectionString();
Com.Connection=Con;
Com.CommandText=SqlStr;
Da.SelectCommand=Com;
try
{
Ds.Clear();
Con.Open();
Da.Fill(Ds);
Con.Close();
}
catch(SqlException)
{
Con.Close();
}
returnDs;
}
publicboolGetBoolBySql(StringSqlStr)
{
Con.ConnectionString=GetConnectionString();
Com.Connection=Con;
Com.CommandText=SqlStr;
Da.SelectCommand=Com;
try
{
Ds.Clear();
Con.Open();
Da.Fill(Ds);
Con.Close();
}
catch(SqlException)
{
Con.Close();
}
if(Ds.Tables[0].Rows.Count!
=0)
returntrue;
else
returnfalse;
}
//定义一个用于返回执行数据更新操作是否成功标志的方法
publicBooleanUpdateDataBySql(StringSqlStr)
{
Con.ConnectionString=GetConnectionString();
Com.Connection=Con;
Com.CommandText=SqlStr;
try
{
Con.Open();
Com.ExecuteNonQuery();
Con.Close();
returntrue;
}
catch(SqlException)
{
Con.Close();
returnfalse;
}
}
}
主界面有购物车,订单查询,账号登陆,电影信息显示,管理员登陆
账号登陆
protectedvoidButton1_Click(objectsender,EventArgse)
SqlStr="select*from会员表where会员名='"+this.TextBox1.Text+"'and密码='"+this.TextBox2.Text+"'";
Ds=db.GetDataTableBySql(SqlStr);
try
{
if(Ds.Tables[0].Rows.Count==0)
{
this.Label1.Text="用户名或密码错误,请重试!
";
this.TextBox1.Focus();
}
else
{
this.Label1.Text="用户"+this.TextBox1.Text+"恭喜您登录成功!
";
Session["UserName"]=this.TextBox1.Text;
}
}
catch(Exception)
{
this.Label1.Text="没有得到任何数据,请重试!
";
}
}
注册用户
protectedvoidbtn_Register_Click(objectsender,EventArgse)
{
StringMd5_User_Pwd=FormsAuthentication.HashPasswordForStoringInConfigFile(this.txt_User_Pwd.Text,"MD5");
DBdb=newDB();
SqlConnectionconn=newSqlConnection(@"DataSource=.\SQL2005;InitialCatalog=电影售票;PersistSecurityInfo=True;UserID=sa;Password=sql2005");
conn.Open();
StringSqlStr="insertinto会员表(会员名,密码,名字,性别,出生日期,联系地址,邮政编码,联系电话)"
+"values('"+this.txt_User_Name.Text+"','"+Md5_User_Pwd+"','"+this.txt_Rel_Name.Text+"',"
+"'"+this.DDL_Sex.SelectedItem.Text+"','"+this.DDL_Year.SelectedItem.Text+"-"+this.DDl_Month.SelectedItem.Text+"-"+this.DDL_Day.SelectedItem.Text+"',"
+"'"+this.txt_Address.Text+"','"+this.txt_Postalcode.Text+"','"+this.txt_Tel.Text+"')";
BooleanInsertResult;
SqlCommandcmd=newSqlCommand(SqlStr,conn);
inti=Convert.ToInt32(cmd.ExecuteNonQuery());
if(i==1)
{
this.Labinfo.Text="恭喜您注册成功!
";
}
else
{
this.Labinfo.Text="对不起,注册失败,请重试!
";
this.txt_User_Name.Focus();
}
}
显示电影
register.aspx;
DataListID="DataList1"runat="server"RepeatColumns="5"Width="768px" onselectedindexchanged="DataList1_SelectedIndexChanged"> <%#DataBinder.Eval(Container.DataItem,"电影名")%>
DataList>
数据库调用cs代码
SqlStr="select*from电影表";
Ds=db.GetDataTableBySql(SqlStr);
try
{
if(Ds.Tables[0].Rows.Count!
=0)
{
this.DataList1.DataSource=Ds.Tables[0].DefaultView;
this.DataList1.DataBind();
}
}
catch(Exception)
{
Response.Write("");
}
电影详细介绍
ticketdetalis.aspx
if(Page.IsPostBack==false)
{
Ticket_ID=Request.QueryString.Get(0).ToString().Trim();
SqlStr="select*from电影表where电影编号="+Ticket_ID;
Ds=db.GetDataTableBySql(SqlStr);
try
{
if(Ds.Tables[0].Rows.Count!
=0)
{
this.Repeater1.DataSource=Ds.Tables[0].DefaultView;
this.Repeater1.DataBind();
Session["ticket_id"]=Ticket_ID;
}
}
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 电影 销售 管理 系统