-1-1需求分析需求分析包括可行性分析、系统流程图和数据流图。可行性分析包括技术可行性、经济可行性和操作可行性。1.1可行性分析1.1.1技术可行性根据电影院提出的系统功能、性能及实现系统的各种约束条件,根据新系统目标来衡量所需的技术是否具备,本系统是一个数据库管理和查询的系统,现有的技术已较为成熟,硬件、软件的性能要求、环境条件等各项条件良好,估计利用现有技术条件应完全可以达到该系统的功能目标。同时,考虑给予的开发期限也较为充裕,预计系统是可以在规定期限内完成开发的。由以上分析可知,影院售票系统的开发在技术上是可行的。1.1.2经济可行性电影院具有信息化的处理设施,并且拥有支持本系统的应用平台。因此无需再投入资金购买其他设施。系统的开发基于本人对程序开发的实践学习而来,电影院无需资金投入,并且软件开发过程投入的成本不高,因此开发经费完全可以接受。由以上分析可知,影院售票系统在经济上是可行的。1.1.3操作可行性根据系统页面用户可以自动查询影片信息,站内新闻,后台个人资料等。还可浏览完影片信息以后操作订票、退票等功能。管理员也可以在后台添加、修改并删除站内新闻、影片信息,还可以管理注册用户信息和用户订票信息。由以上分析可知本系统在操作上也是可行的。1.2系统流程图首先未注册的用户要先注册,注册完了以后输入用户名和密码进入页面。根据网站上的影片信息用户可以选择自己喜欢的电影来订票。然后订票信息会自动存储到后台订票信息数据当中。本系统的具体流程为如图所示。系统流程图1.3数据流图本系统的基本模型数据流图为如图所示。系统基本模型数据流图系统功能数据流图-3-2总体设计2.1系统前台功能模块设计本影院售票系统的前台功能主要有站内新闻、用户注册、影片资讯、订票等四大模块;前台的基本层次结构图如图所示。影院售票系统前台功能模块图功能说明:(1)网站首页:在网站首页中用户可以了解最新上映的电影和热门电影以及网站的站内新闻。(2)站内新闻:用户可以浏览网站更新的有关新闻。(3)影片资讯:影片资讯模块主要给用户提供对相关影片的详细介绍。用户可以通过该页面了解最新上映的电影以及电影的有关信息,例如该影片的导演、主演、剧情、片长、票价等。接下来可以选择自己想看的电影、然后跳转到订票页面再选择场次和座位,就可以成功订票。该功能要下下面单独介绍。(4)用户注册:用户要想订票就得先注册,注册完以后登陆。注册用户的个人功能模块如图所示。用户个人功能模块图用户登陆:用户输入自己已注册的用户名和密码,成功登陆以后可以进入影片详细页面选择场次和座位、然后点击订票按钮就可以成功订票。用户还可以进入个人后台修改个人资料、管理个人订票记录。2.2系统后台功能模块设计模块说明:(1)系统管理:系统管理模块实现对管理员的添加和删除功能。例如、超级管理员可以添加并删除普通管理员,但是普通管理员实现不了这个功能。普通管理员只能对以下的站内信息、注册用户信息、订票信息进行添加、修改并删除等功能。(2)站内新闻管理:可以对站内新闻执行添加、查询修改、删除等功能。(3)注册用户信息管理:对注册的用户进行管理。(4)影片信息管理:对放映影片的信息进行添加、查询、修改、删除等功能。(5)订票管理:对用户的订票、退票等功能进行管理。还可以针对每个电影统计票房。影院售票系统后台的层次模块如图所示。影院售票系统后台功能模块图2.3数据库设计(1)新闻信息表用于存放站内新闻的信息。新闻信息表列名数据类型长度允许空字段说明IDint4titlevarchar50站内新闻标题contentvarchar255站内新闻内容addtimedatetime8(2)用户信息表用于存放后台管理员的基本信息。后台管理员用户信息表-5-列名数据类型长度允许空字段说明IDint4usernamevarchar50用户名pwdvarchar50密码qxvarchar50权限addtimedatetime8(3)影片信息表用来存放影片的基本信息。影片信息表列名数据类型长度允许空字段说明IDint4bianhaovarchar50编号yingpinamingchengvarchar50影片名称daoyanvarchar50导演zhuyanvarchar50主演yingpianleixingvarchar50影片类型guojiavarchar50国家pianchangvarchar50片长shangyingshijianvarchar50上映时间piaojiavarchar50票价tupianvarchar50图片beizhuvarchar800备注(由于文章的长短所以把长度设置为800)addtimedatetime8(4)友情链接信息表用来存放友情链接的基本信息。友情链接信息表列名数据类型长度允许空字段说明IDint4wangzhanmingchengvarchar50网站名称wangzhivarchar50网址addtimedatetime8(5)订票信息表用来存放订票的基本信息。订票记录信息表列名数据类型长度允许空字段说明IDint4dingpiaorenvarchar50订票人即用户名yingpianbianhaovarchar50影片编号yingpianmingchengvarchar50影片名称fangyingshijianvarchar50放映时间fangyingdidianvarchar50放映地点zuoweivarchar50座位piaojiavarchar50票价addtimedatetime82.4系统E-R图从数据需求分析中得出系统的实体属性图,遵循三范式原则,对实体之间的依关系进行了整合,得出本系统E-R图,如图所示。系统E-R图其中影片信息实体属性图又为如下图所示。影片信息实体属性图影片场次实体属性图为如图所示。-7-图影片场次实体属性图用户实体属性图为如图所示。图用户信息实体属性图3详细设计详细设计分为系统前台设计和系统后台设计。3.1系统前台设计系统前台设计是为了方便用户了解有关影片信息和进行订票。3.1.1网站首页模块在网站首页我们可以看到站内新闻列表、最新影片、以及网站的有关信息。网站首页界面如图所示。网站首页网站首页界面点击上方的各个按钮就可以跳转到相关的信息页面。点击站内新闻列表可以直接跳转到该新闻的详细信息页面,点击最新影片的图片也可以跳转到该影片的界面。其中左下角的系统公告是从下往上动态浮动的。用文字移动属性marquee来实现了该功能。主要代码如下:marqueeborder=0direction=upheight=138onmouseout=start()onmouseover=stop()scrollamount=1scrolldelay=50TABLEheight=100%cellSpacing=5cellPadding=0width=92%align=centerborder=0TBODYTRTDP 本周热门电影:倩女幽魂,硬汉2,战国/P/TD/TR/TBODY/TABLE/marquee3.1.2用户登录模块此模块主要功能是用于登录本系统,首先将从前台页面提交的用户名和密码进行接受,之后在后台进行处理,按照用户名在数据库中进行查询如果查到该用户则将该用户的密码取出来赋给一个字符串变量,判断从数据库中读出的密码与登录时输入的密码是否配比上,若两个密码相同则进入相应的页面,否则输出密码错误。用户登录界面如图4.2所示。用户登陆界面提示用户登录失败界面如图所示。提示登录失败界面3.1.3用户注册模块用户要想订票就得先注册再订票。如果没有注册就不能执行订票功能。注册流程:用户填写用户注册页面的表格,然后点击注册按钮,系统验证用户输入的注册信息是否合法,如果合法就把用户输入的注册信息保存到系统的数据库中。如果注册信息不合法就提示出错。用户注册界面如图所示。-9-用户注册界面主要代码如下:protectedvoidButton1_Click(objectsender,EventArgse){stringsql;sql=insertintozhuceyonghu(yonghuming,mima,xingming,dianhua,youxiang,shenfenzheng,xingbie,beizhu)values('+yonghuming.Text.ToString().Trim()+','+mima.Text.ToString().Trim()+','+xingming.Text.ToString().Trim()+','+dianhua.Text.ToString().Trim()+','+youxiang.Text.ToString().Trim()+','+shenfenzheng.Text.ToString().Trim()+','+xingbie.Text.ToString().Trim()+','+beizhu.Text.ToString().Trim()+');intresult;result=newClass1().hsgexucute(sql);if(result==1){Response.Write(scriptjavascript:alert('添加成功');/script);}else{Response.Write(scriptjavascript:alert('系统错误,请检查数据库设置问题');/script);}填写完个人资料以后点击添加就可以成功注册了。提示注册成功对话框如图4.5所示。提示注册成功界面3.1.7订票模块用户选择影片场次和座位以后点击添加、系统就会把订票信息添加到数据库。用户订票界面如图所示。图4.10订票界面图4.11提示订票成功界面主要代码如下:protectedvoidButton1_Click(objectsender,EventArgse){stringsql;sql=selectidfromdingpiaojiluwhereyingpianbianhao='+yingpianbianhao.Text.ToString().Trim()+'andfangyingshijian='+fangyingshijian.Text.ToString().Trim()+'andzuowei='+zuowei.Text.ToString().Trim()+';DataSetresult2=newDataSet();result2=newClass1().hsggetdata(sql);if(result2!=null){if(result2.Tables[0].Rows.Count0){Response.Write(scriptjavascript:alert('对不起,该位置已经有人预订,请选择其他位置');history.back();/script);Response.End();}}sql=insertintodingpiaojilu(dingpiaoren,yingpianbianhao,yingpianmingcheng,fangyingshijian,fangyingdidian,zuowei,piaojia)-11-values('+dingpiaoren.Text.ToString().Trim()+','+yingpianbianhao.Text.ToString().Trim()+','+yingpianmingcheng.Text.ToString().Trim()+','+fangyingshijian.Text.ToString().Trim()+','+fangyingdidian.Text.ToString().Trim()+','+zuowei.Text.ToString().Trim()+','+pi