火车票查询系统实习报告.docx
- 文档编号:16372188
- 上传时间:2023-07-13
- 格式:DOCX
- 页数:24
- 大小:482.62KB
火车票查询系统实习报告.docx
《火车票查询系统实习报告.docx》由会员分享,可在线阅读,更多相关《火车票查询系统实习报告.docx(24页珍藏版)》请在冰点文库上搜索。
火车票查询系统实习报告
火车票查询系统实习报告
摘要:
随着时代的不断进步,人们出行次数增加,那么一个火车站怎样才能快捷高效的为乘客们服务变成了一个很重要的问题。
伴随着计算机的普及,运用计算机进行数据的保存与管理已经成为一件再寻常不过的事情,因此建立一个火车票查询预订系统将会是一个很好的解决办法。
一个火车票查询预订系统的设计可以使工作人员实现计算机管理,减轻工作量,并且可以节约人力和物力,从而使得火车票管理更加的便捷和高效。
一个火车票查询预订系统应该有火车票的查询,添加或删除,管理员的管理等功能。
关键字:
火车票查询;火车票预订;管理员管理;便捷;高效
1课题综述
1.1课题来源
本次软件实习将用C#制作一个火车票查询预订系统,具有一般系统的数据处理功能,如数据录入、增加、修改、删除等。
1.2程序所实现的功能
本系统通过C#Winforms技术完成的功能如下:
(1)可以实现火车票信息的增加、删除。
(2)可以实现火车票的基本信息的浏览。
(3)可以实现火车票的预订及预订信息的删除、修改(4)管理员登录密码的修改
1.3软硬件运行环境及开发工具
本次软件设计的运行环境:
WindowsXP操作系统,MicrosoftVisualStudio2005以上编译环境。
开发工具为C#和Access。
C#概述:
MicrosoftVisualC#2005(读作C#)是一种编程语言,它是为生成在.NETFramework上运行的多种应用程序而设计的。
C#简单、功能强大、类型安全,而且是面向对象的。
C#凭借它的许多创新,在保持C样式语言的表示形式和优美的同时,实现了应用程序的快速开发。
VisualStudio支持VisualC#,这是通过功能齐全的代码编辑器、项目模板、设计器、代码向导、功能强大且易于使用的调试器以及其他工具实现的。
通过.NETFramework类库,可以访问多种操作系统服务和其他有用的精心设计的类,这些类可显著加快开发周期。
Access概述:
Access是微软公司推出的基于Windows的桌面关系数据库管理系统(RDBMS),是Office系列应用软件之一。
它提供了表、查询、窗体、报表、页、宏、模块7种用来建立数据库系统的对象;提供了多种向导、生成器、模板,把数据存储、数据查询、界面设计、报表生成等操作规范化;为建立功能完善的数据库管理系统提供了方便,也使得普通用户不必编写代码,就可以完成大部分数据管理的任务。
2系统分析
2.1主要模块功能
(1)增加火车票记录模块:
用于将新的火车票信息添加到火车票基本信息表中。
(2)删除火车票记录模块:
用于删除火车票基本信息表中的火车票信息。
(3)刷新火车票记录模块:
增加记录和删除记录完成后点次按钮更新。
(4)增加火车票预定记录模块:
用于预订火车票信息。
(5)删除火车票预定记录模块:
用于删除预订火车票信息。
(6)修改密码模块:
用于修改后台管理员登录密码信息。
(7)查询火车票模块:
用于客户查询所需的火车票信息。
2.2功能模块图
该系统的功能模块图如下图所示:
图2-1模块图
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
无
否
starttime
destination
reachtime
hardleft
hardcost
Softleft
softcost
日期/时间
文本
文本
数字
货币
数字
货币
50
50
长整型
长整型
无
无
无
无
无
无
无
否
否
否
否
否
否
3.2图书出版基本信息处理对话框的设计
图书出版基本信息处理对话框的界面如下图所示:
图3-1火车票查询信息对话框
标签控件的属性如表3-4所示。
表3-4 标签对象的基本属性
ID
标题内容
Textbox3
火车发车日期
Textbox1
火车发车地
Textbox2
火车目的地
Radiobottom1
软铺
Radiobottom2
硬座
Datagridview1
显示查询信息
图3-2火车票预订信息对话框
表3-6编辑框对象的基本属性
Textbox1
预订火车发车日期
Textbox2
火车出发地
Textbox3
火车目的地
Textbox4
火车车次
Textbox5
预订者联系电话
Textbox6
E_mail
Textbox7
真实姓名
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具体代码
“查询火车票记录”命令按钮的过程代码代码:
privatevoidcheck_Click(objectsender,EventArgse)
{
if(textBox3.Text==string.Empty)
{
MessageBox.Show(this,"请输入日期时间!
","PhoenixInformation:
",MessageBoxButtons.OK,MessageBoxIcon.Exclamation);
return;
}
if(textBox1.Text==string.Empty)
{
MessageBox.Show(this,"请输入发车地点!
","PhoenixInformation:
",MessageBoxButtons.OK,MessageBoxIcon.Exclamation);
return;
}
if(textBox2.Text==string.Empty)
{
MessageBox.Show(this,"请输入目的点!
","PhoenixInformation:
",MessageBoxButtons.OK,MessageBoxIcon.Exclamation);
return;
}
if(radioButton1.Checked==false&&radioButton2.Checked==false)
{
MessageBox.Show(this,"请选择车票类型!
","PhoenixInformation:
",MessageBoxButtons.OK,MessageBoxIcon.Exclamation);
return;
}
if(i>0)
{
this.dataGridView1.Columns[7].Visible=true;
this.dataGridView1.Columns[8].Visible=true;
this.dataGridView1.Columns[9].Visible=true;
this.dataGridView1.Columns[10].Visible=true;
}
i++;
Stringconnstring=@"provider=Microsoft.Jet.OLEDB.4.0;DataSource=db1.mdb";
OleDbConnectionconn=newOleDbConnection(connstring);
conn.Open();
Stringcommstring="select*fromTicketwheredate='"+this.textBox3.Text+"'andstartpos='"+this.textBox1.Text+"'anddestination='"+this.textBox2.Text+"'";
OleDbCommandcommd=newOleDbCommand(commstring,conn);
OleDbDataAdaptermyadap=newOleDbDataAdapter();
myadap.SelectCommand=commd;
DataSetmyset=newDataSet();
myadap.Fill(myset,"Ticket");
this.dataGridView1.DataSource=myset.Tables["Ticket"];
conn.Close();
if(this.radioButton1.Checked==false)//显示选择的车票类型及价格
{
this.dataGridView1.Columns[9].Visible=false;
this.dataGridView1.Columns[10].Visible=false;
}
else
{
this.dataGridView1.Columns[7].Visible=false;
this.dataGridView1.Columns[8].Visible=false;
}
}
“预定火车票”命令按钮的过程代码如下所示:
privatevoidbookdata_insert()
{
intticketnumber=Convert.ToInt32(this.label6.Text);
stringdatastring=@"provider=Microsoft.Jet.OLEDB.4.0;DataSource=db1.mdb";
Stringdatastring1="insertintoBook(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')";
Stringdatastring2="insertintoBook(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')";
OleDbConnectiondata_insert=newOleDbConnection(datastring);
data_insert.Open();
OleDbCommandinsertcomm=newOleDbCommand();
insertcomm.Connection=data_insert;
if(type==false)
insertcomm.CommandText=datastring1;
else
insertcomm.CommandText=datastring2;
insertcomm.ExecuteNonQuery();
Stringdatastring3="updateTicketsethardleft=hardleft-'"+boBox1.Text+"'wheretrainnum='"+chuandi.textBox5.Text+"'";
Stringdatastring4="updateTicketsetsoftleft=softleft-'"+boBox1.Text+"'wheretrainnum='"+chuandi.textBox5.Text+"'";
OleDbCommandupdatecomm=newOleDbCommand();
updatecomm.Connection=data_insert;
if(type==false)
updatecomm.CommandText=datastring3;
else
updatecomm.CommandText=datastring4;
updatecomm.ExecuteNonQuery();
data_insert.Close();
}
“修改火车票记录”命令按钮的过程代码如下所示:
privatevoidbutton1_Click(objectsender,EventArgse)
{
stringstr=this.dataGridView1.CurrentRow.Cells["Column1"].Value.ToString();
Stringconnstring=@"provider=Microsoft.Jet.OLEDB.4.0;DataSource=db1.mdb";
OleDbConnectionconn=newOleDbConnection(connstring);
conn.Open();
Stringcommstring="updateTicketsettrainnum='"+this.dataGridView1.CurrentRow.Cells["Column2"].Value+"',[date]='"+this.dataGridView1.CurrentRow.Cells["Column3"].Value+"',startpos='"+this.dataGridView1.CurrentRow.Cells["Column4"].Value+"',starttime='"+this.dataGridView1.CurrentRow.Cells["Column5"].Value+"',destination='"+this.dataGridView1.CurrentRow.Cells["Column6"].Value+"',reachtime='"+this.dataGridView1.CurrentRow.Cells["Column7"].Value+"',hardleft='"+this.dataGridView1.CurrentRow.Cells["Column8"].Value+"',hardcost='"+this.dataGridView1.CurrentRow.Cells["Column9"].Value+"',softleft='"+this.dataGridView1.CurrentRow.Cells["Column10"].Value+"',softcost='"+this.dataGridView1.CurrentRow.Cells["Column11"].Value+"'whereID="+str;
OleDbCommandcommd=newOleDbCommand(commstring,conn);
commd.ExecuteNonQuery();
conn.Close();
dataconn();
MessageBox.Show("修改成功!
");
}
“删除预订记录”按钮的过程代码如下所示:
privatevoidbutton2_Click(objectsender,EventArgse)
{
stringstr=this.dataGridView1.CurrentRow.Cells["Column1"].Value.ToString();
MessageBox.Show(this,"确定删除该条预订信息?
","PhoenixInformation:
",MessageBoxButtons.OK,MessageBoxIcon.Exclamation);
Stringconnstring=@"provider=Microsoft.Jet.OLEDB.4.0;DataSource=db1.mdb";
OleDbConnectionconn=newOleDbConnection(connstring);
conn.Open();
Stringcommstring="deletefromBookwhereID="+str;
OleDbCommandcommd=newOleDbCommand(commstring,conn);
commd.ExecuteNonQuery();
conn.Close();
preseant_data();
5程序调试
5.1上机过程中出现的问题和解决方案
(1)在编写修改火车票信息的代码中,通过对datagridview1中的数据操作,从而修改数据库中的记录时,程序出现“标准表达式对应数据类型有误”,通过网上搜索和自己反复修改,最后程序正确。
(2)对于不同窗体间的数据传输时所运用的不同方法进行尝试,出现错误后,查阅书籍解决。
5.2程序的扩展方案
(1)程序界面过于单调,可以通过更改背景颜色或添加背景图片进行解决。
(2)添加服务器与客户端相连模块。
(3)增加输入格式检测,放置输入不同数据类型。
6程序运行界面
在打开“图书出版管理系统.exe”后,将出现下图所示界面:
图6-1主窗体
点击进入查询系统,即出现火车票信息查询界面:
图6-2火车票信息查询
图6-3火车票预定界面
当点击“确定并提交预订信息”选择框时,弹出“确认信息对”话框:
图6-4预订确认信息对话框
图6-5后台管理界面
参考文献
1张庆华等编著零基础学VisualC#2005北京:
机械工程出版社.2001
2孙晓非等编著C#程序设计基础教程与实验指导北京:
清华大学出版社.2008
3王小科等编著C#程序设计标准教程北京:
人民邮电出版社.2009
4刘乃丽等编著ASP.NET2.0网络开发详解北京:
电子工业出版社.2008
5谭桂华等编著VisualC#高级编程范例北京:
清华大学出版社.2004
6张立等编著C#2.0宝典北京:
电子工业出版社.2007
附录
心得体会
学号07057335姓名吴仁克
对于本次软件实习,多少有些收获。
这次软件实习做的系统是用C#语言编写的。
之前没有接触过C#,但有接触过C++和VB。
由于需要,特地借了几本书,其中一本《零基础学VisualC#2005》学习了一下,了解到C#的控件功能与VB相似,书中前面的基础知识与C++的内容有些相似。
同时还看了书后的几个实例编程,对于编程我是比较薄弱的,很少投入这方面学习,另外很少动手。
这次实习我主要是做简单类的窗体,比如多个窗体的分配及弹出界面问题,在编写过程中遇到问题查阅资料。
从没有碰过C#到略懂一些已经是质的飞跃了,但还要认真研究学习。
在设计系统首先要对整体框架进行构思,对每一个功能进行实现这个很重要。
并且最重要的是数据库的基本操作,包括Connection、Command、Datareader、Dataset和Dataadapter对象,添加数据、修改数据、删除数据和查询数据,还有就是DATAGRIDVIEW控件的使用。
这个系统是用ACCESS建立连接数据库,了解到了一些关键的操作语句,C#中有专门的语句对数据库进行操作。
因此对数据库有初步的认识。
在这里面,让我感受最深的还是一种自学精神,多思考,多发现问题,然后经过自己努力汲取新的知识或者询问老师同学来解决问题,多和同学交流问题。
对于这样一种学习途径
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 火车票 查询 系统 实习 报告