《库存管理系统的设计与开发-库存管理系统论文.doc》由会员分享,可在线阅读,更多相关《库存管理系统的设计与开发-库存管理系统论文.doc(32页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、南 京 审 计 学 院毕业论文题目: 库存管理系统的设计与开发 专业: 计算机科学与技术 二零一零 年 六 月库存管理系统的设计与开发【摘 要】库存管理系统是典型的信息管理系统(MIS),其开发主要包括后台数据库的建立和维护以及前端应用程序的开发两个方面。对于前者要求建立起一个数据一致性和完整性强、数据安全性好的库;而对于后者则要求应用程序具有功能完备、易使用等特点。 经过分析以上情况,我采用微软公司的Visual C#.NET作为前端应用程序开发工具,SQL Server 2000建立后台数据库,在本次毕业设计中开发了这套库存管理系统。本系统利用Visual C#.NET提供的各种面向对象的
2、开发工具,尤其是ADO,能方便而简洁地实现应用程序和数据库的互访,是一款能让用户满意的可行系统。【关键词】库存管理;ADO;面向对象;数据库目 录引言1一、系统分析1(一)选题的背景1(二)系统需求分析1(三)可行性分析2(四)系统的开发及功能描述4(五)系统逻辑模型5二、系统设计7(一)系统总体结构设计7(二)数据库设计8(三)系统功能模块的详细设计9三、系统实现15四、系统开发总结25参考文献26附 录28致 谢30学士学位论文 库存管理系统的设计与开发引言随着我国市场经济的蓬勃发展和人们对物质水平需求的增加,各行各业都处于一个飞速发展的时期,行业的快速发展必然导致各企业之间的竞争更加激烈
3、,为了使自己的企业在竞争中能够站稳脚跟,不被激烈的竞争环境所压倒,必然要求企业加强对自身的管理,提高企业的经营效率。本库存管理系统的开发主要包括前端应用程序以及后台数据库的建立和维护两个方面。经过分析,我选用微软公司的Visual C#.NET来开发系统,利用其提供的各种面向对象的开发工具,来操纵数据库。本论文正文分为五部分。第一部分介绍了开发库存管理系统的必要性以及如何开发,并简要概述了Visual C#.NET 和SQL Server 2000。第二部分介绍系统开发前的准备,包括系统的需求说明及系统总体结构设计和详细设计。第三部分并着重阐述了系统主要功能模块的具体实现。第四部分是系统开发的
4、后期工作,讲到了该系统的不完善之处及本次系统开发过程中一些切身的感受与想法,是我做这次毕业设计的心得体会。一、系统分析(一)选题的背景企业的库存物资管理往往是很复杂、很繁琐的。由于所掌握的物资种类众多,订货、管理、发放的渠道各有差异,各个企业之间的管理体制不尽相同,各类统计报表繁多,因此仓库的库存管理必须编制一套库存管理信息系统,实现计算机化操作,而且必须根据企业的具体情况制定相应的方案。 由于超市的行业特殊性,产品种类繁多,业务量巨大,若仍然采用人工记账的方式,必然不能满足企业的需求,企业需要利用计算机来进行库存管理,因此需要构造一个库存管理系统。一个完整的企业物资供应管理系统应包括采购计划
5、管理,合同收托管理、仓库库存管理、定额管理、统计管理、财务管理等模块。其中仓库的库存管理是整个物资供应管理系统的核心。因此有必要开发一套独立的库存管理系统来提高企业工作效率, 而所使用的这套库存管理系统是企业生产经营管理活动中的核心,此系统必须可以用来控制合理的库存费用、适时适量的库存数量,使企业生产活动效率最大化。通过对这些情况的仔细调查,我开发了下面的仓库库存管理系统。(二)系统需求分析 系统需求分析就是在用户需求调研的基础上,确定系统的总体结构方案,完成相应的需求分析报告。在确定系统的总体结构方案过程中,包括确定应用程序的结构、系统开发环境和开发工具的选择。1.应用程序结构确定 从用户应
6、用角度来看,可把应用程序系统的组成部分分成数据存储层、业务处理层和界面表示层等3个层次,而应用程序结构可归纳为:集中式应用程序结构、单机板应用程序结构、多层服务器应用程序结构、浏览器服务器应用程序结构、客户机服务器应用程序结构等5种类型。 本库存管理系统就采用了单机版应用程序结构,将数据库和应用程序置于一台机器上,这样更加节约成本,适合中小规模的超市使用。用户可以轻松将其拷贝到其他计算机上,可以同时运行程序。2.确定系统开发环境 由于大多数公司内部使用的计算机平台都是基于Windows环境的。为了降低系统成本,应最大程度地利用现有的资源、兼容现有的环境,可确定使用下面的开发环境: 数据库:Mi
7、crosoft SQL Server 2000; 前端开发工具:Visual C#.NET;数据访问对象:ADO。3开发工具的选择可视化(visual)程序设计是一种全新的程序设计方法,全面采用面向对象的程序设计技术,使用事件驱动机制进行程序设计。利用可视化开发工具可以快速、高效地开发应用程序。可视化的开发工具很多,如Microsoft公司推出的Visual Studio软件系列,Borland公司的Delphi、C+ Builder系列等。Visual Studio 是微软公司推出的集成开发环境,是目前最流行的 Windows 平台应用程序开发环境。它是把代码的编写、程序的调试、编译、运行以
8、及其他的相关操作都集成在一起的“编程工具”。 作用是程序员通过它这个平台,利用编程语言来写程序,调试,运行。SQL Server 2000 是Microsoft 公司推出的SQL Server 数据库管理系统。该版本继承了SQL Server 7.0 版本的优点同时又比它增加了许多更先进的功能,具有使用方便,可伸缩性好与相关软件集成程度高等优点,可跨越从运行Microsoft Windows 98 的膝上型电脑到运行Microsoft Windows 2000 的大型多处理器的服务器等多种平台使用。经分析,本库存管理系统选用Visual C#.NET来设计界面,选用SQL Server 200
9、0来建立后台数据库。(三)可行性分析可行性研究的目的,就是用最小的代价在尽可能短的时间内确定问题是否能够解决。要达到这个目的,必须分析几种主要的可能解法的利弊,从而判断原定的系统规模和目标是否现实,系统完成后所能带来的效益是否大到值得投资开发这个系统的程度。因此,可行性研究实质上是要进行一次大大压缩简化了的系统分析和设计的过程,也就是在较高层次上以较抽象的方式进行的系统分析和设计的过程。一般来说,可行性分析应从经济可行性、技术可行性、操作可行性等方面进行研究。本系统的可行性分析如下:1. 经济可行性分析由于本库存管理系统所要求的硬件(计算机及相关硬件)和软件环境(Visual C#.NET+S
10、QL Server 2000),市场上都容易购买到或从相关网站下载,系统成本主要集中在本管理系统的开发与维护上,对用户不造成过重的经济负担。而一旦此系统投入使用,不仅可以减少库存的工作强度,提高工作效率,而且方便了库存对信息的管理,延续了传统的管理模式,极大限度地方便了库存管理人员,而且,目标系统不是很复杂,开发的周期较短,人员经济支出不大,所节省的大量人力、财力产生的效益将远远大于本系统的开发成本,所以从经济方面讲开发此系统是可行的。2.技术可行性分析技术上的可行性分析要考虑现有技术条件能否顺利完成开发工作及将来要采用的硬件和软件技术能否满足用户提出的要求(如计算机的容量、速度等)。本系统采
11、用Visual C#.NET作为系统前台应用程序开发工具,采用SQL Server 2000工具建立数据库,并通过Visual C#.NET中的ADO控件使两者进行连接从而进行系统软件开发。Visual C#.NET不仅能帮助软件开发者提高软件开发的质量和效率,缩短开发周期,而且还具备强大的数据库管理功能,完全能够满足本系统的开发需求。 此外,从开发人员的水平考虑,作为计算机科学与技术专业毕业的学生,大学四年所积累的专业知识使我们从一定程度上具备了开发一个小型系统的能力,而且学校现有的计算机设备也完全能够满足开发的需要。3.操作可行性分析传统的库存管理系统,一般有两种方式:一是手工管理,这种方
12、式应用最传统的“笔纸操作系统”,将库存的货物信息、销售信息、厂商信息管理及单据管理等均以纯手工的形式进行,将信息以表格文件的表现形式记录在纸上,再进行统一保存。这种方式虽然在简单信息查询时会有一定的方便,但是存在着更多的不便:信息保存时间和条件很受限制、容易被损坏、信息查询不便、信息传达容易造成失误等。另一种常见的信息管理方法是应用单机版的管理系统,本系统就是一款做的相对到位的单机版的库存管理系统,在库存信息处理方面做得很精准规范。因为库存管理人员已经有丰富的信息管理经验,加之有相当的计算机应用经验,所以对于此系统一定很容易就可操作熟练。综上所述,本库存管理系统投资少、收益大,且其运行操作简单
13、易学,具备了开发的可行性。(四)系统的开发及功能描述1.开发方法的选择信息系统的开发是一项比较复杂的工作,因此我们必须选用科学有效的开发方法。本系统的开发采用了生命周期法。在系统设计时遵循系统调查研究、系统分析、系统设计和系统实施四个主要阶段进行设计,而在具体的设计上,则通过在系统的使用及对系统了解的不断加深中,对某一部分或几部分进行重新分析、设计、实施,使系统逐步完善。2.系统功能描述及系统安全性本库存管理系统是一套对货品入库、出库、库存进行全面管理的系统。在管理内容上,它的主要功能包括:进货管理:进行填写货品信息,货品采购入库,入库单据的填写和修改最低库存量。 出货管理:进行货品出库,出货
14、单据的填写和获取采购员信息。信息查询:货品信息查询,库存信息查询,入库、出库单据查询,日报表、月报表查询。统计报表:完整的日报表、月报表统计查询功能,每张单据每次业务金额都可以清楚地反映。系统管理:身份验证,修改本人密码,注册用户,修改删除用户。由于库存管理系统包含比较重要的信息,因此,在系统设计时除了注重用户的需求,还要保证系统的安全性和一致性,体现如下:(1)安全性:本系统中共分为三类不同的用户,分别具有不同的权限。(2)一致性:系统的数据要保证一致性、准确性,当某一数据库中记录发生改变时,与之相关联的数据库也随之变化。(五)系统逻辑模型本系统的逻辑模型以系统的数据流图为主要描述工具。数据
15、流图是组织中信息运动的抽象,是在调研的基础上,从系统的科学性、管理的合理性、实际运动的可行性角度出发,将信息处理功能和彼此之间的联系自顶向下,逐层分解,从逻辑上精确地描述系统应具有的数据加工功能、数据输入、数据输出、数据存储及数据来源和去向(外部实体)等项目,它表达了数据和处理的关系。为了叙述方便,我们用不同的符号代表这四个元素:表示数据流;表示文件(数据存储);表示加工;表示数据流的源点和终点。通过分析调查有关库存管理需要,并针对一般库存管理系统的功能需求,设计出库存管理系统顶层数据流程图如图1-1所示:业务输入业务结果查询结果查询要求 注册用户修改要求修改结果系统管理员仓库管理员返回结果库
16、存管理系统经理查询要求查询结果图1-1库存管理系统顶层DFD根据系统的顶层数据流图,进一步分析,画出系统的第二层数据流图如图1-2所示:出货结果出货管理进货管理采购员表仓库信息表 操作员个人信息表客户信息表采购员表查询结果修改结果修改要求信息查询操作员个人信息表密码用户编号用户编号密码数据维护信息查询系统管理员仓库管理员进货管理身份验证身份验证操作员个人信息表系统管理员库存管理系统出货管理进货结果月报表统计报表统计统计结果采购员表库存信息表表货品信息表表库存信息表表日报表经理身份验证用户编号密码信息查询经理货品信息表库存信息表入库单出库单信息查询查询结果日报表月报表操作员个人信息表图1-2库存
17、管理系统的第二层DFD图二、系统设计(一)系统总体结构设计1.系统功能分析系统开发的总体任务是实现企业物资设备管理的系统化、规范化和自动化,从而达到企业仓库库存管理效率的目的。系统功能分析是在系统开发总体任务的基础上完成的。本库存管理系统需要完成的功能有:(1)库存管理的各种信息的输入,包括入库、出库、货品信息的输入等。 (2)库存管理的各种信息的查询、修改和维护。 (3)入库单、出库单的生成,日报表、月报表的生成。 (4)在货品库存中加入所允许的最低库存字段,对所有库存物资实现监控和报警。 2系统功能模块图根据系统功能分析,画出系统功能模块图如下:库存管理系统身份验证注册用户修改删除用户修改
18、密码信息查询报表统计进货管理出货管理系统管理入库单填写填写货品信息修改最低库存出库单填写获取采购员信息日报表月报表库存查询货品查询报表查询图2-1系统总体功能模块图(二)数据库设计数据库在一个信息管理系统中占有非常重要的地位,数据库结构设计的好坏将直接对应用系统的效率以及实现的效果产生影响。合理的数据库结构设计可以提高数据存储的效率,保证数据的完整和一致。同时,合理的数据库结构也将有利于程序的实现。设计数据库时应该首先充分了解用户各个方面的需求,包括现有的以及将来可能增加的需求。1. 数据库概念结构设计本系统将货品分类,每类货品都有一名采购员负责采购,每名采购员只负责采购一类货品,每类货品都放
19、在一个仓库中,一个仓库中可以放不同种类的货品,每个客户可以订购不同的货品,每种货品可以卖给不同的客户。货品采购仓库客户存储订购采购员n1mnn1货品编号规格型号单位货品名称客户编号客户名称仓库名称负责人联系电话采购员编号采购的货品类别图2-2库存管理系统ER图2.数据库逻辑结构设计根据系统功能需求与数据流程图,本数据库管理系统需要11个数据表,分别是操作员个人信息表、登录表、仓库信息表、货品信息表、库存信息表、入库单、出库单、采购员表、客户信息表、日报表、月报表。11个表的数据库逻辑结构如下:操作员个人信息表(UID, Uname, Sex, Tel);登录表(UID ,PWD, Limit)
20、;仓库信息表(仓库名称,负责人,联系电话,联系地址,备注); 货品信息表(货品编号,货品名称,货品类别,单位,规格型号,颜色); 库存信息表(库别,货品编号,最低库存,数量,进货单价,出货单价); 入库单(凭证编号,库别,货品编号,数量,进货单价,合计,入库时间,制单人,采购人编号); 出库单(凭证编号,库别,货品编号,数量,出货单价,合计,出库时间,制单人,客户编号); 采购员表(UID, Uname, 采购的货品类别,Tel); 客户信息表(客户编号,客户名称,联系人,联系电话,联系地址,备注); 日报表(日期,货品编号,本日入库数量,本日入库金额,本日出库数量,本日出库金额,本日出库利润
21、); 月报表(月初日期,月末日期,货品编号,本月入库金额,本月出库金额,本月出库利润); 3.设置引用完整性为了防止用户不小心删除有用的数据,或者输入错误的数据,就需要设置引用完整性 (Referential Integrity)。例如本系统用到的数据库中,入库单中输入的货品编号必须现存在于货品信息表中。通过设置引用完整性对数据库进行约束,能够帮助程序员和用户确保使用的数据是合法的。4.数据库链接的实现为了充分展现对象编程的思想,系统中利用ADO.NET中的组件SqlConnection实现数据库和前台应用程序之间的连接,利用connection对象和command对象实现随时访问数据库的功能
22、。ADO控件较灵活,它使用SQL表达式,通过SQL属性来和数据库文件相连并显示要显示的字段,可以方便地对一个或多个数据表中的记录进行访问。(三)系统功能模块的详细设计本库存管理系统是本着用户操作界面友好、清晰、易学易用的原则进行设计的。1身份验证模块的设计在进入系统主界面之前,会出现一个身份验证对话框,要验证用户的身份。本系统中用户分为管理员、仓库管理员和经理三种。不同用户其权限也不同。库存管理系统用户编号:密码:退出登陆图2-3用户登录模块界面设计该模块的流程图如图2-4所示:是否用 户登 录是否为合法用户?否选择身份判断用户类型进入系统开 始结 束图2-4用户登录模块流程图此外,对一个完整
23、的系统而言,用户是应该可以修改自己的密码的,因此系统中应该具有修改密码的功能,提高数据的安全性,用户可以在进入系统主界面后可以修改自己的密码。当用户输入完成之后,按“确定”按钮来关闭对话框,系统会自动检查用户两次输入的密码是否一致,如果不一致,会出现出错提示并建议用户重新输入。请输入新密码请确认新密码确认取消图2-5修改密码界面设计2系统主界面的实现 系统主界面分为三个,根据用户的权限不同进入不同的主界面,分别是系统管理员界面、仓库管理员界面、经理界面。各自主界面自然有不同的功能。 系统管理删除报表查询修改信息退出系统图2-6主界面(admin)设计修改密码进货管理出货管理报表统计图2-7主界
24、面(仓管)设计修改密码信息查询退出系统图2-8主界面(经理)设计3进货管理模块的实现 进货管理模块包括填写货品信息、入库单、修改最低库存三个子模块。(1)填写货品信息填写货品信息货品编号货品名称单位货品类别规格型号颜色确定取消图2-9填写货品信息设计(2)入库单 入库单凭证编号货品编号数量库别进货单价入库时间确定取消采购人编号制单人图2-10入库单设计(3)修改最低库存修改最低库存货品编号最低库存确定取消图2-11修改最低库存设计4出库管理模块的实现出库管理包括填写出库单,获取采购员信息两个子模块。(1)出库单出库单凭证编号货品编号数量库别出货单价出库时间确定取消客户编号制单人图2-12出库单
25、设计(2)获取采购员信息获取采购员信息货品编号搜索的信息:确定搜索 图2-13获取采购员信息的设计5.报表统计模块的实现本系统的报表分为日报表和月报表,日报表在添加入库单和出库单时就已经自动添加进数据库中的日报表了,所以在此只需再手动添加月报表。月报表月初日期月末日期确定取消货品编号图2-14月报表的设计6.信息查询模块的实现该模块三种用户都会用到,用户根据不同的权限分别可以查询不同的内容,如系统管理员为了修改仓库信息表、采购员信息表、客户信息表而查询相关信息,仓库管理员为了通知采购员及时采购而查询采购员信息,经理查询仓库管理的各种信息等。三、系统实现系统实现包括用户需求实现,系统界面实现和数
26、据库实现三方面。1用户登录界面用户通过该界面登录进入系统。在其输入用户编号与密码之后,单击“确定”按钮登录数据库(为了方便用户,本系统允许用户在输入密码之后直接按回车键登录数据库,而无须使用鼠标单击“确定”按钮)。此时触发“确定”按钮的Click事件相应函数。图3-1系统登录界面在这个事件响应函数中,需要首先判断用户,因为他们具有不同的权限。如果权限是0,则进入系统管理员界面;权限是1,则进入经理界面;权限是2,则进入仓库管理员界面。2. 系统主界面由于用户权限的差异,他们所能进入的系统主界面也相应的不同。如图3-3:图3-2系统主界面一(系统管理员身份进入)图3-3系统主界面二(经理身份进入
27、)图3-4系统主界面三(仓库管理员身份进入)3. 系统子界面3.1 系统管理图3-5修改密码界面用户只能通过此界面修改自己的密码,如果试图修改别人的密码,则提示如下图:图3-6修改密码界面修改密码成功则显示重新登录界面,图如下:图3-7重新登录界面以下是注册用户界面:图3-8系统管理员注册用户界面注册前数据库中操作员个人信息表如图3-7:图3-9注册前的操作员个人信息表数据库注册用户成功界面:图3-10注册用户成功界面注册用户成功数据库:图3-11注册后的操作员个人信息表数据库修改删除用户界面如下:图3-12系统管理员修改删除用户界面删除报表界面如下图:图3-13系统管理员删除报表界面3.2
28、进货管理仓库管理员填写入库单界面如下图:图3-14仓库管理员填写入库单界面入库单中涉及数据一致性,货品编号为“1”开头的库别自动为饮料库,货品编号为“2”开头的库别自动为主仓库,货品编号为“3”开头的库别自动为酒库。数量和进货单价设置只能输入数字类型。其中货品编号如果在库存信息表中不存在,那么提示先输入货品信息,点击确定后界面自动跳转到如下图:图3-15仓库管理员填写入库单界面图3-15仓库管理员填写货品信息界面入库单填写的信息会自动加入入库单数据库,并且更改库存信息表和日报表中的相关信息。图3-16未添加信息前的入库单图3-17入库单未添加前的库存信息表图3-18入库单未添加前的日报表填写完
29、入库单的图如下:图3-19添加信息后的入库单图3-20入库单填写后的库存信息表图3-21入库单填写后的日报表3.3 出货管理出库时如果出库数量低于库存信息表中的最低库存时报警,提醒仓库管理员及时通知采购员采购,如果不清楚此货品的采购员是谁可以根据货品编号查询采购员信息,报警显示如下图:图3-22填写出库单3.4 报表统计 图3-23月报表统计3.5 信息查询图3-24库存信息查询四、系统开发总结本次毕业设计接近尾声了,它对我所产生的影响却是巨大的。作为计算机科学与技术专业的学生,四年的学习过程让我们学到了很多知识,然而真正运用于实践的并不多,毕业前的这次毕业设计恰是对我们大学四年所学的一次总结
30、,我们可以在老师的帮助下自己来尝试开发一个小型项目,把所学的单纯的理论知识变成为实际的操作经验,而不再是眼高手低。此次库存管理系统开发让我学习到很多知识,现总结如下:u 系统开发的过程中,我深刻体会到了以前上课老师经常提起的一个问题,那就是:一个系统开发的过程中编码不是最重要的,重要的是对系统进行分析以及建立恰当的系统模型。有了一个好的系统模型之后,我们再将其划分成几个模块,那样做起来就会容易得多。本系统中采用了生命周期法进行系统的开发,就体现了该模块化设计思想。 u 在该库存管理系统设计中,从系统的实用性出发,我能够在开发该系统时站在用户的角度看问题,本着用户操作界面友好、清晰、易学易用的原
31、则进行设计。如开发过程中我尽可能地设想记录为空,输入为空,输入出错等边界条件,然后在这些边界上,设置出错检测,使系统能自动捕获出错点,给出提示,允许用户重新进行操作,使系统能够安全的运行下去,而不是退出系统。u 文章的前面讲到了本系统数据库是使用SQL Server 2000进行设置的,也讲到了它的优点,这里就不多说了,但是在本次设计中,我发现了Visual C#.NET的一种应用编程接口ADO(ActiveX Data Objects)。它是一种面向对象的、与语言无关的应用编程接口,具有易于使用、高速度、低内存支出和占用磁盘较少,可以使用所有支持ODBC的数据库等优点;使用ADO可以实现动态
32、数据库的链接,从而避免以往静态方式连接数据库的一些缺点。这些知识对我本次的系统开发有着很大的帮助。在这次毕业设计中,我遇到了很多困难,这主要是由于我开发软件的经验不足,工具的应用也不够熟练,虽然Visual C#.NET用的语言是C#,但是由于以前基础不够扎实,对我来说可以算是一个全新的尝试,整个开发过程并不是很顺利,却使我从中充分体会到学习的快乐,系统也在从理论到实践,再从实践到理论的反复中一步步得到完善。 总之,这次的系统开发,实现了我自己动手完成一个系统开发的目标,也学习到很多东西,不只是实践经验,还有一些做事的道理:在工作时,要尽量把要遇到的问题考虑周全,提前做好准备,那样就不会在遇到
33、问题时有措手不及的感觉;做事一定要不断地去尝试,然后尽自己最大的努力去完成它,人的发展潜力是巨大的,不要一开始就否定自己,低估自己,虽然不能说只要努力就会取得成功,但是如果不努力,就永远不会成功。参考文献:1 梅玫: 物资库存的计算机管理,黑龙江科技信息,2009年7月25日.2 申冠楠,郭宗义: 百货店商品的库存管理系统的设计与实现,现代商业,2010年1月18日.3 刘志坚: 中小制造企业库存管理系统的开发与设计,中北大学,2009年4月25日.4 美c.j.date:数据库系统导论(英文版第七版),机械工业出版社,2002年.5 邓良松:软件工程,西安电子科技大学出版社,2004年.6 邓远志:数据库设计方法,南昌教育学院学报,2005年第20卷第4期.致 谢在本次毕业设计中,我要特别感谢我的指导老师王瑜,从她身上我学到了很多东西。王老师认真负责的工作态度,严谨的治学精神都使我受益匪浅。她无论在理论上还是在实践中,都给予我很大的帮助,帮助我解决了不少的难点,使得系统能够逐步完善,我也从中得到不少提高,对我以后的工作和学习都有着巨大的帮助,感谢她耐心的辅导并表示衷心的感谢!此外,还要对那些在我系统开发过程中帮助过我的同学一并表示衷心的感谢!- 32 -
限制150内