当前位置:文档之家› 电影销售管理系统

电影销售管理系统

电影售票预定系统档案一.摘???要随着人们生活水平的不断提高,人们生活的消费和需求也越来越旺盛。

电影院售票系统可以实现影片的登记和电影票的购买,可以方便的进行电影以及实时影票信息的查询等,从而做到方便的售票操作,方便了工作人员的同时也让顾客能够轻轻松松地买票,我们的宗旨是一个字:快!;两个字:便捷。

因此,该系统主要根据实际需求,划分了电影信息管理,每场电影的坐位信息管理,每个电影的预定情况,并选用Visual?Studio?.NET?2008开发工具和?SQL?Server?2005数据库,采用B/S模式实现了从客户来访、报价、订购等多个环节数据的跟踪管理服务,基本上满足了电影销售管理流程。

关键词:销售管理;B/S模式;数据库;.NET1.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.2 E-R图向关系模型转换:电影售票预定系统的基本E-R图下面分别介绍表的结构:1 电影表结构2 订单表结构3 购物车表结构4 管理员表结构5 会员表结构6 详细订单表结构3.3 源程序代码创建数据库电影售票创建6个表,两个视图创建电影表USE [电影售票]GO/****** 对象: Table [dbo].[电影表] 脚本日期: 12/23/2011 15:57:34 ******/SET ANSI_NULLS ONGOSET QUOTED_IDENTIFIER ONGOSET ANSI_PADDING ONGOCREATE TABLE [dbo].[电影表]([电影编号] [int] NOT NULL,[电影名] [char](20)NULL,[价格] [money] NULL,[时长] [char](10)NULL,[上映时间] [datetime] NULL,[电影简介] [char](200)NULL,[票数] [int] NULL,[图片] [char](60)NULL)ON [PRIMARY]创建订单表CREATE TABLE [dbo].[订单表]([订单编号] [int] NOT NULL,[会员名] [char](20)NULL,[订单日期] [datetime] NULL,[发货方式] [char](20)NULL,[付款方式] [char](20)NULL,[总金额] [float] NULL,[是否发货] [bit] NULL,[备注] [ntext] NULL,CONSTRAINT [PK_订单表] PRIMARY KEY CLUSTERED([订单编号] 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]创建购物车表CREATE TABLE [dbo].[购物车表]([购物车编号] [int] NOT NULL,[会员名] [char](12)NULL,[电影编号] [int] NULL,[数量] [int] NULL,CONSTRAINT [PK_购物车表] PRIMARY KEY CLUSTERED([购物车编号] ASC)WITH(PAD_INDEX=OFF,STATISTICS_NORECOMPUTE=OFF,IGNORE_DUP_KEY =OFF,ALLOW_ROW_LOCKS=ON,ALLOW_PAGE_LOCKS=ON)ON [PRIMARY])ON [PRIMARY]创建管理员表CREATE TABLE [dbo].[管理员表]([用户名] [char](20)NOT NULL,[密码] [char](32)NULL,[权限] [int] NULL)ON [PRIMARY]创建会员表CREATE TABLE [dbo].[会员表]([会员名] [char](12)NOT NULL,[名字] [char](20)NULL,[密码] [char](32)NULL,[性别] [char](2)NULL,[出生日期] [datetime] NULL,[联系地址] [nchar](60)NULL,[联系电话] [char](13)NULL,[邮政编码] [char](6)NULL,CONSTRAINT [PK_会员表] PRIMARY KEY CLUSTERED([会员名] ASC)WITH(PAD_INDEX=OFF,STATISTICS_NORECOMPUTE=OFF,IGNORE_DUP_KEY =OFF,ALLOW_ROW_LOCKS=ON,ALLOW_PAGE_LOCKS=ON)ON [PRIMARY])ON [PRIMARY]创建详细订单表CREATE TABLE [dbo].[详细订单表]([订单编号] [int] NULL,[会员名] [char](12)NULL,[电影编号] [int] NULL,[数量] [int] NULL)ON [PRIMARY]创建购物车视图SET ANSI_NULLS ONGOSET QUOTED_IDENTIFIER ONGOALTER VIEW [dbo].[购物车视图]ASSELECT dbo.购物车表.购物车编号,dbo.购物车表.会员名,dbo.购物车表.电影编号, dbo.购物车表.数量, dbo.电影表.电影名, dbo.电影表.价格FROM dbo.购物车表INNER JOINdbo.电影表ON dbo.购物车表.电影编号= dbo.电影表.电影编号创建详细订单视图ALTER VIEW [dbo].[详细订单视图]ASSELECT dbo.订单表.订单编号, dbo.订单表.会员名, dbo.订单表.发货方式, dbo.订单表.订单日期, dbo.订单表.付款方式, dbo.订单表.是否发货, dbo.订单表.备注,dbo.详细订单表.数量, dbo.详细订单表.电影编号, dbo.电影表.电影名, dbo.电影表.价格, dbo.订单表.总金额FROM dbo.订单表INNER JOINdbo.详细订单表ON dbo.订单表.订单编号= dbo.详细订单表.订单编号INNER JOINdbo.电影表ON dbo.详细订单表.电影编号= dbo.电影表.电影编号存储过程ALTER procedure [dbo].[添加电影计划]@电影编号int,@电影名char(20),@价格money,@时长char(10),@上映时间datetime,@电影简介char(200),@票数int,@图片char(60),@返回值char(50)outputasbeginif(select COUNT(*)from电影表where电影编号=@电影编号)>0set @返回值='库中已有,请先重新信息'return-1endinsert into电影表values(@电影编号,@电影名,@价格,@时长,@上映时间,@电影简介,@票数,@图片);set @返回值='添加成功'return 1网页界面定义一个DB类using System;using System.Data;using System.Configuration;using System.Web;using System.Web.Security;using System.Web.UI;using System.Web.UI.WebControls;using System.Web.UI.WebControls.WebParts;using System.Web.UI.HtmlControls;using System.Data.SqlClient;///<summary>/// DB 的摘要说明///</summary>public class DB{public SqlConnection Con = new SqlConnection();public SqlCommand Com = new SqlCommand();public SqlDataAdapter Da = new SqlDataAdapter();public DataSet Ds = new DataSet();public DB(){//// TODO: 在此处添加构造函数逻辑//}//定义一个用于返回数据库连接字符串的方法public String GetConnectionString(){String ConStr;ConStr = @"Data Source=.\SQL2005;Initial Catalog=电影售票;Persist Security Info=True;User ID=sa;Password=sql2005";return ConStr;}//定义一个用于返回数据集的公共查询方法public DataSet GetDataTableBySql(String SqlStr){Con.ConnectionString = GetConnectionString();Com.Connection = Con;mandText = SqlStr;Da.SelectCommand = Com;try{Ds.Clear();Con.Open();Da.Fill(Ds);Con.Close();}catch (SqlException){Con.Close();}return Ds;}public bool GetBoolBySql(String SqlStr){Con.ConnectionString = GetConnectionString();Com.Connection = Con;mandText = 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)return true ;elsereturn false ;}//定义一个用于返回执行数据更新操作是否成功标志的方法public Boolean UpdateDataBySql(String SqlStr){Con.ConnectionString = GetConnectionString();Com.Connection = Con;mandText =SqlStr;try{Con.Open();Com.ExecuteNonQuery();Con.Close();return true;}catch (SqlException){Con.Close();return false;}}}主界面有购物车,订单查询,账号登陆,电影信息显示,管理员登陆账号登陆protected void Button1_Click(object sender, EventArgs e)SqlStr = "select * from 会员表 where 会员名='" + this.TextBox1.Text + "' and 密码='" + this.TextBox2.Text + "'";Ds = db.GetDataTableBySql(SqlStr);try{if (Ds.Tables[0].Rows.Count == 0){bel1.Text = "用户名或密码错误,请重试!";this.TextBox1.Focus();}else{bel1.Text ="用户 "+this.TextBox1.Text + " 恭喜您登录成功!";Session["UserName"] = this.TextBox1.Text;}}catch (Exception){bel1.Text = "没有得到任何数据,请重试!";}}注册用户protected void btn_Register_Click(object sender, EventArgs e){String Md5_User_Pwd =FormsAuthentication.HashPasswordForStoringInConfigFile(this.txt_User_Pwd.Text, "MD5");DB db = new DB();SqlConnection conn = new SqlConnection(@"Data Source=.\SQL2005;Initial Catalog=电影售票;Persist Security Info=True;User ID=sa;Password=sql2005");conn.Open();String SqlStr = "insert into 会员表(会员名,密码,名字,性别,出生日期,联系地址,邮政编码,联系电话)"+ "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 + "')";Boolean InsertResult;SqlCommand cmd = new SqlCommand(SqlStr, conn);int i = Convert.ToInt32(cmd.ExecuteNonQuery());if (i==1){binfo.Text = "恭喜您注册成功!";}else{binfo.Text = "对不起,注册失败,请重试!";this.txt_User_Name.Focus ();}}显示电影register.aspx;<asp:DataList ID="DataList1"runat="server"RepeatColumns="5"Width="768px"onselectedindexchanged="DataList1_SelectedIndexChanged"><ItemTemplate><table><tr><td width="110"valign="top"height="112"><a href='ticketdetails.aspx?ticketid=<%# DataBinder.Eval(Container.DataItem,"电影编号")%>'><img width=80height=110src='<%#DataBinder.Eval(Container.DataItem,"图片") %>'></a></td></tr><tr><td width="110"valign="top"height="50"><a href='ticketdetalis.aspx?ticketid=<%# DataBinder.Eval(Container.DataItem,"电影编号")%>'><%#DataBinder.Eval(Container.DataItem,"电影名") %></a></td></tr></table></ItemTemplate></asp: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("<script>alert('没有获得任何数据,请检查!')</script>");}电影详细介绍ticketdetalis.aspxif (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;}}catch (Exception){Response.Write("<script>alert('没有获得任何数据,请检查!')</script>"); }}购物车调用。

相关主题