配色: 字号:
jsp美妆社交网站ssh论文
2024-05-01 | 阅:  转:  |  分享 
  








本 科 生 毕 业 设 计













设计题目:

学生姓名:

学生学号:

指导教师:

二级院系:

专业班级:

完成时间:









摘 要

本文对社交系统的设计与开发过程进行了分析与叙述。依照系统开发的实际操作步骤,论文从系统概述、系统分析、系统设计和系统实现这四大章节对系统开发过程进行分别阐述。系统概述中主要进行了课题背景、课题意义和现状分析;系统分析中主要包括了系统设计前的需求分析、业务流程分析、数据流程分析和数据字典分析;而系统设计则是对系统体系结构、各功能模块、数据库结构设计等具体的系统实现过程进行剖析展示,在系统设计章节中有详细的文字解释并配有表图说明。论文还列举了关键的功能模块实现代码。

本文力求可以为社交系统的开发设计找到一种切实可行的解决方案,在分析了目前国内外社交系统的现状的基础上,并经过反复摸索和学习研究后,借助编程语言JSP和mysql 数据库最终实现了社交系统的开发,并在一系列测试后,达成了人性化、所需功能完善、操作清晰的设计目标。



关键词:JSP;mysql;交友 Abstract

In this paper, the process of design and development of online dating sites are analyzed and described. According to the actual steps of developing the system, the article from the system, system analysis, system design and system implementation of the four sections of the systems development process are discussed. System overview of the topic background, research significance and present situation analysis; system analysis includes the analysis, system design demand before the business process analysis, data flow analysis and data dictionary; and the system design is the system structure, function modules, database structure design and system implementation process analysis shows, in the system design section of the detailed text interpretation with diagram. The article also lists some key function modules code.



This paper seeks to find a feasible solution for the design and development of online dating sites, based on analysis the current situation of domestic and foreign online dating websites, and after repeated exploration and study, using JSP programming language and mysql database eventually realized the development of online dating sites, and after a series of testing, reached a humane, required functions, operation and clear design target.

Key Words:JSP;mysql;online dating sites





























第1章 概述

1.1 课题背景

随着互联网的迅猛发展,网络日益成为人们交流的重要媒介,网络交流方式也日新月异。在没有自己的个人主页之前,人们会经常进出于论坛发表贴子或者通过即时通信软件聊天,来表达自已的想法,可是这些都是零散的和杂乱的。基于移动平台的美妆社交网络应用的出现,让人们可以不断的把自己以前的和每天激发的一些美妆想法或者感受整理放在自己的基于美妆移社交网络应用上,每次在写文章的时候,可能又会产生新的想法。虽然一些想法一些思考只是皮毛,没有什么深度,但是当下笔去写的时候每次都会对某个小小的问题有了更多的一点点思考,再写基于jsp美妆社交网络应用的时候就感觉到了一种满足感,一种想法得以释放思考得以延伸的满足感。生活中每天的一个小小的事情都会引起人们的思考,甚至是和朋友的聊天中一个小小的火花迸发。督促自己努力、把一时的想法变成观点,争取在生命中的每天里留下点什么,这也是人们写基于美妆移动平台的社交网络应用的目的之一。这样就能督促自己每一天不要浑浑噩噩,时光流逝无痕无声无息,写基于美妆移动平台的社交网络应用也是在自己的每一天上留下了一道浅浅的思考和划痕。



1.2 国内外研究情况

对于21世纪,不同的人有不同的观点。的学生,很自然的就会认为这是一个信息的世纪。而在这个信息的世纪中,网络信息的传播与交流又是一个很重要的环节。 互联网,是20世纪留给21世纪最辉煌的人类文明。互联网是目前世界上最大的计算机互联网络,它遍布全球,将世界各地各种规模的网络连接成一个整体。作为互联网上一种先进的,易于被人们所接受的信息检索手段,World Wide Web(简称WWW)发展十分迅速,成为目前世界上最大的信息资源宝库。据估计,目前互联网上已有上百万个Web站点,其内容范围跨越了教育科研、文化事业、金融、商业、新闻出版、娱乐、体育等各个领域,其用户群十分庞大,因此,建设一个好的Web站点对于一个机构的发展十分重要。1994年4月20日,我国通过美国Sprint公司连入国际互联网的64K国际专线开通,从此中国被国际上正式承认为真正拥有全功能接入互联网的国家。 近年来计算机技术的快速发展,特别是计算机网络的发展,越来越深刻的改变了人们生活的方方面面。使得人们能以更低廉的价格,开发出更方便、更实用的网络工具。各种在线服务系统,更是深刻的影响了人们的联系方式,使得人们可以在远隔千里之遥随时通讯。过去的种种陈旧的联系方式,已经不能满足现代生活的需要。 让我们大家能有更多的时间聚在一起! 时间的流逝是无情的,我们永远也回不到以前那段朝夕相处快乐的日子里了!也许明日的你变成一个大美女或大帅哥,走在路上认不出你。也许以后我们各奔天涯,大家都互相不记得。等等以后的事谁也说不清,但请记住:我们永远是同学,不管你以后是辉煌还是衰败,只要你有困难或遇到烦心事想向人诉说,我们会毫不犹豫的伸出援助之手!只要你还记得我……

老师.朋友.同学.兄弟和姐妹,求学成长的每一个驿站上,都有他们最纯真.最朴和最亲切的关爱。我感激他们,留恋他们,永远想念他们。





















第2章 可行性研究与需求分析

2.1 可行性研究

该阶段通过对系统目标的初步调研和分析,提出可行性方案并进行论证。我们在这里主要从技术可行性、经济可行性和操作可行等方面进行分析。

2.1.1 经济可行性

开发该系统所需的相关资料可以通过已存在的相关系统进行调查采集,所需的其他应用软件、硬件系统也易于获得.因此,开发成本较低。而引进使用本系统后,与传统方式相比,具有高效率、低成本、高质量的特点,可以节省不少人力、物力及财力。所以,从经济的角度来看,该系统可行。

2.1.2 技术可行性技术可行性要考虑现有的技术条件是否能够顺利完成开发工作,软硬件配置是否满足开发的需求等。用的是开发语言,调试相对简单,当前的计算机硬件配置也完全能满足开发的需求,因此在技术上是绝对可行的。软件方面:由于目前单机模式相对发展成熟,故软件的开发平台成熟可行,它们速度快、容量大、可靠性能高、价格低,完全能满足系统的需求。本系统的开发采用,已无技术上的问题。运行可行性运行可行性是对组织结构的影响,现有人员和机构和环境对系统的适应性及人员培训补充计划的可行性。当前信息化技术已经相当普及,各类操作人员水平都有相当的高度,所以在运行上是可行性的。.1 JSP技术简介

JSP(Java Server Page服务器网页)是从1998年开始出现的新技术。由Sun公司倡导、许多公司参与一起建立的一种动态网页技术标准,是基于JavaServlet以及整个Java体系的web开发技术。在传统的网页HTML文件(.htm,.html)中加入脚本片段和JSP标记(Tag),构成JSP网页(.jsp)。JSP技术为创建显示动态生成内容的web页面提供了简便的方法。JSP作为Java家族的一员,承袭了Java的特点,即跨平台的特性,也即一次编译,到处运行。

在国外,己经大量使用JSP作为网络应用程序的开发工具,而在国内,尽管JSP还不是主流开发技术,但是由于JSP的强大优势,许多网站都已经准备转向JSP,利用JSP来开发动态网站。

3.2 JSP工作原理

JSP是面向服务器的,因此支持任何浏览器。当Web服务器和JSP引擎遇到访问JSP网页的请求时,JSP引擎将请求对象发送给服务器端的相关组件,比如JavaBean组件、Servlet或EJB等,然后由服务器端组件处理这些请示,可能需要从数据库或数据存储中检索信息,然后服务器端组件再将响应对象返回JSP引擎。JSP引擎将响应对象传递给JSP页面,根据JSP页面的HTML格式完成数据编排,最后Web服务器和JSP引擎将格式化后的JSP页面以HTML格式返回客户浏览器。这就是当前网站构建中广泛采用的浏览器——Web服务器——后台数据库的三层架构模式。因为JSP所有程序操作都在服务器端执行,网络上传送给客户端的仅是得到的结果。

3.3 MVC 设计模式与Struts构造

3.3.1 MVC 设计模式

在传统的WEB应用中基本都是将逻辑处理,数据处理和页面显示等大部分功能都放在JSP网页上。经验比较丰富的开发者会将数据从表示层里分离出来,但通常不是很容易做到的,它需要精心地计划和不断的尝试。MVC设计模式从根本上强制性地将他们分开[4]。尽管构造MVC应用系统需要一些额外的工作,但是它给我们带来的好处毋庸置疑。MVC把应用程序分成了3个层次:模型,视图和控制器,如图1-2所示,它们分别扮演不同的角色,完成不同的任务。



图3-1 MVC各部分的关系和功能

3.3.2 Struts框架技术

Struts 框架就是基于Model 2 的架构,也就是基于MVC模式的框架技术[5]。它是一个免费的开源的WEB层的应用框架,具有很高的可配置性,和有一个不断增长的特性列表。一个前端控制组件,一系列动作类,动作映射,处理XML的实用工具类,服务器端java bean 的自动填充,支持验证的WEB 表单,国际化支持,生成HTML,实现表现逻辑和模板组成了struts的灵魂。图3-2显示了Struts组件是如何一起工作的。



图3-2 Struts框架的组件结构

视图(View)是用户看到并与之交互的界面。在视图中的JSP文件中没有业务逻辑,也没有模型信息,只有标签,这些标签可以是标准的JSP标签或是客户化标签,如Struts标签库的标签。

模型(Model)是应用程序的主体部分。模型表示业务数据和业务逻辑。一个模型能为多个视图提供数据。由于同一个模型可以被多个视图重用,所以提高了应用的可重用性。

控制器(Contorl)接受用户的输入并调用模型和视图去完成用户需求。在Struts中控制器由ActionServlet类和Action类来实现。ActionServlet继承了javax.servlet.HttpServlet类,它在MVC模型中扮演中央控制器的角色。ActionServlet主要互责接受HTTP请求信息,根据配置文件Struts-Config.XML的配置信息,把请求发给适当的Action对象,如果该Action不存在,ActionServlet 就会创建一个Action对象。

所有的页面跳转都集中在配置文件中,提高了程序的可读性与可维护性。采用Struts框架进行Web开发的主要优点包括:

(1)页面显示与业务逻辑处理的分离,而不是将页面显示页业务逻辑混合在一起,这样可以提高系统的安全性,同时也提高了程序的灵活性和复用性。

(2)所有的页面跳转都集中在配置文件中,提高了程序的可读性与维护性。

(3)易扩展。该框架是多个相互独立的部分所组成的,如Action类主要负责页面数据与数据库数据之间的转化,Service 类主要负责业务逻辑运算,Form类与Model类则主要负责封装各种数据。同时,我们还能根据实际的需要定制各种组件,如数据库的连接组件,各种图形的生成等。

(4)开发效率高。使用该框架进行开发可以使我们将主要的精力放在业务逻辑的开发上。

3.4 O/R映射与Hibernate构架

对象持久化,持久(Persistence)就是把数据保存到可永久保存得存储介质和设备中。而持久化的主要目的就是将内存中的数据存储在关系数据库或者磁盘文件和XML数据文件中。

O/R技术,需要同时使用面向对象和关系型数据进行开发。

现在的MVC系统设计中,MVC中的M(即Model),可以说是业务逻辑和数据逻辑关联最为紧密地部分。而持久层作为Model层面中的主要组成,其设计优劣对系统的整体表现产生至关重要的影响。由于绝大多数业务模型都涉及到关系数据库,在采用Java作为信息系统的开发语言时,传统Web应用开发方法是直接用JDBC与数据库交互,但是这个工作量很大,而且一旦业务逻辑稍微有一些变更,就要大量地更改这些JDBC中的SQL语句,因此不管是开发还是维护系统都很不方便。考虑到Java的面向对象性和关系型数据库的关系型结构相差甚远,因此很有必要引入一种在对象性和关系型数据库之间的直接映射机制,这种映射应该是最大量地使用配置文件,以便今后业务逻辑更改后是尽可能地修改映射文件而不是Java源代码,因此出现了O/R映射模式[6]。简单地说,对象—关系映射就是Java应用中的对象到关系数据中的表自动的和透明的持续化,使用元数据对象与数据库中的表的映射进行了描述。本质上,ORM的工作是将数据从一种表示(双向)转换为另一种表示。很多开源项目都使用Java实现了这个O/R映射。而Hibernate是其中最为优秀的实现架构之一。

3.4.1 Hibernate框架

Hibernate接口位于业务层和持久层。Hibernate核心接口的层次架构如图3-3所示[7]:



图3-3 Hibernate核心接口的层次架构关系

3.4.2 Hibernate的核心接口

Hibernate的核心接口位于net.sf.hibernate包中,Hibernate的核心接口类的关系图如图3-4所示,主要包括以下6个接口:

· Session接口:负责执行被持久化对象的CRUD操作。

· SessionFactory接口:初始化Hibernate,充当数据存储源的代理,并负责创建Session对象。

·Configuration接口:负责配置并启动Hibernate,创建SessionFactory对象。

·Transaction接口:负责事务相关的操作。

·Query和Criteria接口:执行各种数据库查询。



图3-4 Hibernate的核心接口类的关系图

对于Hibernate的使用主要是两个配置文件。一个是Hibernate.cfg.xml的配置文件和O/R映射的配置文件。Hibernate.cfg.xml的配置文件主要是对数据库连接和Hibernate运行的主要属性,O/R映射的配置文件主要是表达出持久化类与数据库表的映射关系。这样对数据库的操作就可以转化为对持久化类的操作。其中持久化类和数据库表之间的转化由Hibernate来完成。

Hibernate框架为我们做了很多的工作:

(1)减少乏味的代码:Hibernate封装了数据库持久层的大多数技术细节,如事务管理,数据库连接管理,SQL语句的生成。得益于这些优秀的低层实现,我们可以从JDBC编码中解脱出来,从而将我们的精力和创造力投入到真正有价值的工作中去。

(2)更加面向对象设计:现在的开发思想都是面向对象,经过Hibernate的O/R映射的配置文件就可以将数据库表与持久层对象对应起来,从而使得我们开发只要关心Object的属性不必在与表中的字段纠缠。使得面向对象的开发思想伸展到系统的每个角落。

(3)更好的性能:Hibernate提供了内置的数据库连接池支持等。这些优化机制的综合使用大大提升了系统性能。更重要的是,这些机制都是全透明的,我们无需关心其中的复杂的实现细节就可以享用其所带来的性能提升。

(4)更好的移植性:Hibernate对不同的数据库良好支持,我们只要简单修改Hibernate.cfg.xml的配置文件,就可以实现低层数据库的切换。

3.6 开发平台

从多方面的因素考虑选用开发平台如下表3-1所示:

表3-1搭建开发环境软件清单

用途 软件 Java虚拟机 JDK1.6 Web应用服务器 Tomcat6 集成开发平台工具 MyEclipse 8.5 数据库服务器 Mysql MVC开源框架 Struts 2 ORM框架 Hibernate 3.7 mysql

MySQL是一个开发性的关系型数据库管理系统。 它将数据存储在不同的表,并不是简单的将所有数据都放在一个大型的仓库。它是可以提高数据读取的速度和灵活性的 RDBMS。[7] MySQL的SQL语言是用于访问数据库的最常用标准化语言。MySQL软件拥有社区版和商业版两大版本。因为MySQL体积小、速度快、总成本低,尤其是开放源码这一特点,所以得到了大小型网站开发者的青睐,他们都十分愿意选择MySQL作为数据库。[8]一般对于个人使用者来说MySQL的功能[9]C/S结构的每个客户端都必须安装和配置软件。B/S能够降低总体拥有成本。随着计算机技术的发展,目前大多数科技公司都不约而同的对数据提出了实时性、一致性和安全性等这些要求。传统类型C/S结构根本达不到这些要求,迫切的需要做出改变。但是B/S结构则不同,它可以清楚正确的看到系统正在处理的业务,这样有利于管理人员快速的做出决策,有效地避免了企业经济上的亏损。B / S结构的软件,因为在数据集中在数据库服务器,客户端不持有任何业务数据和数据库连接信息,也无需进行数据同步,所以安全性可以大大提高。B/S结构中的数据采取了集中式管理模式。当客户端的业务产生数据时,这些数据都直接被存入中央数据库。这样的做法避免了数据一致性的问题。这些优点很好更好的迎合了人们的需要。[10]

以当下技术水平来说,B/S结构网络应用,并通过Internet/Intranet模式下数据库应用,把握成本也是较低的。;①注册:用户名、密码必填。

②用户可以发布朋友圈推荐商品③用户可以关注其他用户④用户可以关注其他用户用户可以取消关注①管理员可以登录

②管理员可以管理用户信息

③管理员可以管理朋友圈





图2.1 系统需求分析图



4.3 数据流程分析

4.3.1 用户管理模块





图2.5 用户管理模块数据流程图

4.3.2 私信模块





图2.6 日记管理模块数据流程图





4.3.3 说说管理模块





图2.7 说说管理模块数据流程图







4.3.5 修改密码模块





图2.9 修改密码模块数据流程图

4.3.6 日记发布模块





图2.10 日记发布模块数据流程图



4.3.7 说说添加模块





图2.11 说说添加模块数据流程图

4.3.8 修改个人信息模块





图2.12修改个人模块数据流程图



4.3.10 日记浏览模块





图2.14 日记浏览模块数据流程图



4.3.11 私信模块





图2.15 日记留言模块数据流程图

4.3.12 说说浏览模块





图2.15 说说浏览模块数据流程图



第5章 系统设计

5.1 系统体系结构设计

本系统的系统结构是按照了自上向下的设计理念完成的。第一层是用户登录界面。第二层是网站首页。第三层主要提供系统管理员功能,也包括用户信息管理,留言管理、说说管理等,用户登录成功后可以转至各个管理功能。第四层即各个管理功能的所有功能。

5.4 系统环境配置设计

系统主要由数据库服务器、应用服务器以及终端用户构成。终端用户通过网络访问应用服务器。





图3.9 系统环境配置



开发环境:操作系统,Windows Server 2000及以上;集成开发环境,Myeclpse6.0(上面写的是8.5版实际用的是10版,项目在我电脑上运行不出来报错,会不会是版本不对呢);应用服务器,tomcat及以上;数据库mysql及以上。

运行环境服务器端:操作系统,windows server 2000及以上;应用服务器,tomcat及以上;数据库mysql及以上。

运行环境客户端:操作系统windows xp及以上即可。













第6章 系统实现

6.1 用户注册模块

(1)用户注册模块界面

想要使用本交友网站首先要进行注册。注册界面如下图



图4.1 用户注册模块界面



(2)用户注册模块关键代码





6.2 说说发布模块

(1)说说模块界面

在这个界面中,用户需要输入说说标题、说说说明信息。这个地方还用到的现在比较流行的富文本编辑器fckEditor





图4.2 说说发布模块界面



(2)说说发布模块关键代码



6.3 添加日记模块

(1)添加日记模块界面

在该界面中首先输入日记内容。单击“提交”按钮,即可完成归日记发布操作。





图4.3 添加日记模块界面

(2)日记添加关键代码





6.4 用户修改个人资料模块

(1)修改个人资料界面

点击个人资料链接。跳转到个人资料编辑页面。系统自动赋值数据到个人信息的文本框中。可以直接修改文本框的内容,修改完毕,单击“提交”按钮,即可完成日记发布操作。





图4.4 用户个人资料编辑模块界面

(2)编辑个人资料关键代码





6.5 管理员登陆模块

(1)登陆界面

系统管理员要维护整个系统,必须先登陆到系统中,在登陆页面,首先将从前台页面提交的用户名和密码进行接受,之后在后台进行处理,按照用户名在数据库中进行查询如果查到该用户则将该用户的权限和密码全都取出来分别赋给两个字符串变量,判断从数据库中读出的密码与登录时输入的密码是否配比上,若两个密码相同则根据权限的值进入相应的页面,否则输出密码错误。







图4.5系统管理员登陆模块界面

(2)登陆关键代码





6.6 注册用户管理模块

(1)注册用户管理模块界面

管理员登陆到系统后。点击上面的菜单“用户管理”,可以浏览注册用的信息,同时也可以删除不合法的用户。以保证系统的纯洁性。





图4.6注册用户模块界面

(2)用户管理关键代码



































第7章 系统的调试与测试

7.1 测试概述

7.1.1软件测试的目的

软件测试的目的,第一是确认软件的质量,其一方面是确认软件做了你所期望的事情,另一方面是确认软件以正确的方式来做了这个事件。第二是提供信息,比如提供给开发人员或程序经理的反馈信息,为风险评估所准备的信息。

第三软件测试不仅是在测试软件产品的本身,而且还包括软件开发的过程。如果一个软件产品开发完成之后发现了很多问题,这说明此软件开发过程很可能是有缺陷的。因此软件测试的第三个目的是保证整个软件开发过程是高质量的。

软件质量是由几个方面来衡量的:一、在正确的时间用正确的的方法把一个工作做正确。二、符合一些应用标准的要求,比如不同国家的用户不同的操作习惯和要求,项目工程中的可维护性、可测试性等要求。三、质量本身就是软件达到了最开始所设定的要求,而代码的优美或精巧的技巧并不代表软件的高质量。四、质量也代表着它符合客户的需要。作为软件测试这个行业,最重要的一件事就是从客户出发,从客户的角度去看产品,客户会怎么去使用这个产品,使用过程中会遇到什么样的问题。1、寻找Bug; ????? 2、避免软件开发过程中的缺陷; ????? 3、衡量软件的品质; ????? 4、关注用户的需求。

总的目标是:确保软件的质量Apache提供的Web服务器Tomcat 6.0使得用户可以在Windows 2000以上操作系统下发布自己设计的动态网页。因此对论坛的调试工作主要是利用Tomcat 6.0的强大功能在本机下完成的。为了在本机下浏览Web页面,首先在创建该系统的站点上(该系统使用的是Web的默认站点)将IP地址设定为127.0.0.1,它的缺省域名值为localhost。然后向IE浏览器输入本地动态网页的URL,Web服务器在收到浏览器传送的URL之后找到网页文件,并在服务器端执行该文件后将此文件以HTML文件的形式返回该浏览器。此方法把测试对象看做一个透明的盒子,它允许测试人员利用程序内部的逻辑结构及有关信息,设计或选择测试用例,对程序所有逻辑路径进行测试。通过在不同点检查程序的状态,确定实际的状态是否与预期的状态一致。因此白盒测试又称为结构测试或逻辑驱动测试。软件人员使用白盒测试方法,主要想对程序模块进行如下的检查;对程序模块的所有独立的执行路径至少测试一次;对所有的逻辑判定,取“真”与取“假”的两种情况都至少测试一次;在循环的边界和运行界限内执行循环体;测试内部数据结构的有效性等。测试用例描述 操作过程及数据 预期结果 用例类型 按不同的输入格式输入个人信息,进行注册。 进入注册界面,按提示的输入格式输入个人信息,进行注册。 注册成功,显示注册成功。居民信息保存到数据库。 功能点 用户名有重名的 进入注册界面,用户名输入,其它按提示的输入格式输入个人信息,进行注册。 注册失败,不能注册。 功能点 输入为空时,进行注册。 进入注册界面,输入为空,进行注册。 无法注册 界 面校 验 模块接口测试是单元测试的基础。只有在数据能正确流入、流出模块的前提下,其他测试才有意义。测试接口正确与否应该考虑1 输入的实际参数与形式参数的个数是否相同;    2 输入的实际参数与形式参数的属性是否匹配;    3 输入的实际参数与形式参数的量纲是否一致;    4 调用其他模块时所给实际参数的个数是否与被调模块的形参个数相同;    5 调用其他模块时所给实际参数的属性是否与被调模块的形参属性匹配;    6调用其他模块时所给实际参数的量纲是否与被调模块的形参量纲一致;    7 调用预定义函数时所用参数的个数、属性和次序是否正确;    8 是否存在与当前入口点无关的参数引用;    9 是否修改了只读型参数;    10 对全程变量的定义各模块是否一致;    11是否把某些约束作为参数传递。每个模块都能单独工作,但这些模块集成在一起之后却不能正常工作。主要原因是,模块相互调用时接口会引入许多新问题。例如,数据经过接口可能丢失;一个模块对另一模块可能造成不应有的影响;几个子功能组合起来不能实现主功能;误差不断积累达到不可接受的程度;全局数据结构出现错误,等等。综合测试是组装软件的系统测试技术,按设计要求把通过单元测试的各个模块组装在一起之后,进行测试以便发现与接口有关的各种错误。自顶向下集成是构造程序结构的一种增量式方式,它从主控模块开始,按照软件的控制层次结构,以深度优先或广度优先的策略,逐步把各个模块集成在一起。首先将模块集成在一起,再将集成起来。功能和性能指标满足软件



















































- IV -



- 31 -













































































































































































献花(0)
+1
(本文系zy_360tsg首藏)