vfp公交车调度系统

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接: https://blog.csdn.net/a1376871144/article/details/85718542

目录

一.需求分析 3

11 基本情况说明 3

12 数据库系统的预期功能 3

1.2.1 信息要求 3

1.2.2 处理要求 3

1.3 数据安全性与完整性要求 4

1.4 数据项 4

二.概念结构设计 7

三.逻辑结构设计 7

四.功能模块结构设计 8

扫描二维码关注公众号,回复: 7657973 查看本文章

五.主要功能及程序界面说明 8

六.主要代码 11

.  总结 14

 

一.需求分析

1.1 基本情况说明 

    随着城市的发展,汽车线路和汽车数量的剧增,汽车运营公司迫切的需要一种简单高效的汽车调度系统。为提高我国汽车企业的运营管理效率,适应时代对汽车事业提出的阶段性发展需求,本文设计并实现一种能够适应汽车发展需要的综合的汽车调度系统。

1.2 数据库系统的预期功能

1.2.1 信息要求

数据库中需要存储的信息有;

1)车辆的基本数据:包括汽车编号,汽车车型,购买时间,使用时间,是否有座,有无电视,有无空调等信息。

2)车票的基本数据:包括车票编号,汽车编号,起始城市,到达城市,车票价格等信息。

3)汽车线路的基本数据:包括线路编号,起始城市,到达城市,起始日期,汽车编号,车票价格等信息。

1.2.2 处理要求

1)系统管理

*可按照职务类型创建用户并对用户权限进行定义;

*对登录用户进行密码验证管理;

*车队管理员可创建车辆管理员、司机管理员并进行派车登记的填写;车辆管理员负责车辆的信息包括车辆的出车,维修,收车及登记;司机管理员负责司机的出车,病事假,返工的登记;业务管理员负责申请车辆信息与司机的信息的查询与登记。

2)基本信息管理:

*车辆基本信息登记:登记信息如上述。

*车票基本信息登记:登记信息为上述。

*车辆路线基本信息登记。

3)数据查询与更新管理:

*车辆基本信息查询与更新:根据所需车辆要求查询可用车辆,该车辆时间上应满足在发车时间与收车时间之间的要求,车辆状态应符合:已发车,未收车,未在维修。并对车辆数据进行增加,删除和修改操作。

*车辆出车记录查询与更新:查询车辆在各次运营中的乘客数,及总票价。并对相关数据进行插入,删除和修改操作。

*车辆维修记录查询与更新:查询各车辆在各个时间的维修情况,并对相关数据进行插入,删除和修改操作。

4)车辆维修管理:

*登记信息包括车次号,送修日期,送修原因,维保费用,取车备注。

*回库登记,登记信息包括车次号,驾驶员,回库时间,维修完成情况。

5)用车调度管理:

*查出可调度的符合申请要求的车辆。

*登记出车信息。

*查询正在检修的车辆信息。

1.3 数据安全性与完整性要求

*系统管理员创建用户,并赋予用户相应的权限。

*进行用户密码管理

*避免数据冗余,使数据简洁清晰

*避免误删,空值,重复等数据操作存储错误。

1.4 数据项

表1 车辆信息表

名称

类型

车次

Char(9)

车号

Char(10)

发车时间

Char(8)

收车时间

Char(8)

运营次数

Int(6)

起点站

Char(16)

终点站

Char(20)

表2 车票信息表

名称

类型

车票编号

Char(10)

车辆编号

Char(10)

起始城市

Char(10)

到达城市

Char(10)

车票价格

Int(5)

表3 汽车线路信息表

名称

类型

线路编号

Char(10)

起始城市

Char(20)

到达城市

Char(20)

起始日期

Date(8)

汽车编号

Char(10)

车票价格

Int(4)

备注

备注型(4)

表4 汽车信息表

名称

类型

汽车编号

Char(10)

汽车车型

Char(20)

购买时间

Date(8)

使用时间

Date(8)

是否有坐

Char(2)

有无电视

Char(2)

有无空调

Char(2)

表5 维修

名称

类型

车号

Char(10)

维修费用

Int(10)

故障类型

Char(10)

日期

Char(10)

表6 收入

名称

类型

车次

Char(10)

车号

Char(10)

乘客数

Int(10)

单位票价

float(10)

日期

Char(10)

表7 结算

名称

类型

车次

Char(10)

收入

Float(10)

维修费用

Float(10)

利润

Float(10)

二.概念结构设计

图1 E-R图

根据要实现的功能做出E-R图如上,E-R图为原创,使用PRESSON所做。

三.逻辑结构设计

将E-R图转换成对应的关系模型,关系的码用下横线标出

1.车辆(汽车编号,汽车车型,购买时间,使用时间,是否有座,有无电视,有无空调)

2.车票(车票编号,汽车编号,起始城市,到达城市,车票价格)

3.汽车线路(线路编号,起始城市,到达城市,起始日期,汽车编号,车票价格)

四.功能模块结构设计

图2 功能模块图

  • 主要功能及程序界面说明

1.登陆界面

2.欢迎界面

1.欢迎界面

3.查询线路信息

4.添加线路信息

5.修改线路信息

6.添加车票信息报表

 

六.主要代码

程序1 登录

x=allt(thisform.text1.value)

y=allt(thisform.text2.value)

 

set exact on

locate for 账号=x

if found()

       if y=密码

           a=messageb('   欢迎进入本系统   ',1+0+48,'登录系统')

       if a=1

           do form 欢迎界面

       endif

       else   

         b=messageb('   密码错误   ',5+0+48,'登录系统')   

        if b=4

               thisform.text1.setfocus

               thisform.text1.value=''

               thisform.text2.value=''

        return       

       endif

endif

 else   

        b=messageb('   密码错误   ',5+0+48,'登录系统')   

        if b=4

               thisform.text1.setfocus

               thisform.text1.value=''

               thisform.text2.value=''

        return       

       endif

endif       

程序2 查询线路信息

x=allt(thisform.text1.value)

set exact on

locate for 线路编号=x

if found()

report form 查询线路信息

else

     messagebox('     对不起,没有查找到此编号     ','提示信息')   

     thisform.text1.value=''

     thisform.text1.setfocus

endif  

程序3 添加线路信息

a2=ALLT(ThisForm.text1.Value)

a3=ALLT(ThisForm.text2.Value)

a4=ALLT(ThisForm.text3.Value)

a5=ALLT(ThisForm.text4.Value)

a6=ALLT(ThisForm.text5.Value)

a7=ALLT(ThisForm.text6.Value)

a8=ALLT(ThisForm.text7.Value)

 Insert Into 汽车线路信息表    Values (a2,a3,a4,a5,a6,a7,a8)       

   MessageBox("录入成功",64,"提示")

程序4 修改密码

x=allt(thisform.text1.value)

y=allt(thisform.text2.value)

z=allt(thisform.text3.value)

if x='admin'

   locate for 账号=x

       if found()

       if y==z

          replace 密码 with y

          messageb('   修改成功!  ',0+48+256,'修改密码提示')

       else

          a=messageb('   两次输入密码不同,请重新输入!  ',0+48+256,'修改密码提示')

          if a=1  

             thisform.text1.value=''

             thisform.text2.value=''

             thisform.text3.value=''

             thisform.text1.setfocus

          endif

        endif  

        endif

else

   messageb('   请输入用户名  ',0+48+256,'修改密码提示')          

endif

程序5 添加车票信息

a2=ALLT(ThisForm.text1.Value)

a3=ALLT(ThisForm.text2.Value)

a4=ALLT(ThisForm.text3.Value)

a5=ALLT(ThisForm.text4.Value)

a6=ALLT(ThisForm.text5.Value)

a7=ALLT(ThisForm.text6.Value)

 

 Insert Into 车票信息表    Values (a2,a3,a4,a5,a6,a7)       

   MessageBox("录入成功",64,"提示")

程序6 添加汽车信息

a2=ALLT(ThisForm.text1.Value)

a3=ALLT(ThisForm.text2.Value)

a4=ALLT(ThisForm.text3.Value)

a5=ALLT(ThisForm.text4.Value)

a6=ALLT(ThisForm.text5.Value)

a7=ALLT(ThisForm.text6.Value)

a8=ALLT(ThisForm.text7.Value)

 Insert Into 汽车信息表    Values (a2,a3,a4,a5,a6,a7,a8)       

   MessageBox("录入成功",64,"提示")

程序7 浏览车票信息

*首条

GO top

 

    thisform.command1.enabled=.f.

    thisform.command2.enabled=.f.

 

    thisform.command3.enabled=.t.

    thisform.command4.enabled=.t.

 

thisform.refresh

 

*上一条

skip -1

if recno()=1

      thisform.command1.enabled=.f.

    thisform.command2.enabled=.f.

endif

    thisform.command3.enabled=.t.

    thisform.command4.enabled=.t.

thisform.refresh

 

*下一条

skip 1

if recno()=reccount()

      thisform.command3.enabled=.f.

    thisform.command4.enabled=.f.

endif

    thisform.command1.enabled=.t.

    thisform.command2.enabled=.t.

thisform.refresh

 

*末条

go bottom

    thisform.command3.enabled=.f.

    thisform.command4.enabled=.f.

 

    thisform.command1.enabled=.t.

    thisform.command2.enabled=.t.

 

thisform.refresh

 

七.  总结

1.设计方案的主要优点及不足

设计方案较为全面的考虑到了用户的需求,从用户的需求出发,分别实现了车票信息,车辆信息及线路信息的的查询功能和更新功能(插入,删除和修改)。同时也生成了菜单和相应的统计报表。但是由于临时更换题目,报告和程序中有的部分没来得及更改,也没有来得及对功能进行完善,没有实现用户的分级管理和结算功能。可以在此方面加以改进和推广。

2.收获及建议

本次课程设计中,加强了自己的动手能力,在与同学的交流中较好的完成了本次课程设计,也加强了使用网络进行自主学习的能力同时,本次课程设计也使我对vfp软件有了更好的了解和更深的学习。

猜你喜欢

转载自blog.csdn.net/a1376871144/article/details/85718542