计算机等级考试二级VFP考试重点.docx

上传人:b****4 文档编号:27038334 上传时间:2023-06-26 格式:DOCX 页数:67 大小:56.90KB
下载 相关 举报
计算机等级考试二级VFP考试重点.docx_第1页
第1页 / 共67页
计算机等级考试二级VFP考试重点.docx_第2页
第2页 / 共67页
计算机等级考试二级VFP考试重点.docx_第3页
第3页 / 共67页
计算机等级考试二级VFP考试重点.docx_第4页
第4页 / 共67页
计算机等级考试二级VFP考试重点.docx_第5页
第5页 / 共67页
点击查看更多>>
下载资源
资源描述

计算机等级考试二级VFP考试重点.docx

《计算机等级考试二级VFP考试重点.docx》由会员分享,可在线阅读,更多相关《计算机等级考试二级VFP考试重点.docx(67页珍藏版)》请在冰豆网上搜索。

计算机等级考试二级VFP考试重点.docx

计算机等级考试二级VFP考试重点

VFP大纲串讲

一、VFP基础

一数据库基础

㈠.计算机数据管理的发展

1.数据与数据处理

数据是指存储在某一种媒体上能够识别的物理符号。

数据的概念包括两个方面:

其一是描述事物特性的数据内容:

其二是存储在某一种媒体上的数据形式。

数据形式可以是多种多样的。

数据处理是指将数据转换成信息的过程。

从数据处理的角度而言,信息是一种被加工成特定形式的数据,这种数据形式对于数据接收者来说是有意义的。

2、计算机数据管理

数据处理的中心问题是数据管理。

计算机对数据的管理是指对数据的组织、分类、编码、存储、检索和维护提供操作手段。

计算机在数据管理方面也经历了由低级到高级的发展过程。

计算机数据管理随着计算机硬件、软件技术和计算机应用范围的发展而不断发展,多年来经历了人工管理、文件系统、数据库系统、分布式数据库系统和面向对象数据库系统等几个阶段。

㈡.数据库系统

1、有关数据库的概念

①数据库

数据库(DataBase)是存储在计算机存储设备上,结构化的相关数据集合。

它不仅包括描述事物的数据本身,而且还包括相关事物之间的联系。

②数据库应用系统

数据库应用系统是指系统开发人员利用数据库系统资源开发出来的。

面向某一类实际应用的应用软件系统。

③数据库管理系统

数据库管理系统DBMS可以对数据库的建立、使用和维护进行管理。

④数据库系统

数据库系统是指引进数据库技术后的计算机系统。

实现有组织地、动态地存储大量相关数据,提供数据处理和信息资源共享的便利手段。

数据库系统由五部分组成:

硬件系统、数据库集合、数据库管理系统及相关软件、数据库管理员和用户。

2.数据库系统的特点:

数据库系统的主要特点如下:

①实现数据共享,减少数据冗余。

②采用特定的数据模型:

③具有较高的数据独立性:

④有统一的数据控制功能。

㈢.数据模型

1、实体的描述

①实体

客观存在并且可以相互区别的事物称为实体。

②实体的属性

描述实体的特性称为属性。

③实体集和实体型

字段值的集合表示一个实体,而属性的集合表示一种实体的类型,称为实体型。

同类的实体的集合,称为实体集。

在VisualFoxPro中,用“表”来存放同一类实体,即实体集。

2.实体间联系及联系的种类

实体之间的对应关系称为联系,它反映现实世界事物之间的相互关联。

实体间联系的种类是指一个实体型中可能出现的每一个实体与另一个实体型中多个具体实体存在联系。

两个实体间的联系可以归结为三种类型。

①一对一联系:

②一对多联系:

③多对多联系:

3.数据模型简介

数据模型是数据库管理系统用来表示实体及实体间联系的方法。

一个具体的数据模型应当正确地反映出数据之间存在的整体逻辑关系。

任何一个数据库管理系统都是基于某种数据模型的。

数据库管理系统所支持的数据模型分为三种:

层次模型、网状模型、关系模型。

因此,使用支持某种特定数据库管理系统开发的应用系统相应地称为层次数据库系统、网状数据库系统、关系数据库系统。

二关系数据库

㈠.关系模型

关系模型的用户界面非常简单,一个关系的逻辑结构就是一张二维表。

这各用二维表的形式表示实体和实体间联系的数据模型称为关系数据模型。

1、关系术语

在VisualFoxPro中,一个“表”就是一个关系。

①关系:

一个关系就是一张二维表,每个关系有一个关系名。

在VisualFoxPro中,一个关系存储为一个文件,文件扩展名为.dbf,称为“表”。

对关系的描述称为关系模式,一个关系模式对应一个关系的结构。

其格式为:

关系名(属性名1、属性名2、属性名3,……,属性名n)

关系名(字段名1、字段名2、字段名3,……,字段名n)

②元组:

在一个二维表(一个具体关系)中,水平方向的行称为元组,每一行是一个元组。

元组对应存储文件中的一个具体记录。

③属性:

二维表中垂直方向的列称为属性,每一列有一个属性名,与前面讲的实体属性相同,在VisualFoxPro中表示为字段名。

每个字段的数据类型、宽度等在创建表的结构时规定。

④域:

属性的取值范围,即不同元组对同一个属性的取值所限定的范围。

⑤关键字:

属性或属性的组合,其值能够惟一地标识一个元组。

⑥外部关键字:

如果表中的一个字段不是本表的主关键字或候选字,而是另外一个表的主关键字或候选关键字,这个字段(属性)就称为外部关键字。

2.关系的特点

①关系必须规范化。

②在同一个关系中不能出现的属性名,VisualFoxPro不允许同一个表中相同的字段名。

③关系中不允许有完全相同的元组。

④在一个关系中元组次序无关紧要。

也就是说,任意交换两行的位置并不影响数据的实际含义。

日常生活中经常见到的“排名不分先后”正反这种意义。

⑤在一个关系中列的次序无关紧要。

任意交换两列的位置也不影响数据的实际含义。

㈡.关系运算

1.传统的集合运算

进行并、差、交集合运算的两个关系必须具有相同的关系模式,即相同结构。

2.专门的关系运算

①选择:

②投影:

③联接:

④自然联接。

三、数据库设计基础

㈠.数据库设计步骤

1.设计原则

为了合理组织数据,应遵从以下基本设计原则:

①关系数据库的设计应遵从概念单一化、“一事一表”的原则:

②避免在表之间出现重复字段:

③表中的字段必须是原始数据和基本数据元素:

④用外部关键字为保证需要有关的表之间的联系。

2.设计的步骤

①需要分析:

②确定需要的表:

③确定所需字段:

④确定联系:

⑤设计求精。

㈡.数据库设计过程

1.需要分析

用户需求主要包括三个方面:

①信息要求:

②处理需求:

③安全性和完整性要求。

2.确定需要的表

3.确定所需字段

下面的确定字段时需要注意的问题:

①每个字段直接和表的实体相关:

②以最小的逻辑单位存储信息:

③表中的字段必须是原始数据:

④确定主关键字字段。

4.确定联系

要建立两个表的联系,可以把其中一个表的主关键字添加到另一个表中,使两个都有该字段。

具体方法如下:

①一对多联系:

②多对多联系:

③一对一联系。

5.设计求精

二、VisualFoxPro系统初步

一、安装与启动

个人计算机的软硬件基本配置要求如下:

①处理器:

带有486DX/66MHz处理器,推荐使用pentium或更高档处理器的PC兼容机:

②内存储器:

16MB以上的内在,推荐使用24MB内存:

③硬盘空间:

典型安装需要85MB的硬盘空间:

最大安装需要90MB硬盘空间:

④需要一个鼠标、一个光盘驱动器,推荐使用VGA或更高分辨率的显视器:

⑤操作系统:

由于VisualFoxPro是32位产品,需要在Windows95/98(中文版)或者WindowsNT4.0(中文版)或更高版本的操作系统上运行。

㈠.安装VisualFoxPro6.0

VisualFoxPro可以从CD-ROM或网络上安装。

㈡.启动VisualFoxPro6.0

1.启动系统

在Windows中启动VisualFoxPro6.0的方法与启动任何其他应用程序相同,单击Windows的“开始”按钮,依次选择“程序”\“MicrosoftVisualFoxPro6.0”菜单项即可。

2.退出系统

有四种方法可以退出VisualFoxPro6.0返回Windows,用户可以根据自己的习惯,任选其中一种方法:

①用鼠标左键单击VisualFoxPro6.0标题栏最右面的关闭窗口按钮。

②从“文件”下拉菜单中选择“退出”选项。

③单击窗口左上方的狐狸图标,从窗口下拉菜单中选择“关闭”选项,或者按Alt+F4键。

④在命令窗口中左上方键入QUIT命令,单击Enter键.

二、用户界面

VisualFoxPro有三种工作方式:

利用菜单系统或工具栏按钮执行命令:

在命令窗口直接输入命令进行交互式操作:

利用各种生成器自动产生程序,或者编写FoxPro程序(命令文件),然后执行它。

前两种方法属于交互式工作方式,可以通过这两种方法得到同一结果。

执行命令文件为自动化工作方式,菜单工作方式为最终用户提供了更加使便利的操作手段。

三项目管理器

所谓项目是指文件、数据、文档和VisualFoxPro对象的集合。

“项目管理器”是VisualFoxPro中处理数据和对象主要组织工具,它为系统开发者提供了极为便利的工作平台,一是提供了简便的、可视化的方法来组织和处理表、数据库、表单、报表、查询和其他一切文件,通过单击鼠标就能实现对文件的创建、修改、删除等操作:

二是在项目管理器中可以将应用系统编译成一个扩展名为app的应用文件或.exe的可执行文件。

四VisualFoxPro向导、设计器、生成器简介

㈠.VisualFoxPro的向导

向导是一种交互式程序,用户在一系列向导屏幕上回答问题或者选择选项,向导会根据回答生成文件或者执行任务,帮助用户快速完成一般性的任务。

例如,创建表单、编排报表的格式、建立查询、制作图表、生成数据透视表、生成交叉表报表以及在Wbe上按HTML格式发布等。

VisualFoxPro中带有超过21种的向导。

㈡.VisualFoxPro的设计器

VisualFoxPro设计器是创建和修改应用系统各种组件的可视化工具。

利用各种设计器使得创建表、表单、数据、查询和报表以及管理数据变得轻而易举,为初学者提供了方便的工具。

㈢.VisualFoxPro的生成器

生成器是带有选项卡的对话框,用于简化对表单、复杂控件和参照完整性代码的创建和修改过程。

每个生成器显示一系列选项卡,用于设置选中对象的属性。

可使用的生成器在数据库之间生成控件、表单、设置控件格式和创建参照完整性。

三、数据与数据运算

一常量与变量

㈠.常量

常量用以表示一个具体的、不变的值。

不同类型的常量有不同的书写格式。

1.数值型常量

数值型常量也就是常数,用表示一个数量的大小,有数字0~9、小数点和正负号构成。

2.货币型常量

货币型常量用来表示货币值,其书写格式与数值型常量类似,但要加上一个前置的符号($)。

货币数据在存储和计算时,采用4位小数.如果一个货币型常量多于4位小数,那么系统会自动将多余的小数位四舍五入。

3.字符型常量

字符型常量也称为字符串,其表示方法是用半角单引导\双引号或方括号把字符串括起来。

这里的单引号、双引号或防括号成为定界符。

许多常量都有定界符。

定界符虽然不作为常量本身的内容,但它规定了常量的类型以及常量的其始和终止界限。

字符型常量的定界符必须成对匹配,不能一边用单引号而另一边用双引号。

如果某中定界符本身也是字符串的内容,则需要用另一种定界符为该字符串定界。

4.日期型常量

日期型常量的定界符是一对花括号。

花括号内包括年、月、日三部分内容,各部分内容之间用分隔符分隔。

系统默认为斜杠(/)分隔符。

常用的其他日期分隔符有连字号(-)、句点(.)和空格。

5.日期时间型常量

日期时间型常量包括日期和时间两部分内容:

{<日期>,<时间>}。

<日期>部分与日期时间型常量相似,也有传统的和严格的两种形式。

<时间>部分的格式为[hh[:

mm[:

ss][alp]]]。

其中hh、mm和ss分别代表时、分和秒,默认值分别为12、0和0。

A和p分别代表上午和下午,默认值为a,如果指定的时间大于等于12,则默认为下午的时间。

6.逻辑型常量

逻辑型数据只有逻辑真和逻辑假两个值。

逻辑真的常量表示形式有:

.T.、.t.、.Y.和.y.。

逻辑假的常量表示形式有:

.F.、.f.、.N.和.n.。

前后两个句点作为逻辑型常量的定界符是必不可少的,否则会被误认为变量名。

逻辑型数据只占用一个字节。

㈡.变量

变量值是能够随时更改的。

VisualFoxPro的变量分为字段变量和内存变量两大类。

由于表中的各条记录对同一个字段名可能取值不同,因此,表中的字段名就是变量,成为字段变量。

内存变量的数据类型包括字符型(C)、数值型(N)、货币型(Y)、逻辑型(L)、日期型(D)和日期时间型(T)。

简单内存变量

每一个变量都有一个名字,可以通过变量名访问变量。

如果当前表中存在一个同名的字段变量,则在访问内存变量时,必须在变量名前加上前缀M.(或M-),否则系统将访问同名的字段变量。

数组

1.内存变量的赋值

格式1:

STORE<表达式>TO<变量名表>

格式2:

<内存变量法>=<表达式>

功能:

计算表达式并将表达式值赋给一个或多个内存变量,格式2只能给一个变量赋值。

2.表达式值的显示

格式1:

[<表达式表>]

格式2:

?

?

[<表达式表>]

功能:

计算表达式表中的各表达式并输出各表达式值。

不管有设有指定表达式表,格式1都会输出一个回车行符。

如是指定了表达式表,各表达式值将在下一行的起始处输出。

格式2不会输出一个回车换行符,各表达式值在当前行的光标所在处直接输出。

3.内存变量的显示

格式1:

LISTMEMORY[LIKE<通配符>][TOPRINTERTOFILE<文件名>]

格式2:

DISTLAYMEMORY[LIKE<通配符>][TOPRINTERTOFILE<文件名>]

功能:

显示内在变量的当前信息,包括变量名、作用域外、类型、取值。

选用LIKE短语只显示与通配符相匹配的内在变量,通配符包括*和?

*表示任意多个字符,?

表示任意一个字符。

可选子TOPRITER或TOFILE<文件名>用于在显示的同时送往打印机,或者存入给定文件名的文本文件中,文件的扩展名为.txt。

LISTMEMORY一次显示与通配符匹配的所有内存变量,如果内存变量多,一屏显示不下,则自动向上滚动。

DISPLAYMEMORY分屏显示与通配符匹配的所有内存变量,如果内存变量多,显示一屏后暂停,按任意键之后再继续显示下一屏。

4.内存变量的清除

格式1:

CLEARMEMORY

格式2:

RELEASE<内存变量表>

格式3:

RELEASEALL〔EXTENDED〕

格式4:

RELEASEALL〔LIKE<通配符>1EXCEPT<通配符>〕

功能:

格式1清除所有内存变量。

在人机会话状态其作用与格式1相同。

如果出现在程序中,则应该加上短语EXTENDED,否则不能删除公共内存变量。

格式4选用LIKE短语清除与通配符相匹配的内存变量,选用EXCEPT短语清除与通配符不相匹配的内存变量。

二表达式

㈠.数值表达式

数值表达式由算术运算符将数值型数据连接起来形成,其运算结果仍然是数值型数据。

数值型数据可以是数值型常量或者变量。

㈡.字符表达式

字符表达式由字符串运算符将字fu型数据连接起来形成,其运算结果仍然是字符型数据。

字符串运算符有以下两个,它们的优先级相同:

+:

前后两个字符串首尾连接形成一个新的字符串。

-:

连接前后两个字符串,并将前字符串的尾部空格移到合并后的新字符串尾部。

㈢.日期时间表达式

日期时间表达式中可以使用的运算符也有+和-两个。

日期时间表达式的格式有一定限制,不能任意组合。

㈣.关系表达式

关系表达式通常称为简单逻辑表达式,它由关系运算符将两个运算对象连接起来形成,即:

<表达式1><关系运算符><表达式2>

关系运算符的作用是比较两个表达式的大小或前后,其运算结果是逻辑型数据。

㈤.逻辑表达式

逻辑表达式由逻辑运算符将逻辑型数据连接起来而形成,其运算结果仍然是逻辑型数据。

逻辑运算符有三个:

.NOT.或!

(逻辑非)、AND)(逻辑与)以及OR(逻辑或)。

也可以省略两端的点,写成NOT、AND、OR。

其优先级顺序依次为NOT、AND、OR。

㈥运算符优先级

先执行算术运算符、字符串运算符和日期时间运算符,其次执行关系运算符,最后执行逻辑运算符。

圆括号作为运算符,可以改变其他运算符的运算次序。

圆括号中的内容作为整个表达式的子表达式,在与其他运算对象进行各类运算前,其结果首先要被计算出来。

我们说圆括号的优先级最高,其含义就在于此。

圆括号可以嵌套。

三常用函数

㈠.数值函数

数值函数是指函数值为数值的一类函数,它们的自变量和返回值往往者是数值型数据。

1.绝对值和符号函数

格式:

ABS(<数值表达式>)

SIGN(<数值表达式>)

功能:

ABS()返回指定的数值表达式的绝对值。

SIGN()返回指定数值表达式的符号。

当表达式的运算结果为正、负和零时,函数值分别为1、-1和0。

2.求平方根函数

格式:

SQRT(<数值表达式>)

功能:

返回指定表达式的平方根。

自变量表达式的值不能为负。

3.圆周率函数

格式:

PI()

功能:

返回圆周率的值(数值型)。

该函数没有自变量。

4.求整数函数

格式:

INT(<数值表达式>)

CEILING(<数值表达式>)

FLOOR(<数值表达式>)

功能:

INT()返回指定数值表达式的整数部分。

CEILING()返回大于或等于指定数值表达式的最小整数。

FLOOR()返回大于或等于指定数值表达式的最大整数。

5.四舍五入函数

格式:

ROUND(<数值表达式1><数值表达式2>)

功能:

返回指定表达式在指定位置四舍五入后的结果。

<数值表达式2>指明四舍五入的位置。

若<数值表达式2>大于等于0,那么它表示的是要保留的小数位数;若<数值表达式2>小于0,那么它表示的是整数部分的舍入位数。

6.求余数函数

格式:

MOD(<数值表达式1><数值表达式2>)

功能:

返回两个数值相除后的余数。

<数值表达式1>是被除数,<数值表达式2>是除数。

余数的正负号与除数相同。

如果被除与除数同号,那么函数值即为两数相除的余数;如果被除数与除数异号,则函数值为两数相除的余数再加上除数的值。

7.求最大值和最小值函数

格式:

MAX(<数值表达式1>,<数值表达式2>〔,<数值表达式3>..〕)

MIN(<数值表达式1>,<数值表达式2>〔,<数值表达式3>...〕)

功能:

MAX()计算各自变量表达式的值,并返回其中的最小值。

MIN()计算各自变量表达式的值,并返回其中的最小值。

自变量表达式的类型可以是数值型、字符型、货币型、双精度型、浮点型、日期型和日期时间型,但所有表达式的类型必须相同。

㈡.字符函数

字符函数是指自变量一般是字符数据的函数。

1.求字符串长度函数

格式:

LEN(<字符表达式>)

功能:

返回指定字符表达式值的长度,即所包含的字符个数。

函数值为数值型。

2.大小写转换函数

格式:

LOWER(<字符表达式>)

UPPER(<字符表达式>)

功能:

LOWER()将指定表达式值中的大写字母转换成小写字母,其他字符不变。

UPPER将指定表达式值中的小写字母转换成大写字母,其他字符不变。

3.空格字符串生成函数

格式:

SPACE(<数值表达式>)

功能:

返回由指定数目的空格组成的字符串。

4.删除前后空格函数

格式:

TRLM(<字符表达式>)

LTRIM(<字符表达式>)

ALLTRIM(<字符表达式>)

功能:

TRLM()返回指定字符表达式值去掉尾部空格后形成的字符串。

LTRIM(<字符表达式>)返回指定字符表达式值去掉前部空格后形成的字符串。

ALLTRIM(<字符表达式>)返回指定字符表达式值去掉前部和尾部空格后形成的字符串。

5.取子串函数

格式:

LEFT(<字符表达式>,<长度>)

RIGHT(<字符表达式>,<长度>)

SUBSTR(<字符表达式>,<起始位置>,〔<长度>〕)

功能:

LEFT()从指定表达式值的左端取一个指定长度的子串作为函数值。

RIGHT()从指定表达式值的右端取一个指定长度的子串作为函数值。

SUBSTR()从指定表达式值的指定起始位置取指定长度的子串作为函数值。

在SUBSTR()函数中,若缺省第三个自变量<长度>,则函数从指定位置一直取到最后一个字符。

6.计算子串出现次数函数

格式:

OCCURS(<字符表达式2>,<字符表达式1>)。

功能:

返回第一个字符串在第二个字符中出现的次数,函数值为数值型。

若第一个字符串不是第一个字符串的子串,函数值为0。

7.求子串位置函数

格式:

AT(<字符表达式1>,<字符表达式2>)[<数置表达式1>]。

ATC(<字符表达式1>,<字符表达式2>)[<数置表达式1>]

功能:

AT()函数值为数值型。

如果<字符表达式2>是<字符表达式1>的子串,则返回<字符表达式1>值的首字符在<字符表达式2>值中的位置;若不是子串,则返回0。

ATC()与AT()功能类似,但在子串比较时不区分字母大小写。

第三个自变量<数值表达式1>用于表明要在<字符表达式2>值中搜索<字符表达式1>值的第几次出现,其默认值是1。

8.子串替换函数

格式:

STUEF(<数值表达式1>,<起始位置>,<长度><字符表达式2>)

功能:

用<字符表达式2>值替换<字符表达式1>中由<起始位置>和<长度>指明的一个子串。

替换和被替换的字符个数不一定相等。

如果<长度>值是0,<字符表达式2>则插在由<起始位置>指定的字符前面。

如果<字符表达式2>值是空串,那么<字符表达式1>中由<起始位置>和<长度>指明的子串被删去。

9.字符替换函数

格式:

CHRTRAN(<字符表达式1>,<字符表达式2>,<字符表达式3>)

该函数的自变量是一个字符表达式。

当第一个字符串中的一个或多个字符与第二个字符串中的某个字符相匹配时,就用第三个字符串中的对应字符(相同位置)替换这些字符。

如果第三个字符串包含的字符个数少于第二个字符串包含的字符个数,因而没有对应字符,那么第一个字符串中相匹配的各字符将被删除。

如果第三个字符串包含的字符个数多于第二个字符串包含的字符个数,多余字符被忽略。

10.字符串匹配函数

格式:

LIKE(<字符表达式1>,<字符表达式2>)

功能:

比较两个字符串对应位置上的字符,若所有对应字符都相匹配,函数返回逻辑真(.T.),否则返回逻辑假(.F.)。

<字符表达式1>中可以包含通配符*和?

*可以与任何数目的字符相匹配,?

可以与任何单个字符相匹配。

㈢.日期和时间函数

日期和时间函数的自变量一般是时期型数据或日期时间型数据。

1.系统日期和时间函数

格式:

DATE()

TIME()

DATETIME()

功能:

DATE()返回当前系统日期,函数值为日期型。

TIME()以24小时制、hh:

mm:

ss格式返回当前系统时间,函数值为字符型。

DATETIME()返回当前系统日期时间,函数值为日期时间型。

2.求年份、月份和天数函数

格式:

YEAR(<日期表达式>|<日期时间表达式>)

MONTH(<日期表达式>|<日期时间表达式>)

DAY(<日期表达式>|<日期时间表达式>)

功能:

YEAR()从指定的日期表达式或日期时间表达式中返回年份(如2001)

MONTH()从指定的日期表达式或日期时间表达式中返回月份

DAY()从指定的日期表达式或日期时间表达式中返回月里面的天数。

这三个函数的返回值都为数值型。

3.时、分和秒函数

格式:

HOUR(<日期时间表达式>)

MINUTE(<日期时间表达式>)

SEC<日期时间表达式>)

功能:

HOUR()从指定的日期时间表达式中返回小时部分(24小时制)。

MINUTE()从指定的日期时间表达式中返回分钟部分。

SEG()从指定的日期时间表达式中返回秒数部分。

这三个函数的值都为数值型。

㈣.数据类型转换函数

数据类型转换函数的功能是将某一种类型的数据转换成另一种类型的数据。

1.数值转换成字符串

格式:

STR(<数值表达式>,〔,<长度>〔,<小数位数>〕〕)

功能:

将<数值表达式>的值转换成字符串,转换时根据需要

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

当前位置:首页 > 解决方案 > 工作计划

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1