VB列车时刻表查询.docx
《VB列车时刻表查询.docx》由会员分享,可在线阅读,更多相关《VB列车时刻表查询.docx(22页珍藏版)》请在冰豆网上搜索。
VB列车时刻表查询
课程设计题目:
简易列车时刻查询表
专业:
信息工程(信息安全方向)
班级:
1132101
学号:
201130210126
姓名:
某某某
指导老师:
vb老师
2013-1-4
目录
第1章系统分析1
1.1需求分析1
1.2使用工具1
1.3VB编程技术简介1
第2章概要设计2
2.1总体方案设计2
2.1.1功能分析2
2.1.2功能模块图2
第3章详细设计3
3.1数据库逻辑模型设计3
3.1.1管理员信息表3
3.1.2火车信息表3
3.2系统功能详细设计4
3.2.1时刻表查询模块5
3.2.2时刻表管理模块5
3.2.3系统管理模块5
第4章调试分析6
第5章界面简介7
5.1进入界面8
5.2用户登录界面8
5.2.1添加、修改用户名及密码界面……………………………………………………9
5.3时刻表查询管理系统界面10
5.4时刻表查询界面11
5.5时刻表管理(添加、删除、修改)界面……………………………………12
第六章课程设计总结……………………………………………………………13
附录(相关代码)21
第1章系统分析
1.1需求分析
设计和实现一个火车时刻表查询系统,该系统包括火车时刻表查询,时刻表管理及系统管理。
其中火车时刻表基本信息包括车次号、始发站、终点站、始发时间、终到时间、途径主要站点及时间等信息;火车时刻表查询按车次、始发站、终点站和途径主要站点进行查询;时刻表管理包括对线路和途径主要站点进行增加、修改和删除操作;系统管理包括添加管理员信息和修改密码。
1.2使用工具
对火车时刻表和管理员信息进行管理,实现一些简单的操作。
所用的工具是:
前台是VisualBasic,后台是SQLserver2000。
通过ADODC接口将VisualBasic和数据库相连,编写程序实现维修系统中的功能。
1.3VB编程技术简介
VisualBasic是一种可视化的、面向对象和采用事件驱动方式的结构化高级程序设计语言,可用于开发Windows环境下的各类应用程序。
它简单易学、效率高,且功能强大可以与Windows专业开发工具SDK相媲美。
在VisualBasic环境下,利用事件驱动的编程机制、新颖易用的可视化设计工具,使用Windows内部的广泛应用程序接口(API)函数,以用动态链接库(DLL)、对象的链接与世隔嵌入(OLE)、开放式数据连接(ODBC)等技术,可以高效、快速地开发Windows环境下功能强大、图形界面丰富的应用软件系统。
VB具有强大的数据库访问功能。
VB利用数据控件可以访问多种数据库,VB6.O提供的ADO控件,不但可以用最少的代码实现数据库操作和控制,也可以取代Data控件和RDO控件。
第2章概要设计
2.1总体方案设计
2.1.1功能分析
根据题目要求,本系统可以分为三个功能模块:
时刻表查询功能模块、时刻表管理功能模块和系统管理功能模块。
其中查询功能模块实现对火车信息的查询;时刻表管理功能模块实现对火车信息的增加、修改和删除操作;系统管理功能模块实现对管理员信息的管理。
2.1.2功能模块图
火车时刻表查询系统总体模块图如图2.1所示。
图2.1系统总体模块图
第3章详细设计
3.1数据库逻辑模型设计
根据课程设计的要求,火车时刻表的属性有车次号、始发站、终点站、始发时间、终到时间、途径主要站点及时间,管理员信息表的属性有管理员名称和登录密码。
3.1.1管理员信息表
说明:
存放管理员的基本信息,包括管理员名称和登录密码。
本表中主键是管理员名称。
管理员信息表如表3.1所示。
表3.1管理员信息表
列名
数据类型
长度
是否允许空
说明
UserName
文本
10
No
管理员名称
Userpwd
文本
20
No
密码
3.1.2火车信息表
说明:
存放火车时刻表的基本信息,有车次号、始发站、终点站、始发时间、终到时间、途径主要站点及时间,本表中主键是车次号。
火车信息表如表3.2所示。
表3.2时刻表信息表
列名
数据类型
长度
是否允许空
说明
Number
文本
10
No
车次号
Time_Start
文本
10
No
始发时间
Time_End
文本
10
No
终到时间
station1
文本
20
Yes
始发站
station2
文本
20
Yes
途径站点
Time2
文本
10
Yes
到达途径站点时间
Station3
文本
20
Yes
途径站点
Time3
文本
10
Yes
到达途径站点时间
Station4
文本
20
Yes
途径站点
Time4
文本
10
Yes
到达途径站点时间
Station5
文本
20
Yes
途径站点
Time5
文本
10
Yes
到达途径站点时间
Station6
文本
20
Yes
途径站点
Time6
文本
10
Yes
到达途径站点时间
Station7
文本
20
Yes
途径站点
Time7
文本
10
Yes
到达途径站点时间
Station8
文本
20
Yes
途径站点
Time8
文本
10
Yes
到达途径站点时间
Station9
文本
20
Yes
途径站点
Time9
文本
10
Yes
到达途径站点时间
Station10
文本
20
Yes
终点站
3.2系统功能详细设计
通过VisualBasic和SQLserver2000相连,调用火车时刻表查询系统数据库中的火车信息表、管理员信息表的所有信息,实现对火车时刻表的查询系统。
3.2.1时刻表查询模块
该模块主要功能是按车次、始发站、终点站和途径主要站点进行查询,通过查询模块可以清楚的找到需要乘坐的火车车次号、始发站、终点站、始发时间、终到时间、途径主要站点及时间。
它使程序的分类更加清楚便于用户的查询。
查询模块与Access数据库相连,能从数据库的火车信息表中查找出对应的火车信息和相关属性。
本模块主要是采用“窗体”来实现的。
界面上有三种查询方式供选择,分别为按始发站、终点站查询,按车次号查询及按途径主要站点查询。
如果查找的途径主要站点在火车信息表中没有查找到,则显示“没有这个站点,请重输入!
”的字样。
只有输入的车次号和火车信息表中的书号一致的时候才输出该次火车的相关信息。
3.2.2时刻表管理模块
该模块主要功能是管理火车时刻表,实现对火车线路和途径主要站点的增加、修改和删除操作。
时刻表管理模块与Access数据库相连,能够对火车信息表的相关属性进行增加、修改和删除操作。
本模块由“窗体”来实现。
界面提供三种功能,即增加线路,删除主要站点,修改主要站点。
增加线路时必需输入车次号、始发时间和终到时间,否则无法完成操作。
3.2.3系统管理模块
该模块主要功能是实现对管理员信息的管理。
系统管理模块与Access数据库相连,能够对管理员信息表中的密码进行增修改,还可以增加管理员。
增加管理员时管理员名称不能为空而且不能重名,两次输入的密码必需一致。
第4章调试分析
(1)SQL语句使用问题
●问题描述:
实时错误,至少一个参数没有被指定值。
问题分析:
SQL语句中目标列表达式参数设置错误。
●解决方法:
把select*fromtrain_tablewheretime_in中的time_in改成time_info。
(2)无法连接数据库
●问题描述:
找不到文件‘E:
/软件综合课设资料/程序/train.mdb’
●问题分析:
连接数据库路径错误。
●解决方法:
将数据库放在程序所在的文件夹。
第5章界面简介
5.1进入界面
图5.1开始界面
由图5.1界面是第一张界面,由此界面可进入用户登录界面。
5.2用户登录界面
图5.2用户登录界面
图5.2界面为用户提供了权限,用户只能通过正确的用户名以及密码进入火车时刻表管理系统和用户管理系统,这样方便对时刻表和系统进行管理和维护。
5.2.1修改用户名及密码界面
图5.2.1修改密码界面
图5.2.1界面为时刻表管理界面的修改密码部分,可以修改管理员的登录密码以及用户名。
在时刻表与系统管理界面里选择用户管理中的修改密码就可进入此界面。
5.3时刻表查询管理系统界面
图5.3时刻表管理系统主界面
图5.3界面为用户提供时刻表查询服务,时刻表管理服务,用户管理服务以及返回进入界面服务。
5.4时刻表查询界面
图5.4时刻表查询界面
图5.3界面为用户提供时刻表查询服务,查询方式有三种,分别按车次,始发站,终点站三种方式查询。
5.5时刻表管理界面(添加、修改、删除)
图5.5添加、修改、删除车次界面
图5.4界面为车次提供了增加、修改、删除部分,可以增加火车线路信息、修改火车途径主要站点及时间以及删除主要站点。
在时刻表与系统管理界面上选择时刻表管理选项,即可进入此界面。
第六章课程设计总结
本次课程设计实现了火车时刻表查询软件的主要功能,包括按车次、始发站、终点站和途径主要站点进行查询,对线路和途径主要站点进行增加、修改和删除操作。
课程设计采用的开发工具是VB,数据库系统是Adodc控件。
从参考书和网上学会了如何使用窗体和模块,能够简单应用VB中的数据库访问控件。
本次课程设计的难点是如何连接数据库,对数据进行一些必要的操作。
对于如何连接数据库,刚开始不知从何处下手,借鉴了网上资源后,对VB连接数据库有了初步的了解,解决了这个问题。
在完成课设过程中,我初步掌握了VB编程的方法,锻炼了自己的编程能力,熟练掌握了基本的高度方法,把课堂上所学习的理论知识与这次实践相结合,进一步提高了动手能力。
由于初次接触VB编程技术,在编程中遇到很多问题,比如怎样连接数据库,如何使用窗体。
在同学的帮助下和老师的教导下我完成了这次课设,对此我向老师和同学表示感谢。
还有一些不足之处,我以后定会改进并且更加努力去学习。
7、附录(相关代码)
’into.form(进入相关代码)
PrivateSubCommand1_Click()
user.Show
into.Hide
user.Text1=""
user.Text2=""
EndSub
’user.form(用户登录代码)
PrivateSubCommand1_Click()
DimcnAsNewADODB.Connection
DimrsAsNewADODB.Recordset
DimflagAsBoolean
Dimcn_strAsString,sql_strAsString
cn_str="DRIVER={SQLSERVER};
SERVER=PC-201212021213;DATABASE=train"
cn.Opencn_str
sql_str="selectUserName,Userpwdfromuser_info"
rs.Opensql_str,cn
WhileNotrs.EOF
IfText1.Text=Trim(rs(0))AndText2.Text=Trim(rs
(1))Then
Me.Hide
xitong.Show
flag=True
ExitSub
Else
rs.MoveNext
flag=False
EndIf
Wend
Ifflag=FalseThen
MsgBox"输入的用户名或密码有误,请重新输入!
",vbCritical+vbOKOnly,"错误"
rs.Close
EndIf
EndSub
PrivateSubCommand2_Click()
Unloaduser
into.Show
EndSub
PrivateSubText1_MouseMove(ButtonAsInteger,ShiftAsInteger,XAsSingle,YAsSingle)
StaticToogleAsBoolean
IfToogle=FalseThen
Text1=""
Toogle=True
EndIf
EndSub
PrivateSubText2_GotFocus()
Text2.Text=""
EndSub
’xitong.form(系统管理代码)
PrivateSubadd_Click()
add_time.Show
UnloadMe
EndSub
PrivateSubuser_Click()
user_info.Show
UnloadMe
EndSub
PrivateSub查询_Click()
chaxun.Show
xitong.Hide
EndSub
PrivateSub返回_Click()
into.Show
xitong.Hide
UnloadMe
EndSub
’chaxun.form(查询信息代码)
PrivateSubCommand1_Click()
Adodc1.RecordSource="select*fromTime_infowherestation6='"&Trim(Text1)&"'"
Adodc1.Refresh
EndSub
PrivateSubCommand2_Click()
Adodc1.RecordSource="select*fromTime_infowherenumber='"&Trim(Text3)&"'"
Adodc1.Refresh
EndSub
PrivateSubCommand3_Click()
Adodc1.RecordSource="select*fromTime_infowherestation1='"&Trim(Text4)&"'"
Adodc1.Refresh
EndSub
PrivateSubCommand4_Click()
add_time.Show
UnloadMe
EndSub
PrivateSubText1_GotFocus()
Text1.Text=""
EndSub
PrivateSubtext3_MouseMove(ButtonAsInteger,ShiftAsInteger,XAsSingle,YAsSingle)
StaticToogleAsBoolean
IfToogle=FalseThen
Text3.Text=""
Toogle=True
EndIf
EndSub
PrivateSubText4_GotFocus()
Text4.Text=""
EndSub
’add.Form(添加车次代码)
PrivateSubCommand1_Click()
Adodc1.Recordset.AddNew
Adodc1.Refresh
EndSub
PrivateSubCommand2_Click()
Adodc1.Recordset.Delete
Adodc1.Refresh
EndSub
PrivateSubCommand3_Click()
xitong.Show
UnloadMe
EndSub
PrivateSubCommand4_Click()
Adodc1.Recordset.Update
Adodc1.Refresh
EndSub
PrivateSubCommand5_Click()
Text1.Text=""
Text2.Text=""
Text3.Text=""
Text4.Text=""
Text5.Text=""
Text6.Text=""
Text7.Text=""
Text8.Text=""
Text9.Text=""
Text10.Text=""
Text11.Text=""
Text12.Text=""
Text13.Text=""
Text14.Text=""
EndSub
’user_info.form(添加、修改用户及密码)
PrivateSubCommand1_Click()
Adodc1.Recordset.AddNew
Adodc1.Refresh
EndSub
PrivateSubCommand2_Click()
Adodc1.Recordset.Delete
Adodc1.Refresh
EndSub
PrivateSubCommand3_Click()
Text1.Text=""
Text2.Text=""
EndSub
PrivateSubCommand4_Click()
into.Show
UnloadMe
EndSub
PrivateSubText1_MouseMove(ButtonAsInteger,ShiftAsInteger,XAsSingle,YAsSingle)
Text1.Text=""
EndSub
PrivateSubText2_GotFocus()
Text2.Text=""
EndSub