欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    旅游风景门票销售系统(共24页).doc

    • 资源ID:13452235       资源大小:427KB        全文页数:24页
    • 资源格式: DOC        下载积分:20金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要20金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    旅游风景门票销售系统(共24页).doc

    精选优质文档-倾情为你奉上 门票管理系统1 需求分析需求分析是介于系统分析阶段和软件设计阶段之间的重要桥梁。一方面,需求分析以系统规格说明和项目规划作为分析活动的基本出发点,并从软件角度对它们进行检查与调整;另一方面,需求规格说明又是软件设计、实现测试直至维护的主要基础。良好的分析活动有助于避免或尽早发现早期的错误,从而提高软件生产率,降低开发成本,改进软件质量。旅游景点门票销售系统共分为5个模块:主界面、营业员管理模块、门票管理模块、售票管理模块和业务统计模块。主界面:该模块是执行后的第一级界面,里面包含了营业员管理模块、门票管理模块和售票管理模块。; 营业员管理模块:该模块包含营业员的全部信息,可以对营业员信息进行查找、删除和修改等相关操作;门票管理模块:包含门票的全部信息,可以对门票进行修改添加删除等操作售票管理模块:该模块负责办理售票和退票。业务统计模块:该模块可以统计指定日期的门票销售情况、统计指定月份的门票销售情况、统计指定日期各种价格的门票销售情况、统计指定营业员指定日期的收费情况2 概念结构设计 2.1E-R图在需求分析的基础上设计出能够满足用户需求的各种实体以及它们之间的关系。下面例举出各实体的实体图及实体关系E-R图性别年龄编号营业员地点姓名编号分类地点销售类型价格编号日期门票价格地点类型分类 图1.各实体关系E-R图2.2系统说明书本系统采用 SQL Server2005数据库为数据库开发工具,建立一个数据库,其中包括多个表,并为之定义了相应的关系以适应本系统所需的功能。利用vs2010连接到数据库,建立若干窗口,实现相应信息管理功能。2.2.1系统要求l 实现票价管理(应分老年、小孩、成人、团体等);l 实现营业员管理;l 实现门票销售、退票管理;l 创建存储过程统计指定日期的门票销售情况;l 创建存储过程统计指定月份的门票销售情况;l 创建存储过程统计指定日期各种价格的门票销售情况;l 创建存储过程统计指定营业员指定日期的收费情况;l 创建表间关系。 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)营业员管理: create table 营业员(编号 char (9) primary key,姓名 char (10),性别 char (2),年龄 char (10),地点 char (10),);(2)门票管理: create table 门票(编号 char (9),地点 char (10),分类 char (2),类型 char (10),价格 char (10),primary key (编号,分类),foreign key (编号) references 营业员(编号);(3)售票管理:create table 售票(编号 char (9),地点 char (10),分类 char (2),类型 char (10),价格 char (10),日期 datetime,primary key (编号,分类,日期),foreign key (编号) references 营业员(编号);(6)部分插入代码insertinto 营业员values('1001','张三','男','19','中山公园');insertinto 门票values('1001','中山公园','30','成人票');insertinto 售票values('1001','中山公园','01','成人票','30','2013-10-12 00:00:00');5.2 主要功能代码 以营业员管理模块为例:(1) 查询信息using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Data.SqlClient;using System.Reflection;using System.Drawing;using System.Linq;using System.Text;using System.Windows.Forms; private void button2_Click(object sender, EventArgs e) string consqlserver = "Data Source=WS-PC;Initial Catalog=jn;uid=sa; pwd=sa"/定义连接数据源SqlConnection sqlcon = new SqlConnection(consqlserver);sqlcon.Open();try DataSet ds = new DataSet();/ 在此判断保存重复记录问题string strSqls; strSqls = string.Format("SELECT * FROM 基本信息 where 教师编号='" + textBox1.Text.Trim() + "'");/定义SQL Server连接对象SqlConnection con = new SqlConnection(consqlserver);SqlDataAdapter da = new SqlDataAdapter(strSqls, con);da.Fill(ds);strSqls = "select * from 基本信息 where 教师编号='" + textBox1.Text.Trim() + "'"/定义SQL Server连接对象SqlConnection cons = new SqlConnection(consqlserver);SqlCommand cmd = new SqlCommand(strSqls, cons);trycons.Open();cmd.ExecuteNonQuery();catch finallycons.Close();cons.Dispose();cmd.Dispose();string sqls = "select * from 基本信息 "SqlDataAdapter da1 = new SqlDataAdapter(sqls, con);da1.Fill(ds);if (ds.Tables0.Rows.Count > 1)dataGridView1.DataSource = ds.Tables0;catch (2)插入 private void button4_Click(object sender, EventArgs e) string consqlserver = "Data Source=WS-PC;Initial Catalog=jn;uid=sa; pwd=sa"/定义连接数据源SqlConnection sqlcon = new SqlConnection(consqlserver);sqlcon.Open();try/ 首先判断输入信息是否完全if (textBox1.Text = "")MessageBox.Show("请输入完整的数据信息", "信息提示", System.Windows.Forms.MessageBoxButtons.OK, System.Windows.Forms.MessageBoxIcon.Warning);elseDataSet ds = new DataSet();/ 在此判断保存重复记录问题string strSqls;strSqls = string.Format("SELECT * FROM 营业员 where编号='" + textBox1.Text.Trim() + "'"); /定义SQL Server连接对象 SqlDataAdapter da = new SqlDataAdapter(strSqls, sqlcon);da.Fill(ds);if (ds.Tables0.Rows.Count > 1) MessageBox.Show("已经存在", "信息提示", System.Windows.Forms.MessageBoxButtons.OK, System.Windows.Forms.MessageBoxIcon.Error);elsestrSqls = "insert into 基本信息 values ('" + textBox1.Text.Trim() + "','" + textBox2.Text.Trim() + "','" + textBox3.Text.Trim() + "','" + textBox4.Text.Trim() + "','" + textBox5.Text.Trim() + "');"/定义SQL Server连接对象SqlConnection sqlcon1 = new SqlConnection(consqlserver);SqlCommand cmd = new SqlCommand(strSqls, sqlcon1);trysqlcon1.Open();cmd.ExecuteNonQuery();catch finallysqlcon1.Close();sqlcon1.Dispose();cmd.Dispose(); MessageBox.Show("保存成功", "信息提示", System.Windows.Forms.MessageBoxButtons.OK, System.Windows.Forms.MessageBoxIcon.Information); /刷新数据 string sqls = "select * from 基本信息 " SqlDataAdapter da1 = new SqlDataAdapter(sqls, sqlcon);da1.Fill(ds);if (ds.Tables0.Rows.Count > 1)dataGridView1.DataSource = ds.Tables0;catch (3)修改 private void button3_Click(object sender, EventArgs e)string consqlserver = "Data Source=WS-PC;Initial Catalog=jn;uid=sa; pwd=sa"/定义连接数据源 SqlConnection sqlcon = new SqlConnection(consqlserver);sqlcon.Open();tryif (textBox1.Text = "")MessageBox.Show("请输入编号", "信息提示", System.Windows.Forms.MessageBoxButtons.OK, System.Windows.Forms.MessageBoxIcon.Warning); elseDataSet ds = new DataSet();string strSqls = string.Format("SELECT * FROM 营业员 where 编号='" + textBox1.Text.Trim() + "'");/ string strSqls = string.Format("update teacher set tname='" + textBox2.Text.Trim() + "'where tno='" + textBox1.Text.Trim() + "'"); SqlConnection con = new SqlConnection(consqlserver); SqlDataAdapter da = new SqlDataAdapter(strSqls, con);/定义SQL Server连接对象da.Fill(ds);strSqls = string.Format("update 营业员 set 姓名='" + textBox2.Text.Trim() + "'where 编号='" + textBox1.Text.Trim() + "'");strSqls = string.Format("update 营业员 set 性别='" + textBox3.Text.Trim() + "'where编号='" + textBox1.Text.Trim() + "'");strSqls = string.Format("update营业员set 年龄='" + textBox4.Text.Trim() + "'where编号='" + textBox1.Text.Trim() + "'");strSqls = string.Format("update营业员set 地点='" + SqlConnection cons = new SqlConnection(consqlserver);SqlCommand cmd = new SqlCommand(strSqls, cons);trycons.Open();cmd.ExecuteNonQuery();catch finallycons.Close();cons.Dispose();cmd.Dispose();MessageBox.Show("修改成功", "信息提示", System.Windows.Forms.MessageBoxButtons.OK, System.Windows.Forms.MessageBoxIcon.Information);/刷新数据string sqls = "select * from 营业员"SqlDataAdapter da1 = new SqlDataAdapter(sqls, con);DataSet dss = new DataSet();da1.Fill(dss);if (dss.Tables0.Rows.Count > 1)dataGridView1.DataSource = dss.Tables0; catch (4)删除private void button5_Click(object sender, EventArgs e) string consqlserver = "Data Source=WS-PC;Initial Catalog=jn;uid=sa; pwd=sa"/定义连接数据源 SqlConnection sqlcon = new SqlConnection(consqlserver);sqlcon.Open();tryif (textBox1.Text = "")MessageBox.Show("请选择或输入要删除的编号信息", "信息提示", System.Windows.Forms.MessageBoxButtons.OK, System.Windows.Forms.MessageBoxIcon.Warning); elseDataSet ds = new DataSet();/ 判断要删除的数据信息是否存在string strSqls;strSqls = string.Format("SELECT * FROM 营业员 where 编号='" + textBox1.Text.Trim() + "'");/定义SQL Server连接对象SqlConnection con = new SqlConnection(consqlserver);SqlDataAdapter da = new SqlDataAdapter(strSqls, con);da.Fill(ds);if (ds.Tables0.Rows.Count > 0) if (MessageBox.Show("确认要删除该信息吗?", "信息提示", System.Windows.Forms.MessageBoxButtons.YesNo, System.Windows.Forms.MessageBoxIcon.Question) = System.Windows.Forms.DialogResult.Yes)/定义删除数据信息的SQL语句strSqls = string.Format("delete from 营业员 where 编号='" + textBox1.Text.Trim() + "'");/定义SQL Server连接对象 SqlConnection cons = new SqlConnection(consqlserver); SqlCommand cmd = new SqlCommand(strSqls, cons);trycons.Open();cmd.ExecuteNonQuery();catch finallycons.Close();cons.Dispose();cmd.Dispose();MessageBox.Show("信息删除成功", "信息提示", System.Windows.Forms.MessageBoxButtons.OK, System.Windows.Forms.MessageBoxIcon.Information);/刷新数据string sqls = "select * from 营业员 "SqlDataAdapter da1 = new SqlDataAdapter(sqls, con);DataSet dss = new DataSet();da1.Fill(dss);if (dss.Tables0.Rows.Count > 0)dataGridView1.DataSource = dss.Tables0;catch 5.3 测试结果(1)初始界面(2)营业员管理(3)门票系统(4)售票管理(5)业务统计6 存储过程功能代码6.1存储过程创建部分create procedure 指定日期售票统计asselect 类型,count(类型)from 售票where 日期='2013-10-12'group by 类型gocreate procedure 指定日期和价格asselect 类型,count(类型),价格from 售票where 日期='2013-11-12' and 价格='20'group by 类型,价格gocreate procedure 指定日期和营业员asselect 类型,count(类型),编号from 售票where 日期='2013-10-12' and 编号='1001'group by 类型,编号go6.2存储过程调用部分string consqlserver = "Data Source=WS-PC;Initial Catalog=jn;uid=sa; pwd=sa"string sql = "select * from 售票 "SqlConnection conn = new SqlConnection(consqlserver);/建立数据库连接conn.Open();SqlCommand comm = new SqlCommand("指定日期",conn);/把Command执行类型改为存储过程方式,默认为Text。 comm.CommandType = CommandType.StoredProcedure;comm.ExecuteNonQuery();conn.Close();/使用SqlDataAdapter将自动完成数据库的打开和关闭过程,并执行相应t-sql语句或存储过程 /如果存储过程只是执行相关操作,如级联删除或更新,使用SqlCommand的execute方法即可。 SqlDataAdapter da=new SqlDataAdapter(comm); DataSet ds=new DataSet(); da.Fill(ds);dataGridView1.DataSource = ds.Tables0;7感想与心得体会 作为大四的最后一门课,数据库课程设计作业的完成,我大学四年的学习生活也将告一段落。我所做的旅游风景门票销售系统,用的是sql server+C#。整个程序,是完完全全、一点一点自己编写出来的。很不容易,但是也很有成就感。刚开始的入手很难,因为之前没有关于sql和C#的涉列,也不知道该怎样在C#里把sql连进去。后来,连上了数据库,开始在sql里建表,这三张表,可谓是千锤百炼了,删了建、建了删,每一次新建,都是一次改进,都代表我对自己的系统有了更进一步的了解。建立表之后是在表中插入一些数据,就是所谓的数据库了。当所有的表和表中的数据都没有问题了,就开始着手在C#里,将我的系统以图形的界面显示出来了。从添加窗体开始,然后是Datagridview、label、textbox等等,规划出一个大体的模型。然后是添加botton,其实每一个form里的botton无非就是这样几个功能:插入、删除、查找、修改、退出。不过form之间有些许差别罢了。但是,就是这样的三个form我改了一天的时间,最后才知道,错误点在于第一个form的主码只有一个,而后两个的form都不是单个的主码,所有在更新、插入、删除的时候语句是不完全一样的。之后是存储过程的创建,在sql里实现了。然后在C#里,要能成功调用你创建的存储。 最后,就是享受程序成功运行时的喜悦了。完成这个课程设计的过程虽然很不容易,但是却让人受益匪浅。让我学会了如何从零开始完成一个自己之前没接触过的语言、让我知道了调试程序的重要性、让我享受了和同学一起研究、最后获取成功的满足。 最后,感谢老师在这学期理论上的讲授,让我对数据库课程设计有了良好的理论基础支持!专心-专注-专业

    注意事项

    本文(旅游风景门票销售系统(共24页).doc)为本站会员(飞****2)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开