数据库课程设计题目旅游风景销售系统专业班级计算机*班姓名***完成日期2013-12-151需求分析需求分析是介于系统分析阶段和软件设计阶段之间的重要桥梁。一方面,需求分析以系统规格说明和项目规划作为分析活动的基本出发点,并从软件角度对它们进行检查与调整;另一方面,需求规格说明又是软件设计、实现测试直至维护的主要基础。良好的分析活动有助于避免或尽早发现早期的错误,从而提高软件生产率,降低开发成本,改进软件质量。旅游景点门票销售系统共分为5个模块:主界面、营业员管理模块、门票管理模块、售票管理模块和业务统计模块。主界面:该模块是执行后的第一级界面,里面包含了营业员管理模块、门票管理模块和售票管理模块。;营业员管理模块:该模块包含营业员的全部信息,可以对营业员信息进行查找、删除和修改等相关操作;门票管理模块:包含门票的全部信息,可以对门票进行修改添加删除等操作售票管理模块:该模块负责办理售票和退票。业务统计模块:该模块可以统计指定日期的门票销售情况、统计指定月份的门票销售情况、统计指定日期各种价格的门票销售情况、统计指定营业员指定日期的收费情况2概念结构设计2.1E-R图在需求分析的基础上设计出能够满足用户需求的各种实体以及它们之间的关系。下面例举出各实体的实体图及实体关系E-R图图1.各实体关系E-R图营业员门票销售年龄地点性别姓名编号日期价格类型分类地点编号价格类型分类地点编号2.2系统说明书本系统采用SQLServer2005数据库为数据库开发工具,建立一个数据库,其中包括多个表,并为之定义了相应的关系以适应本系统所需的功能。利用vs2010连接到数据库,建立若干窗口,实现相应信息管理功能。2.2.1系统要求实现票价管理(应分老年、小孩、成人、团体等);实现营业员管理;实现门票销售、退票管理;创建存储过程统计指定日期的门票销售情况;创建存储过程统计指定月份的门票销售情况;创建存储过程统计指定日期各种价格的门票销售情况;创建存储过程统计指定营业员指定日期的收费情况;创建表间关系。3逻辑结构设计3.1数据项营业员管理数据项数据类型长度允许空编号char9姓名char10性别char2√年龄char10√地点char10√门票管理数据项数据类型长度允许空编号char9地点char10价格char10√类型char10√分类char10售票管理数据项数据类型长度允许空编号char9地点char10√分类char10√类型char10√价格char10√日期Datatime√3.2系统结构图旅游风景门票销售系统营业员管理售票管理查找删除修改添加奖惩信息修改奖惩信息门票管理查找删除修改查找删除修改4物理设计4.1存储安排在该系统中,门票管理中的编号属性为主码,其在营业员管理表和售票管理表中都作为外码被参照。营业员管理表的主码为(编号,地点),售票管理表的主码为(编号,分类,日期)5数据库实施5.1数据库建表和插入数据(1)营业员管理:createtable营业员(编号char(9)primarykey,姓名char(10),性别char(2),年龄char(10),地点char(10),);(2)门票管理:createtable门票(编号char(9),地点char(10),分类char(2),类型char(10),价格char(10),primarykey(编号,分类),foreignkey(编号)references营业员(编号));(3)售票管理:createtable售票(编号char(9),地点char(10),分类char(2),类型char(10),价格char(10),日期datetime,primarykey(编号,分类,日期),foreignkey(编号)references营业员(编号));(6)部分插入代码insertinto营业员values('1001','张三','男','19','中山公园');insertinto门票values('1001','中山公园','30','成人票');insertinto售票values('1001','中山公园','01','成人票','30','2013-10-1200:00:00');5.2主要功能代码以营业员管理模块为例:(1)查询信息usingSystem;usingSystem.Collections.Generic;usingSystem.ComponentModel;usingSystem.Data;usingSystem.Data.SqlClient;usingSystem.Reflection;usingSystem.Drawing;usingSystem.Linq;usingSystem.Text;usingSystem.Windows.Forms;privatevoidbutton2_Click(objectsender,EventArgse){stringconsqlserver=DataSource=WS-PC;InitialCatalog=jn;uid=sa;pwd=sa;//定义连接数据源SqlConnectionsqlcon=newSqlConnection(consqlserver);sqlcon.Open();try{DataSetds=newDataSet();//在此判断保存重复记录问题stringstrSqls;strSqls=string.Format(SELECT*FROM基本信息where教师编号='+textBox1.Text.Trim()+');//定义SQLServer连接对象SqlConnectioncon=newSqlConnection(consqlserver);SqlDataAdapterda=newSqlDataAdapter(strSqls,con);da.Fill(ds);strSqls=select*from基本信息where教师编号='+textBox1.Text.Trim()+';//定义SQLServer连接对象SqlConnectioncons=newSqlConnection(consqlserver);SqlCommandcmd=newSqlCommand(strSqls,cons);try{cons.Open();cmd.ExecuteNonQuery();}catch{}finally{cons.Close();cons.Dispose();cmd.Dispose();}stringsqls=select*from基本信息;SqlDataAdapterda1=newSqlDataAdapter(sqls,con);da1.Fill(ds);if(ds.Tables[0].Rows.Count1){dataGridView1.DataSource=ds.Tables[0];}}catch{}}(2)插入privatevoidbutton4_Click(objectsender,EventArgse){stringconsqlserver=DataSource=WS-PC;InitialCatalog=jn;uid=sa;pwd=sa;//定义连接数据源SqlConnectionsqlcon=newSqlConnection(consqlserver);sqlcon.Open();try{//首先判断输入信息是否完全if(textBox1.Text==){MessageBox.Show(请输入完整的数据信息,信息提示,System.Windows.Forms.MessageBoxButtons.OK,System.Windows.Forms.MessageBoxIcon.Warning);}else{DataSetds=newDataSet();//在此判断保存重复记录问题stringstrSqls;strSqls=string.Format(SELECT*FROM营业员where编号='+textBox1.Text.Trim()+';);//定义SQLServer连接对象SqlDataAdapterda=newSqlDataAdapter(strSqls,sqlcon);da.Fill(ds);if(ds.Tables[0].Rows.Count1){MessageBox.Show(已经存在,信息提示,System.Windows.Forms.MessageBoxButtons.OK,System.Windows.Forms.MessageBoxIcon.Error);}else{strSqls=insertinto基本信息values('+textBox1.Text.Trim()+','+textBox2.Text.Trim()+','+textBox3.Text.Trim()+','+textBox4.Text.Trim()+','+textBox5.Text.Trim()+');;//定义SQLServer连接对象SqlConnectionsqlcon1=newSqlConnection(consqlserver);SqlCommandcmd=newSqlCommand(strSqls,sqlcon1);try{sqlcon1.Open();cmd.ExecuteNonQuery();}catch{}finally{sqlcon1.Close();sqlcon1.Dispose();cmd.Dispose();}MessageBox.Show(保存成功,信息提示,System.Windows.Forms.MessageBoxButtons.OK,System.Windows.Forms.MessageBoxIcon.Information);//刷新数据stringsqls=select*from基本信息;SqlDataAdapterda1=newSqlDataAdapter(sqls,sqlcon);da1.Fill(ds);if(ds.Tables[0].Rows.Count1){dataGridView1.DataSource=ds.Tables[0];}}}}catch{}}(3)修改privatevoidbutton3_Click(objectsender,EventArgse){stringconsqlserver=DataSource=WS-PC;InitialCatalog=jn;uid=sa;pwd=sa;//定义连接数据源SqlConnectionsqlcon=newSqlConnection(consqlserver);sqlcon.Open();try{if(textBox1.Text==){MessageBox.Show(请输入编号,信息提示,System.Windows.Forms.MessageBoxButtons.OK,System.Windows.Forms.MessageBoxIcon.Warning);}else{DataSetds=newDataSet();stringstrSqls=string.Format(SELECT*FROM营业员where编号='+textBox1.Text.Trim()+');//stringstrSqls=string.Format(updateteachersettname='+textBox2.Text.Trim()+'wheretno='+textBox1.Text.Trim()+');SqlConnectioncon=newSqlConnection(consqlserver);SqlDataAdapterda=newSqlDataAdapter(strSqls,con);//定义SQLServer连接对象da.Fill(ds);strSqls=string.Format(update营业员set姓名='+textBox2.Text.Trim()+'where编号