电影销售管理系统_第1页
电影销售管理系统_第2页
电影销售管理系统_第3页
电影销售管理系统_第4页
电影销售管理系统_第5页
已阅读5页,还剩19页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、精选优质文档-倾情为你奉上电影售票预定系统档案一摘要 随着人们生活水平的不断提高,人们生活的消费和需求也越来越旺盛。电影院售票系统可以实现影片的登记和电影票的购买, 可以方便 的进行电影以及实时影票信息的查询等,从而做到方便的售票操作, 方便了工作人员的同时也让顾客能够轻轻松松地买票, 我们的宗旨是 一个字:快! ;两个字:便捷。因此,该系统主要根据实际需求,划分了电影信息管理,每场电影的坐位信息管理,每个电影的预定情况,并选用VisualStudio.NET2008开发工具和SQLServer2005数据库,采用B/S模式实现了从客户来访、报价、订购等多个环节数据的跟踪管理服务,基本上满足了

2、电影销售管理流程。 关键词:销售管理;B/S模式;数据库;.NET 1.2 定义: 查询:对数据库的操作的一种,用于搜索数据信息。 插入:对数据库的操作的一种,用于将数据存入数据库中。 更新:对数据库的操作的一种,用于更改数据库中的数据信息。 软件结构图:反映软件系统的功能模块之间的关系的数据图。二电影售票预定系统的需求分析2.1系统需求 本电影售票预定系统是一个协助影院进行全面管理的一个信息管理系统。本管理系统在实现上应满足以下需求: 1.能达到网站和影院间的无缝链接和数据的共享。 2.为系统提供数据支持。 3.不同级别的用户拥有相应的权限使用该系统,从而大大提高了系统的安全性和管理效率。首

3、先将电影信息入库,然后影院通过与客户的交易活动,将相关信息存入库,然后影院通过销售信息的查询获得电影票销售的情况,通过库存查询获得影院的剩票情况。由此可分析系统需要达到以下目标:1. 能很好地完成电影票售前管理。售前管理包括影院信息,电影场次,电影片名信息的入库作业。2. 能详细地记录影院和客户的交易过程,即订票或退票的情况。3. 能详细地记录电影场次跟票数量的关系,即某场的电影和剩余票的关系。4. 能及时准确地获得影院和市场的需求。即通过对电影场次,片名及票务销售的情况信息查询获得相应的结果,以备公司作为,从而安排更好的电影场次。5. 能够对各场电影票销售的情况进行相应的记录。包括对订票,退

4、票,修改等。6. 能够对不同权限的用户进行合理的管理。包括添加用户,删除用户,用户账号和密码管理等。2.2数据字典描述数据字典是各累数据描述的集合。对数据库设计来讲,数据字典是进行详细的数据收集和数据分析所获得的主要结果。数据字典通常包括数据项、数据结构、数据流、数据存储和处理过程5个部分。其中数据项是最小的组成单位,若干个数据项可以组成一个数据结构,数据字典对数据项和数据结构的定义来描述数据流、数据存储的逻辑内容。数据字典是关于数据库中数据的描述,即元数据,而不是数据本身。数据本身将存在物理数据库中,由数据库系统管理。数据字典有助于这些数据的进一步管理和控制,为设计人员和数据库管理员在数据库

5、设计、实现和运行阶段控制有关数据提供依据。2.3 程序描述 各功能详细描述:本系统主要用于电影票预订,所以提供了以下几个子功能:用户注册,用户登陆,电影详细内容,生成订单,退订订单,付款,以及后台方面的电影的添加,以及电影的查询等后台功能。1、用户注册:新用户可以通过注册会员来登陆。2、用户登陆:登陆后的会员才能进行购票,查询订单。3、电影详细内容:点击进入后可以查看电影的详细信息。包括:时长,价格,上映的时间等。4、生成订单:该项功能提供用户选择购买电影票的数量,及取消订单等操作。5、退订功能:会员可以选择是否取消已经生成的电影订单。6、付款:此页面用户可以选择付款方式,并最终确定订单的生成

6、。7、后台电影的添加:该功能只有机场管理员有权力操作,管理员可以通过影院电影场次的安排来增加电影的内容,信息等操作。三概念结构设计3.1软件结构:电影售票预定系统数据输入数据输出数据输入页面信息录入用户登陆登陆信息 数据录入 数据信息 数据信息 数据信息 数据处理、查询数据判断数据信息 准备SQL判断查询数据库操作数据信息 判断信息 判断结果 数据信息 返回订单等确定错误原因返回影片信息生产订单显示错误原因确定订单数据信息 3.2 E-R图向关系模型转换:电影售票预定系统的基本ER图下面分别介绍表的结构:1 电影表结构编号字段名称结构类型大小说明1电影编号Int主键2电影名char20主键3价

7、格Money不允许为空4时长Char10不允许为空5上映时间Datetime允许为空6电影简介Char200不允许为空7票数Int不允许为空8图片Char60不允许为空2 订单表结构编号字段名称结构类型大小说明1订单编号Int主键2会员名char20不允许为空3订单日期Datetime20不允许为空4发货方式Char20不允许为空5付款方式Char20不允许为空6总金额Float不允许为空7是否发货Bit不允许为空8备注Next允许为空3 购物车表结构编号字段名称结构类型大小说明1购物车编号Int不允许为空2会员名Char12外键3电影编号Int不允许为空4数量Int不允许为空4 管理员表结构

8、编号字段名称结构类型大小说明1用户名Char20不允许为空2密码Char32不允许为空3权限Int不允许为空5 会员表结构编号字段名称结构类型大小说明1会员名Char12不允许为空2名字Char20不允许为空3密码Char32不允许为空4性别Char2允许为空5出生日期Datetime 允许为空6联系地址nchar60不允许为空7联系电话Char13不允许为空8邮政编码Char6不允许为空6 详细订单表结构编号字段名称结构类型大小说明1订单编号Int外键2会员名Char12不允许为空3电影编号Int不允许为空4数量Int不允许为空3.3 源程序代码创建数据库 电影售票创建6个表,两个视图创建电

9、影表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创建订单表C

10、REATE 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 =

11、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_L

12、OCKS = 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) NUL

13、L,邮政编码 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)

14、 ON PRIMARY创建购物车视图SET ANSI_NULLS ONGOSET QUOTED_IDENTIFIER ONGOALTER VIEW dbo.购物车视图ASSELECT dbo.购物车表.购物车编号, dbo.购物车表.会员名, dbo.购物车表.电影编号, dbo.购物车表.数量, dbo.电影表.电影名, dbo.电影表.价格FROM dbo.购物车表INNER JOIN dbo.电影表ON dbo.购物车表.电影编号= dbo.电影表.电影编号创建详细订单视图ALTER VIEW dbo.详细订单视图ASSELECT dbo.订单表.订单编号, dbo.订单表.会员名, d

15、bo.订单表.发货方式, dbo.订单表.订单日期, dbo.订单表.付款方式, dbo.订单表.是否发货, dbo.订单表.备注, dbo.详细订单表.数量, dbo.详细订单表.电影编号, dbo.电影表.电影名, dbo.电影表.价格, dbo.订单表.总金额FROM dbo.订单表INNER JOIN dbo.详细订单表ON dbo.订单表.订单编号= dbo.详细订单表.订单编号INNER JOIN dbo.电影表ON dbo.详细订单表.电影编号= dbo.电影表.电影编号存储过程ALTER procedure dbo.添加电影计划电影编号int,电影名char(20),价格mon

16、ey,时长char(10),上映时间datetime,电影简介char(200),票数int,图片char(60),返回值char(50)outputas beginif (select COUNT(*) from 电影表where 电影编号=电影编号)0set 返回值=库中已有,请先重新信息return -1endinsert into 电影表values(电影编号,电影名,价格,时长,上映时间,电影简介,票数,图片);set 返回值=添加成功return 1网页界面定义一个DB类using System;using System.Data;using System.Configuratio

17、n;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;/ / DB 的摘要说明/ public class DB public SqlConnection Con = new SqlConnection(); public SqlCommand Com =

18、 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;Pass

19、word=sql2005; return ConStr; /定义一个用于返回数据集的公共查询方法 public DataSet GetDataTableBySql(String SqlStr) 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(

20、); return Ds; public bool GetBoolBySql(String SqlStr) 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) return t

21、rue ; else return false ; /定义一个用于返回执行数据更新操作是否成功标志的方法 public Boolean UpdateDataBySql(String SqlStr) Con.ConnectionString = GetConnectionString(); Com.Connection = Con; Com.CommandText =SqlStr; try Con.Open(); Com.ExecuteNonQuery(); Con.Close(); return true; catch (SqlException) Con.Close(); return fa

22、lse; 主界面有购物车,订单查询,账号登陆,电影信息显示,管理员登陆账号登陆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.Tables0.Rows.Count = 0) this.Label1.Text = 用户名或密码错误,请重试!; this.T

23、extBox1.Focus(); else this.Label1.Text =用户 +this.TextBox1.Text + 恭喜您登录成功!; SessionUserName = this.TextBox1.Text; catch (Exception) this.Label1.Text = 没有得到任何数据,请重试!; 注册用户protected void btn_Register_Click(object sender, EventArgs e) String Md5_User_Pwd = FormsAuthentication.HashPasswordForStoringInCon

24、figFile(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_N

25、ame.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 + );

26、Boolean InsertResult; SqlCommand cmd = new SqlCommand(SqlStr, conn); int i = Convert.ToInt32(cmd.ExecuteNonQuery(); if (i=1) this.Labinfo.Text = 恭喜您注册成功!; else this.Labinfo.Text = 对不起,注册失败,请重试!; this.txt_User_Name.Focus (); 显示电影register.aspx; a href =ticketdetails.aspx?ticketid=img width =80 height

27、=110 src =a href =ticketdetalis.aspx?ticketid= 数据库调用cs代码SqlStr = select * from 电影表; Ds = db.GetDataTableBySql(SqlStr); try if (Ds.Tables0.Rows.Count != 0) this.DataList1.DataSource = Ds.Tables0.DefaultView; this.DataList1.DataBind(); catch (Exception) Response.Write(alert(没有获得任何数据,请检查!); 电影详细介绍ticke

28、tdetalis.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.Tables0.Rows.Count != 0) this.Repeater1.DataSource = Ds.Tables0.DefaultView; this.Repeater1.DataBind()

29、; Sessionticket_id = Ticket_ID; catch (Exception) Response.Write(alert(没有获得任何数据,请检查!); 购物车调用。Net的数据库控件 电影编号 电影名称 价格 数量 修改数量 删除 asp:TextBox ID=count runat=server Text = Width=30 使用.NET数据库控件if (Page.IsPostBack = false) Ticket_ID = Request.QueryString.Get(0).ToString().Trim(); SqlStr = select * from 电影

30、表 where 电影编号= + Ticket_ID; Ds = db.GetDataTableBySql(SqlStr); try if (Ds.Tables0.Rows.Count != 0) this.Repeater1.DataSource = Ds.Tables0.DefaultView; this.Repeater1.DataBind(); Sessionticket_id = Ticket_ID; catch (Exception) Response.Write(alert(没有获得任何数据,请检查!); 价格结算public partial class order : Syste

31、m.Web.UI.Page String SqlStr; DB db = new DB(); DataSet Ds = new DataSet(); /绑定数据方法 public void DataGridViewBind() SqlStr = select * from 购物车视图 where 会员名= + SessionUsername + ; Ds = db.GetDataTableBySql(SqlStr); try this.GridView1.DataSource = Ds.Tables0.DefaultView; this.GridView1.DataBind(); catch

32、(Exception) Response.Write(alert(没有得到数据,请重试!); /计算总金额 public void total_money() SqlStr = select * from 购物车视图 where 会员名= + SessionUsername + ; Ds = db.GetDataTableBySql(SqlStr); try if (Ds.Tables0.Rows.Count != 0) Double price, sum = 0; int count; for (int i = 0; i Ds.Tables0.Rows.Count; i+)/通过循环得到总金

33、额 price = Double.Parse(Ds.Tables0.Rowsi价格.ToString(); count = int.Parse(Ds.Tables0.Rowsi数量.ToString(); sum += price * count; this.total_money_txt.Text = sum.ToString(); catch (Exception) Response.Write(alert(没有得到数据,请重试!); protected void Page_Load(object sender, EventArgs e) if (Page.IsPostBack = fal

34、se) /SessionUsername = ning; if (SessionUsername != null) DataGridViewBind(); total_money(); else Response.Redirect(Error.aspx); protected void orderbtn_Click(object sender, EventArgs e) int max_order; SqlStr = select max(订单编号) from 订单表; Ds = db.GetDataTableBySql(SqlStr); /判断订单表中是否已有记录,如果有,则直接获取胜订单编

35、号;否则,将最大订单编号设为1 if (Ds.Tables0.Rows00.ToString() != ) max_order = int.Parse(Ds.Tables0.Rows00.ToString() + 1; else max_order = 1; /生成订单 SqlStr = insert into 订单表(订单编号,会员名,发货方式,付款方式,总金额,是否发货,备注) + values( + max_order.ToString() + , + SessionUsername + , + this.ddlconsignment.SelectedItem.Text + , + +

36、this.ddlpayment.SelectedItem.Text + , + this.total_money_txt.Text.ToString().Trim() + ,0, + this.remarktxtbox.Text + ); if (db.UpdateDataBySql(SqlStr) Boolean UpdateResult; /生成详细订单 SqlStr = insert into 详细订单表(会员名,电影编号,数量) select 会员名,电影编号,数量 from 购物车表 where + 会员名= + SessionUsername + ; UpdateResult = db.UpdateDataBySql(SqlStr); SqlStr = update 详细订单表 set 订单编号= + max_order.ToString() + where 订单编号 is null; UpdateResult = db.UpdateDataBySql(SqlStr); /删除购物车中的数据 SqlStr = delete from 购物车表 where 会员名= + Se

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论