毕业设计(论文)大型药店的网上药品查询系统的设计.doc

上传人:laozhun 文档编号:3981930 上传时间:2023-03-30 格式:DOC 页数:25 大小:764.50KB
返回 下载 相关 举报
毕业设计(论文)大型药店的网上药品查询系统的设计.doc_第1页
第1页 / 共25页
毕业设计(论文)大型药店的网上药品查询系统的设计.doc_第2页
第2页 / 共25页
毕业设计(论文)大型药店的网上药品查询系统的设计.doc_第3页
第3页 / 共25页
毕业设计(论文)大型药店的网上药品查询系统的设计.doc_第4页
第4页 / 共25页
毕业设计(论文)大型药店的网上药品查询系统的设计.doc_第5页
第5页 / 共25页
点击查看更多>>
资源描述

《毕业设计(论文)大型药店的网上药品查询系统的设计.doc》由会员分享,可在线阅读,更多相关《毕业设计(论文)大型药店的网上药品查询系统的设计.doc(25页珍藏版)》请在三一办公上搜索。

1、大型药店的网上药品查询系统的设计摘 要随着计算机技术的发展,越来越多的行业实现了管理的信息化和自动化,医药行业也不例外。然而在传统门诊药房中,医院极少给病人提供一个独立的平台来查询病人需要的药品信息。价格不透明,信息不完善等多方原因,导致医院乱收费、过度治疗、百姓看病难、看病贵等。本文将介绍基于B/S模式的门诊药品查询系统的设计和开发工作,涵盖了以下三个方面的内容:1.介绍本系统开发中使用到的ASP.NET+SQL Server技术。2.介绍门诊药品查询系统的后台设计,包括数据库表的设计等。3.介绍门诊药品查询系统各功能的具体实现。本系统最终实现门诊药品信息公告,病人对药品的查询,药品管理,药

2、品报警,系统管理等功能。门诊药品查询系统有着很好的应用前景,用它来代替传统的手工查询,实现药品查询的网络化管理是一个必然的趋势。随着计算机技术和网络技术的发展。它的功能将会得到不断的发展和完善。关键词:门诊药品;查询;药品报警;ASP.NET;SQL Server2000The Design and Implementation for Outpatient Pharmacy Query SystemAbstractAs computer technique develops, more and more trades implement information retrieval and m

3、anagement automation, so as to pharmacy, however, in the traditional outpatient pharmacy, the hospital rarely provides an independent platform for patient query, and the price is not transparent, The information is imperfect. The paper introduces the design and implementation of outpatient pharmacy

4、query system. And this paper contains three aspects: first, introduction ASP.NET and SQL Server technique; second, introduction the design of the database; third, introduction the implementation of query systems sub-functions; At last, implementation of information announcement, searching and pharma

5、cy management and system management are introduced in detail. Outpatient pharmacy query system holds good prospect, which could replace traditional manual query, accompany with computer and network techniques developing, its function will be improved more and more improvement.Key words: Outpatient P

6、harmacy; Query; Pharmacy inventory alarm; ASP.NET; SQL Server2000目 录论文总页数:24页1引言11.1课题背景11.2课题意义12相关理论基础22.1 SQL server2000数据库22.2 B/S模式介绍22.3使用的开发语言和环境介绍32.3.1 C#语言32.3.2 Visual Studio的使用42.4 ADO.NET的使用43需求分析和设计方案43.1需求分析43.1.1性能需求43.1.2功能需求53.2设计方案53.2.1系统设计和要求53.3 系统流程64门诊药品查询系统设计流程64.1数据库表设计64.1

7、.1 administrator(系统管理员表)74.1.2 tb_user(药房管理员和门诊医生表)74.1.3 tb_medicine(药品表)74.1.4 data(药品和用户类型表)74.1.5 databiao(公告表)84.2具体页面实现84.2.1系统登录84.2.2门诊药品查询104.2.3药房管理134.2.4首页公告栏模块:184.2.5系统管理员操作页面195系统测试195.1测试环境195.2测试结果19结 论19参考文献20致 谢21声 明221引言1.1课题背景当今社会,医院的信息化随着医药卫生体制改革的深入推行以及日趋激烈的商业角逐,正以惊人的速度深入医药经济领域

8、。数据管理系统已经成为现代信息科学的重要手段。医院已经意识到了提高药品管理水平的重要性,也迫切要求加快管理信息化的进程。然而在医药行业中,医药经营企业的物流管理以及相应的财务处理、信息处理,长期以来一直采用手工操作,但随着企业管理和运营效率已经成为企业成败的关键所在,手工方式的弊端毕现无遗。这就要求医药管理摆脱过去人手操作的烦琐和失误,充分满足医药药品管理的各种需求,从医药经营企业的各个环节对人流、物流、资金流、信息流进行统一系统的管理。市场的需求和技术的支持,最终会导致越来越多的优秀医药管理软件的出现,并在竞争中得到不断的完善和优化。医院门诊药品管理系统中药品查询系涉及面广,类别繁多和要求操

9、作人员具有相关专业知识等特点,这就意味着维护工作也特别重要,门诊药房是医院面向社会的窗口,带有专业技术性、经营管理性、咨询指导性和服务全面性的工作性质。1.2课题意义门诊药品查询的工作的好坏直接关系到医院的社会效益和经济效益,直接影响到医院的社会形象及人民群众对医院的信任,所以做好门诊药品查询工作是整个医院管理工作十分重要的一环。门诊药品查询系统是目前比较流行和应用比较广泛的查询系统。方便病人、医生、管理人员查询药品信息、出入库情况等使医院的工作更有效和方便。作为门诊管理系统的一个部分,主要服务于就诊系统和对药房的管理系统。门诊药品查询系统主要是针对医院的药品物流进行管理的,包括门诊药品信息公

10、告,药品的查询和存库管理,药品的查询主要分为模糊查询和详细查询,模糊查询分为:按药品层次的分类查询,药品名称的模糊查询。详细查询里又分为药品名称查询,拼音名查询等。同时管理员的动态添加药品类型和公告信息,维护方便。门诊药品查询系统微机化成为必然趋势。微机管理可提高查询的准确率,减少因人而异出现的错误;同时在微机上对所发出的药进行确认,微机就会对药品的库存量作相应扣除,样就做到投药准确无误,每种药品都可在微机内根据日常用量设定相应最低库存报警线,每种药品的实际库存、电脑库存、实际消耗都可进行实时监控,这对于特殊药品和贵重药品的管理更具有重要意义。微机化使门诊药品查询逐渐向规范化和现代化发展,将药

11、品查询从过去单纯的“粗放型”的管理提升到品种、数量、金额三位一体精密管理,杜绝了金额管理中存在的诸多弊端,提高了门诊药房管理水平。2相关理论基础2.1 SQL server2000数据库SQL Server 是一个关系数据库管理系统它最初是由Microsoft Sybase 和Ashton-Tate三家公司共同开发于1988 年。SQL Server的特点是:(1)它是关系型数据库,针对电子商务、数据仓库和在线商务解决方案的卓越的数据平台。它执行效率高,可在多用户之间有效的分配可用资源。(2)SQL Server 2000由一系列相互协作的组件构成,能满足最大的Web 站点和企业数据处理系统存

12、储和分析数据的需要。SQL Server 构架各种组件通过何种方式发挥合力,更富成效地管理数据(3)可伸缩性和可用性。同一个数据库引擎可以在不同的平台上使用。(4)企业级数据库功能。SQL Server2000 关系数据库引擎支持当今苛刻的数据处理环境所需的功能。数据库引擎充分保护数据完整性,同时将管理上千个并发修改数据库的用户的开销减到最小。(5)数据仓库。SQL Server 2000 中包括析取和分析汇总数据以进行联机分析处理(OLAP)的工具。SQL Server中还包括一些工具,可用来直观地设计数据库并通过English Query来分析数据。 2.2 B/S模式介绍(Browser

13、/Server结构)即浏览器和服务器结构。它是随着Internet技术的兴起,对C/S结构的一种变化或者改进的结构。在这种结构下,用户工作界面是通过WWW浏览器来实现,极少部分事务逻辑在前端(Browser)实现,但是主要事务逻辑在服务器端(Server)实现,形成所谓三层3-tier结构。这样就大大简化了客户端电脑载荷,减轻了系统维护与升级的成本和工作量,降低了用户的总体成本(TCO)。以目前的技术看,局域网建立B/S结构的网络应用,并通过Internet/Intranet模式下数据库应用,相对易于把握、成本也是较低的。它是一次性到位的开发,能实现不同的人员,从不同的地点,以不同的接入方式(

14、比如LAN, WAN, Internet/Intranet等)访问和操作共同的数据库;它能有效地保护数据平台和管理访问权限,服务器数据库也很安全 。特别是在JAVA这样的跨平台语言出现之后,B/S架构管理软件更是方便、快捷、高效。B/S结构最大的优点就是:(1) 可以在任何地方进行操作而不用安装任何专门的软件。只要有一台能上网的电脑就能使用,能做到客户端的零维护。(2) 系统的扩展非常容易,只要能上网,再由系统管理员分配一个用户名和密码,就可以使用了如图2-1。(3) 在线申请,通过公司内部的安全认证(如证书)后,不需要人的参与,系统可以自动分配给用户一个账号进入系统。图2-1 B/S结构模型

15、图2.3使用的开发语言和环境介绍2.3.1 C#语言C#是一种最新的、面向对象的编程语言。它使得程序员可以快速地编写各种基于Microsoft .NET平台的应用程序,Microsoft .NET提供了一系列的工具和服务来最大程度地开发利用计算与通讯领域。 正是由于C#面向对象的卓越设计,使它成为构建各类组件的理想之选无论是高级的商业对象还是系统级的应用程序。C#在设计时就考虑了这些问题。它使开发者用更少的代码做更多的事,同时也不易出错。支持现有的网络编程新标准:新的应用程序开发模型意味着越来越多地解决方案依赖于新出现的网络标准,HTML,XML,SOAP等。现存的开发工具往往都是早于Inte

16、rnet出现的,或者是在我们所熟知的网络还处于孕育期时出现的。所以,它们一般无法很好地支持最新的网络技术。C#程序员可以在Microsoft .NET平台上事半功倍的构建应用程序的扩展框架。C#包含了内置的特性,使任何组件可以轻松转化为XML网络服务,通过Internet被任何操作系统上运行的任何程序调用。更突出的是,XML网络服务框架可以使现有的XML网络服务对程序员来说就和C#对象一样。这样,程序员就可以方便地使用他们已有的面向对象的编程技巧来开发利用现有的XML网络服务。还有一些精细的特性,使得C#成为一流的网络编程工具。例如,XML正逐渐成为在网络上传输结构化数据的标准。这种数据集合往

17、往非常小。为提高性能,C#允许把XML数据直接映射到struct数据类型,而不是class。这样对处理少量的数据非常有效。消除大量程序错误,如果忘了初始化变量,但往往就是这些小错误带来了难以预料的问题,有些甚至需要很长时间来寻找和解决。2.3.2 Visual Studio的使用Visual Studio是用于用多种语言开发托管的集成开发环境。它是一个用于创建可靠、健壮、可伸缩应用的开发环境。此外,Visual Studio还集成了多种快速应用开发工具以促进对托管应用的快速、轻松开发。Visual Studio .NET 2005在以下几点有所加强。编辑能力有所加强,如增加了代码扩展(Code

18、 Expansion)和自动智能感知(Auto IntelliSense)。代码片断(code snippet)也得到了改进。代码重构(Refactoring)是一个激动人心的新特性,是每个开发者的良师益友。新的生成目标码的可选方案。对于专业开发者来说也是可用的。Microsoft也为Visual Studio增添了一些新的项目和模板。如智能设备(Smart Device)等。Visual Studio 2005的这些新特性为开发者的托管开发提供了额外的选择。然而使用可视化界面更加减少了代码的输入量,提高了效率。2.4 ADO.NET的使用ADO.NET是微软提供的一种高性能访问信息源的策略,

19、这些技术可以使企业很方便的整合多种数据源,创建易维护的解决方案。ADO.NET能够编写对数据库服务器中的数据进行访问和操作的应用程序,并且易于使用、高速度、低内存支出和占用磁盘空间较少,支持用于建立基于客户端/服务器和 Web 的应用程序的主要功能。ADO.NET拥有自己的ADO.NET接口并且基于微软的.NET体系架构。众所周知.NET体系不同于COM体系,ADO.NET接口也就完全不同于ADO和OLE DB接口,这也就是说ADO.NET和ADO是两种数据访问方式。ADO.NET提供了Connection来连接数据库,同时也提供了Command对象来查询数据库。同Connection对象一样

20、,Command也有两种:OleDbCommand和SqlCommand。 3需求分析和设计方案3.1需求分析3.1.1性能需求根据调查分析和了解传统习惯上的门诊药品查询系统,开发本系统与其他门诊药品查询系统对比起来本系统应该具备的不同的性能,如下:1 采用大型数据库,对药品的信息量有更大的容量;2 具有网络功能,能在局域网中灵活使用;3 独立性强。本系统还具有界面友好,易于使用和管理,容易维护等特点,如果能借助网络强大的交互性、广泛的传播性、时空的开放性,将进一步提高查询效率和灵活性。具有性能可靠的突出优点,支持面向对象的大型数据库系统。数据安全,存储量大等功能。3.1.2功能需求系统的功能

21、主要包括:强大的药品的查询、药品的种类的管理和动态公告管理、药品的添加删除及报警功能和系统管理。以下按不同角色具体描述:(1)强大的药品的查询药品查询是本系统的主要功能,按查询方式分为了模糊查询和详细查询,模糊查询又分为按药品的类型层次分类查询和文本框输入的模糊查询。按查询的用户分为了未登陆的病人门诊药品查询和登陆的门诊医生的药品查询。也实现了药房管理员简单查询药品信息。(2)药品的种类的管理和动态公告管理药品种类管理主要是根据新进药品在药品库中是否存在对应的药品种类,不存在则动态添加到该药品库中,以便给新药品和将会出现的药品归类。而公告的添加是为了在首页上动态显示近期门诊药房的新消息。药品的

22、出入库是对已经存在的药品进行补给等。(3)药品的添加删除及报警功能门诊药品入库和出库是由药房管理员对药品进行添加和删除。并且能设定和查看药品不足的药品信息报警。(4)系统管理系统管理因为要求的安全性较高,通过登录进入管理界面,可以对门诊医生和管理员进行编辑,删除,添加新用户等操作。3.2设计方案3.2.1系统设计和要求完成门诊药品查询系统主要实现病人和医生对药品信息的多种查询方式主要为类型的分层次查询,药品名称的模糊查询,和一定程度的详细查询。门诊药品管理:药品出入库的管理,库存报警,公告的添加,药品类型的添加,药品的查看。功能要求:做好需求分析,了解门诊药品查询和后台信息处理的基本需求;对病

23、人来说系统除了实现精确查询之外,还要能实现一定程度的模糊查询;药品库存不足时报警,系统功能图如图4-1所示:图3-1系统功能图3.3 系统流程根据不同用户登录:1)病人用户不用登录,直接进入门诊药房查询系统对药品进行查询。查询到的药品信息为药品基本信息:药品的分类,药品价格信息、药品用途,药品名称,药品商名称。病人查询药品的方式多,更为人性化。2)门诊医生登录成功以后,能够查询的药品信息内容相对于病人有所增加。一些主要的信息的显示。3)门诊药品管理方登录后,可操作药品的入库和出库,数据库中药量不足报警提示,药品的查看,药品类型的管理,首页公告的管理。4)系统用户登录,做门诊人员的添加删除和查看

24、。4门诊药品查询系统设计流程4.1数据库表设计数据库设计成五张表,系统管理员登录,可以对药房管理员和门诊医生做管理,所以设计了三个字段,分别是:number为自增长的列,作为记数用。管理员登录名称和密码作为登录的认证。药房管理员和门诊医生表的级别仅次于系统管理员,主要是对药房系统的管理和药品的查询。药品表里的字段包括了药品的名称,拼音名称,药品的种类,药品的介绍,药品的数量,药品规格,药品每单位的计量,还包括了药品的价格和生产厂家,而针对病人和医生的各种不同的查询和主要的添加删除等事件都是对药品这张表进行处理的,药品这张表可以说是系统的核心部分。公告表主要是对门诊药房的信息的存储。药品和用户类

25、型表作为一个药品类型和用户类型的数据字典。4.1.1 administrator(系统管理员表)系统管理员表:为了更好管理系统管理员,设置了一个username作为系统管理员登陆的用户名和password作为身份的验证,以便登入系统。表4-1系统管理员表(administrator)列名数据类型长度允许为空说明usernamevarchar20否管理员的登陆名称passwordvarchar20否管理员登陆密码numberInt4否4.1.2 tb_user(药房管理员和门诊医生表)药房管理员表:staffid字段作为医院员工号,username和password作为进入系统的身份验证,num

26、ber字段作为自增长的列,还有一个判断是医生还是药房管理员的dockind字段。表4-2药房管理员表(tb_user)列名数据类型大小允许为空说明staff_idInt4否药房管理员的工作编号usernameVarchar20否药房管理员的登陆名passwordNvarchar20否药房管理员的密码numberInt4否dockindInt4用数字代表用户类型4.1.3 tb_medicine(药品表)4.1.4 data(药品和用户类型表)4.1.5 databiao(公告表)4.2具体页面实现4.2.1系统登录登录页面是一个必不可少的部分,但不是每个用户都要进入登录界面,病人对药品的查询不

27、需要登录。门诊医生对药品的查询和每个对系统有操作的用户需要登陆进行身份的验证,以确保进入系统的人员和系统的安全,所以登录界面是系统的第一关卡:ID是验证用户的登陆名,password 和passwordcheck 是对密码的验证,并且根据选择的用户角色进入不同的操作页面,而这个登录框界面友好并且具有国际化的功能:以中文,英文,日文三国语言为操作平台,且操作简单。图4-1登录具体代码如下:private void teacher_Button_Click(object sender, System.EventArgs e)if( Isbn_TextBox.Text=| Book_TextBox.

28、Text=|Time_TextBox.Text=| Author_TextBox.Text=| Depart_DropDownList.SelectedIndex=0| Type_DropDownList.SelectedIndex=0| Code_TextBox.Text=| Class_TextBox.Text=)showMsg(选项不能为空!);return; DBhelper.DBhelper DBh = new DBhelper.DBhelper(); bool doctor=true; /默认进入角色 string input=DropDownList1.SelectedValue

29、; switch (input) /设置进入角色; case 门诊医生: doctor = true; break; case 药房管理: doctor = false; break; string table=Administrator; /判断进入角色所对应的页面 if (DBh.Validat(TextBox1.Text.Trim(), TextBox2.Text.Trim(), table) & doctor!= false) TextBox3.Text = 成功!请再点击提交进入修改页面; this.Button2.PostBackUrl = docSleWest.aspx; els

30、e if (DBh.Validat(TextBox1.Text.Trim(), TextBox2.Text.Trim(), table) & doctor != true) TextBox3.Text = 成功!请再点击提交进入修改页面; this.Button2.PostBackUrl = Add.aspx; else TextBox3.Text = 请重新登陆; 4.2.2门诊药品查询门诊药品的查询分为病人药品查询和门诊医生的查询。而病人药品查询不需要登录,分类行查询页面,主要是由一个树型结构的药品分类,按照模糊到详细的类型层次排列,双击药品类型,右边的结果框中就会显示所对应的类型的药品,

31、依次点开显示的药品就越来越少查询得就越来越细。一般的查询页面,由类型和药品名为查询的条件,进行模糊查询。分别以药品的拼音名和药品的生产厂商进行大范围的查询,病人查询到的药品信息只是药品的基本信息,主要以名称,用途,价格为主。医生的查询是详细查询和模糊查询相结合,不像病人查询模块中那么简便,需输入更多的信息,但是能查询到药品信息比较的全面,如药品的库存量等病人不能查看到的药品信息。也不能更细的以药品类型进行查询。查询如图4-2、4-3和4-4所示,主要代码分别如下:图4-2按药品种类查询主要代码:SELECT medical_name, pinyin_name, kinds, price, co

32、mpany, introduce FROM tb_medicine WHERE (kinds = kinds);图4-3病人药品种类查询药品的模糊查询:SELECT medical_name, pinyin_name, kinds, introduce, quantity, company, guige FROM tb_medicine WHERE (kinds = kinds) AND (medical_name LIKE % + medical_name + %)初始化连接: DataTable dt = new DataTable(); DataSet ds = new DataSet(

33、); DBhelper.DBhelper Db = new DBhelper.DBhelper(); SqlConnection sqlcon = new SqlConnection(); string sql = select medical_name,pinyin_name,kind,price,intrduce,company from tb_medicine where; string choose;图4-4门诊医生药品查询页面:代码如下:药品名称查询:SELECT medical_name, pinyin_name, kinds, price, introduce, quantity

34、, company FROM tb_medicine WHERE (medical_name = medical_name)药品拼音名字查询:SELECT medical_name, pinyin_name, kinds, price, introduce, company FROM tb_medicine WHERE (pinyin_name = pinyin_name)/分别用不同的文本框里的值,进行查询 protected void Button2_Click(object sender, EventArgs e) Label4.Visible = true; if (TextBox1.

35、Text != ) GridView1.EnableViewState = true; GridView2.Visible = false; GridView3.Visible = false; GridView4.Visible = false; else Label4.Text = 请输入查询信息; protected void GridView1_SelectedIndexChanged(object sender, EventArgs e) protected void Button4_Click(object sender, EventArgs e) Label4.Visible =

36、 true; if (TextBox2.Text != ) GridView1.Visible = false; GridView3.Visible = true; GridView2.Visible = false; GridView4.Visible = false; GridView3.EnableViewState = true; else Label4.Text = 请输入查询信息; SELECT * FROM tb_medicine WHERE (medical_name = medical_name);SELECT * FROM tb_medicine WHERE (pinyin

37、_name = pinyin_name);SELECT * FROM tb_medicine WHERE (kinds = kinds);SELECT * FROM tb_medicine WHERE (company = company2);4.2.3药房管理药房管理员操作页面是主要针对药房管理员对药品的添加,删除药品,并且能够看到药品数量少于警戒线报警,当上一次输入了警戒线的值就会更新到数据库,只要不更改警戒线的值就会在每次登录该页面时看见以上次设定的值为警戒线,显示少于该值的所有的药品信息。添加药品在对应的药品名称,药品拼音名,药品价格,数量,厂家等药品信息的筐内,添入信息,点击添加。药

38、品删除只需要填写药品名称点击删除,成功,页面有提示,并且每一种药品所对应的项目如表所示,每一项都是必须填写的,存入数据库的药品资料才详细。药品的出入库为:药品出入库只需要填写药品名称,和药品的数量点击出入库就可以减去或添加药品的数量更新到数据库。管理员对药品类型的动态添加,输入药品新类型名和选择级别,点击添加,对应的表就能看到添加药品类型的信息。如下图4-5添加删除药品的页面。如图4-5和4-6等。图4-5系统管理员代码如下: protected void Button1_Click(object sender, EventArgs e) GridView1.Visible = true; G

39、ridView2.Visible = false; DBhelper.DBhelper ms = new DBhelper.DBhelper(); string text=ListBox1.SelectedValue; int number = 0; switch(text) case 一级类型: number = 1; break; case二级类型: number=10+1; break; case三级类型: number = 100 + 1; break; int number1 = Convert.ToInt32(number); string mi = INSERT INTO dat

40、a110(kinds,number)VALUES( + TextBox1.Text + ,+number1+); protected void Button2_Click(object sender, EventArgs e) DateTime dt =DateTime.Now; string datet = dt.ToString(); DBhelper.DBhelper ms = new DBhelper.DBhelper(); string mm = INSERT INTO databiao(daily,insertdate)VALUES( + TextBox2.Text + , + d

41、atet + ); if (ms.ExecuteSQL(mm) / DataTable table1=new DataTable (); protected void Button3_Click(object sender, EventArgs e) GridView2.Visible = true; GridView1.Visible = false; protected void Button4_Click(object sender, EventArgs e) DBhelper.DBhelper ms = new DBhelper.DBhelper(); string mm = sele

42、ct quantity from tb_medicine where medical_name= + TextBox5.Text + ; if (ms.ExecuteSQL(mm) long number = Convert.ToInt64(mm); long inputnumber = Convert.ToInt64(TextBox4.Text); long newNumber = number - inputnumber; string newnum = newNumber.ToString(); string sqlcommand = insert into tb_medicine(qu

43、antity)values( + newnum + ); / DataTable table1=new DataTable (); protected void Button5_Click(object sender, EventArgs e) DBhelper.DBhelper ms = new DBhelper.DBhelper(); string mm = select quantity from tb_medicine where medical_name= + TextBox5.Text + ; if (ms.ExecuteSQL(mm) long number = Convert.ToInt

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 办公文档 > 其他范文


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号