当前位置: 首页 > news >正文

基于Python+SQL Server2008实现(GUI)快递管理系统

快递业务管理系统的设计与实现

摘要: 着网络新零售的到来,传统物流在网购的洗礼下迅速蜕变,在这场以互联网为基础的时代变革中,哪家企业能率先转变其工作模式就能最先分得一杯羹,物流管理也不例外。传统的物流管理模式效率低下,不仅耗费大量的人力物力,信息维护也极易出现错误。近年来物流管理系统逐步在全国范围内实施使用,它的实现使用户足不出户即可完成寄件、查件等业务,同时也方便物流公司对海量物流数据的处理,是物流管理发展中一个重要的里程碑。

本文实现的快递业务管理系统管理系统,采用 C/S 网络架构进行设计,客户端发送请求获取功能操作,内部实现则由服务器端完成。开发时选用 Python 语言来提升开发效率。前台页面使用 Tkinter GUI 实现,后台数据库采用 SQL server 2008 R2,使用 Pymssql 连接 SQL server 服务器。该系统包括基本的查件、寄件、用户管理、快递管理、最优路径选择五个模块,可以满足小型快递业务管理的日常运作需求。系统实现后还通过大量的测试用例检验系统的可靠性,以便给用户带来最佳的使用感。

关键词:快递业务管理系统;Python;PyMssql; SQL server;Tkinter

一、绪论

1.1 研究背景及意义

我国国民经济高速发展

我国自改革开放以来,国民经济就走上了持续稳定高速发展的道路,年均增长 8% 以上,而从全国看,发展最快的又是我国东南沿海一些省市,他们利用国家给经济特区等一系列优惠政策,大力改革开放,发展经济,率先实现经济的超常规大幅度增长。其中出现了一批大型实力企业,像海尔、宝洁、IBM 等。经济的大幅增长,必然导致巨大的物质产品的流动,也就必然导致物流量的增加。这是经济发展的必然规律,也是物流业成长的必然规律。

我国物流学发展的结果

我国第三方物流的发展有一个有趣的现象,就是一旦有了一个第三方物流的样板和模式,社会很快在各个地方推广开来。特别是最近几年,发展特快,上海、北京、天津等城市且不说,武汉就一下子兴起了如中远、长江、中储、武储等好几家大型第三方物流公司。  

出现这种现象,可以说是中国物流学发展的结果,人们已经有了比较好的物流观念和物流学基础。

信息技术发展的结果
20 世纪 90 年代以来,随着因特网技术以及各种信息技术的发展,为企业建设高效率高效率的信息技术网络创造了条件,信息技术实现了数据的快速、准确传递,一方面提高了物流企业在仓库管理、装卸运输、采购、订货、配送发运、认单处理的自动化水平。
促使订货、包装、保管、运输、流通加工一体化,使大规模、高质量、高服务水平处理物流企业与其他企业间的信息沟通交流、协调合作方便快捷,并能有效跟踪和管理物流渠道中的货物,精确计算物流活动的成本,这就使客户企业可以随时跟踪自己的货物。
因而放心地把自己的物流业务交由第三方物流企业处理,这些环境条件都促使了第三方物流企业的产生。

市场竞争的结果
第三方物流的产生是社会分工的必然结果。各企业为增强市场竞争力,而将企业的资金,人力,物力投入到其核心业务上,寻求社会化分工协作带来的效果和效率的最大化。

1.2 结构安排

根据系统研发的背景,结合软件开发的流程和步骤,将分为七个章节对论文进行撰写,各章节内容如下:

  • 第一章:绪论。介绍系统研发背景,对系统研究现状进行分析。
  • 第二章:关键技术介绍。介绍开发过程中用到的工具、框架、技术等。
  • 第三章:系统分析。首先分析系统的开发是否可行即进行可行性分析,评估该系统开发的经济效益。然后确定系统将要实现的功能、性能以及界面的需求。
  • 第四章:系统设计。依据需求分析内容对系统各层和各功能模块进行设计,借助 Python 对系统内部各个模块进行详细设计。在数据库中对系统 E-R 图和各实体的物理表进行设计。
  • 第五章:系统实现。给出各功能模块的界面截图,摘取核心代码,给出系统执行的流程步骤,对复杂模块则用流程图描述其操作过程。
  • 第六章:系统测试。介绍系统测试的方法,设计测试用例对系统各模块的运行情况和性能进行测试。
  • 第七章:总结与展望。分析研究中所遇到的问题和需要改进的模块和功能,并对未来的工作做出展望。

二、关键技术介绍

2.1 SQL SERVER

SQL Server 关系数据库简介:

SQL Server 是由 Microsoft 开发和推广的关系数据库管理系统(DBMS),它最初是由 Microsoft、Sybase 和 Ashton-Tate 三家公司共同开发的,并于 1988 年推出了第一个 OS/2 版本。 SQL Server 近年来不断更新版本,1996 年,Microsoft 推出了 SQL Server 6.5 版本;1998 年,SQL Server 7.0 版本和用户见面;SQL Server 2000 是 Microsoft 公司于 2000 年推出的最新版本。

SQL Server 特点

  • 真正的客户机/服务器体系结构。
  • 2.1.2.图形化用户界面,使系统管理和数据库管理更加直观、简单。
  • 2.1.3.丰富的编程接口工具,为用户进行程序设计提供了更大的选择余地。
  • 2.1.4.SQL Server 与 Windows NT 完全集成,利用了 NT 的许多功能,如发送和接受消息,管理登录安全性等。SQL Server 也可以很好地与 MicrosoftBackOffice 产品集成。
  • 2.1.5.具有很好的伸缩性,可跨越从运行 Windows 95/98 的膝上型电脑到运行 Windows 2000 的大型多处理器等多种平台使用。
  • 2.1.6.对 Web 技术的支持,使用户能够很容易地将数据库中的数据发布到 Web 页面上。
  • SQL Server 提供数据仓库功能,这个功能只在 Oracle 和其他更昂贵的 DBMS 中才有。

2.2 Python

Python的创始人为Guido van Rossum。1989年圣诞节期间,在阿姆斯特丹,Guido为了打发圣诞节的无趣,决心开发一个新的脚本解释程序,作为ABC 语言的一种继承。之所以选中Python(大蟒蛇的意思)作为该编程语言的名字,是取自英国20世纪70年代首播的电视喜剧《蒙提.派森干的飞行马戏团》(Monty Python's Flying Circus)。由于 Python 语言的简洁性、易读性以及可扩展性,在国外用 Python 做科学计算的研究机构日益增多,一些知名大学已经采用 Python 来教授程序设计课程。例如卡耐基梅隆大学的编程基础、麻省理工学院的计算机科学及编程导论就使用 Python 语言讲授。众多开源的科学计算软件包都提供了 Python 的调用接口,例如著名的计算机视觉库 OpenCV、三维可视化库 VTK、医学图像处理库 ITK。而 Python 专用的科学计算扩展库就更多了,例如如下 3 个十分经典的科学计算扩展库:NumPy、SciPy 和 matplotlib,它们分别为 Python 提供了快速数组处理、数值运算以及绘图功能。因此 Python 语言及其众多的扩展库所构成的开发环境十分适合工程技术、科研人员处理实验数据、制作图表,甚至开发科学计算应用程序。

2.3 Tkinter GUI

图形用户界面是一种人与计算机通信的界面显示格式,允许用户使用鼠标等输入设备操纵屏幕上的图标或菜单选项,以选择命令、调用文件、启动程序或执行其它一些日常任务。与通过键盘输入文本或字符命令来完成例行任务的字符界面相比,图形用户界面有许多优点。图形用户界面由窗口、下拉菜单、对话框及其相应的控制机制构成,在各种新式应用程序中都是标准化的,即相同的操作总是以同样的方式来完成,在图形用户界面,用户看到和操作的都是图形对象,应用的是计算机图形学的技术。GUI 即人机交互图形化用户界面设计。Tkinter模块("Tk 接口")是Python的标准Tk GUI工具包的接口.Tk和Tkinter可以在大多数的Unix平台下使用,同样可以应用在Windows和Macintosh系统里.Tk8.0的后续版本可以实现本地窗口风格,并良好地运行在绝大多数平台中.

2.4 PyMssql

在 python 中用 pymssql 模块来对 SQL server 进行操作,该模块本质就是一个套接字客户端软件,使用前需要事先安装
pip3 install pymssql

三、系统分析

3.1 可行性分析

技术可行性

在系统开发之前须熟悉 GUI 开发知识,PYTHON、SQL 语法以及常用的 SQL 语句。这些知识简单易学、容易上手,是所有 Web 开发人员都要掌握的。开发过程中使用的 Visual Studio Code, PYTHON3 等开发工具经过多年的版本更换已经相当成熟,Bug 少,用其开发的项目运行稳定,可靠性强。据此分析,该系统在技术上是可行的。

3.2 经济可行性

传统快递管理依靠手工操作,耗费大量的人力物力财力,数据的存储和查询也经常出现错误。系统上线后,用户和快递系统管理员可直接完成操作,这不仅减少了工作人员的消耗,也能够提升工作效率和服务效益。该系统由个人独立开发,开发成本几乎为零,而且便于后期的维护和修改。据此分析,该系统在经济上是可行的。

3.3 操作可行性

本系统使用简单,只需一部手机或一台电脑,通过指示点按按钮即可执行相应的操作,无需进行培训和专业知识的学习。该系统具有良好的人机交互界面且在操作上是可行的。

四、系统概要设计

4.1 体系架构设计

系统体系架构采用 C/S 架构来设计,将系统分为:客户端 UI 层、业务逻辑层和服务器层实现用户界面、业务逻辑、后台数据的分离解耦,有利于代码的复用,也便于系统的维护和扩展[10]。

4.2 系统架构设计

在对系统的架构明确后,为了确定系统要解决的具体业务流程,并分析出系统中涉及的主要角色在业务流程中的变化,我们需要对系统进行进一步的概要设计。同时,还需建立对涉及的各种信息有效存储、管理的数据库,并设计便于用户使用的界面。

系统的功能架构图如图所示

4.3 UI 模块设计

4.4 数据库设计

4.4.1 -R 图

4.4.2 数据库表结构设计

用户表

快递表

市表

省份表

邻接表

4.5 业务逻辑设计

4.5.1 登录与注册

4.5.2 主界面

4.5.3 邮寄界面

4.5.4 键查询界面

4.5.5 查询界面

4.5.6 管理界面

五、系统实现

5.1 SQL 命令配置文件

Sql1:用于查询语句 有返回值 sql2: 用于增加 删除 修改 无返回值

5.2 登录界面

5.3 注册界面

5.4 主界面

5.5 邮寄界面

5.6 键查询界面

5.7 查件界面

5.8 管理界面

六、系统测试

6.1 测试方法

系统测试就是通过测试用例对系统进行运行验证,若运行结果与预期结果一致则通过测试,否则该功能测试失败需对其进行改进。通常来说,一个功能模块要设计多个测试用例,测试方法采用白盒测试和黑盒测试结合进行。白盒测试即对系统的业务逻辑进行测试,确保每个功能的业务流与预期一致。黑盒测试即验证系统的功能是否与需求分析阶段的内容一致,能否满足使用要求[14]。该系统在开发过程中实现了单元测试并对相应的代码块进行断点调试测试。在单元测试的基础上又对各代码块进行了集成测试,验证代码块集成后的功能模块的正确性。最后进行系统测试,对各模块集成后的系统进行测试,包括权限测试、功能测试、备份测试等。系统在面向大众使用前经过了严格的测试,以确保提交给用户的产品不存在问题,能给用户带来最好的使用感。

6.2 测试环境

客户端环境:惠普 笔记本电脑、16GB 运行内存、256G SSD 硬盘;软件配置采用 window10 操作系统,Python 3.8  模块 PyMssql  (配置 python 环境变量后,在 cmd 窗口输入 pip3 install pymssql 安装)服务器环境:数据库采用 SQL SERVER 2008 R2,数据库名 kd,用户名 sa 密码 1

6.3 测试结果

该系统目前可正常运行,分别以普通用户和管理员,游客身份对其进行测试.

七、总结与展望

通过对快递业务管理系统研究现状的分析以及实地调研,结合软件设计与开发流程,本文完成了对快递业务管理系统的设计与实现。归纳本文的主要内容体现在:
  • 系统发展现状和可行性的分析。在开发之前必须明确何种系统的开发价值最高,经过多次的比较和分析,最终确定快递业务管理系统。系统的实现不仅要继承前有的功能还要增加自己的创新点,因此在开发之前必须对其发展状况进行详细的了解

  • 在整个开发过程中,需求分析是最核心的内容,后续的设计与实现都是围绕需求分析的内容进行的,当用户的需求发生变化时,系统的实现也要随之变更。为了充分了解各类用户对快递业务管理系统的需求,开发之前我进行了实地调研并借助用例分析对其进行详细描述

  • 系统设计阶段,该阶段要对系统的整体架构进行设计,在此之前必须学习软件开发框架以及运行模式的知识,对执行流程熟悉。除此之外还完成了对数据库中各实体之间的关系和数据库表的设计。

  • 系统实现阶段完成代码的编写以及 GUI 页面的优化设计,系统测试阶段设计测试用例检查系统的运行情况。

    目前本系统运行稳定,系统性能和响应速度都在正常范围内,能够满足小型快递业务管理的基本任务,达到了预期的设计目标。但是由于我能力有限,系统中一些功能的设计还不够全面,在人机交互上也有亟待改进的地方。计划接下来要优化的地方有:

  • gui 页面的美观性,由于系统制作的时间有限,所以页面组件的设计细节较为粗糙。在后期的优化中将对不同用户的系统界面进行区分,调整页面的整体布局

  • 管理员能更改市与市之间是否互通的关系,但最终没能实现,在后期需要对该模块进行完善。

  • 对代码进行审查,简化复杂业务逻辑的代码,提高代码的运行效率和复用率,从而提高系统的响应速度。


http://www.mrgr.cn/news/57582.html

相关文章:

  • 执行 start.sh 脚本时打开一个单独的运行窗口
  • CSS - grid制作表格
  • 通过热成像技术在地球之外成长,在教室之外学习
  • Netty 核心组件详解:深入理解及应用
  • 安装OpenResty时,是否还需要安装Nginx?
  • Maven3.9.9环境安装配置
  • vue2结合echarts实现数据排名列表——前端柱状进度条排行榜
  • android 生成json 文件
  • 双十一护眼台灯测评推荐:实测书客、柏曼和明基护眼台灯怎么样
  • Lora算法原理及应用
  • qt QLineEdit详解
  • 大模型微调实战:基于 LLaMAFactory 通过 LoRA 微调修改模型自我认知
  • 分组密码填充模式
  • 自闭症学校:儿童成长的崭新希望
  • Spring Boot:植物健康监测的智能管家
  • 请列举四种「等比例自适应矩形」实现方案?
  • API接口在各个领域的发挥着什么样的作用呢
  • 1024程序员日|向改变世界的程序员 致敬!
  • 字符串-04-字符串加解密
  • 最新整理:自动化测试常见面试题
  • fmql之Linux中I2C总线框架
  • 开源模型应用落地-Qwen2-VL-7B-Instruct-vLLM-OpenAI API Client调用
  • 基于RabbitMQ,Redis,Redisson,RocketMQ四种技术实现订单延时关闭功能及其相关优缺点介绍(以12306为主题)
  • Stability.AI 发布 SD3.5 模型,能否逆袭击败 FLUX?如何在ComfyUI中的使用SD3.5?
  • 使用gpt2-medium基座说明模型微调
  • anolis os 8.8 修改kube-proxy的模式为ipvs-kubeadm部署