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

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

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/900646.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

聚焦IOC容器刷新环节postProcessBeanFactory(BeanFactory后置处理)专项

目录 一、IOC容器的刷新环节快速回顾 二、postProcessBeanFactory源码展示分析 (一)模版方法postProcessBeanFactory (二)AnnotationConfigServletWebServerApplicationContext 调用父类的 postProcessBeanFactory 包扫描 …

62页PPT | 项目企业信息化现状调研与流程改进方案

这份PPT详细介绍了企业在C2M项目中的信息化现状调研与流程改进方案,涵盖了销售、采购、仓库、物流、CAD制图、CAM编程、计划、生产、质检和财务管理等多个部门的现行流程分析、作业瓶颈、未来流程建议以及针对性的改善建议,旨在通过信息化手段提升企业的…

这是一篇vue3 的详细教程

Vue 3 详细教程 一、Vue 3 简介 Vue.js 是一款流行的 JavaScript 前端框架,用于构建用户界面。Vue 3 是其最新版本,带来了许多新特性和性能优化,使开发更加高效和灵活。 二、环境搭建 安装 Node.js 前往Node.js 官方网站下载并安装适合你…

网站的SSL证书快到期了怎么办?怎么续签?

网站的SSL证书即将到期时,需要续签一个新的证书以保持网站的安全性和信任度。以下是续签SSL证书的一般步骤: 1. 选择证书提供商 如果您之前使用的是免费证书,您可以选择继续使用同一提供商的免费证书服务进行续签。如果您需要更高级别的证书…

Python:背景知识及环境安装

一、计算机的基础概念 1.1 什么是计算机? 最早我们有计算器,但是他只能完成算数运算的功能 而计算机能完成的工作有: (1)算术运算 (2)逻辑判断 (3)数据存储 &#xff08…

【AI学习】Mamba学习(十二):深入理解S4模型

#1024程序员节|征文# HiPPO的学习暂告一段落,按照“HiPPO->S4->Mamba 演化历程”,接着学习S4。 S4对应的论文:《Efficiently Modeling Long Sequences with Structured State Spaces》 文章链接:https://ar5iv…

Two output files share the same path but have different contents

报错 ✘ [ERROR] Two output files share the same path but have different contents: node_modules/.vite/deps_temp_c5811052/three_examples_jsm_controls_orbitControls__js.js7:48:33 PM [vite] error while updating dependencies: Error: Build failed with 1 error: …

7款视频转换器大测评!哪款是最适合你的视频格式转换器?

视频已成为我们生活中不可或缺的一部分,但不同的设备、平台和软件往往支持不同的视频格式,这给我们的视频分享、编辑和播放带来了不少困扰。因此,一款高效、易用的视频格式转换器成为了许多人的必备工具。本文将从软件界面、功能特性、难易程…

利用移动式三维扫描技术创建考古文物的彩色纹理网格【上海沪敖3D】

文章来源于蔡司工业质量解决方案,作者蔡司工业质量 在考古环境中,三维扫描技术应用广泛,如存档、保存、复制和分享(包括实体和虚拟形式)。 文中,通过真实的扫描案例,您将了解到三维光学解决方案…

实战-任意文件下载

实战-任意文件下载 1、开局 开局一个弱口令,正常来讲我们一般是弱口令或者sql,或者未授权 那么这次运气比较好,直接弱口令进去了 直接访问看看有没有功能点,正常做测试我们一定要先找功能点 发现一个文件上传点,不…

022_matrix_dancing_in_Matlab中求解一个超简单的矩阵问题

矩阵体操 首先,可以复习一下向量、矩阵和索引的基础知识。 向量约定矩阵约定矩阵索引 一般而言,我们利用进行计算大概就是以下的步骤: #mermaid-svg-UovF0Uldf5XxntJi {font-family:"trebuchet ms",verdana,arial,sans-serif;fo…

Webserver(2)GCC

目录 安装GCCVScode远程连接到虚拟机编写代码gcc编译过程gcc与g的区别Xftp连接虚拟机上传文件 安装GCC sudo apt install gcc g查看版本是7.5 touch test.c创建代码 但是在虚拟机中写代码很不方便 VScode远程连接到虚拟机编写代码 gcc test.c -o app在虚拟机中用gcc编译的…

世界肺癌日:新药涌现:不断拓展治疗边界

肺癌,这一全球性的健康杀手,每分钟都无情地夺去超过三人的生命,每年导致约180万人不幸离世,占据了全球癌症死亡人数的18%,成为癌症死亡的首要原因。患者不仅要承受生理上的巨大痛苦,还要面对心理上的沉重压…

OpenCV高级图形用户界面(20)更改窗口的标题函数setWindowTitle()的使用

操作系统:ubuntu22.04 OpenCV版本:OpenCV4.9 IDE:Visual Studio Code 编程语言:C11 算法描述 在OpenCV中,cv::setWindowTitle函数用于更改窗口的标题。这使得您可以在程序运行时动态地更改窗口的标题文本。 函数原型 void cv::…

外包干了2年,技术原地踏步。。。。。

先说一下自己的情况,本科生,19年通过校招进入南京某软件公司,干了接近2年的功能测试,今年年初,感觉自己不能够在这样下去了,长时间呆在一个舒适的环境会让一个人堕落!而我已经在一个企业干了2年的功能测试&…

一文掌握Kubernates核心组件,构建智能容器管理集群

1.Kubernates简要概述 Kubernates(常称为K8s,因省略了“ubernate”中的8个字符)是Google开源的容器编排平台,专为简化和自动化应用服务的部署、扩展和管理而设计。它将应用与底层的服务器抽象开来,提供了自动化的机制…

修改huggingface的缓存目录以及镜像源

执行以下语句查看当前配置 huggingface-cli env默认输出应该如下 (py39-transformers) PS D:\py_project\transformers_demo> huggingface-cli envCopy-and-paste the text below in your GitHub issue.- huggingface_hub version: 0.26.1 - Platform: Windows-10-10.0.22…

LeetCode课程表打卡(拓扑排序例题)

例题一:LeetCode :207 你这个学期必须选修 numCourses 门课程,记为 0 到 numCourses - 1 。 在选修某些课程之前需要一些先修课程。 先修课程按数组 prerequisites 给出,其中 prerequisites[i] [ai, bi] ,表示如果要学…

算法速刷(LeetCode)(160.相交链表)

个人思路: 笨蛋做法,但是好用 代码如下 /*** Definition for singly-linked list.* public class ListNode {* int val;* ListNode next;* ListNode(int x) {* val x;* next null;* }* }*/ public class Solution …

微信小程序文字转语音播报案例

插件申请 在小程序官方申请同声传译插件,地址: mp.weixin.qq.com 引入插件 在app.json中加入 "plugins": {"WechatSI": {"version": "0.3.6","provider": "wx069ba97219f66d99"}},封装…