-0-面向对象程序设计(C#)课程设计报告题目:电影院购票管理系统专业:信息管理与信息系统班级:110506姓名:张敏学号:20111922指导教师:赵晶晶学期:2012-2013-1-1-电影院购票管理系统一、设计内容本课程设计以小型日制电影院为背景,使用VisualStudio和Access2003软件完成了数据库购票系统,实现了管理员(加入、删除、修改电影库信息;安排每日电影场次;管理售票员信息)与售票员(查询电影场次、售票)的合理安排,从而进行最优化的管理。注:在管理员界面可以切换用户。二、总体设计图1本程序的设计图大纲如图1所示。在登陆界面输入用户名及密码(注:可设置密码不可见),系统自动识别用户的类型。如果是管理员,进入管理员主菜单界面;如果是售票员,进入售票员售票界面。在售票界面可以根据电影场次、电影票数量进行购票,在显示价格时根据票得种类进行结账,如果是成人,按原定价格进行售票,如果是儿童、学生、老人或是退伍军人,则电影票的价格时原定价格的一半。在管理员主界面有菜单栏,有信息管理、服务、退出和切换用户四栏,点击信息管理,出现下拉菜单,包括电影库信息管理、添加售票员和电影场次安排,点击这三个,则跳转不同的三个界面,分别是添加电影信息、添加人员和安排电影场次三个界面;点击服务,出现查询电影库信息,点击查询电影库信息,则跳转查询界面。三、界面设计1、登陆界面-2-输入用户名和密码,点击登录。如果在用户的数据库表user1中存在该用户,则跳出提示信息窗体“恭喜您登陆成功”,当用户登陆成功时,可根据用户填写的用户名和密码对该用户的用户权限进行查询,从而获得用户的权限是管理员,还是售票员,根据不同的用户权限进入不同的界面。管理员进入管理员界面,如图3所示;而售票员进入售票界面,如图8所示。图22、管理员主界面在管理员界面中,如图3所示,存在一个菜单栏,包括信息管理、服务、退出和用户切换思想内容。信息管理的下拉菜单中有电影库信息管理、添加售票员和电影场次安排四项,服务的下拉菜单中有查询一项。点击电影库信息查询,跳转添加电影信息界面;点击添加售票员,跳转增加人员界面;点击电影场次安排,跳转安排电影场次界面;点击查询电影库信息,跳转查询界面;点击退出,则退出该程序;点击切换用户,跳转登陆界面,可重新登录新用户。图3-3-3、电影库信息管理在添加电影信息界面,如图4所示,包括了三部分:查询部分;添加电影信息部分和显示数据库表movie1部分。该界面可以实现对数据库表movie1的增、删、改、查四项基本功能。在添加电影信息时,需要在查询部分先进行查询:输入电影的名称和导演的名称,如果数据库中存在该电影,跳出的提示信息提示您不需要进行添加;如果数据库表movie1中不存在该电影的信息,则提示需要对这部电影的信息进行添加,并将输入的电影名称和导演的名字赋值到添加电影信息部分的相应TextBox中。还可以通过点击的方式在显示数据库表movie1部分获取电影信息,从而进行编辑、修改和删除。图44、添加售票员添加售票员界面,如图5所示,只有管理员有权限对使用人员(只是售票员)进行添加,添加到数据库表user1中,添加的用户名和密码不可改变,即初始值不会发生改变,添加的用户权限只能是售票员。图55、电影场次安排电影场次安排界面,如图6所示,管理员在每日下班时安排好每天的电影播放场次信息,包括电影名称、价格和座位数。-4-上午:第一场(9:00-11:00)下午和晚上:第二场(1:00-3:00);第二场(3:30-5:30)第四场(6:00-8:00);第五场(8:30——10:30)图66、查询电影库信息查询界面如图7所示,可以通过多个条件对数据库表movie1进行查询。该几面的亮点即在于可通过多条件进行查询。点击各条件前的小方框,在小方框出现对勾的时候,即可以通过选择的条件进行查询,在条件后选择选择的内容,使该条件即可生成命令语句的字符串片段,与之前定义的命令字符串片段进行拼接,得到完整的查询命令字符串,从而进行查询。默认必须选择电影拍摄时间。图7-5-7、售票售票界面设计如图8所示,该界面完成了售票员的购买功能,即通过场次号查询schedule1数据库表中该场次的电影电影院中座位的数量和电影的票价,通过购买减少电影院座位的数量数。并在界面中显示该场次的电影的单价和应付总价,通过选择电影票的类型,即成人、学生、孩子、老人或者是退伍军人,决定电影票是全额还是总价值的一半。图8四、数据库的设计该程序使用了Access2003数据库,建立了一个数据库名为:cinemasystem.mdb。该数据库中使用了三个表:user1,schedule1和movie11、user1user1表为用户数据库表,设计如图9所示,该表中含有四个字段,分别是编号、u_name、u_password和u_type。编号的数据类型为自动编号,因为该字段的数据中不可能出现重复现象,所以设置该字段为数据库表的主键;u_name代表用户的姓名,数据类型为文本;u_password代表用户的密码,数据类型为文本;u_type代表的是用户的权限,数据类型为文本。图9图10-6-2、schedule1schedule1表为电影场次安排数据库表,设计如图10所示,该表中含有四个字段,分别为编号、m_name、m_price和m_count。编号的数据类型为自动编号,因为该字段中的数据中不可能出现重复现象,所以设置该字段为数据库表的主键;m_name代表电影的名称,数据类型为文本;m_price代表的是电影的票价,数据类型为数字(长整形);m_count代表的是电影院的座位数,数据类型为数字(长整形)。3、movie1图11movie1表为电影信息数据库表,设计如图11所示,该表中含有八个字段,分别为编号、m_name、m_performer、m_message、m_area、m_years、m_director和m_type。编号的数据类型为自动编号,因为该字段中的数据不可能出现重复现象,所以设置该字段为数据库表的主键;m_name代表电影的名称,数据类型为文本;m_performer代表的是电影的主演,数据类型为文本;m_message代表电影的简介,数据类型为文本;m_area代表的是电影的拍摄地点,数据类型为文本;m_years代表的是电影的拍摄时间,数据类型为数字(长整形);m_director代表的是电影的导演,数据类型为文本;m_type代表的是电影的分类,数据类型为文本。五、程序设计(1)程序结构改程序一共有7个窗体,所有窗体的BackGroundImage在本地资源中导入图片并且所有的Lable和GroupBox的Backcolor属性变成在Wed颜色中选择Transparent(透明)1、LordForm类,text属性改为“登陆”。在该窗口类中一共有8个控件。3个lable控件text属性分别为“欢迎进入影院售票系统”、“用户名:”和“密码”,Font设置为四号字体;1个CheckBox控件,name改为passwordCB,text为“密码不可见”;2个Button控件,name改为LoadBu、ResetBu,text为“登陆”、“重置”。2、ControlForm类,text属性改为“管理员界面”。-7-在该窗体类中一共有1个控件,该控件为menustrip,在它的Item中添加“信息管理”、“服务”、“退出”、“切换用户”,然后再“信息管理”中再增加子菜单“电影库信息管理”、“增加售票员”、“电影场次安排”,在“”子菜单中添加“查询电影库信息”。3、MovieInformationForm类,text属性改为“添加电影信息”;在该窗口类中共有25个控件。1个dataGridView控件,用来显示数据库表movie1的信息;2个GroupBox控件,分别将Text改为“请输入电影名称和导演姓名”、“添加电影信息”;7个TextBox控件,分别将name属性改为nameTB、directorTB、movieTB、actorTB、DnameTB、areaTB、yearsTB;1个RichTextBox控件,name属性改为messageRichTB;共7个lable控件,将Text属性改为“导演:”、“电影名称:”、“主演:”、“导演:”、“拍摄地区:”、“拍摄时间:”、“电影简介(50字以内):”;7个Button控件,name属性分别为QueryBu、AddBu、ChangBu、ExitBu、DeleteBu、ResetBu、BackBu,text属性分别为“查询”、“添加”、“编辑”、“修改”、“删除”、“重置”、“返回”。|4、AddPeopleForm类,text属性改为“添加人员”。在该窗体类中共有8个控件。1个GroupBox控件,text属性改为“添加人员信息”;2个lable控件,text属性分别为“用户名:”、“密码:”;2个TextBox控件,name属性分别为nameTB、passwordTB;3个Button控件,name属性分别为AddBu、ResetBu、ExitBu,器对应的Text属性分别为“添加”、“重置”、“返回”。5、ScheduleForm类,text属性改为“安排电影场次”。在该窗体中共有13个控件。1个GroupBox控件,text属性为“安排信息”;4个lable控件,text属性值为“第”、“场:”、“票价:”、“座位数:”;1个ComboBox控件,Item中加入1、2、3、4、5;1个dataGirlView控件,用于显示数据库表schedule1中的数据;3个TextBox控件;3个Button控件,name属性分别为SureBu、ResetBu、ExitBu,器对应的Text属性分别为“确定”、“重置”、“返回”。6、QueryForm类,text属性为“查询”。该窗体中一共有15个人控件。1个dataGirlView控件,用于显示数据库表movie1中的数据;1个GroupBox控件,text属性改为“按条件进行查询”;6个checkBox控件,name属性分别为areaCB、yearsCB、typeCB、nameCB、actorCB和directorCB,其相对应的text属性为“按地区”、“按时间”、“按类型”、“电影名称”、“按主演”、“按导演”;5个ComboBox控件;还有一个Button控件,text为“查询”,name为QueryBu。7、BookingForm类,text属性改为“售票”。该窗体一共有12个控件。1个dataGirlView控件,用于显示数据库表schedule1中的数据;1个GroupBox控件,text属性值为“购票”;5个lable控件,其中3个lable控件text属性为“场次:”、“张数:”、“类型”,另两个Lable的text属性五空;2个Button控件,name为BuyBu、resetBu,text为“购买”、“重置”;两个CheckBox控件,Item中分别是1、2、3、4、5和成人、学生、孩子、老人以及退伍军人。(2)程序代码1、LoadForm(登陆)usingSystem;usingSystem.Collections.Generic;usingSystem.ComponentModel;-8-usingSystem.Data;usingSystem.Drawing;usingSystem.Linq;usingSystem.Text;usingSystem.Windows.Forms;usingSystem.Data.OleDb;namespaceCinemaSystem{publicpartialclassLoadForm:Form{//创建静态字段staticDataSetmyDataSet;staticOleDbConnectionMyOleConn;staticOleDbDataAdaptermyDataAdapter;p