物流管理系统课程设计.doc
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 物流 管理 系统 课程设计
- 资源描述:
-
雁捷物流管理系统 学院:信息管理学院 专业:信息管理与信息系统 组长 组员: 指导教师: 目录 雁捷物流管理系统 1 目录 2 一、系统规划与需求分析 3 1. 系统目标与规划 3 2. 业务描述 3 3. 需求分析 3 二、概念模型设计与系统模块划分 4 1. 概念模型设计 4 2. 系统模块划分 5 三、逻辑模型设计与系统模块设计 7 逻辑模型设计 7 四、 物理模型设计与数据库实施 7 1. 约束设计 7 2. 存储过程设计 8 3. 视图设计 10 4. 触发器设计 11 5. 备份和恢复设计 13 五、系统开发与实现 13 1、 系统实现方法 13 2、 系统主要功能与界面 13 六、测试、分析和总结 34 1. 系统测试与分析 34 2.遇到的问题 34 3. 总结与展望 34 七、系统实现的关键代码 1、主页实现实时更新发单情况 35 2、发单的实现 36 一、系统规划与需求分析 1. 系统目标与规划 雁捷物流管理系统旨在利用社会零散时间解决同城或异地捎带需求,最大化的满足客户的需求,并运用移动互联网技术搭建一个随时随地互动的信息管理平台。我们的目标是,系统所提供的信息能够全面覆盖各个城市,每个城市的大街小巷,力求建立一个发单、抢单、配送为一线的物流网络。 2. 业务描述 当下,快递业务发展十分迅猛,但仅限于固定的物流公司来进行配送,雁捷快递平台可让“人人成为快递员”,无论你是企业员工、学生、个体经营者,还是自由职业者,只要你有想法,并且符合基本条件,都可以申请成为快递员,让每个申请者都能“顺路”赚钱,而且客户也能享受快捷、便宜的配送服务。我们作为第三方平台提供物流信息,让想要运送货物的人得到数据后根据自己的运输能力进行抢单,让发单人可根据多方面的数据进行筛选,选择运输方。使发单人和抢单人可以有效的进行信息交流。 3. 需求分析 3.1数据管理需求 目前,想要发货的人很多,可以配送货物的人也很多,但是两者都不知道对方的信息,或者说按传统方式发单者只能选择固定的物流公司,了解不到物流公司的服务水平、货物的配送效率,更不能了解配送人员的情况。而快递员只能配送公司派送下来的物件,不能选择性的配送。如果这些信息能公开,能大大提高发货人和快递员的工作效率,雁捷物流管理系统就是将信息收集起来,经过整理后提供给需求者。我们作为第三方平台,对这些数据进行有效管理和监督,能增加信息交流的匹配性和安全性。 3.2创新设计需求 3.2.1.抢单介绍:按照时间累进原则抢单 第一次抢单:首先顾客下单后,第一家快递公司抢下第一单并给出价格,之后顾客根据价格、历史评价、交通工具类型、押金金额筛选;第二次抢单:过2分钟之后放开第二次抢单机会,这次投放两个竞争名额,第一家快递公司仍在筛选名额中。第三次抢单:过3分钟之后放开第三次抢单机会,此次放开三个竞争名额,前三家快递公司仍在筛选名额中。剩余抢单机会:过4分钟之后无限制抢单。 该创新点是为了给客户一个公平交易的平台,还能增加受理订单的效率,更重要的是提高抢单的积极性。公平性体现在使价格透明化,抢单者可以公平竞价,发单人可以根据个抢单者的报价和配送方案选择一个最优的解决方案,可以避免盲目选择一个抢单人垄断配送的情况。 3.3.2地图定位及路线推荐 地图定位可以显示3公里以内的订单,抢单者可以根据自身情况选择想要配送的订单,一旦抢单成功后,地图还可根据目的地和发单者的所在位置推荐多条路线。 这个创新点可以使系统操作变得友好、方便,减少直接搜索带来的繁琐问题,一个系统的开发设计要考虑到用户操作是否流畅和人性化,这个设计可以直观的将信息展示给用户,避免查询带来的误差和低效率。 二、概念模型设计与系统模块划分 1. 概念模型设计 本阶段设计出7个关系: l 用户表:用户ID,昵称,姓名,身份证号,密码,手机号,邮箱,等级,注册时间,证件照; l 评价表:序号,服务态度,到货速度,完整性满意度,心得; l 抢单表:抢单编号,运输费用,保证金,交通工具,手机号,目前所在地点,抢单时间,状态; l 发单表:发单编号,发件人姓名,发件人手机号,收件人姓名,收件人手机号,取货地址,预计送达时间,保值; l 订单明细表:订单号,成交时间,状态,发单用户,抢单用户,交通工具,运输费用; l 物流信息表:发送物流信息时间,地点,签收照片; l 物品表:物品编号,物品名称,物品类别,重量,体积,价值,物品照片。 具体语句描述: 1. 一名用户可以发出多条评价,一条评价只针对一名用户; 2. 一个订单明细可对应多次评价,但一条评价只能对应一个订单明细; 3. 一名用户(发单者)可以发出多个订单,但一个订单只能由一名用户(发单者)发出; 4. 一名用户(抢单者)可以抢多个订单,但一个订单只能由一名用户(抢单者)成功抢到; 5. 一名用户可以配送多个物品,但一个物品只能由一名用户配送; 6. 一条订单只能发出一个物品,一个物品只能在一个发单表上显示; 7. 一个订单明细给追踪到多次物流信息,而一个物流信息对应一个订单明细; 具体细节如图所示: 2. 系统模块划分 总体设计: 物流信息 物品信息 订单明细 评价管理建立各种数据库对象 雁捷物流管理系统 抢单 发单 用户信息 用户信息管理: 用户信息管理 用户信息录入 用户信息查询 用户信息修改 物流信息管理: 物流信息管理 物流信息录入 物流信息查询 物流信息修改 评价管理: 评价管理 评价信息录入 评价信息审核 评价信息发布 订单管理: 订单管理 订单审核 订单发布 订单统计 三、逻辑模型设计与系统模块设计 逻辑模型设计 利用powerdesigner将概念模型转换成物理模型,具体表述如下: l 用户表的主关键字是用户ID; l 发单表的主关键字是发单编号,参照用户表的用户ID和物品表的物品编号; l 抢单表的主关键字是抢单编号,参照用户表的用户ID; l 评价表的主关键字是序号,参照用户表的用户ID和订单明细表的订单号; l 物流信息表的主关键字是发送物流信息时间,参照用户表的用户ID和订单明细表的订单号; 四、 物理模型设计与数据库实施 1. 约束设计 本阶段添加了一些约束,以确保数据的完整与正确: l 规定手机号一定是11位数字 l 规定邮箱的格式中必须有@ l 规定身份证号是18位数字或18位字母与数字的组合 l 规定一个用户不能既是发单用户又是抢单用户,即不能自己发的单自己去抢 l 实现可以重复创建数据库和表 l 用户的注册时间默认值是系统获取的当前时间 l 规定了一下字段的取值范围 2. 存储过程设计 (1)存储过程(6个): A. 查询目的地为@destination的物品及订单信息 B. 查询取货地址为@pick_site的物品及订单信息 C. 查询状态为@state的抢单信息 D. 查询某个抢单用户抢单成功的所抢到的发单信息、物品信息 E. 查询抢单用户抢单成功的次数 F. 查询最近发单用户最近成交的记录 (2)存储过程代码: --查询目的地为@destination的物品及订单信息 create procedure p1 @destination nvarchar(60)='%' as select 物品名称,物品类别,重量,体积,价值,预计送达时间,状态,取货地址 from 货物.物品 join 订单.发单 on 物品.物品编号=发单.物品编号 where 目的地 like @destination execute p1 @destination='%北京%' --查询取货地址为@pick_site的物品及订单信息 create procedure p2 @pick_site nvarchar(60)='%' as select 物品名称,物品类别,重量,体积,价值,预计送达时间,状态,取货地址 from 货物.物品 join 订单.发单 on 物品.物品编号=发单.物品编号 where 目的地 like @pick_site execute p2 @pick_site='%北京%' --查询状态为@state的抢单信息 create procedure p3 @state varchar(10),@user char(20) as select 运输费用,保证金,交通工具,手机号 ,目前所在地点,抢单时间,状态 from 订单.抢单 where 状态=@state and 用户ID=@user execute p3 @state='',@user='' --查询某个抢单用户抢单成功的所抢到的发单信息、物品信息 create procedure p4 @state varchar(10),@user char(20) as select 订单明细.运输费用,保证金,订单明细.交通工具,手机号 ,目前所在地点, 抢单时间,抢单.状态, 成交时间,订单号,物品名称,物品类别,重量,体积,价值,预计送达时间,取货地址, 收件人姓名,收件人手机号,目的地 from 订单.抢单 join 资料.订单明细 on 抢单.用户ID=订单明细.抢单用户 join 订单.发单 on 发单.用户ID=订单明细.发单用户 join 货物.物品 on 发单.物品编号=物品.物品编号 where 抢单.状态=@state and 抢单.用户ID=@user execute p4 @state='抢单成功',@user='' --查询抢单用户抢单成功的次数 create procedure p5 @id char(20) as declare @count int select @count=COUNT(抢单用户) from 资料.订单明细 where 抢单用户=@id return @count declare @count int @count=execute p5 @id='' --查询最近发单用户最近成交的记录 create procedure p6 @data1 datetime,@data2 datetime,@user char(20) as select 订单号,成交时间,交通工具,运输费用,物品名称,物品类别 from 资料.订单明细 join 订单.发单 on 发单.用户ID=订单明细.发单用户 join 货物.物品 on 发单.物品编号=物品.物品编号 where 成交时间<@data1 and 成交时间>@data2 and 订单明细.发单用户=@user execute p6 @data1='',@data2='',@user='' 3. 视图设计 (1)视图(4个): A. 将发单表和物品表连接建立一个视图,在每一个供抢单者都能查询的 发单信息 B.将发单表和物品表连接建立一个视图,待发单抢单双方达成交易,供 抢单成功者可以查询到的更详细的信息 C.将用户表和评价表连接建立一个视图,发单者可以从中看到抢他所发 的人的以往的评价,以便决定是否由此人抢到他的单子。 D.将订单明细表和物流信息表连接起来建立一个视图 (2) 代码: --将发单表和物品表连接建立一个视图,在每一个供抢单者都能查询的 发单信息 create view v1 as select 物品名称,物品类别,重量,体积,价值,物品照片,取货地址,目的地,预计送达时间,状态 from 货物.物品 join 订单.发单 on 物品.物品编号=发单.物品编号 --将发单表和物品表连接建立一个视图,待发单抢单双方达成交易,供抢单成功者可以查询到的更详细的信息 create view v2 as select 物品名称,物品类别,重量,体积,价值,物品照片, 取货地址,目的地,预计送达时间,状态,发件人姓名, 发件人手机号,收件人姓名,收件人手机号 from 货物.物品 join 订单.发单 on 物品.物品编号=发单.物品编号 --将用户表和评价表连接建立一个视图,发单者可以从中看到抢他所发的人的以往的评价,以便决定是否由此人抢到他的单子。 create view v3 as select 昵称,等级,注册时间,AVG(服务态度)以往服务态度,AVG(到货速度)以往到货速度,AVG(完整性满意度)以往完整性满意度 from 资料.用户 join 资料.评价 on 用户.用户ID=评价.抢单用户 --将订单明细表和物流信息表连接起来建立一个视图 create view v4 as select 订单号,成交时间,状态,地点,运输费用,交通工具,发送物流信息时间,签收照片 from 资料.订单明细 join 货物.物流信息 on 订单明细.订单号=物流信息.订单号 4. 触发器设计 (1)触发器(3个): A.当进行操作时抢单用户的保证金的金额小于发单用户所给出的物品的 价值时,会给出提示 B.用户抢单失败时会给出提示 C.只有等级时F及F以上的用户才能抢价值在300及其以上的单子,只 有等级是C及C以上的用户才能抢价值在600及其以上的单子。 (2)代码: --当进行操作时抢单用户的保证金的金额小于发单用户所给出的物品的 价值时,会给出提示 create trigger t1 on 订单.抢单 for insert,delete,update as declare @deposit money,@value money select @deposit=保证金 from inserted where 抢单编号='' select @value=价值 from 货物.物品 where 物品编号 in (select 物品编号 from 订单.发单 where 发单编号 in (select 发单编号 from 订单.抢单 where 抢单编号='')) if @deposit<@value begin raiserror('你所剩的保证金已小于你所抢发单物品的价值!!',15,10) end --用户抢单失败时会给出提示 create trigger t2 on 订单.抢单 for update as declare @state varchar(10) select @state=状态 from updated if @state='抢单失败' begin raiserror('对不起,你已抢单失败!!',15,10) end else if @state='抢单成功' begin raiserror('恭喜你,你已抢单成功!!',15,10) end --只有等级时F及F以上的用户才能抢价值在及其以上的单子,只有等 级是C及C以上的用户才能抢价值在及其以上的单子 create trigger t3 on 资料. 用户 for update as declare @deji char(10) select @deji=等级 from updated if @state in ('A','B','C','D','E') begin raiserror('恭喜你,你已能抢价值在及其以上的单子!!',15,10) end else if @state in ('A','B','C') begin raiserror('恭喜你,你已能抢价值在及其以上的单子!!',15,10) end 5. 备份和恢复设计 备份整个数据库到C:\dump\dumpfull.bak:(要改备份地址) BACKUP DATABASE 名称 TO DISK='C:。。。。。。。。。。。' 五、系统开发与实现 1、 系统实现方法 数据库建模阶段使用的软件是powerdesigner15.0,数据库使用的软件是SQL server 2014,建模生成的sql文件引入SQL server,加上一些列级和表级约束,然后执行那些sql语句用以建立数据库和表。网页版编程使用的软件是Myeclipse 2014,在Myeclipse中新建web工程,采用MVC模式在jsp中进行页面设计,在其中多次引入js文件,出现了许多美观、使用简便的jquery控件。servlet作为控制器对jsp页面传来的值进行处理,连接到数据库并对数据库中的数据库进行插入、删除、更新等操作,并进行页面间的跳转。在web工程中还用到了javabean。 2、 系统主要功能与界面 (1) 基本功能:登陆,注册,用户信息查询及修改,密码修改等。创建用户表,存储用户详细信息。可实现查询,更新,删除,插入等基本功能。 网页版: A.首页: 进入网页首先进入到首页,此页面左侧可根据物品类别、取货地址、送货地址、取货时间等条件搜索满足条件的发单,也可在搜索框内进行关键字搜索。在此页面中间有最近最新的一些发单情况,以表格的形式展示出来,表格中包括发单时间、取货地址、送货地址、物品类别等关于发单概况,每行后面都有一个详细,点击即可查看相对应的发单详情;刷新页面即可刷新发单信息。在此页面右部有“我要发单”、“我要抢单”两个链接,点击即可进行发单、抢单。 未登录时:有登录和注册两个链接 登录后进入到首页:原本的登录、注册链接变为当前登录用户的用户名和一个退出链接。 B.注册页面: 注册页面昵称、密码不能为空;两次输入的密码需一致;电子邮箱和手机号必须是为注册的,在数据库中邮箱和手机号定义了唯一约束。 用户名或密码为空时: 两次输入的密码不相同时: C.登录页面: 注册成功后转到登录页面,即可根据注册的的信息登录,用户名处填用户ID、手机号、邮箱均可。登录成功后跳转到首页。 D.个人信息页面: 登录成功后,可查看当前用户的个人信息,如果一开始没有登录就要进入到此页面,则会先跳到登录页面,然后才能进入到此页面。点击页面下面的修改按钮可对个人信息进行修改。 E.修改个人信息页面: 能够上传图片将其存入数据库: 修改成功再次转到个人信息页面查看修改后的个人信息: F.修改密码页面: 修改密码页面要求新密码与原来的旧密码不能一样,新密码与确认的新密码要求是相同的。 新密码与确认新密码输入的不一致: 原密码与新密码相同: (2) 发单功能:包括语音发单(借助移动应用实现),手动发单。创建发单表和物品表,使用户可以通过多种方式进行发单。发单分为3步,分为3个页面,一步即一个页面,具体步骤见下。 第一步填写物品信息: 第二步:填写取货信息:取货时间一栏聚焦可出现下拉的日期控件;取货地点一栏有省、市、地区三级联动js控件可选择地区,其后跟着的输入框用于输入详细地址。 下拉日历: 省、市、地区三级联动下拉选择: 第三步:填写收货信息: 点击提交后,在首页中可看到刚刚发单成功的发单信息: 然后点击详细可查看到刚刚发单的详细情况,点击页面下方的“我要抢单”这一链接可以进行抢单: (3) 抢单功能:创建抢单表,存储抢单信息,可通过存储过程实现快速调用关系,目的是为了保证查询的有效性和及时性,该功能使抢单者积极的参与发单。 抢单操作方式是:抢单者在点击“我要抢单”后进入到此页面填写抢单信息。填写完后点击“提交”系统会提醒你是第几个抢单的,前面有几个待处理的抢单。抢单的时候要物品价值超过一定的数额就只有等级高的的才能抢。只有等级时F及F以上的用户才能抢价值在300元及其以上的单子,只有等级是C及C以上的用户才能抢价值在600及其以上的单子。如果你的等级不够去抢价值高的发单是会抢单失败,系统会给出提醒。抢单信息提交后,抢单者所要做的就是等待,稍后等发单者确定选中了哪个抢单者送后,系统会提醒抢单者抢单成功或失败了。 (4)查询功能:包含查询物流信息等基本功能,还有地图定位功能,其可用手机GPS实现,查询到附近的发单信息,还可以按照条件进行筛选,找到满意的订单和配送路线。 A.物流信息页面: 发单者可以查看物流信息,物流信息以时光轴的形式展示出来。页面设计富有特色,简洁,明了,醒目。而且美观大方。 (4)其他功能:系统中增加了许多比较人性化的功能,比如配送服务评价,常用地址添加等。 A.评价页面: 抢单成功者将货物送达后,发单者可对抢单者的服务给出评价。根据评价换算成积分,积分累计得越多抢单用户等级升级得越快。为避免用户刷积分的现象,发单者发的单不允许发单者自己去抢自己发的单。 评价等级是以星级为依据 B.常用地址页面: 填写发单信息的取货和送货地址时如果要填写的信息已经保存到了再了常用地址中可直接点击常用地址添加,可以使操作更加简便。 C.添加常用地址页面: 在此页面中添加常用联系人 添加成功后跳转到常用地址页面,可以看到添加成功后的常用地址列表 以下是app版界面: App只完成了一些页面,功能也只实现了一部分,还有许多地方需要完善。 调试过程中经常遇到许多问题。 登录页面:如同大部分app登录页面一样简洁大方 第一次登录的介绍页面: 首页:和网页版的一样有最新的发单情况,能够筛选和搜索满足条件的发单,还能根据定位到的用户的当前位置为用户推荐在用户附近的发单 发单页面:点击页面下部的发单按钮,进入到发单页面可进行文字发单和语音发单,还可查询用户已发过的各种状态的发单。 文字发单页面:与网页版内容相同,但并未分为3步,所有发单信息都在一个页面中填写 我的抢单页面:在此页面中可查询用户各种状态的抢单。 我要抢单页面:用户在此页面进行抢单 设置页面:在此页面对个人信息、我的支出、我的收入等进行设置,还可以设置有新的发单时,是否接受发单,并设置满足什么条件的发单才被用户所接收 我们整个项目分为了网页版和app版,有许多功能在网页版中无法实现,只能在app中实现,如:定位、导航等功能。 六、测试、分析和总结 1. 系统测试与分析 我直接在Myeclipse自带的浏览器中调试运行程序,我的页面设计十分的简单,以浅蓝、浅灰为主色,简单的色调给人以舒适的感觉。没有使用漂亮的背景图片,背景图片不好确定大小,在界面大小不同的浏览器中效果不同,图片小了会不太好看,使界面显得很乱,所以我没有使用背景图片页面显得简约大方,像百度的设计十分的简单,却深受大家的喜爱。每个页面都有着相同的模式,显得整齐一致。在功能方面还是比较齐全,我们本着用户友好型的原则,从用户的角度出发设计整个项目,务必使用户使用起来方便、快捷,让用户感觉到使用我们的产品是一种享受。 当然我们的系统还有许多不足之处,许多功能还有加强、完善,代码不够简洁,应该更加注意到使用性。 2.遇到的问题 在web工程编程、调试过程遇到了许多的问题。运行时多次遇到以前没见过的错误,一开始总让我措手不及,束手无策我就上网查找 ,发现网上也有许多遇到相同错误在网上寻求答案的人,网上也给出了一些解决方案,但大多都无法解决我的问题,然后我又向人请教,翻书查资料,好不容易才能解决,但也有一部分问题是我至今也未解决的。比如图片的上传,图片的处理。图片在数据库中的以image这一数据类型存储的,而我不知道在java中相对应的数据类型应该是什么,然后我试着在Java中以InputStream这一数据类型定义,然而在获取从jsp页面传过来的图片时,总是显示找不到图片,我不知道该怎么解决这一问题。 3. 总结与展望 此次比赛,让我们了解了系统开发的全过程,要经历5个阶段:系统规划阶段、系统分析阶段、系统设计阶段、系统实施阶段和系统维护和评价阶段。 系统规划阶段的任务主要是,确定要做什么方面的系统,根据需要提出一个新系统的总体方案,并对这些方案进行可行性分析。系统分析阶段的任务是根据系统开发计划所确定的范围,对目标系统进行深入调查,与其类似系统进行比较,找出目标系统的局限性,并进行修改和创新。而且,这个阶段要设计出逻辑模型。系统设计阶段回答了目标系统“怎么做”的问题,具体设计实现逻辑模型的技术方案,也就是物理模型。系统实施阶段就是将问题用java语言实现功能,之后对系统进行调试和维护。 经历以上阶段后,发现许多方面需要多思考几个方案,实现功能时可以再考虑代码的简洁性和规范性。希望我们的系统更加完善,功能更加全面,使用起来更加人性化。在满足客户的需求上,提供更加有创新、实用的功能。 七、系统实现关键的代码 1、主页实现实时更新发单情况:在jsp页面嵌入java 代码实现 <%! ResultSet rs=null; String sql; String code; int pagesize=10; int rowcount=0; int pagecount=1; %> <body> <table style="color:black;" width="600" height="" border="1" align="center" cellpadding="0" cellspacing="0"bordercolor=black bordercolordark="#333333" bordercolorlight="#FFFFFF"> <tr> <td height="38" align="center" colspan="6" bgcolor=#0000FF><font style="font-size:1.5em; color:black">动 态 信 息</font></td> </tr> <tr> <td width=12% height="29" align="center">发布日期</td> <td width=24% height="29" align="center">取货地点</td> <td width=24% height="29" align="center">送货地点</td> <td width=23% height="29" align="center">物品名称</td> <td width=12% height="29" align="center">操作</td> </tr> <% sql="select * from 订单.发单 join 货物.物品 on 发单.物品编号=物品.物品编号 "; try { rs=connection.executeQuery(sql); if(!rs.next()) { %> <% }else { rs.last(); rowcount=rs.getRow(); int showpage=1; pagecount=((rowcount%pagesize)==0?(rowcount/pagesize):(rowcount/pagesize)+1); String topage=request.getParameter("topage"); if(topage!=null) { showpage=Integer.parseInt(topage); if(showpage>pagecount){ showpage=pagecount; }else if(showpage<=0){ showpage=1; } } rs.absolute((showpage-1)*pagesize+1); for(int i=1;i<=pagesize;i++) { code=rs.getString("发单编号"); %> <tr> <td width=12% height="40" align="center"><%=rs.getString("发单时间")%></td> <td width=24% height="40" align="center"><%=rs.getString("取货地址")%></td> <td width=24% height="40" align="center"><%=rs.getString("目的地")%></td> <td width=23% height="40" align="center"><%=rs.getString("物品名称")%></td> <td width=12% height="40" align="center"> <a href="<%=request.getContextPath()%>/publish_show.jsp?id=<%=code%>">详细</a></td> </tr> <% if(!rs.next()) break; } %> <tr> <td height="30" colspan="9" align="right"> <table width="786" align="center" cellpadding="0" cellspacing="0"> <tr> <td width="786" height="30" colspan="9" align="right"> 共<%=pagecount%>页 <a href="Main.jsp?topage=<%=1%>">第一页</a> <a href="Main.jsp?topage=<%=showpage-1%>">上一页</a> <a href="Main.jsp?topage=<%=showpage+1%>">下一页</a> <a href="Main.jsp?topage=<%=pagecount%>">最后一页</a> </td> </tr> </table> </td> </tr> <% } }catch(Exception e) {e.printStackTrace();} %> </table> 2、发单的实现:第一步填写物品信息后点下一步便将这些信息存到了数据库中的物品表中,并将物品编号通过会话传值。 public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { int r1=(int)(Math.random()*(10)); long now = System.currentTimeMillis(); String id ="w"+String.valueOf(now)+String.valueOf(r1); String name=new String(request.getParameter("name").getBytes("iso-8859-1"),"utf-8"); String category=new String(request.getParameter("category").getBytes("iso-8859-1"),"utf-8"); BigDecimal weight=new BigDecimal(request.getParameter("weigh")); BigDecimal voluem=new BigDecimal(request.getParameter("voluem")); String value=request.getParameter("value"); String filename=new String(request.getParameter("image").getBytes("iso-8859-1"),"utf-8"); HttpSession session = request.getSession(); session.setAttribute("id", id); Goods g=new Goods(); g.setGoodsId(id); g.setGoodsname(name); g.setCategory(category); g.setWeight(weight); g.setVoluem(voluem); g.setValue(value); g.add(); RequestDispatcher rd = request.getRequestDispatcher("../publish2.jsp"); rd.forward(request,response); } 第二步填写完取货系信息点击下一步后将传递到servlet中的值通过会话传值。 public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { String fname=new String(request.getParameter("fname").getBytes("iso-8859-1"),"utf-8"); String fphone=new String(request.getParameter("fphone").getBytes("iso-8859-1"),"utf-8"); Str展开阅读全文
咨信网温馨提示:1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前可先查看【教您几个在下载文档中可以更好的避免被坑】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时联系平台进行协调解决,联系【微信客服】、【QQ客服】,若有其他问题请点击或扫码反馈【服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【版权申诉】”,意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:0574-28810668;投诉电话:18658249818。




物流管理系统课程设计.doc



实名认证













自信AI助手
















微信客服
客服QQ
发送邮件
意见反馈



链接地址:https://www.zixin.com.cn/doc/2216583.html