




已阅读5页,还剩18页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
软件开发综合技能训练汽车票预订系统设计专业软件工程学生姓名罗剑班级B计算机074学号0710604414指导教师张静林完成日期2011.1.6信息学院目 录1 课题综述11.1 课题来源11.2 程序所实现的功能11.3软硬件运行环境及开发工具12 系统分析12.1 系统需求分析12.2功能模块图13 系统设计13.1 数据库设计13.2车票查询信息处理对话框的设计14 代码编写14.1 具体代码15 程序调试15.1 上机过程中出现的问题和解决方案15.2 程序的扩展方案16 程序运行界面17 小结11 课题综述1.1 课题来源本次软件实习将用C#制作一个车票查询预订系统,具有一般系统的数据处理功能,如数据录入、增加、修改、删除等。1.2 程序所实现的功能本系统通过C# Winforms技术完成的功能如下:(1)可以实现车票信息的增加、删除。(2)可以实现车票的基本信息的浏览。(3)可以实现车票的预订及预订信息的删除、修改(4)管理员登录密码的修改1.3软硬件运行环境及开发工具本次软件设计的运行环境:Windows XP操作系统,Microsoft Visual Studio 2005以上编译环境。开发工具为C#和Access。C#概述:Microsoft Visual C# 2005(读作 C#)是一种编程语言,它是为生成在 .NET Framework 上运行的多种应用程序而设计的。C# 简单、功能强大、类型安全,而且是面向对象的。C# 凭借它的许多创新,在保持 C 样式语言的表示形式和优美的同时,实现了应用程序的快速开发。Visual Studio 支持 Visual C#,这是通过功能齐全的代码编辑器、项目模板、设计器、代码向导、功能强大且易于使用的调试器以及其他工具实现的。通过 .NET Framework 类库,可以访问多种操作系统服务和其他有用的精心设计的类,这些类可显著加快开发周期。52 系统分析2.1 系统需求分析(1)前台部分1.前台营业:用户通过此对车票进行购买,该功能可以查看到车票的车次、售价、车票的类型;2.预定车票:其功能和前台营业功能基本类似,它是通过对时间的设置来进行车票的预定;3.退回车票:客户购买了车票后发生了不可避免的问题,这里就可以对购买的车票进行退订或是退购,这里也是通过对时间的设定来进行退回车票;4.汽车票信息查询:该功能包括售票信息查询、订票信息查询、运营计划查询;5.售票信息查询:以列表的形式将已经购买的车票信息进行汇总,并在该页中显示出来;6.订票信息查询:该功能和售票信息查询功能相同,也是以列表的形式将预定的车票信息进行汇总,并在该页中显示出来;7.运营计划查询:该功能是以列表的形式将停运和正在运营的车次分开显示出来,从而可以对车辆进行有效的调度;8.营业统计:该功能包括日售票统计、月售票统计、季度售票统计;9.日售票统计:这里将一天的销售情况进行统计并在此显示出来;10.月售票统计:和日售票统计相似,将每月的销售情况进行统计并在此显示出来;11.线路查询:以列表的形式把将要查询的起始城市的里程显示出来;12.管理员登录:当管理员要对车票的信息进行管理时,管理员可以通过此登录到后台对车票等信息进行添加、删除、修改等操作;(2)后台部分1.运营设置:该功能包括基础参数设置、车票设置、车次设置、调度设置、车票价格线路设置;2.基础参数设置:该功能包括卖票时间设置、订票时间设置、退票时间设置;3.车次设置:这里包括了对车次的增加、修改、删除的操作;4.调度设置:对停运和正在运营的车次进行调度;5.线路设置:线路设置中包括的增加线路,就是增加起始城市之间里程的信息。2.2功能模块图该系统的功能模块图如下图所示:主界面车票预定车票查询后台管理显示预订信息添加车票信息修改/删除车票信息修改登录密码图2-1 模块图车票预定系统数据输入数据输出数据输入页面信息录入旅行社登陆登陆信息 数据录入 数据信息 数据信息 数据信息 数据处理、查询数据判断数据信息 准备SQL判断查询数据库操作数据信息 判断信息 判断结果 数据信息 返回账单等确定错误原因返回车票信息打印账单等显示错误原因打印车票数据信息 软件结构图2.3数据库需求分析数据库的设计通常是以一个已经存在的数据库管理系统为基础的,常用的数据库管理系统有MYSQL,SQL Server, Oracle等。我采用了SQL server2005数据库管理系统。数据的输入是否准确是数据处理的前提,错误的输入会导致系统输出的不正确和不可用,从而使系统的工作出现错误。数据的输入来源是手工输入,在系统中,数据的输入往往是大量的,因此系统要有一定的处理能力,以保证迅速的处理数据。所以系统数据一致性:事务执行的结果必须是使数据库从一个一致性状态变到另一个一致性状态。一致性是指当事务完成时,必须使所有数据都具有一致的状态。在关系型数据库中,所有的规则必须应用到事务的修改上,以便维护所有数据的完整性。3 系统设计3.1 数据库设计创建一个“图书出版管理系统”数据库,含有三个数据表:“出版图书基本信息”、“图书分类”、“图书出售信息”。具体格式如下表:表3-1 “Book”数据表结构字段名称字段类型字段大小索引必须填写name文本50无否phone文本20无否shenfen文本50无无trainnum文本50有(有重复)无neednum数字长整型有(有重复)无hard是/否是/否无无soft是/否是/否无无booktime日期/时间日期/时间无无ID自动编号自动编号有(有重复)无表3-2 “entry”数据表的结构字段名称字段类型字段大小索引必须填写adminnum文本50有(无重复)否admincode文本50有(无重复)否表3-3 “Ticket”数据表的结构字段名称字段类型字段大小索引必须填写ID自动编号长整型 有(有重复)trainnum文本50 有( 有重复) 否date文本50无 否startpos文本50无 否starttimedestination reachtimehardlefthardcostSoftleftsoftcost日期/时间文本文本数字货币数字货币5050长整型长整型无无无无无 无 无 否 否 否 否 否 否3.2车票查询信息处理对话框的设计车票查询信息对话框的界面如下图所示:图3-1 车票查询信息对话框标签控件的属性如表3-4所示。表3-4 标签对象的基本属性ID标题内容Textbox3火车发车日期Textbox1火车发车地Textbox2火车目的地Radiobottom1软铺Radiobottom2硬座Datagridview1显示查询信息图3-2 车票预订信息对话框表3-6 编辑框对象的基本属性Textbox1预订火车发车日期Textbox2火车出发地Textbox3火车目的地Textbox4火车车次Textbox5预订者联系电话Textbox6E_mailTextbox7真实姓名Textbox8身份证Combobox1预订车票类型Radiobottom1软铺Radiobottom2硬座 图3-3 车票后台管理信息对话框表3-7 编辑框对象的基本属性Datagridview1显示预订信息Bottom1删除预订信息Bottom2关闭Toolstrip1功能对话框按钮Toolstripbottom1打开添加车次信息对话框Toolstripbottom2打开修改车次信息对话框Toolstripbottom3打开修改管理员密码对话框图3-4 车票后台管理信息对话框表3-8 编辑框对象的基本属性Textbox1预订火车发车日期Textbox2火车车次Textbox3火车发车地Textbox4火车软铺票价Textbox5火车目的地Textbox6火车硬座票价Textbox7软铺数量Textbox8发车时间Textbox9硬座数量Textbox10到站时间Bottom1确定提交图3-5 车票后台管理信息对话框表3-9 编辑框对象的基本属性Datagridview1显示车票信息Bottom1提交修改信息Bottom2删除所选择的记录Bottom3关闭图3-6 车票后台管理信息对话框表3-9 编辑框对象的基本属性textbox1输入登录帐号textbox1输入原登录密码textbox1输入新登录密码textbox1再次输入新登录密码Bottom1确定提交修改信息Bottom2关闭对话框4 代码编写4.1 具体代码“查询车票记录”命令按钮的过程代码代码:private void check_Click(object sender, EventArgs e) if (textBox3.Text=string.Empty) MessageBox.Show(this, 请输入日期时间! , Phoenix Information:, MessageBoxButtons.OK, MessageBoxIcon.Exclamation); return; if (textBox1.Text=string.Empty) MessageBox.Show(this, 请输入发车地点! , Phoenix Information:, MessageBoxButtons.OK, MessageBoxIcon.Exclamation); return; if (textBox2.Text=string.Empty) MessageBox.Show(this, 请输入目的点! , Phoenix Information:, MessageBoxButtons.OK, MessageBoxIcon.Exclamation); return; if (radioButton1.Checked=false&radioButton2.Checked=false) MessageBox.Show(this, 请选择车票类型! , Phoenix Information:, MessageBoxButtons.OK, MessageBoxIcon.Exclamation); return; if (i 0) this.dataGridView1.Columns7.Visible = true; this.dataGridView1.Columns8.Visible = true; this.dataGridView1.Columns9.Visible = true; this.dataGridView1.Columns10.Visible = true; i+; String connstring = provider=Microsoft.Jet.OLEDB.4.0;Data Source=db1.mdb; OleDbConnection conn = new OleDbConnection(connstring); conn.Open(); String commstring = select * from Ticket where date= + this.textBox3.Text + and startpos= + this.textBox1.Text + and destination= + this.textBox2.Text + ; OleDbCommand commd = new OleDbCommand(commstring, conn); OleDbDataAdapter myadap = new OleDbDataAdapter(); myadap.SelectCommand = commd; DataSet myset = new DataSet(); myadap.Fill(myset, Ticket); this.dataGridView1.DataSource = myset.TablesTicket; conn.Close(); if (this.radioButton1.Checked = false)/显示选择的车票类型及价格 this.dataGridView1.Columns9.Visible = false; this.dataGridView1.Columns10.Visible = false; else this.dataGridView1.Columns7.Visible = false; this.dataGridView1.Columns8.Visible = false; “预定车票”命令按钮的过程代码如下所示:private void bookdata_insert() int ticketnumber = Convert.ToInt32(this.label6.Text); string datastring = provider=Microsoft.Jet.OLEDB.4.0;Data Source=db1.mdb; String datastring1 = insert into Book (booktime,name,phone,shenfen,trainnum,neednum,hard,soft) values( + this.label1.Text + , + this.label9.Text + , + this.label7.Text + , + this.label19.Text + , + this.label2.Text + , + this.label6.Text + ,-1,0); String datastring2 = insert into Book (booktime,name,phone,shenfen,trainnum,neednum,hard,soft) values( + this.label1.Text + , + this.label9.Text + , + this.label7.Text + , + this.label19.Text + , + this.label2.Text + , + this.label6.Text + ,0,-1); OleDbConnection data_insert = new OleDbConnection(datastring); data_insert.Open(); OleDbCommand insertcomm=new OleDbCommand(); insertcomm.Connection=data_insert; if (type = false) insertcomm.CommandText = datastring1; else insertcomm.CommandText = datastring2; insertcomm.ExecuteNonQuery(); String datastring3 = update Ticket set hardleft=hardleft- + boBox1.Text + where trainnum= + chuandi.textBox5.Text + ; String datastring4 = update Ticket set softleft=softleft- + boBox1.Text + where trainnum= + chuandi.textBox5.Text + ; OleDbCommand updatecomm = new OleDbCommand(); updatecomm.Connection = data_insert; if (type = false) updatecomm.CommandText = datastring3; else updatecomm.CommandText = datastring4; updatecomm.ExecuteNonQuery(); data_insert.Close(); “修改车票记录”命令按钮的过程代码如下所示:private void button1_Click(object sender, EventArgs e) string str = this.dataGridView1.CurrentRow.CellsColumn1.Value.ToString(); String connstring = provider=Microsoft.Jet.OLEDB.4.0;Data Source=db1.mdb; OleDbConnection conn = new OleDbConnection(connstring); conn.Open(); String commstring = update Ticket set trainnum= + this.dataGridView1.CurrentRow.CellsColumn2.Value + ,date= + this.dataGridView1.CurrentRow.CellsColumn3.Value + ,startpos= + this.dataGridView1.CurrentRow.CellsColumn4.Value + ,starttime= + this.dataGridView1.CurrentRow.CellsColumn5.Value + ,destination= + this.dataGridView1.CurrentRow.CellsColumn6.Value + ,reachtime= + this.dataGridView1.CurrentRow.CellsColumn7.Value + ,hardleft= + this.dataGridView1.CurrentRow.CellsColumn8.Value + ,hardcost= + this.dataGridView1.CurrentRow.CellsColumn9.Value + ,softleft= + this.dataGridView1.CurrentRow.CellsColumn10.Value + ,softcost= + this.dataGridView1.CurrentRow.CellsColumn11.Value + where ID= +str; OleDbCommand commd = new OleDbCommand(commstring, conn); commd.ExecuteNonQuery(); conn.Close(); dataconn(); MessageBox.Show(修改成功!); “删除预订记录”按钮的过程代码如下所示:private void button2_Click(object sender, EventArgs e) string str= this.dataGridView1.CurrentRow.CellsColumn1.Value.ToString(); MessageBox.Show(this, 确定删除该条预订信息? , Phoenix Information:, MessageBoxButtons.OK, MessageBoxIcon.Exclamation); String connstring = provider=Microsoft.Jet.OLEDB.4.0;Data Source=db1.mdb; OleDbConnection conn = new OleDbConnection(connstring); conn.Open(); String commstring = delete from Book where ID= +str; OleDbCommand commd = new OleDbCommand(commstring, conn); commd.ExecuteNonQuery(); conn.Close(); preseant_
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 高考政治课件
- mto技能考试及答案
- 电缆发展专业知识培训课件
- 4、施工工作报告√
- 新解读《GB-T 32151.12-2018温室气体排放核算与报告要求 第12部分- 纺织服装企业》
- 本科正式考试试题题库及答案
- 电焊日常知识培训课件
- Pacidamycin-4-生命科学试剂-MCE
- Acetylcarnitine-Standard-生命科学试剂-MCE
- Myristyl-nicotinate-Standard-生命科学试剂-MCE
- 红楼梦(英文版)
- 蘑菇和木耳(课件)六年级上册科学青岛版
- 〈药品召回管理办法〉培训
- 甘肃华夏文明简介课件
- 房屋建筑学-墙和基础-砌块墙构造课件
- 工程项目投资与融资完整全套课件
- 输电线路智能间隔棒在线监测技术
- 贸易经营类企业生产安全事故应急预案
- 绘本教学故障鸟
- 《月下过小修净绿堂试吴客所饷松萝茶》赏析
- 数据中心负荷计算方法
评论
0/150
提交评论