基于C语言Win32API窗口实现的物流配送信息管理系统

一、题目

物流配送管理信息系统

二、系统功能模块结构图

2.1 函数程序模块结构图如图 1 所示:

图 1

2.2 录入子菜单功能结构图如图 2 所示:

图 2

2.3 插入的子菜单的功能结构图如图 3 所示:

图 3

2.4 修改的子菜单的功能结构图如图 4 所示:

2.5 Search 的子菜单的功能结构图如图 5 所示:

2.6 删除的子菜单的功能结构图如图 6 所示

三、数据结构设计及用法说明

3.1 各条链的结点结构定义

、/路线基本信息结点/

typedef struct Route {
    TCHAR routNum[6];//路线编号
    TCHAR routName[20];//路线名称
    int hasStation;//包含的总站点数
    double howLong;//总公里数
    double fullTime;//总耗时
    TCHAR startStation[10];//起始站点编号
    TCHAR endStation[10];//结束站点编号
    TCHAR chargePeople[30];//负责人姓名
    TCHAR chargeTele[8];//负责人办公电话
    TCHAR chargeMobile[11];//负责人移动电话
    TCHAR chargeEmail[50];//负责人电子邮箱
    struct Station* headStation;//站点链表
    struct Route* nextRoute;//链表next指针
} route,*proute;

、/站点基本信息结点/

typedef struct Station {
    TCHAR belongRoute[6];//所属路线编号
    int stationCounter;//站点序号
    TCHAR stationNum[10];//站点编号
    TCHAR stationName[50];//站点名称
    double fromStart;//距离起始站点距离
    double fromUpper;//距离上一个站点距离
    double fromUpperTime;//与上一个站点交通耗时
    double stayTime;//停留时间
    struct Truck *headTruck;//车辆链表
    struct Station *nextStation;//链表next指针
} station,*pstation;

、/车辆基本信息结点/

typedef struct Truck {
    TCHAR truckNum[8];//车辆牌照
    TCHAR belongRoute[6];//执行的配送路线编号
    TCHAR driverName[30];//司机姓名
    TCHAR driverTele[11];//司机移动电话
    TCHAR belongStation[10];//所属站点编号
    struct StationLoad {
        TCHAR loadName[20];//本站点载/卸货种类
        double loadWeight;//本站点载/卸货重量
    } load;
    struct Truck * nextTruck;//链表next指针
} truck,*ptruck;

3.2 十字交叉链表结构图

图 8 物流配送信息管理系统的十字交叉链表

四、程序结构(画流程图)

  • 图 9 程序流程图
  • 图 10 添加流程图
  • 修改、删除、录入、查询功能流程与添加相似,这里不再列出

五、各模块的功能

图 各模块功能图

详见

六、试验结果(包括输入数据和输出结果)

6.1 窗口主界面

在这里插入图片描述

6.2 数据录入

、录入路线信息

、录入站点信息

、录入车辆信息

6.3 数据删除

、删除路线

、删除站点

、删除车辆

、删除成功

、删除失败

6.4 数据输出

①、输出报表

②、查询耗时最长、最短的路线

在这里插入图片描述

③、查询经停某站点的所有路线

更多详细用法请查阅使用指南

七、体会

7.1 我深刻的认识到这个程序的三重十字交叉链表并不难,最难的是如何仅用 c 语言做出图形界面并实现各种功能选项和消息处理。

通过学习一些 WIN32API,我发现 windows 自带一些图形界面 API,但封装十分差,对于每个窗口要写一个相应的响应函数,并在函数中处理捕获到的各种消息,要为按钮、菜单、等控件写相应函数,还要从编辑栏获取用户输入,虽十分繁琐,但代码冗余较多,当熟练后只需复制原有代码并做微小改动即可,总之,虽然 c 语言不适合图形界面开发,但通过这次任务,我也学到了一些 win32 底层 API 的调用。

7.2 编写大型程序首先要做好程序的总体规划。

对于本程序应先确定程序要实现的功能,然后根据功能设计菜单项。先写菜单选择函数,然后只需将要使用的功能函数查到程序的相应位置即可。

八、参考资料

8.1 参考文献:

8.1.1 、曹计昌,卢萍,李开。 《C 语言程序设计》。武汉:华中科技大学出版社,2008.

8.2 网络资源:

8.2.2 、win32 开发教学博客

http://blog.csdn.net/tcjiaan/article/details/8497535

九、附录:程序清单及源程序软盘

MainWindow.c (主程序)

MainWindow.h
resource.h

transport1.c(各类功能函数)

transport1.h

猜你喜欢

转载自blog.csdn.net/newlw/article/details/125047441
今日推荐