基于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.rhkb.cn/news/456571.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

金融工程--pine-script 入门

背景 脚本基本组成 策略实现 实现马丁格尔策略 初始化变量:定义初始资本、初始头寸大小、止损百分比、止盈百分比以及当前资本和当前头寸大小等变量。 更新头寸:创建一个函数来更新头寸大小、止损价格和止盈价格。在马丁格尔策略中,每次亏…

micro-app【微前端实战】主应用 vue3 + vite 子应用 vue3+vite

micro-app 官方文档为 https://micro-zoe.github.io/micro-app/docs.html#/zh-cn/framework/vite 子应用 无需任何修改,直接启动子应用即可。 主应用 1. 安装微前端框架 microApp npm i micro-zoe/micro-app --save2. 导入并启用微前端框架 microApp src/main.ts …

【Ubuntu】Virtualbox下lamp集群分布式搭建Wordpress

WordPress是一种使用PHP语言开发的开源内容管理系统(CMS),也常被用作博客平台。 开发语言:PHP 数据库:MySQL、mariadb(或其他兼容的数据库系统) 授权方式:GNU通用公共许可证下发布&a…

【JavaEE】【多线程】单例模式

目录 一、设计模式1.1 单例模式1.1.1 饿汉模式1.1.2 懒汉模式 1.2 线程安全问题1.3 懒汉模式线程安全问题的解决方法1.3.1 原子性问题解决1.3.2 解决效率问题1.3.3 解决内存可见性问题和指令重排序问题 一、设计模式 在讲解案例前,先介绍一个概念设计模式&#xff…

C++ 模版和继承

目录 一.模版 1.模版的基本概念 a.函数模版 b.类模板 c.模版的实例化 d.class 和 typename的区别 e.非类型模版参数 2.模版的特化 a.全特化 —— 参数类型全部特殊化处理 b.半特化 —— 部分参数特殊化处理 c.偏特化——对某些类型的进一步限制(实例化时传…

GD32学习知识点累计

时钟系统 GD32f427主频最高位240MHZ(但是只能到200M),GD32给的函数外接25MHZ晶振配置主频为200MHZ,APB1最高频率为60HZ配置为主频的4分频为50MHZ,APB2最大为120MHZ配置为主频的2分频为100MHZ 定时器 无论什么定时器最大频率为200M…

安全见闻---清风

注:本文章源于泷羽SEC,如有侵权请联系我,违规必删 学习请认准泷羽SEC学习视频:https://space.bilibili.com/350329294 安全见闻1 泷哥语录:安全领域什么都有,不要被表象所迷惑,无论技术也好还是其他方面…

AI带货主播框架的搭建!

AI带货主播,作为新兴的技术应用,正在逐渐改变电商行业的面貌,通过利用人工智能技术,AI带货主播能够模拟真实主播的行为,与用户进行互动,推荐商品,提升购物体验。 本文将介绍如何搭建一个AI带货…

处理Hutool的Http工具上传大文件报OOM

程序环境 JDK版本: 1.8Hutool版本: 5.8.25 问题描述 客服端文件上传主要代码: HttpRequest httpRequest HttpUtil.createPost(FILE_UPLOAD_URL); Resource urlResource new UrlResource(url, fileName); httpRequest.form("file&q…

self-supervised learning(BERT和GPT)

1芝麻街与NLP模型 我們接下來要講的主題呢叫做Self-Supervised Learning,在講self-supervised learning之前呢,就不能不介紹一下芝麻街,為什麼呢因為不知道為什麼self-supervised learning的模型都是以芝麻街的人物命名。 因為Bert是一個非常…

实战-任意文件下载

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

中酱集团:黑松露酱油,天然配方定义健康生活

在如今的大健康时代,人们对于美食的要求越来越高。不仅美味,更要健康。在健康美食的生态链中,有一个名字正逐渐成为品质与美味的代名词——中酱集团。而当中酱集团与黑松露酱油相遇,一场味觉的革命就此拉开帷幕。 中酱集团&#x…

【产品应用】旋转式贴标机一站式解决方案

针对贴标机行业设备,立迈胜公司拥有智能控制器、一体化伺服电机、减速机等系列产品,可以轻松解决传统电机接线不便、占用空间、自重过大、部件繁杂等问题,帮助贴标机制造商实现设备精准控制、运行稳定的同时,保证生产流程高效产出…

开发运维警示录-20241024

开发警示录 1、作为开发,不要私自修改业务人员给的SQL语句,虽然个人感觉SQL很冗余,效率低等。 2、开发前,要明确需求,必要时通过图和文字形成文档与需求方确认、留痕。 3、开发复杂的业务逻辑代码前,先疏通…

oracle数据库---PL/SQL、存储函数、存储过程、触发器、定时器job、备份

PL/SQL 什么是 PL/SQL PL/SQL(Procedure Language/SQL)是 Oracle 对 sql 语言的过程化扩展,指在 SQL 命令语言中增加了过程处理语句(如分支、循环等),使 SQL 语言具有过程处理能力。把SQL语言的数据操纵能…

瑞芯微的 展会总结

首先是我感兴趣的产品: 摄像头的 墨水瓶的。 android 盒子,使用的是rk3588s 然后是瑞芯微AI在做什么:  在对 音频 视屏的输出 进行补充。 比如,视频拍了一张图片很模糊,那么他们用AI算法&am…

基于Multisim红外接近报警电路设计(含仿真和报告)

【全套资料.zip】红外接近报警电路设计Multisim仿真设计数字电子技术 文章目录 功能一、Multisim仿真源文件二、原理文档报告资料下载【Multisim仿真报告讲解视频.zip】 功能 标题:红外接近报警电路 红外报警器是当前利用电子技术制作而成的防盗报警器&#xff0c…

Sei 生态迎首个 MMORPG 游戏伙伴 Final Glory,开启新篇章

​“随着 Final Glory 拓展至 SEI Network,SEI 生态也迎来了首款 MMORPG 游戏” 链游赛道新贵 Final Glory Final Glory 是建立在 MateArena 引擎上的 MMORPG 游戏,作为目前行业内首个斥巨资打造的 AAA 级 MMORPG 全链游戏,在面向市场后即引发…

PostgreSQL两节点用keepalived实现主备的高可用架构

使用keepalived实现PostgreSQL数据库两节点主备的高可用架构部署详解 环境配置和规划部署PostgreSQL的主备流复制架构keepalived介绍安装部署keepalived数据库配置配置keepalived相关参数文件启动keepalived模拟故障切换问题记录实践建议 看腻了就来听听视频演示吧(…

Java 多线程(八)—— 锁策略,synchronized 的优化,JVM 与编译器的锁优化,ReentrantLock,CAS

前言 本文为 Java 面试小八股,一句话,理解性记忆,不能理解就死背吧。 锁策略 悲观锁与乐观锁 悲观锁和乐观锁是锁的特性,并不是特指某个具体的锁。 我们知道在多线程中,锁是会被竞争的,悲观锁就是指锁…