一、题目
物流配送管理信息系统
二、系统功能模块结构图
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