版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、WORD.23/23电影售票预定系统档案一摘要 随着人们生活水平的不断提高,人们生活的消费和需求也越来越旺盛。电影院售票系统可以实现影片的登记和电影票的购买, 可以方便 的进行电影以与实时影票信息的查询等,从而做到方便的售票操作, 方便了工作人员的同时也让顾客能够轻轻松松地买票, 我们的宗旨是 一个字:快! ;两个字:便捷。因此,该系统主要根据实际需求,划分了电影信息管理,每场电影的坐位信息管理,每个电影的预定情况,并选用VisualStudio.NET2008开发工具和SQLServer2005数据库,采用B/S模式实现了从客户来访、报价、订购等多个环节数据的跟踪管理服务,基本上满足了电影销
2、售管理流程。 关键词:销售管理;B/S模式;数据库;.NET 1.2 定义: 查询:对数据库的操作的一种,用于搜索数据信息。 插入:对数据库的操作的一种,用于将数据存入数据库中。 更新:对数据库的操作的一种,用于更改数据库中的数据信息。 软件结构图:反映软件系统的功能模块之间的关系的数据图。二电影售票预定系统的需求分析2.1系统需求 本电影售票预定系统是一个协助影院进行全面管理的一个信息管理系统。本管理系统在实现上应满足以下需求: 1.能达到和影院间的无缝和数据的共享。 2.为系统提供数据支持。 3.不同级别的用户拥有相应的权限使用该系统,从而大大提高了系统的安全性和管理效率。首先将电影信息入
3、库,然后影院通过与客户的交易活动,将相关信息存入库,然后影院通过销售信息的查询获得电影票销售的情况,通过库存查询获得影院 HYPERLINK :/mind.studa / 目前的剩票情况。由此可分析系统需要达到以下目标:1. 能很好地完成电影票售前管理。售前管理包括影院信息,电影场次,电影片名信息的入库作业。2. 能详细地记录影院和客户的交易过程,即订票或退票的情况。3. 能详细地记录电影场次跟票数量的关系,即某场的电影和剩余票的关系。4. 能与时准确地获得影院和市场的需求。即通过对电影场次,片名与票务销售的情况信息查询获得相应的结果,以备公司作为 HYPERLINK :/book.studa
4、 / 参考,从而安排更好的电影场次。5. 能够对各场电影票销售的情况进行相应的记录。包括对订票,退票,修改等。6. 能够对不同权限的用户进行合理的管理。包括添加用户,删除用户,用户账号和密码管理等。2.2数据字典描述数据字典是各累数据描述的集合。对数据库设计来讲,数据字典是进行详细的数据收集和数据分析所获得的主要结果。数据字典通常包括数据项、数据结构、数据流、数据存储和处理过程5个部分。其中数据项是最小的组成单位,若干个数据项可以组成一个数据结构,数据字典对数据项和数据结构的定义来描述数据流、数据存储的逻辑容。数据字典是关于数据库中数据的描述,即元数据,而不是数据本身。数据本身将存在物理数据库
5、中,由数据库系统管理。数据字典有助于这些数据的进一步管理和控制,为设计人员和数据库管理员在数据库设计、实现和运行阶段控制有关数据提供依据。2.3 程序描述 各功能详细描述:本系统主要用于电影票预订,所以提供了以下几个子功能:用户注册,用户登陆,电影详细容,生成订单,退订订单,付款,以与后台方面的电影的添加,以与电影的查询等后台功能。1、用户注册:新用户可以通过注册会员来登陆。2、用户登陆:登陆后的会员才能进行购票,查询订单。3、电影详细容:点击进入后可以查看电影的详细信息。包括:时长,价格,上映的时间等。4、生成订单:该项功能提供用户选择购买电影票的数量,与取消订单等操作。5、退订功能:会员可
6、以选择是否取消已经生成的电影订单。6、付款:此页面用户可以选择付款方式,并最终确定订单的生成。7、后台电影的添加:该功能只有机场管理员有权力操作,管理员可以通过影院电影场次的安排来增加电影的容,信息等操作。三概念结构设计3.1软件结构:电影售票预定系统数据输入数据输出数据输入页面信息录入用户登陆登陆信息 数据录入 数据信息 数据信息 数据信息 数据处理、查询数据判断数据信息 准备SQL判断查询数据库操作数据信息 判断信息 判断结果 数据信息 返回订单等确定错误原因返回影片信息生产订单显示错误原因确定订单数据信息 3.2 E-R图向关系模型转换:电影售票预定系统的基本ER图下面分别介绍表的结构:
7、1 电影表结构编号字段名称结构类型大小说明1电影编号Int主键2电影名char20主键3价格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不允许为
8、空2会员名Char12外键3电影编号Int不允许为空4数量Int不允许为空4 管理员表结构编号字段名称结构类型大小说明1用户名Char20不允许为空2密码Char32不允许为空3权限Int不允许为空5 会员表结构编号字段名称结构类型大小说明1会员名Char12不允许为空2名字Char20不允许为空3密码Char32不允许为空4性别Char2允许为空5出生日期Datetime允许为空6nchar60不允许为空7联系Char13不允许为空8邮政编码Char6不允许为空6 详细订单表结构编号字段名称结构类型大小说明1订单编号Int外键2会员名Char12不允许为空3电影编号Int不允许为空4数量In
9、t不允许为空3.3 源程序代码创建数据库 电影售票创建6个表,两个视图创建电影表USE 电影售票GO/* 对象: Table dbo.电影表 脚本日期: 12/23/2011 15:57:34 */SETANSI_NULLSONGOSETQUOTED_IDENTIFIERONGOSETANSI_PADDINGONGOCREATETABLE dbo.电影表(电影编号 int NOTNULL,电影名 char(20)NULL,价格 money NULL,时长 char(10)NULL,上映时间 datetime NULL,电影简介 char(200)NULL,票数 int NULL,图片 char
10、(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_LO
11、CKS=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
12、_LOCKS=ON)ON PRIMARY)ONPRIMARY创建管理员表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_会员表 PRIMARYK
13、EYCLUSTERED(会员名 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_NULLSONGOSETQUOTED_IDENTIFIERONGOALTERVIEW d
14、bo.购物车视图ASSELECT dbo.购物车表.购物车编号, dbo.购物车表.会员名, dbo.购物车表.电影编号, dbo.购物车表.数量, dbo.电影表.电影名, dbo.电影表.价格FROM dbo.购物车表INNERJOIN dbo.电影表ON dbo.购物车表.电影编号= dbo.电影表.电影编号创建详细订单视图ALTERVIEW dbo.详细订单视图ASSELECT dbo.订单表.订单编号, dbo.订单表.会员名, dbo.订单表.发货方式, dbo.订单表.订单日期, dbo.订单表.付款方式, dbo.订单表.是否发货, dbo.订单表.备注, dbo.详细订单表.
15、数量, dbo.详细订单表.电影编号, dbo.电影表.电影名, dbo.电影表.价格, dbo.订单表.总金额FROM dbo.订单表INNERJOIN dbo.详细订单表ON dbo.订单表.订单编号= dbo.详细订单表.订单编号INNERJOIN dbo.电影表ON dbo.详细订单表.电影编号= dbo.电影表.电影编号存储过程ALTERprocedure dbo.添加电影计划电影编号int,电影名char(20),价格money,时长char(10),上映时间datetime,电影简介char(200),票数int,图片char(60),返回值char(50)outputasbeg
16、inif(selectCOUNT(*)from 电影表where 电影编号=电影编号)0set返回值=库中已有,请先重新信息return-1endinsertinto 电影表values(电影编号,电影名,价格,时长,上映时间,电影简介,票数,图片);set返回值=添加成功return 1网页界面定义一个DB类usingSystem;usingSystem.Data;usingSystem.Configuration;usingSystem.Web;usingSystem.Web.Security;usingSystem.Web.UI;usingSystem.Web.UI.WebControl
17、s;usingSystem.Web.UI.WebControls.WebParts;usingSystem.Web.UI.HtmlControls;usingSystem.Data.SqlClient;/ DB 的摘要说明/publicclassDBpublicSqlConnectionCon = newSqlConnection();publicSqlCommandCom = newSqlCommand();publicSqlDataAdapterDa = newSqlDataAdapter();publicDataSetDs = newDataSet();publicDB()/ TODO:
18、 在此处添加构造函数逻辑/ /定义一个用于返回数据库连接字符串的方法publicStringGetConnectionString() StringConStr;ConStr = Data Source=.SQL2005;Initial Catalog=电影售票;Persist Security Info=True;User ID=sa;Password=sql2005;returnConStr; /定义一个用于返回数据集的公共查询方法publicDataSetGetDataTableBySql(StringSqlStr) Con.ConnectionString = GetConnectio
19、nString();Com.Connection = Con;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;CommandText = SqlStr;Da.Sel
20、ectCommand = Com;try Ds.Clear();Con.Open();Da.Fill(Ds);Con.Close(); catch (SqlException) Con.Close(); if (Ds.Tables 0.Rows.Count !=0)returntrue ;elsereturnfalse ; /定义一个用于返回执行数据更新操作是否成功标志的方法publicBooleanUpdateDataBySql(StringSqlStr) Con.ConnectionString = GetConnectionString();Com.Connection = Con;Co
21、mmandText =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
22、 + ;Ds = db.GetDataTableBySql(SqlStr);try if (Ds.Tables0.Rows.Count = 0) this.Label1.Text = 用户名或密码错误,请重试!;this.TextBox1.Focus(); else this.Label1.Text =用户 +this.TextBox1.Text + 恭喜您登录成功!;SessionUserName = this.TextBox1.Text; catch (Exception) this.Label1.Text = 没有得到任何数据,请重试!; 注册用户protectedvoidbtn_Reg
23、ister_Click(objectsender, EventArgse) StringMd5_User_Pwd = FormsAuthentication.HashPasswordForStoringInConfigFile(this.txt_User_Pwd.Text, MD5);DBdb = newDB();SqlConnectionconn = newSqlConnection(Data Source=.SQL2005;Initial Catalog=电影售票;Persist Security Info=True;User ID=sa;Password=sql2005);conn.Op
24、en();StringSqlStr = 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 +
25、 , + + 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
26、(); 显示电影register.aspx;ahref=ticketdetails.aspx?ticketid=imgwidth=80height=110src=ahref=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(); c
27、atch (Exception) Response.Write(alert(没有获得任何数据,请检查!); 电影详细介绍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.Tables0.Rows.Count != 0) this.Repeater1.
28、DataSource = Ds.Tables0.DefaultView;this.Repeater1.DataBind();Sessionticket_id = Ticket_ID; catch (Exception) Response.Write(alert(没有获得任何数据,请检查!); 购物车调用。Net的数据库控件电影编号电影名称价格数量修改数量删除asp:TextBoxID=countrunat=serverText=Width=30使用.NET数据库控件if (Page.IsPostBack = false) Ticket_ID = Request.QueryString.Get(
29、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();Sessionticket_id = Ticket_ID; catch (Exception) Response.Write(alert(没有获得任何数据,请检查
30、!); 价格结算publicpartialclassorder : System.Web.UI.PageStringSqlStr;DBdb = newDB();DataSetDs = newDataSet();/绑定数据方法publicvoidDataGridViewBind() SqlStr = select * from 购物车视图 where 会员名= + SessionUsername + ;Ds = db.GetDataTableBySql(SqlStr);try this.GridView1.DataSource = Ds.Tables0.DefaultView;this.Grid
31、View1.DataBind(); catch (Exception) Response.Write(alert(没有得到数据,请重试!); /计算总金额publicvoidtotal_money() SqlStr = select * from 购物车视图 where 会员名= + SessionUsername + ;Ds = db.GetDataTableBySql(SqlStr);try if (Ds.Tables0.Rows.Count != 0) Doubleprice, sum = 0;intcount;for (inti = 0; i Ds.Tables0.Rows.Count
32、; i+)/通过循环得到总金额 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(没有得到数据,请重试!); protectedvoidPage_Load(objectsender, EventArgse) if (Page.IsPostBa
33、ck = false) /SessionUsername = ning;if (SessionUsername != null) DataGridViewBind();total_money();else Response.Redirect(Error.aspx); protectedvoidorderbtn_Click(objectsender, EventArgse) intmax_order;SqlStr = select max(订单编号) from 订单表;Ds = db.GetDataTableBySql(SqlStr);/判断订单表中是否已有记录,如果有,则直接获取胜订单编号;否
34、则,将最大订单编号设为1if (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 + , + + this.
35、ddlpayment.SelectedItem.Text + , + this.total_money_txt.Text.ToString().Trim() + ,0, + this.remarktxtbox.Text + );if (db.UpdateDataBySql(SqlStr) BooleanUpdateResult;/生成详细订单SqlStr = insert into 详细订单表(会员名,电影编号,数量) select 会员名,电影编号,数量 from 购物车表 where + 会员名= + SessionUsername + ;UpdateResult = db.UpdateD
36、ataBySql(SqlStr);SqlStr = update 详细订单表 set 订单编号= + max_order.ToString() + where 订单编号 is null;UpdateResult = db.UpdateDataBySql(SqlStr);/删除购物车中的数据SqlStr = delete from 购物车表 where 会员名= + SessionUsername + ;UpdateResult = db.UpdateDataBySql(SqlStr);this.ordernolab.Visible = true;this.ordernolab.Text +=
37、max_order.ToString(); 管理员登陆protectedvoidbtnLogin_Click(objectsender, EventArgse) StringMd5_User_Pwd = FormsAuthentication.HashPasswordForStoringInConfigFile(this.txt_User_Pwd.Text.ToString(), MD5);/作为密码方式加密SqlStr = select * from 管理员表 where 用户名= + this.txt_User_Name.Text + and 密码= + this.txt_User_Pwd
38、.Text + ;Ds = db.GetDataTableBySql(SqlStr);tryif (Ds.Tables0.Rows.Count = 0) Response.Write(alert( 用户名或密码错误,请重试!);this.txt_User_Name.Focus(); else SessionAdmin_UserName = this.txt_User_Name.Text;Response.Write(window.location.href=admin_index.aspx;); catch (Exception) Response.Write(alert( 没有得到任何数据,
39、请重试!); 添加电影(灰色为存储过程的调用)protectedvoidButton1_Click(objectsender, EventArgse) if (SessionAdmin_UserName != null) try stringpath_file = FileUpload_Image.PostedFile.FileName.ToString();stringfile_type = path_file.Substring(path_file.LastIndexOf(.);stringfile_name = DateTime.Now.Year.ToString() + DateTim
40、e.Now.Month.ToString() + DateTime.Now.Day.ToString() + DateTime.Now.Hour.ToString() + DateTime.Now.Minute.ToString() + DateTime.Now.Second.ToString();full_name = file_name + file_type;stringpath = Server.MapPath(image) + full_name;FileUpload_Image.SaveAs(path); catch (Exception) Response.Write(alert(上传文件失败!); stringimage_path = image + full_name;SqlConnectionconn =newSqlConnection(Data Source=.SQL2005;Initial Catalog=电影售票;Persist Security Info=True;User ID=sa;Password=sql2005);conn.Open();SqlCommand cmd = new SqlCommand(添加电影计划, conn); cmd mandType = CommandType.StoredProcedure; cm
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026边检协管员的面试题及答案
- 癌痛规范化治疗指南
- 2025年中国甲横酸达氟沙星市场调查研究报告
- 2025年中国特种胶市场调查研究报告
- 2025年中国游离脂肪酸试剂盒市场调查研究报告
- 2025年中国活甲鱼市场调查研究报告
- 2025年中国水终端处理器市场调查研究报告
- 2025年中国可拆式螺旋板换热器市场调查研究报告
- 2026北京公安局遴选面试题及答案
- 气道护理中的评估方法
- 2026年口腔科放射防护制度(3篇)
- 2026年福建泉州市初二学业水平地理生物会考试卷题库及答案
- 2026四川省引大济岷水资源开发有限公司第二批次招聘68人考试备考试题及答案解析
- 2026年沈阳一模地理试卷及答案
- 2026年杭州市融资担保集团有限公司政策性担保业务试题及答案
- 国元证券股份有限公司招聘笔试题库2026
- 2026广东中山人才和数字集团有限公司下属中山人才科创投资有限公司招聘笔试参考题库及答案解析
- 2026年时事政治知识点梳理(高考)
- 2026中国金融监管科技发展现状与标准化建设及国际经验借鉴报告
- 网络安全舆情监测与处置手册
- 驻马店市2026乡村振兴专干招聘考试笔试题含本地三农政策
评论
0/150
提交评论