电影销售管理系统Word格式文档下载.docx
《电影销售管理系统Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《电影销售管理系统Word格式文档下载.docx(30页珍藏版)》请在冰豆网上搜索。
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
电影简介
200
7
票数
8
图片
60
2订单表结构
订单编号
会员名
订单日期
发货方式
付款方式
总金额
Float
是否发货
Bit
备注
Next
3购物车表结构
购物车编号
12
外键
数量
4管理员表结构
用户名
密码
32
权限
5会员表结构
名字
性别
出生日期
联系地址
nchar
联系电话
13
邮政编码
6详细订单表结构
3.3源程序代码
创建数据库电影售票
创建6个表,两个视图
创建电影表
USE[电影售票]
GO
/******对象:
Table[dbo].[电影表]脚本日期:
12/23/201115:
57:
34******/
SETANSI_NULLSON
SETQUOTED_IDENTIFIERON
SETANSI_PADDINGON
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
创建管理员表
CREATETABLE[dbo].[管理员表](
[用户名][char](20)NOTNULL,
[密码][char](32)NULL,
[权限][int]NULL
创建会员表
CREATETABLE[dbo].[会员表](
[会员名][char](12)NOTNULL,
[名字][char](20)NULL,
[性别][char]
(2)NULL,
[出生日期][datetime]NULL,
[联系地址][nchar](60)NULL,
[联系电话][char](13)NULL,
[邮政编码][char](6)NULL,
CONSTRAINT[PK_会员表]PRIMARYKEYCLUSTERED
[会员名]ASC
创建详细订单表
CREATETABLE[dbo].[详细订单表](
[订单编号][int]NULL,
[数量][int]NULL
创建购物车视图
ALTERVIEW[dbo].[购物车视图]
AS
SELECTdbo.购物车表.购物车编号,dbo.购物车表.会员名,dbo.购物车表.电影编号,dbo.购物车表.数量,dbo.电影表.电影名,dbo.电影表.价格
FROMdbo.购物车表INNERJOIN
dbo.电影表ONdbo.购物车表.电影编号=dbo.电影表.电影编号
创建详细订单视图
ALTERVIEW[dbo].[详细订单视图]
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电影编号=@电影编号)>
set@返回值='
库中已有,请先重新信息'
return-1
end
insertinto电影表
values(@电影编号,@电影名,@价格,@时长,@上映时间,@电影简介,@票数,@图片);
添加成功'
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;
///<
summary>
///DB的摘要说明
/summary>
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)
returnDs;
publicboolGetBoolBySql(StringSqlStr)
if(Ds.Tables[0].Rows.Count!
=0)
returntrue;
else
returnfalse;
//定义一个用于返回执行数据更新操作是否成功标志的方法
publicBooleanUpdateDataBySql(StringSqlStr)
Com.CommandText=SqlStr;
Com.ExecuteNonQuery();
returntrue;
returnfalse;
}
主界面有购物车,订单查询,账号登陆,电影信息显示,管理员登陆
账号登陆
protectedvoidButton1_Click(objectsender,EventArgse)
SqlStr="
select*from会员表where会员名='
"
+this.TextBox1.Text+"
'
and密码='
+this.TextBox2.Text+"
Ds=db.GetDataTableBySql(SqlStr);
if(Ds.Tables[0].Rows.Count==0)
this.Label1.Text="
用户名或密码错误,请重试!
this.TextBox1.Focus();
this.Label1.Text="
用户"
+this.TextBox1.Text+"
恭喜您登录成功!
Session["
UserName"
]=this.TextBox1.Text;
catch(Exception)
没有得到任何数据,请重试!
注册用户
protectedvoidbtn_Register_Click(objectsender,EventArgse)
StringMd5_User_Pwd=FormsAuthentication.HashPasswordForStoringInConfigFile(this.txt_User_Pwd.Text,"
MD5"
);
DBdb=newDB();
SqlConnectionconn=newSqlConnection(@"
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="
恭喜您注册成功!
对不起,注册失败,请重试!
this.txt_User_Name.Focus();
显示电影
register.aspx;
<
asp:
DataListID="
DataList1"
runat="
server"
RepeatColumns="
5"
Width="
768px"
onselectedindexchanged="
DataList1_SelectedIndexChanged"
>
<
ItemTemplate>
<
table>
<
tr>
<
tdwidth="
110"
valign="
top"
height="
112"
>
<
ahref='
ticketdetails.aspx?
ticketid=<
%#DataBinder.Eval(Container.DataItem,"
电影编号"
)%>
imgwidth=80height=110src='
图片"
)%>
/a>
/td>
/tr>
50"
ticketdetalis.aspx?
<
电影名"
/table>
<
/ItemTemplate>