软件工程课程设计物流配送管理系统_第1页
软件工程课程设计物流配送管理系统_第2页
软件工程课程设计物流配送管理系统_第3页
软件工程课程设计物流配送管理系统_第4页
软件工程课程设计物流配送管理系统_第5页
已阅读5页,还剩28页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、数学与计算机学院课程设计说明书课 程 名 称: 软件工程课程设计 课 程 代 码: 8404131 题 目: 物流配送管理系统 年级/专业/班: 09软件工程(04) 学 生 姓 名: 学 号: 开 始 时 间: 2011 年 05 月 27 日完 成 时 间: 2011 年 06 月 12 日课程设计成绩:学习态度及平时成绩(30)技术水平与实际能力(20)创新(5)说明书(计算书、图纸、分析报告)撰写质量(45)总 分(100)指导教师签名: 年 月 日软 件 工 程 课 程 设 计 任 务 书学院名称: 数学与计算机学院 课程代码:_8404131_专 业: 软件工程 年 级: 09 一

2、、 设计题目物流配送管理系统二、 主要内容1、业务(收入、支出)处理模块:配送业务的开票、收款、收空包、核对入帐等。2、查询汇总:业务流水记录、组合方式的汇总统计。3、排行榜:与应收、实收、欠收及日期段任意组合,按配送员、客户、商品排序。4、报表输出:5、费率设置:多种客户销售价格以及配送工报酬计算方式。6、人员信息:包含软件操作员、员工、客户等基本信息。7、数据库处理:新套帐的建立、数据备份及还原、数据提交与回滚等。三、 具体要求及应提交的材料1.分析设计要求,给出解决方案(要说明设计实现所用的原理,采用的数据结构);2.模块化程序设计,画出程序的基本结构框图和流程图;3.对程序的每一部分要

3、有详细的设计分析说明;4.程序执行的每个步骤要有具体的提示内容或输出;5.源代码格式规范(锯齿型书写格式),注释不少于三分之一;6.设计合适的测试用例,对得到的运行结果要有分析;7.设计中遇到的问题,设计的心得体会。设计结束后,每位同学必须上交如下材料:1课程设计说明书打印稿一份;2课程设计说明书电子文档及课程设计的程序源代码 刻盘电子文档 1、课程设计报告2、课程设计任务书3、程序说明文件 4、总结报告5、程序源代码四、 主要技术路线提示首先根据要解决的问题进行分析和总体设计,得到要定义的数据结构和函数,然后进行详细编码,在主函数中对各功能函数进行测试。五、 进度安排序号设计内容天数1分析设

4、计内容,给出解决方案42创建数据库及建表23可视化界面设计44对所建数据库进行设计,整理设计思路,编码、测试,写出课程设计报告45指导老师检查设计结果并做成绩评定4总 计20六、 推荐参考资料(不少于3篇)1 张海藩.软件工程导论(第五版)m.北京:清华大学出版社,20082 王红梅,胡明,王涛.数据结构(c+版)m.北京:清华大学出版社,20053 王珊,萨师煊.数据库系统概论m.北京:高等教育出版社,20064 bain t.sql server2000数据仓库m.北京.电力出版社,20035 google web apis referenceeb/ol.指导教师 签名日期 年 月 日系

5、主 任 审核日期 年 月 日目 录1 前言61.2可行性研究的前提62 需求分析62.1引言62.1 功能分析72.2 方案分析83 概要设计83.1 数据结构8结构e-r图93.2 逻辑结构与物理结构103.3 功能模块划分103.4抽象数据类定义124 详细设计134.1 数据类型定义134.2 主要模块内部设计134.2.信息输入设计134.2.2 更改信息设计144.2.3 查找信息设计155 实现与调试分析176 测试分析176.1编写目的176.2背景176.3测试内容186.4软件测试的分类187用户手册21总 结24参考文献26附录 源代码271 前言物流配送是销售公司企业的主

6、要后备力量的机构,势必要在物资方面加以严格有序的管理,对各种资源进行信息化管理。这样企业在可以放心的生产和出售产品了。经济效益有大幅度提高,本系统就是针对企业的迫切需要而设计的。在与对我们设计的仓库管理系统进行可行分析,要求对市场、经济、社会、法律等综合的一个最优方案。我们的项目名称为物质仓库管理系统。物资仓库信息管理系统就是把仓库的进货信息、销售信息、客户信息进行信息化管理,通过它的管理,可以将信息直观的提供给管理人员,加强对企业用人的优化分配,充分发挥人的作,提高仓库整体工作效率,1.2可行性研究的前提1.2.1要求功能:本系统主要对仓库有五个部分的功能(采购、检验、入库、出库、对比),以

7、及打出一系列的报表和账单。性能:在短时间内查看仓库信息及准确的数据报表;定期对数据库数据备份。输出:订单及预订单、入库单及现有库存表、出库单现有库存表、还库单及惩罚表。输入:计划单编号、预订单编号、入库单编号、出库申请编号、出库单编号。安全与保密要求:企业应用我们开发的系统,只对本企业内部开放信息。基于不参与互联网很少受到病毒的攻击以及定期维护,所以本系统是安全准确的。与软件相关的其他系统:仓库管理系统、物流管理系统。2 需求分析2.1引言2.1.1编写目的随着社会发展的日新月异,商业往来日渐广泛,物资多样化,以及计算机的普及,对于企业物流配送管理要求逐渐变大,从而开发本物流配送管理系统,来更

8、好的对仓库进行管理。本报告读者对象为研发中心领导和主管技术人员,以及项目设计和开发人员。2.1.2项目背景待开发的软件系统名称:物资仓库管理系统本项目的任务提出者:企业仓库管理人员本项目的任务开发者:物流配送管理系统软件开发小组用户及实现该软件的计算中心或计算机网络:企业计算机2.1 功能分析 1、业务(收入、支出)处理模块:配送业务的开票、收款、收空包、核对入帐等。2、查询汇总:业务流水记录、组合方式的汇总统计。3、排行榜:与应收、实收、欠收及日期段任意组合,按配送员、客户、商品排序。4、报表输出:5、费率设置:多种客户销售价格以及配送工报酬计算方式。6、人员信息:包含软件操作员、员工、客户

9、等基本信息。7、数据库处理:新套帐的建立、数据备份及还原、数据提交与回滚等。系统开发的总体任务是实现企业仓库各种信息的系统化、规范化和自动化。主要完成功能:企业部门提出购买计划交给仓库,仓库通过与现有库存作比对。如有必要进货,就将此购买计划交给采购员,由采购员进行采购。采购员与供应商进行谈价,达成协议,填写预订单(供应商留下的叫做订单)。供应商带着订单送到公司,企业仓库拿出预订单进行核对。核对无误后确认有效托收,托收进行检验入库,入库同时填写好入库登记表。企业各部门根据自身需求向仓库提出生产活动所必须的物质申请,并填写好出库申请表。企业仓库根据现有物质判断是否该出库,如果可以就填写好出库表。仓

10、库管理员根据出库表核对并如实的发放仓库内的物质。更新仓库现有库存。2.2 方案分析1.将说有功能归结为四个模块:(1)业务:包括入库,配送出库,两个常用功能。(2)查询,查询库存记录,配送记录等。(3)数据处理,对已存在的数据进行操作,如,备份还原,费率设置等(4)人员信息,所有与人有关的信息。2.定义每个版块的函数功能,以及子函数的确定。3.整个系统的功能排版,以及如何使其人性化3 概要设计 3.1.1编写目的 随着经济发展的日新月异,公司企业日益增多,对仓库的需求也变多。于是,对仓库的管理要求也提高,管理系统由此产生。本阶段完成系统的大致设计并明确系统的数据结构与软件结构。在软件设计阶段主

11、要是把一个软件需求转化为软件表示的过程,这种表示只是描绘出软件的总体概貌。本概要设计说明书的目的就是进一步细化软件设计阶段得出的软件总体概貌,把它加工成在程序细节上非常接近于源程序的软件表示。本报告读者对象为项目设计和开发人员,以及技术人员。3.1.2项目背景项目名称为:物资仓库管理系统。本项目的任务提出者为数计学院软件工程课程设计小组,并由组员共同开发,本项目设计过程中参考了基于windows系统的数据库管理系统。3.1 数据结构 数据元素包括;管理员(操作员) 员工 客户 货物 数据处理系统 票据管理人员: 读入,修改基本信息员工 : 负责送货;客户: 配送是终端,货物接收者货物: 管理者

12、,员工,及客户间的联系载体。数据处理: 处理各种数据管理的平台;票据: 交易的凭证。货物价格客户员工编号管理员系统板票据编号日期 结构e-r图员工管理员物流配送系统客户3.2 逻辑结构与物理结构逻辑结构 : 用线性结构来处理数据元素之间的关系, 将元素一项项的写下去物理结构 : 采用顺序存储的方式来储存所有的数据3.3 功能模块划分物流配送系统3.3.1结构框图即时业务人员信息数据处理查询汇总客户信息员工信息操作员数据提交数据备份及还原数据备份套帐的建立显示库存配送记录编号查询按时查询入库配送数量3.3.2程序流图开始管理员身份验证操作选择输入库存配送货物查询数据退出系统输入选择操作操作类型人

13、事查询更改返回菜单数据备份还原建立套帐记录业务查业询务3.3.3模块功能分析及外部设计 功能分析 外部设计即时业务: 基本的功能实现,入库,出库操作。数据处理: 处理已有的数据,备份,还原,回交,费率设置。人事处理: 对员工和客户查看。3.4抽象数据类定义数据对象 : price,cartype,carnum,time, destination,starttime基本操作 : init(); show();changprice(int p0);changcar(char n,char t); changtime(int a,int b,int c); find(char d1); positi

14、on(char n1); getcarnum(); getcartype(); getdestination(); getprice(); getstarttime();adt ticket4 详细设计4.1 数据类型定义价格(price) 货号(unm1) 员工编号(unm2) 客户编号(num3) 日期(time) 数量(qua)4.2 主要模块内部设计实现算法cs.init();c.push_back(cs);ch=getchar();4.2.信息输入设计 模块算法4.2.1输入信息 实现算法cs.init();c.push_back(cs);c

15、h=getchar(); 流程图开始界面开 始输入所有内容返回主界面结 束4.2.2 更改信息设计4.2.2. 更改信息1 .更改费率实现算法for(i=0;ic.size();i+)if(ci.position(n)coutp1;ci.changprice(p1);ci.show();f=0;break;else f=1;结 束输入更改输入费率没有改信息4.2.3 查找信息设计4.2.3. 查出信息实现算法coutd1;for(int i=0;ic.size();i+)if(ci.find(d1)ci.show();f=0;break;elsef=1;if(f)cout没有此货

16、物编号endl;流程图结 束查 找输入编号没有改信息输出结果5 实现与调试分析实现环境系统 windows xp系统操作平台microsoft visual c+ 6.0语言 c+调试分析:通过对系统的调试,完成了最初的设计要求,使各个模块的功能得以实现;6 测试分析6.1编写目的软件测试是为了发现程序中的问题。本系统技术不很成熟,存在不少问题,测试变得非常重要。软件测试的过程也是程序运行的过程,程序运行需要数据,为测试设计的数据称测试用例,设计测试用例的原则自然是尽可能暴露错误。由于测试涉及问题很多,工作量又大,所以测试之前必须制订一个计划。 6.2背景 由物流配送管理系统开发者开发出的系统

17、进行测试。6.3测试内容 软件测试主要工作内容是验证和确认,下面分别给出其概念:验证是保证软件正确地实现了一些特定功能的一系列活动,即保证软件做了你所期望的事情。1) 确定软件生存周期中的一个给定阶段的产品是否达到前阶段确立的需求的过程;2) 程序正确性的形式证明,即采用形式理论证明程序符号设一计规约规定的过程;3) 评市、审查、测试、检查、审计等各类活动,或对某些项处理、服务或文件等是否和规定的需求相一致进行判断和提出报告。确认是一系列的活动和过程,目的是想证实在一个给定的外部环境中软件的逻辑正确性。即保证软件以正确的方式来做了这个事件。1) 静态确认,不在计算机上实际执行程序,通过人工或程

18、序分析来证明软件的正确性;2) 动态确认,通过执行程序做分析,测试程序的动态行为,以证实软件是否存在问题。软件测试的对象不仅仅是程序测试,软件测试应该包括整个软件开发期问各个阶段所产生的文档,如需求规格说明、概要设计文档、详细设计文档,当然软件测试的主要对象还是源程序。6.4软件测试的分类6.4.1关心软件内部结构和具体实现的角度划分,可分为白盒测试和黑盒测试。黑盒测试黑盒测试也称功能测试或数据驱动测试,它是在已知产品所应具有的功能,通过测试来检测每个功能是否都能正常使用,在测试时,把程序看作一个不能打开的黑盆子,在完全不考虑程序内部结构和内部特性的情况下,测试者在程序接口进行测

19、试,它只检查程序功能是否按照需求规格说明书的规定正常使用,程序是否能适当地接收输入数锯而产生正确的输出信息,并且保持外部信息(如数据库或文件)的完整性。黑盒测试方法主要有等价类划分、边值分析、因果图、错误推测等,主要用于软件确认测试。 “黑盒”法着眼于程序外部结构、不考虑内部逻辑结构、针对软件界面和软件功能进行测试。“黑盒”法是穷举输入测试,只有把所有可能的输入都作为测试情况使用,才能以这种方法查出程序中所有的错误。实际上测试情况有无穷多个,人们不仅要测试所有合法的输入,而且还要对那些不合法但是可能的输入进行测试。白盒测试白盒测试也称结构测试或逻辑驱动测试,它是知道产品内部工作过

20、程,可通过测试来检测产品内部动作是否按照规格说明书的规定正常进行,按照程序内部的结构测试程序,检验程序中的每条通路是否都有能按预定要求正确工作,而不顾它的功能,白盒测试的主要方法有逻辑驱动、基路测试等,主要用于软件验证。“白盒”法全面了解程序内部逻辑结构、对所有逻辑路径进行测试。“白盒”法是穷举路径测试。在使用这一方案时,测试者必须检查程序的内部结构,从检查程序的逻辑着手,得出测试数据。贯穿程序的独立路径数是天文数字。但即使每条路径都测试了仍然可能有错误。第一,穷举路径测试决不能查出程序违反了设计规范,即程序本身是个错误的程序。第二,穷举路径测试不可能查出程序中因遗漏路径而出错。第三,穷举路径

21、测试可能发现不了一些与数据相关的错误。6.4.2从是否执行程序的角度,可分为静态测试和动态测试。6.4.3从软件开发的过程按阶段划分,可分为单元测试、集成测试、确认测试、验收测试和系统测试。 单元测试单元测试又称模块测试,是针对软件设计的最小单位 程序模块,进行正确性检验的测试工作。其目的在于发现各模块内部可能存在的各种差错。 单元测试需要从程序的内部结构出发设计测试用例。多个模块可以平行地独立进行单元测试。在单元测试时,测试者需要依据详细设计说明书和源程序清单,了解该模块的i/o条件和模块的逻辑结构,主要采用白盒测试的测试用例,辅之以黑盒测试的测试用例,使之对任何合理的输入和不

22、合理的输入,都能鉴别和响应。集成测试通常,在单元测试的基础上,需要将所有模块按照设计要求组装成为系统。这时需要考虑的问题是: 1) 在把各个模块连接起来的时候,穿越模块接口的数据是否会丢失;2) 一个模块的功能是否会对另一个模块的功能产生不利的影响;3) 各个子功能组合起来,能否达到预期要求的父功能;4) 全局数据结构是否有问题; 5) 单个模块的误差累积起来,是否会放大,从而达到不能接受的程度。确认测试确认测试又称有效性测试。任务是验证软件的功能和性能及其它特性是否与用户的要求一致。对软件的功能和性能要求在软件需求规格说明书中已经明确规定。它包含的信息就是软件确认

23、测试的基础。 验收测试1) 在通过了系统的有效性测试及软件配置审查之后,就应开始系统的验收测试。 2) 验收测试是以用户为主的测试。软件开发人员和qa(质量保证)人员也应参加。 3) 由用户参加设计测试用例,使用生产中的实际数据进行测试。 4) 在测试过程中,除了考虑软件的功能和性能外,还应对软件的可移植性、兼容性、可维护性、错误的恢复功能等进行确认。 5) 确认测试应交付的文档有:确认测试分析报告,最终的用户手册和操作手册,项目开发总结报告。系统测试系统测试,是将通过确认测试的软件,作为整个基于计算机系统的一个元素,与计算机硬件、外设、某些支持软件、数据和人员等其

24、它系统元素结合在一起,在实际运行环境下,对计算机系统进行一系列的组装测试和确认测试。 系统测试的目的在于通过与系统的需求定义作比较, 发现软件与系统的定义不符合或与之矛盾的地方7用户手册1.进入前管理员验证2简洁的功能选择界面3.入库操作4配送操作5.费率设置6.人员信息处理总 结 本次实验可以说是毕业设计的模板,以往的课程设计和这相比只是一个小程序。实验中对于系统的整体框架和功能,我们有过争论也有了共识。经过多天团队的图书馆的资料查阅,网上资源的查找,遇到不能下载的例文不得不一页一页的截图,一切付出和努力终于有了成果。本实验中我完成了概要设计部分,为了能够有效完成任务,参考了课本和相关资料中

25、有关这一内容的部分;也在完成层次图和模块图的时候遇到了困难,不过经过不懈的努力最终完成。在概要设计中,由于系统未成形,对于一些部分没有深入设计,只对其进行了文字描述。这是我第一次做有整体性的系统性课程设计:要考虑系统的整体功能,要配合团队的思想,对系统改进要配合队友的整体设计。同时我也学到了很多:对课程的设计要有我们自己的观点,要学会主动思考,不能局限于例文。在系统功能设计时要多听取他人意见,要保证系统能带给使用者优越感和实用性,这些对将来毕业设计都有很大帮助。经过本次设计,对毕业设计有了了解,我知道毕业设计比这次的要求更高,更严谨,系统设计的要更完善;不过,我有信心能够做的更好。这次软件工程

26、的课程设计持续的时间很长,让我们有足够多的时间去完成,但前期准备不足,没花多少时间在课程设计上,以至于到最后一周都还没做完,还好,能够如期完成本次课程设计。通过本次课程设计学到了不少东西,能够将课堂上学到的知识用到本次课程设计中,但同时也发现了自己的不足,虽然上课都听了,笔记也记了,但做课程设计的过程中发现自己还有很多不会,不能灵活运用上课学到的知识,通过问其他同学,冰河本小组成员之间相互讨论,把问题解决了。感谢老师,感谢同学,能够有这次机会做本课程设计,而学到一些东西。在需求分析,详细设计,概率统计中,有很多地方是要画图,本小组以以人为主,互相之间讨论,得出结果,其他可行性分析,界面设计等因

27、为比较简单,都由个人自主完成。本课程设计由全体小组全部完成,都是不是认为自己能做好的,但我们做完了,很有成就感。懂得,做事不投机取巧,尽量自己认真去完成。这次的软件工程课程实验用时颇长,但我从这次的课程设计中得到了宝贵的经验和一些实验心得。首先先说说作课程设计的一些经验。在选择课程设计的题目时,首先先要和小组成员探讨一下哪些课题比较适合我们小组成员喜欢作的,然后大家在集体研究下该课题需要完成哪些功能,也就是说需要哪些知识,然后小组组长安排小组成员分别做哪些部分,这样就可以做到分工明确,每个小组成员都能做到一部分课程设计,以免个别成员偷懒。接着,每个小组成员根据多分到的课程设计中的一部分,上网或

28、者图书馆找相关的资料已完成所需的设计。最后,各个小组成员然后在一起把所有的资料集中到一起分享,这样就可以得到关于课程设计的知识,以便更好的完成设计。其次再说说自己的感想。通过近1个月的课程设计,我发现了我在做课程设计这块上经验的缺乏,以及一些知识的匮乏,导致我前期做起来感到费劲。通过仔细的看完和研究下软件工程及软件开发应用中的相关知识,我以前没学好的知识,如:需求分析中的数据流程图和数据字典,总体设计中的结构图,尤其是我所做的那课程设计中的详细设计,让我更加的对程序流程图,n-s图,pad图等构成设计的工具的了解和熟悉。总的来说,课程设计是让我们更好的在学习和巩固一下我们所学的知识,俗话说:学

29、而致用,读万卷书不如行万里路就是这个道理。参考文献毕硕本、卢桂香 编著 软件工程案例教程 北京大学出版 2007年8月第一版陈明 编著 软件工程课程实践 清华大学出版社 2009年8月第一版施一萍 编著 软件工程及软件开发应用 清华大学出版社 2009年9月第一版郑阿奇 编著 visual c+.net程序设计教程 机械工程出版社 2007年6月第一版许家珆、白忠建、吴磊 编著 软件工程理论与实践 高等教育出版社 2009年10月 第二版王珊 编著 数据库系统概论 高等教育出版社 2006年5月 第四版附录 源代码#include #include#include #include#inclu

30、declass datapublic:int price;int num;class data2:public datapublic:int clientnum;int xprice;char *date;class manchar num10;char name10;char sex10;public:man(char *nu=,char *na=,char *se=)strcpy(num,nu);strcpy(name,na);strcpy(sex,se);friend ostream & operator(ostream &out,const man &s)s.sexendl;return out;void app()system(cls);cout1.即时业务办理endl;cout2.查询汇总处理endl;cout3.数据更改操作endl;cout4.人员信息处理endl;coutq;switch (q)case 1: cout1.入库endl;cout2.配送endl;coutw;if(w=1)data one;coutone.price;coutone.num;app();els

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论