软件技术毕业论文范文1.doc

上传人:laozhun 文档编号:4069136 上传时间:2023-04-03 格式:DOC 页数:29 大小:1.35MB
返回 下载 相关 举报
软件技术毕业论文范文1.doc_第1页
第1页 / 共29页
软件技术毕业论文范文1.doc_第2页
第2页 / 共29页
软件技术毕业论文范文1.doc_第3页
第3页 / 共29页
软件技术毕业论文范文1.doc_第4页
第4页 / 共29页
软件技术毕业论文范文1.doc_第5页
第5页 / 共29页
点击查看更多>>
资源描述

《软件技术毕业论文范文1.doc》由会员分享,可在线阅读,更多相关《软件技术毕业论文范文1.doc(29页珍藏版)》请在三一办公上搜索。

1、毕 业 设 计 论 文 题 目:校园博客系统 院 系:计算机与软件学院 专 业:软件技术专业 姓 名: 指导教师: 2011年 5月 1 日0.引言11.相关技术突破11.1.NET环境21.2.NET概述21.3.NET平台介绍21.3.1.公共语言运行库21.3.2.NET Framwork 类21.3.3.ASP.NET21.3.4.开发语言(C#21.3.5.Web Service21.3.6.NET远程处理21.3.7.Windows窗体21.3.8.Microsoft Visual Studio.NET21.3.9.Windows Server System22.系统需求分析22.

2、1.架构说明22.1.1.系统开发环境22.1.2.系统软件架构22.1.3.条件与限制22.2.功能分析22.3.模块分析23.系统设计23.1.体系结构23.2.系统结构与设计23.2.1.系统总体结构23.2.2.用户管理23.2.3.管理员管理23.2.4.博客功能管理23.2.5.主页管理23.3.数据库设计23.3.1.表设计概述23.3.2.表设计23.3.3.数据库安全性设计23.3.4.数据库管理和设置23.3.5.数据库备份恢复策略23.3.6.数据库运行日常维护23.4.页面设计23.4.1.前台页面设计23.4.2.后台页面24.系统实现24.1.数据实现(部分)24.

3、1.1.搜索功能实现24.1.2.注册实现25.编译与测试25.1.1.部分测试用例25.1.2.测试结果与发现26.发布27.结束语28.参考文献2武软校园博客系统设计与实现【摘要】在网络上发表Blog的构想始于1998年,但到了2000年才真正开始流行。而2000年博客开始进入中国,并迅速发展,但都业绩平平。直到2004年木子美事件,才让中国民众了解到了博客,并运用博客。2005年,国内各门户网站,如新浪、搜狐,原不看好博客业务,也加入博客阵营,开始进入博客春秋战国时代。起初,Bloggers将其每天浏览网站的心得和意见记录下来,并予以公开,来给其他人参考和遵循。但随着Blogging快速

4、扩张,它的目的与最初已相去甚远。目前网络上数以千计的Bloggers发表和张贴Blog的目的有很大的差异。不过,由于沟通方式比电子邮件、讨论群组更简单和容易,Blog已成为家庭、公司、部门和团队之间越来越盛行的沟通工具,因为它也逐渐被应用在企业内部网络(Intranet)。目前,BSP商家风起云涌,已有数十家大型博客站点。0. 引言1993年6月:最古老的博客原型NCSA的“Whats New Page”网页(http:/archive.ncsa.uiuc.edu/SDG/Software/Mosaic/Docs/whats-new.html),主要是罗列Web上新兴的网站索引,这个页面从93

5、年6月开始,一直更新到1996年6月为止。1994年1月:Justin Hall开办“Justins Home Page”(Justin的个人网页),不久里面开始收集各种地下秘密的链接,这个重要的个人网站可以算是最早的博客网站之一。1997年4月1日:Dave Winer开始出版Scripting News。这个网站是由早期的Davenet演变而来,最早1994年10月7日。1997年12月:Jorn Barger最早用weblog这个术语来描述那些有评论和链接,而且持续更新的个人网站。1998年5月7日:Peter Merholz开始出版网站(根据他自己的档案记录)。1998年9月15日:M

6、emepool开始出版,最早的链接是关于“Alex Chius Eternal Life Device”。1999年:Peter Merholz以缩略词“blog”来命名博客,成为今天最常用的术语。1999年5月28日,Cam在他个人博客网站Camworld中写道:“Dave Winer开始了最早的博客网站,Camworld无需隐瞒地表示,模范和追随Scripting News。”2000年4月12日:Weblogs eGroups的邮件列表终止,Jorn Barger和Dave Winer的鼻祖之争开始公开化。2000年8月22日:Wine在FoRK的邮件列表中贴出帖子,爆发争吵。2000年

7、10月:Jakob Neilsen表示:“.一般的博客网站都不忍卒读”。2000年10月14日:Dave Winer暗示他的Scripting News是最早的博客网站,然后他优雅地将这项荣誉归于他很尊重的前辈WWW的发明人Tim Berners-Lee。2000年11月:不过Winer很快给自己找到了另一顶桂冠,Scripting News将网站的口号变为:互联网上持续运行时间最长的博客网站,开始于1997年4月1日。2000年12月17日:UserLand发布SuperOpenDirectory,希望成为目录创建的事实工具。2001年9月11日:世贸大楼遭遇恐怖袭击,博客成为重要信息和灾难

8、亲身体验的重要来源。从此,博客正式步入主流社会的视野。武软校园博客基本实现了博客的相关功能,主要面向的是武软的师生,为了方便信息的交流和流通。相关功能实现了用户注册,用户管理、文章发布、文章管理、发表评论、评论管理、照片的上传和浏览等等。1. 相关技术突破1.1. .NET环境不仅提供了新型的语言和虚拟机,还提供了它强大的框架,.Net Framework 。在过去几年中,使用.NET的开发者能够充分感觉到这两种框架为他们带来的好处。为了掌握最先进的技术,这次毕业设计的开发选择了它。1.2. .NET概述.NET是Microsoft贴在现有产品和未来产品上的一个新式行销标签。在Microsof

9、t服务器端产品中,如基于Windows DNA 2000技术的izTalk Server 2000和Application Center 2000,.NET标签将随处可见。然而,.NET最令人感兴趣的特色却在于它的开发平台、语言和协议。 通过.NET,Microsoft为我们提供了一种全新的开发平台,这个平台将推动以新体系为基础的协同Web应用开发。根据Microsoft的说法,.NET至少将成为一种“对Web编程”的方法。当前,第一版Visual Studio .NET已经出现,由此出发,我们或许可以比较精确地勾画出.NET平台最终的全貌。 可以说,无论是在技术上还是在战略上,Microso

10、ft都对.NET寄予了厚望。当前的DNA 2000技术并未包含新的.NET平台;相反,.NET将是一种全新的技术,有望揉合许多根本性的、深层次的创意。 作为一种全新的平台和技术,.NET带来了许多新的产品,但这些产品和现有技术的兼容性未能获得百分之百的保证。.NET支持27种编程语言,它们将共享一组提供基本服务的类。.NET应用不再直接在裸机上运行,由于看好一种运行在虚拟机CLR(Common Language Runtime)上的称为MSIL的中间语言,Microsoft放弃了Intel x86代码。1.3. .NET平台介绍1.3.1. 公共语言运行库公共语言运行库是 .NET 框架应用程

11、序的运行引擎。它提供了一系列服务,包括: 代码管理(装入与执行) 应用程序内存隔离 类型安全检查 中间语言到机器语言的转换 访问元数据(增强类型信息) 托管对象的内存管理 强制的代码访问安全性 异常处理,包括跨语言异常 托管代码(指向公共语言运行库服务的代码)、组件对象模型 (COM) 对象以及非托管代码和数据(早先的动态链接库 DLLs)之间的交互操作 对象布局的自动化 为开发人员提供的服务支持(如配置文件和调试)公共语言运行库负责运行时服务,如语言集成,强制安全,以及内存、进程和线程管理。除此之外,它还在开发时期承担如生命周期管理,强类型命名,跨语言异常处理以及动态绑定之类的角色,以减少开

12、发人员将事务逻辑转成可重用组件必须写的代码数量。图 1 公共语言运行库的基本构成公共语言运行库让设计含有跨语言对象的组件与应用程序变得更加容易。不同语言写成的对象可以互相通讯,他们的行为可以被紧密集成。举个例子,一个开发者可以定义一个类,然后使用另外一种语言从此原初类中派生出另一个类,或是调用原初类的方法。开发人员也可以将某个类的实例传递至另一种语言写成的其他类的某个方法中。这种跨语言的集成之所以成为可行,是因为面向运行时的语言编译器和工具使用了一个由运行库定义的公共类型系统,它们遵从运行库的约束来定义新的类型,或者建立、使用、保持和绑定类型。1.3.2. .NET Framwork 类.NE

13、T 框架包括了大量类,接口,以及值类型,使开发过程得以加速和优化,同时提供了系统功能的访问途径。为了实现跨语言操作性,.NET 框架类型遵从公共语言规范 (CLS) ,因此可以使用任何有编译器支持的语言。这就允许企业的 IT 部门在保留现有开发人员基础上得以拓展,迅速开始 .NET 应用程序的开发,或利用完全的互操作性对现有应用程序用 .NET 特性加以改进。通过跨语言的继承,代码的复用性提高了,也就减少了投向市场所需的时间。.NET 框架类型是连接 .NET 的应用程序,组件与控件的基础。.NET 框架包含了完成如下功能的类型: 代表基本数据类型及异常 封装数据结构 完成输入/输出 访问加载

14、类型的信息 调用 .NET 框架安全性检查 提供数据存取访问 实现胖客户端图形用户界面 (GUI) 以及服务器端控制的客户端 GUI Enable rich client-side Graphical User Interface (GUI) and server-controlled, client-side GUI.NET 框架提供了丰富的接口集合,以及抽象与具像 (非抽象) 类。开发人员可以原封不动使用具像类,或者在许多情况下,派生出自定义的类。要使用接口的功能,开发人员既可以创建一个实现接口的类,也可以从某个实现该接口的 .NET 框架类中派生出类。1.3.3. ASP.NETASP.

15、NET 是一个革命性的编程框架,使快速开发强大的 Web程序和服务成为可行。提供了最方便、最灵活的途径来构建,部署和运行 Web 应用程序,面向任何浏览器或设备。ASP.NET 让传统 ASP 应用程序编程的概念更上一层楼。一个网站,或一个站点内的 Web 应用程序,可以兼有 ASP.NET 页面和 ASP 页面。因为 ASP 和 ASP.NET 页面可以从同一个 Web 服务器访问,所以并不需要将现有的 ASP 页面导入 ASP.NET 兼容的页面中。当然,Microsoft 测试显示,ASP.NET 应用程序每秒可以处理的请求是经典 ASP 应用程序的二至三倍。ASP.NET 中的新特性,

16、如服务器端控件和事件处理,帮助开发人员开发应用程序速度更快,编码更少。将代码与 HTML 内容分离也变得前所未有的简单。1.3.4. 开发语言(C#)C# 是非常成功的基于 Web 的 Consensus 3.0a 程序的关键部分,旨在允许 Microsoft 用户或小组不费力的创建,分布及管理电子调查,以获得有价值的反馈。开发此应用程序的团队使用 .NET 框架和 C# 语言创建了多线程的邮件服务。使用 C# 可以在不丢失面向对象特性的基础上降低开发与测试时间。对这个项目来说,C# 语言看起来是最合适做应用程序设计的了;实际上,因为有了来自 .NET 框架对核心编程任务的支持,这个团队发现使

17、用 C# 比使用 Visual Basic 更容易1.3.5. Web Service一个 XML Web 服务是一个包装成单个实体的系列函数集,并发布出来为其他应用程序提供数据和服务。应用程序通过行业标准的万维网协议与数据格式,如 HTTP,XML,以及简单对象访问协议 (Simple Object Access Protocol, SOAP) 来访问 Web 服务,且不需要关心 Web 服务的具体实现方法。Web 服务是建立开放分布式系统的基石1.3.6. .NET远程处理通信是跨网络或跨应用程序域对象的关键因素,这些对象又被称作远程对象。.NET 远程处理提供了一种强力高效的机制,允许对

18、象之间跨越应用程序域实现交互。存在于 .NET 应用程序及应用程序域之间的通信,通过负责在远程对象之间传送消息的通道而产生。一条消息被通道传送前,会首先被格式化程序格式化(编码或解码)。.NET 框架支持 HTTP 和 传输控制协议 (TCP) 通道,以及 SOAP 和二进制的格式化程序。HTTP 通道使用 SOAP 格式化程序来传送消息,而 TCP 通道使用二进制格式化程序。这两种通道都可以自定义使用其他的格式化程序。第三方提供的通道同样是可行的。HTTP 通道使用 SOAP 格式化程序来传送消息,而 TCP 通道使用二进制格式化程序。这两种通道都可以自定义使用其他的格式化程序。第三方提供的

19、通道同样是可行的。1.3.7. Windows窗体Windows 窗体拓展了传统的完全桌面化的 Windows 应用程序,同时,Visual Studio 带来的开发体验将我们带入托管代码与公共语言运行库的世界。1.3.8. Microsoft Visual Studio.NETVisual Studio .NET 让快速开发应用程序 (RAD) 通过高效开发工具得以实现。一个紧密集成且统一的可视环境简化了开发 Web 应用程序的过程,降低了学习曲线。共享的超文本标记语言 (HTML),XML,以及样式表编辑器令使用任何 Visual Studio 语言开发 Web 应用程序变得十分容易,包括

20、使用新的 C# 编程语言。Visual Studio .NET 提供的结构完善且易用的编程模型是 Microsoft 出版社更新其 Microsoft Press Connections 网站的理想选择。开发团队发现,较之于其前辈语言,C# 有着更好的封装性与可维护性;该团队因此可以非常容易的创建项目中重要的动态页面。该团队同样能用 C# 写出多个批量运行的控制台应用程序。Visual Studio .NET 提供了简单化开发与调试批量数据的更新功能所必需的框架环境。同样的,内部开发的 MS Contract 顾客反馈应用程序在 2.0 版本时移植到了 Visual Studio .NET 中

21、。在迁移到 Visual Studio .NET 后,开发团队可以在 Visual Studio .NET 中做所有与数据库无关的开发,代替了以前混合使用 Microsoft Visual InterDev,Visual Basic,Microsoft Visual C+ 的开发过程。在单一环境中编译 MS Contracts 2.0 节省了开发人员在不同层次代码及不同工具中切换思维所花费的时间。Visual Studio .NET 允许开发人员快速构建新的托管代码的应用程序,面向 .NET 框架丰富的功能与类库。Visual Studio .NET 同样允许开发人员采用优化过的编译器出品传统

22、的非托管代码的 C+ 应用程序,如 Microsoft Word 或 Microsoft Excel。明确些说,开发人员可以用 Visual Studio .NET 做下面这些: 快速设计无所不及的 Web 应用程序。利用 Web 窗体,开发人员可以创建跨平台,跨浏览器的可编程 Web 应用程序,通过使用与以前构建基于窗体的桌面程序几乎相同的技能。Web 窗体在 Web 服务器端执行,提供快速的运行时性能,产生 HTML 3.2 兼容的文档,可以运行在任何浏览器中。 方便的使用 Web 服务来简化分布式计算。有了 Web 服务,开发人员就可以使用标准的 Internet 协议跨越电缆调用业务逻

23、辑。Web 服务使用超文本传输协议 (HTTP) 作为基本的传输途径,允许功能请求穿过公司防火墙。XML 被用于格式化请求的输入输出参数,因此该请求不依赖任何特别的组件技术或对象调用约定。其结果是,Web 服务可以被任意语言访问,被任意组件模型使用,运行于任意操作系统中。 快速构建中间层业务组件。Visual Studio 的一个主要目的就是为基于服务器的开发提供 RAD 工具。Visual Studio .NET 为创建中间层业务逻辑带来的效率提升,如同 Visual Basic 为基于窗体的应用程序开发带来的改变一样显著。 构建可伸缩的,有效的解决方案。Visual Studio .NET

24、 令依据默认生成可靠的应用程序和组件变得更加容易。例如,当一个开发者使用 Microsoft Visual C+ 构建 Web 应用程序时,新的活动模板库 (Active Template Library, ATL) 服务器可以提供显著的性能提升。1.3.9. Windows Server SystemWindows Server System 是 Microsoft 启用 XML 的一系列企业产品:Microsoft SQL Server 2000, Microsoft Exchange 2000, Microsoft BizTalk Server 2000, Microsoft Appli

25、cation Center 2000,Microsoft Commerce Server,Microsoft Content Management Server,Microsoft Host Integration Server 2000,Microsoft Internet Security and Authorization Server, Microsoft Mobile Information 2001 Server, Microsoft SharePoint,以及 Windows Server 2003 家族2. 系统需求分析2.1. 架构说明2.1.1. 系统开发环境系统基于Mic

26、rosoft Windows 7 操作系统和Microsoft SQL Server 2005数据库平台, 系统采用MS IIS 6.0、Microsoft .Net Framework 2.0简体中文版来创建高性能的Web Server应用程序。Microsoft .Net Framework 2.0是微软已经很成熟的.NET Framework版本,相对于.NET Framework1.1版本,它提供了更加优秀的性能、可扩展性和安全性,更丰富的用户界面表现元素。配合.Net Framework 2.0推出的最新开发工具VS.NET2005能极大的提高开发的可靠性和可维护性2.1.2. 系统

27、软件架构系统采用了B/S结构。此架构无须安装客户端软件,便于软件的分发和维护升级,适应了众多应用客户端分散环境下的运行和维护需求。2.1.3. 条件与限制武软校园博客主要面向武软的师生,可以注册为博客的会员,成为会员可以管理自己的博客, 相应的可以发表博文,上传图片,评论等功能,如果不是会员只能浏览管理员发表的相关新闻,美文,公告等。2.2. 功能分析武软校园博客网上书店主要提供的功能如图1、2所示:图1前台功能概要图2后台功能概要2.3. 模块分析a)管理员(1) 管理管理员:对管理员信息进行相应的操作(删除,修改,查询,添加等)(2) 可以根据用户名的关键字查询管理员。b)管理博客(1)管

28、理注册博客用户:对博客用户的相应操作(删除,修改,查询,添加等)(2)可以根据博客用户名的关键字查询博客用户。c)链接管理(1)管理链接:对链接相应操作(删除,修改,查询,添加等)(2)可以根据网站名称和网站地址的关键字查询链接信息。d)主页管理(1)新闻快讯:对主页新闻快讯的相关操作(删除,修改,查看,添加等)(2)校内公告:对主页校内公告的相关操作(删除,修改,查看,添加等)(3)美文欣赏:对主页美文欣赏的相关操作(删除,修改,查看,添加等)e)幻灯片管理(1)图片管理:可以上传图片,最多可以上传六张,如果想删除重新上传,可以选择替换进行操作。f)退出(1)退出博客。g)前台模块(1)主页

29、:主页界面。(2)最新博客:博客用户发表的最新博文。(3)信息修改:博客用户修改个人信息及密码。(4)文章管理:博客用户管理自己的文章,发表,修改等。(5)照片管理:博客用户可以上传自己喜欢的图片,也可以进行相应的操作。(6)评论管理:博客用户管理别人对自己博文的评论,也可以进行相应的操作 。(7)通讯管理:博客用户管理自己的通讯录,可以查询到别的博客用户,进行添加。(8)退 出:退出博客。3. 系统设计3.1. 体系结构体系的关系如图3所示。图3架构关系图3.2. 系统结构与设计3.2.1. 系统总体结构根据设计思想,系统结构设计图如图4所示。图4系统结构图3.2.2. 用户管理图7用户管理

30、3.2.3. 管理员管理3.2.4. 博客功能管理3.2.5. 主页管理3.3. 数据库设计3.3.1. 表设计概述数据库将针对博客相关功能,配合 SQL Server 数据库系统中提供的数据管理功能,实现博客相关功能的查询、添加、修改、删除等。数据库为db_Blog:db_Blog数据库设计主要包括以Blog和Admin表为主,连接多张相关表实现对以下关系的支持:l l用户与博文l l用户与个人信息l l用户与评论l l用户与图片l l用户与通讯录3.3.2. 表设计(1) 表Admin字段类型可否为空备注IDint否UserNamenvarchar(50)PassWordnvarchar(

31、50)ReallyNamenvarchar(50)Birthdaynvarchar(50)Addressnvarchar(100)PostCodenvarchar(50)Emailnvarchar(50)HomePhonenvarchar(50)MobilePhonenvarchar(50)QQnvarchar(50)ICQnvarchar(50)RegTimedatetimeSexnvarchar(4)IPnvarchar(20)BlogIDintSuperAdminnvarchar(4)(2) 表Article字段类型可否为空备注ArticleIDint否Authornvarchar(50

32、)Subjectnvarchar(50)ContentntextBlogIDintTimedatetime(3) 表字段类型可否为空备注BlogIDint否UserNamenvarchar(50)PassWordnvarchar(50)Sexnvarchar(50)ReallyNamenvarchar(50)Birthdaynvarchar(50)Addressnvarchar(200)PostCodenvarchar(50)Emailnvarchar(100)HomePhonenvarchar(50)MobilePhonenvarchar(50)QQnvarchar(50)ICQnvarch

33、ar(50)RegTimedatetimeIPnvarchar(20)(4) 表Href字段类型可否为空备注HrefIDint否Namenvarchar(100)Urlnvarchar(200)(5) 表Meiwen字段类型可否为空备注MeiwenIDint否MeiwenTitlevarchar(50)MeiwenContentvarchar(MAX)HitNumintTimedatetime(6) 表Message字段类型可否为空备注MessageIDInt否BlogIDint否FriendIDint否(7) 表News字段类型可否为空备注NewsIDint否NewsTitlevarchar

34、(50)NewsContentvarchar(MAX)TimedatetimeHitNumint(8) 表Notice字段类型可否为空备注NoticeIDint否NoticeContentvarchar(MAX)TimedatetimeHitNumint(9) 表Photo字段类型可否为空备注PhotoIDint否PhotoAddrvarchar(50)PhotoNamevarchar(50)TimedatetimeBlogIDint(10) 表Revert字段类型可否为空备注RevertIDint否Subjectnvarchar(50)ContentntextArticleIDintBlog

35、IDintTimedatetimeIPnvarchar(20)VisitorIDintVisitorNamenvarchar(50)3.3.3. 数据库安全性设计1) 概述基于项目特点,项目的安全控制主要由程序代码控制。SQL Server 端没有特殊地设定安全设置和检查。项目的用户身份验证、用户授权管理都由应用程序代码实现。2) 数据库验证方式应用程序端连接数据库时使用的数据库验证方式为SQL Server验证。数据库连接串将使用CAPICOM技术加密存储在系统配置文件中。3.3.4. 数据库管理和设置1) 概述本节内容与数据库功能无关,将从系统的数据库运行角度出发,对本数据库的属性设置和备

36、份恢复策略提出指导性说明。2) 数据库属性设置为了保障数据的安全和可用性,建议将数据库的故障还原模块设定为“完全”,这也是 SQL Server 的默认设置,具体操作步骤如下:a) 展开“数据库”,右击 HBSTPDB,单击“属性”。b) 选择“HBSTPDB 属性”对话框中的“选项”选项卡。c) 在“模型”下拉框中选中“完全”。如图所示:3.3.5. 数据库备份恢复策略数据库的大小和数据修改的频率决定了采用何种数据库备份恢复策略。如果数据库较小或修改的频度非常低,则可以只实施完全数据库备份,不过此时要定期清理数据库的事务日志,防止数据库的事务日志被填满。其他情况则需要使用差异备份。由于本案例

37、教学涉及的数据库规模较小,建议每周做一次完全备份,中间间隔两天做一次差异备份。3.3.6. 数据库运行日常维护SQL Server 的一个优势就是对日常维护的要求比较低,但为了追求更高的可用性和安全性,建议每周做备份,同时注意将备份放在不同的备份媒体中,如多个硬盘。3.4. 页面设计3.4.1. 前台页面设计a) 母版页设计b) 首页首页c) 登陆后的首页3.4.2. 后台页面4. 系统实现4.1. 数据实现(部分)4.1.1. 搜索功能实现 strSql = Select * From tb_Admin Where ; string search = this.ddlSearch.Selec

38、tedValue; switch (search) case 用户名: strSql += UserName Like % + this.txtKey.Text + %; break; case QQ: strSql += QQ Like % + this.txtKey.Text + %; break; default: Response.Write(ccObj.MessageBoxPage(出错!); break; strSql += order by RegTime Desc; DataTable dsTable = dbObj.GetDataSet(strSql, tbAdmin); this.gvAdmin.DataSource = dsTable.DefaultView; this.gvAdmin.DataKeyNames = new string ID ;4.1.2. 注册实现 注册资料 用户名:

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

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


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号