Score
0
Watch 5 Star 1 Fork 2

curriculum-design / 快递驿站系统GUIC++GPL-3.0

Create your Gitee Account
Explore and code with more than 5 million developers,Free private repositories !:)
Sign up
Clone or download
Cancel
Notice: Creating folder will generate an empty file .keep, because not support in Git
Loading...
readme.md

快递驿站系统

系统功能

  • 包裹管理:主要包括包裹入库、包裹查询、包裹出库、库存盘点等。
  • 短信发送:可以按照星期进行自动编号(取件码),实物上标记取件码(不写用户名字),按取件码顺序摆放,方便快速找。
  • 快递邮寄:快递邮寄开票、快递邮寄结款、未付款查询、快递邮寄查询等。 差错记录管理:客户对已到达的包裹进行验收时,对有差错问题的包裹填写差错记录。

设计目标

在实现以上业务逻辑的前提下,我们将开发两套用户界面,控制台界面用于测试业务逻辑,GUI界面提供更简洁的操作方便用户使用。因此,程序整体需要实现良好的前后端分离,后端业务逻辑模块与前端界面模块不能有耦合,考虑到快递驿站管理软件将主要在移动端使用,我们将Android作为系统的目标平台之一。

系统功能设计

p1 p2 p3

类设计与类结构

  • date(时间类),它描述一个日期,可以生成该日期的取件码
  • expressBase(包裹快递基类)
  • package(包裹类),描述驿站代收的快递单件
  • express(快递类),描述驿站发出的快递单件
  • Error(差错类),描述快递差错信息

类间关系(UML图)如下:

uml

模块设计详解

由于要使用户界面与业务逻辑没有耦合,业务逻辑部分首先基于面向对象思想进行抽象,用expresspackage类分别存储驿站中包裹和驿站发出快递的信息。并对其进行封装,生成简洁易用的过程式接口——静态空间dataOperation供给前端界面调用。其中含有保存所有expresspackage对象的两个list。下面将在这个顶层设计的基础上,解析所要实现的每个功能实现逻辑:

包裹模块

  • 包裹入库:功能由静态空间dataOperation实现,它构造package对象,存储到自己的package容器dataOperation::allPackage中。
  • 通过取件码进行包裹查询:功能由静态空间dataOperation实现,它遍历dataOperation::allPackage,逐个比对取件码,找到即返回该对象指针,找不到返回nullptr
  • 包裹出库:功能由packageoutStock方法实现,其置该package.isOutStocktrue。 库存盘点:功能由静态空间dataOperation实现,它遍历dataOperation::allPackage,访问所有对象的isOutStock状态,进行统计,返回已取件和未取件数量的二元组。
  • 分配取件码:功能在package构造函数中实现,通过系统日期计算当前取件码。取件码结构为“当前周数-当前星期几-当前分秒-当前在库包裹数”,取件码反应了包裹入库的时间顺序,可以按照该顺序在货架上摆放。

快递模块

  • 邮寄开票:功能由expressgetExpressBill方法实现,该函数返回快递单。在GUI界面中,填写邮寄信息后,会自动弹出快递单。也可以输入快递单号查询快递单。
  • 邮寄结款:功能由expresspay方法实现,其置express.isPaidtrue。 未付款查询:功能由静态空间dataOperation实现,它遍历dataOperation::allExpress,将所有isPaid属性为false的对象指针组成一个vector,将其返回。
  • 差错记录管理:每个express都有一个差错信息类(Error)对象作为成员,外部可对其进行设置。如果设置了差错信息,在打印快递单时也会将差错信息输出。

Comments ( 0 )

Sign in for post a comment

About

Cancel

Releases (5)

All

Gitee Metrics

Contributors

All

Activities

load more
can not load any more