公交线路调配管理系统的设计与实现.docx
- 文档编号:24921984
- 上传时间:2023-06-02
- 格式:DOCX
- 页数:21
- 大小:395.98KB
公交线路调配管理系统的设计与实现.docx
《公交线路调配管理系统的设计与实现.docx》由会员分享,可在线阅读,更多相关《公交线路调配管理系统的设计与实现.docx(21页珍藏版)》请在冰豆网上搜索。
公交线路调配管理系统的设计与实现
学号
2012-2013学年第二学期
0908210108
《高级语言程序设计》
课程设计报告
题目:
公交线路调配管理系统的设计与实现
专业:
计算机科学与技术
班级:
09
(2)班
姓名:
方刚
指导教师:
代美丽
成绩:
计算机与信息工程系
2013年6月19日
目录
1.设计内容及要求2
1.1内容2
1.2要求2
2.概要设计2
2.1需求概述2
2.2功能模块2
2.3软件结构3
2.4总体和模块外部功能设计3
2.5接口设计3
2.5.1外部接口3
2.5.2内部接口3
2.6数据库设计3
3.设计过程或程序代码.5
3.1登录5
3.2主窗体6
3.2.1查看出车7
3.2.2增加车辆7
3.2.3故障信息9
3.2.4定期保养11
3.2.5模拟回执(输入信息)11
3.2.6退出11
4.设计结果与分析.12
4.1登录12
4.2模拟回执(输入信息)12
4.3查看出车12
4.4增加车辆13
4.5故障信息14
4.6定期保养15
5.参考文献.16
公交线路调配管理系统
1.设计内容及要求
1.1内容
系统的目的可以实现对公交车辆的统一管理,以及实时监控各公交线路的情况。
1.2要求
a)可以查询每条线路的出车情况
b)根据线路的回执,可以根据具体情况,增加车辆
c)车辆故障处理
d)车辆定期维修
2.概要设计
2.1需求概述
本方案通过对在线车辆的实时监控和调度,保证了车辆运行计划的有效实施。
通过车辆运营信息的及时反馈,保证了线路的畅通,并确保了车辆的合理运行、公交运力与客运资源的最优配置。
本方案减少了乘客的等车时间,简化了调度员的调度流程,方便了司机与调度中心的联系,提高了乘车的舒适性及行车的安全性,也充分体现了调度人员的劳动价值、工作效率和工作质量。
本方案可以提高公交车辆的载客率,大大降低车辆空驶率、燃油消耗及设备的损耗,通过提高管理水平降低了企业的生产成本,间接地提高了企业的经营效益。
2.2功能模块
Ø登录模块:
登录.vb
功能:
完成用户身份验证
Ø调度管理模块:
Form1.vb
功能:
处理所有的公交调度相关请求
Ø子模块:
查看出车模块:
可以查看对应线路的车辆出车详细信息。
增加车辆模块:
接收到某线路如果需要增加车辆回执后,可以通过此模块添加车辆并通知司机
故障信息模块:
在收到车牌号为某某的车辆发生故障信息后,做出处理,并维护故障相关信息。
定期保养模块:
可以通过此模块查看需要做维护的日期。
Ø模拟回执模块:
所有回执都是通过这个对话框来模拟的。
2.3软件结构
2.4总体和模块外部功能设计
一般功能:
Ø增加数据信息
Ø删除数据信息
Ø修改数据信息
Ø查询数据信息
特殊功能:
Ø权限设置(在此不要求实现)
2.5接口设计
2.5.1外部接口
界面为Windows应用程序界面,通过ADO.NET访问数据库;
与其他软硬件设备的接口函数未写。
2.5.2内部接口
暂无。
2.6数据库设计
使用ACCESS数据库。
车辆:
字段名
数据类型
说明
车牌号
文本
保养日期
日期/时间
下一次做保养的日期
车型
文本
载客
数字
发动机
文本
发动机类型
车重
数字
人员职位
功率
数字
制造厂
文本
驾驶员:
字段名
数据类型
说明
工号
文本
司机的工号
姓名
文本
性别
文本
车牌号
文本
联系电话
文本
司机的联系电话
驾驶中
是/否
是否在驾驶
管理层:
字段名
数据类型
说明
工号
文本
管理人员工号
姓名
文本
性别
文本
部门
文本
所属部门
联系电话
文本
登录密码
文本
级别
文本
管理级别
维修:
字段名
数据类型
说明
车牌号
文本
维修日期
日期/时间
维修部位
文本
汽车维修的部位
地点
文本
维修地点
维修费
数字
维修的花费
线路:
字段名
数据类型
说明
线路编号
文本
例如:
121,3。
起始站
文本
终点站
文本
途经站
文本
车队:
字段名
数据类型
说明
车牌号
文本
线路编号
文本
3.设计过程或程序代码
3.1登录
PublicClass登录
PrivateSubOK_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesOK.Click
DimmyconnAsNewOleDb.OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;DataSource=|DataDirectory|\bus.accdb;")
DimmystrAsString="SELECT*FROM管理层WHERE工号='"+UsernameTextBox.Text+"'AND登录密码='"+PasswordTextBox.Text+"'"
DimmyadapterAsNewOleDb.OleDbDataAdapter(mystr,myconn)
DimmydatasetAsNewDataSet
myadapter.Fill(mydataset,"table")
If(Trim(UsernameTextBox.Text)<>""AndTrim(PasswordTextBox.Text)<>"")Then
If(mydataset.Tables("table").Rows.Count=1)Then
Me.Hide()
Form1.Show()
Else
MsgBox("没有此用户或密码错误,请重输!
")
UsernameTextBox.Focus()
EndIf
Else
MsgBox("请输入用户名和密码!
")
UsernameTextBox.Focus()
EndIf
EndSub
PrivateSubCancel_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesCancel.Click
Me.Close()
EndSub
PrivateSub登录_Load(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesMyBase.Load
UsernameTextBox.Focus()
EndSub
EndClass
3.2主窗体
ImportsSystem.Data.OleDb
PublicClassForm1
PublicmybindAsBindingManagerBase
Publicmybind1AsBindingManagerBase
PrivateSubForm1_Load(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesMyBase.Load
'TODO:
这行代码将数据加载到表“BusDataSet.驾驶员”中。
您可以根据需要移动或移除它。
Me.驾驶员TableAdapter.Fill(Me.BusDataSet.驾驶员)
'TODO:
这行代码将数据加载到表“BusDataSet.车辆”中。
您可以根据需要移动或移除它。
Me.车辆TableAdapter.Fill(Me.BusDataSet.车辆)
'TODO:
这行代码将数据加载到表“BusDataSet.线路”中。
您可以根据需要移动或移除它。
Me.线路TableAdapter.Fill(Me.BusDataSet.线路)
'TODO:
这行代码将数据加载到表“BusDataSet.车队”中。
您可以根据需要移动或移除它。
Me.车队TableAdapter.Fill(Me.BusDataSet.车队)
Label1.Text=""
维修TableAdapter.Fill(Me.BusDataSet.维修)
mybind=Me.BindingContext(Me.维修BindingSource)
驾驶员TableAdapter.Fill(Me.BusDataSet.驾驶员)
mybind1=Me.BindingContext(Me.驾驶员BindingSource)
EndSub
3.2.1查看出车
PrivateSubButton1_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesButton1.Click
DimOledb1AsNewOleDbConnection
DimOleDataSet1AsNewDataSet
Oledb1.ConnectionString="Provider=Microsoft.ACE.OLEDB.12.0;DataSource=|DataDirectory|\bus.accdb;"
Oledb1.Open()
IfConnectionState.OpenThen
DimOleDataAdapter1AsOleDbDataAdapter=NewOleDbDataAdapter("SELECT*FROM车队,驾驶员WHERE车队.车牌号=驾驶员.车牌号AND线路编号='"+ComboBox1.Text+"'",Oledb1)
OleDataAdapter1.Fill(OleDataSet1,"出车")
DataGridView1.DataSource=OleDataSet1.Tables("出车")
Oledb1.Close()
EndIf
EndSub
3.2.2增加车辆
PrivateSubComboBox2_SelectedValueChanged(ByValsenderAsObject,ByValeAsSystem.EventArgs)HandlesComboBox2.SelectedValueChanged
DimOledb1AsNewOleDbConnection
DimOleDataSet1,OleDataSet2AsNewDataSet
Oledb1.ConnectionString="Provider=Microsoft.ACE.OLEDB.12.0;DataSource=|DataDirectory|\bus.accdb;"
Oledb1.Open()
IfConnectionState.OpenThen
DimOleDataAdapter1AsOleDbDataAdapter=NewOleDbDataAdapter("SELECT车牌号FROM驾驶员WHERE车牌号IN(SELECT车牌号FROM车队WHERE线路编号='"+ComboBox2.Text+"')AND驾驶中=no",Oledb1)
OleDataAdapter1.Fill(OleDataSet1,"空闲车辆")
Me.ComboBox3.DataSource=OleDataSet1.Tables("空闲车辆")
Me.ComboBox3.DisplayMember="车牌号"
Me.ComboBox3.ValueMember="车牌号"
DimOleDataAdapter2AsOleDbDataAdapter=NewOleDbDataAdapter("SELECT车牌号FROM驾驶员WHERE车牌号IN(SELECT车牌号FROM车队WHERE线路编号='"+ComboBox2.Text+"')AND驾驶中=yes",Oledb1)
OleDataAdapter2.Fill(OleDataSet2,"在运行车辆")
Me.ComboBox4.DataSource=OleDataSet2.Tables("在运行车辆")
Me.ComboBox4.DisplayMember="车牌号"
Me.ComboBox4.ValueMember="车牌号"
Oledb1.Close()
EndIf
EndSub
PrivateSubComboBox3_SelectedValueChanged(ByValsenderAsObject,ByValeAsSystem.EventArgs)HandlesComboBox3.SelectedValueChanged
DimOledb1AsNewOleDbConnection
DimOleDataSet1AsNewDataSet
Oledb1.ConnectionString="Provider=Microsoft.ACE.OLEDB.12.0;DataSource=|DataDirectory|\bus.accdb;"
Oledb1.Open()
IfConnectionState.OpenThen
DimOleDataAdapter1AsOleDbDataAdapter=NewOleDbDataAdapter("SELECT姓名FROM驾驶员WHERE车牌号='"+ComboBox3.Text+"'",Oledb1)
OleDataAdapter1.Fill(OleDataSet1,"司机")
If(OleDataSet1.Tables("司机").Rows.Count>0)Then
Me.TextBox1.Text=OleDataSet1.Tables("司机").Rows(0).Item(0)
Else
Me.TextBox1.Text="没登记姓名"
EndIf
Oledb1.Close()
EndIf
EndSub
PrivateSubComboBox4_SelectedValueChanged(ByValsenderAsObject,ByValeAsSystem.EventArgs)HandlesComboBox4.SelectedValueChanged
DimOledb1AsNewOleDbConnection
DimOleDataSet1AsNewDataSet
Oledb1.ConnectionString="Provider=Microsoft.ACE.OLEDB.12.0;DataSource=|DataDirectory|\bus.accdb;"
Oledb1.Open()
IfConnectionState.OpenThen
DimOleDataAdapter1AsOleDbDataAdapter=NewOleDbDataAdapter("SELECT姓名FROM驾驶员WHERE车牌号='"+ComboBox4.Text+"'",Oledb1)
OleDataAdapter1.Fill(OleDataSet1,"司机")
If(OleDataSet1.Tables("司机").Rows.Count>0)Then
Me.TextBox2.Text=OleDataSet1.Tables("司机").Rows(0).Item(0)
Else
Me.TextBox2.Text="没登记姓名"
EndIf
Oledb1.Close()
EndIf
EndSub
PrivateSubButton2_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesButton2.Click
DimOledb1AsNewOleDbConnection
DimOleDataSet1AsNewDataSet
Oledb1.ConnectionString="Provider=Microsoft.ACE.OLEDB.12.0;DataSource=|DataDirectory|\bus.accdb;"
Oledb1.Open()
IfConnectionState.OpenThen
DimcmdAsNewOleDbCommand
cmd.Connection=Oledb1'创建连接
cmd.CommandText="UPDATE驾驶员SET驾驶中=yesWHERE车牌号='"+ComboBox3.Text+"'"'创建更新数据的SQL字符串
cmd.ExecuteNonQuery()'执行不反回任何值得查询
Oledb1.Close()
EndIf
MsgBox("操作完成,请立即与司机联系!
",64,"提示")
EndSub
PrivateSubButton14_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesButton14.Click
DimOledb1AsNewOleDbConnection
DimOleDataSet1AsNewDataSet
Oledb1.ConnectionString="Provider=Microsoft.ACE.OLEDB.12.0;DataSource=|DataDirectory|\bus.accdb;"
Oledb1.Open()
IfConnectionState.OpenThen
DimcmdAsNewOleDbCommand
cmd.Connection=Oledb1'创建连接
cmd.CommandText="UPDATE驾驶员SET驾驶中=noWHERE车牌号='"+ComboBox4.Text+"'"'创建更新数据的SQL字符串
cmd.ExecuteNonQuery()'执行不反回任何值得查询
Oledb1.Close()
EndIf
MsgBox("操作完成!
",64,"提示")
EndSub
3.2.3故障信息
PrivateSubButton5_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesButton5.Click
mybind.Position=0'第一条按钮
EndSub
PrivateSubButton6_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesButton6.Click
mybind.Position=mybind.Position-1'前翻按钮
EndSub
PrivateSubButton7_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesButton7.Click
mybind.Position=mybind.Position+1'后翻按钮
EndSub
PrivateSubButton8_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesButton8.Click
mybind.Position=mybind.Count-1'最后一条按钮
EndSub
PrivateSubButton9_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesButton9.Click
Me.Validate()'修改按钮
Me.维修BindingSource.EndEdit()
Me.维修TableAdapter.Update(Me.BusDataSet.维修)
EndSub
PrivateSubButton10_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesButton10.Click
mybind.AddNew()'插入按钮插入一条空记录
EndSub
PrivateSubButton11_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesButton11.Click
mybind.RemoveAt(mybind.Position)'删除按钮
EndSub
PrivateSubButton12_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesButton12.Click
mybind.CancelCurrentEdit()'取消按钮
EndSub
PrivateSubButton3_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesButton3.Click
Me.Validate()'确认按钮
Me.维修BindingSource.EndEdit()
Me.维修TableAdapter.Update(Me.BusDataSet.维修)
EndSub
3.2.4定期保养
通过图形化界面,绑定数据源实现。
步骤:
在数据源窗口中,直接拖住“车辆“表至界面中,即可完成。
3.2.5模拟回执(输入信息)
Private
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 公交线路 调配 管理 系统 设计 实现