七次作业-团队作业——选题报告和需求规格

团队成员

刘博良(组长),郑锦伟,王纯

项目描述

随着经济全球化和信息全球化的发展,英语能力越来越受到人们的关注。作为国际通用语言的英语,更是在很多重要场合上广泛使用。由此英语的学习越来越被社会所重视,小学到高中自不必说,英语向来是作为考核的课程之一。而在大学的英语四六级考试同样是要求在校大学生有较强的英语能力,而且英语也是考验中的必考课程之一。Crazy在线英语学习平台,顾名思义,是针对英语学习而生的学习平台。而它的主要服务对象是大学生,里面的词汇既有四六级词汇,也有考验英语需要的词汇,无论是为了四六级考试,或者是备战研考,使用Crazy在线英语学习平台都是一个不错的选择。

本项目服务对象有两种,客户端用户和后台管理用户。而后台管理用户可划分两种,超级管理员和普通管理员,超级管理员有操作后台数据的一切权利,而普通管理员只有对静态英语数据的储存有全部操作权限,其他的存储模块只有查看的权限。

至于客户端用户,是本项目的前端使用者用户,要成为客户端用户,首先需要进行用户注册,注册后进行登录才能使用学习平台进行学习使用。以下把客户端用户简称为用户。用户登录后,可以进入用户的个人中心查看信息。在个人中心里面可以查看或者修改用户的基本信息,然后还可以查看学习历史,除此之外,用户还可以查看好友的信息,查看好友在线状态,可以给好友发送留言信息,同时在个人中心里还可以查看留言板看是否有留言信息接收。

除了个人中心外,主界面里还有排行榜信息查看,可以进入排行榜界面查看前10名用户的排行。然后还有社区模块,进入社区可以浏览其他用户发的信息帖子,在社区模块里面可以发帖,在帖子界面里发送留言信息,回复留言信息等。

然后就是主模块,即学习模块,学习模块首先划分学习层次,有英语四级学习,英语六级学习,考研英语学习三大学习层次, 选择好学习层次后, 就可以选择分类学习, 组合学习和整体学习, 分类学习有单词学习,短语学习, 句子翻译学习(四六级汉译英,研考英译汉), 完型填空学习, 阅读理解学习, 还有写作练习;组合学习是从分类中用户选择要组合的类型进行套卷组合进行学习, 而整体学习是包括了所有分类题型的学习。分类学习可以选择题目数量,最少5道题以上,最多100道题,增加数目以5的倍数增加。

学习完成后,系统自动判题统计分数以及给出完成的时间, 根据分数和时间进行积分运算, 积分用于排名。

 

创新与收益

用户可以自定义学习计划,可以按照你的学习规律和学习习惯定义你的学习计划进行英语学习。

系统智能分析你的学习情况,智能推荐题目提供学习。

同时还可以与好友一起学习,一起相互监督,一起成长

随时获取你的学习记录,查看你的学习情况和知识掌握情况,从而可以改进你的学习计划更好地进行学习

 

用户场景分析

我们的项目主要面向三类用户

1.刚入大学,想考四级的大一新生们或者四级没过,要继续战四级的学生

2.过了四级后,想考六级的大学生

3.想考研深造,提高考研英语的学生

真实用户调研

 问卷调查

 

 

 

经过调查,我们发现很多学生偏爱于网上学习,且喜欢轻松,自由的学习方式。喜欢能够随时随地碎片化学习英语的软件

未来市场与竞争

对比其他竞争产品,如百词斩,扇贝等。

我们给用户更多的自由学习合适的学习计划进行学习,确定好学习计划后。同时系统会智能根据你的学习情况进行题目推送

题型较多,除了词汇题,选择题外,还会有各种翻译题甚至是写作题提供练习,而判题由系统进行智能判断

题库庞大,题目质量高,我们采用全网分布式爬虫进行数据爬取,利用大数据进行数据清洗和数据筛选,然后系统智能对数据进行整合处理,变成各种不同类型,不同难度的高质量题目。

与好友更好地互动学习,能够邀请好友PK学习,提供学习的乐趣

有社区模块进行英语学习交流,资料分享等

 

 

需求规格

视频:https://pan.baidu.com/s/1uuzzyB9BP8-McTRPUiyNyA

密码: ly3d

1.需求分析

1.1需求描述

随着经济全球化和信息全球化的发展,英语能力越来越受到人们的关注。作为国际通用语言的英语,更是在很多重要场合上广泛使用。由此英语的学习越来越被社会所重视,小学到高中自不必说,英语向来是作为考核的课程之一。而在大学的英语四六级考试同样是要求在校大学生有较强的英语能力,而且英语也是考验中的必考课程之一。Crazy在线英语学习平台,顾名思义,是针对英语学习而生的学习平台。而它的主要服务对象是大学生,里面的词汇既有四六级词汇,也有考验英语需要的词汇,无论是为了四六级考试,或者是备战研考,使用Crazy在线英语学习平台都是一个不错的选择。

本项目服务对象有两种,客户端用户和后台管理用户。而后台管理用户可划分两种,超级管理员和普通管理员,超级管理员有操作后台数据的一切权利,而普通管理员只有对静态英语数据的储存有全部操作权限,其他的存储模块只有查看的权限。

至于客户端用户,是本项目的前端使用者用户,要成为客户端用户,首先需要进行用户注册,注册后进行登录才能使用学习平台进行学习使用。以下把客户端用户简称为用户。用户登录后,可以进入用户的个人中心查看信息。在个人中心里面可以查看或者修改用户的基本信息,然后还可以查看学习历史,除此之外,用户还可以查看好友的信息,查看好友在线状态,可以给好友发送留言信息,同时在个人中心里还可以查看留言板看是否有留言信息接收。

除了个人中心外,主界面里还有排行榜信息查看,可以进入排行榜界面查看前10名用户的排行。然后还有社区模块,进入社区可以浏览其他用户发的信息帖子,在社区模块里面可以发帖,在帖子界面里发送留言信息,回复留言信息等。

然后就是主模块,即学习模块,学习模块首先划分学习层次,有英语四级学习,英语六级学习,考研英语学习三大学习层次, 选择好学习层次后, 就可以选择分类学习, 组合学习和整体学习, 分类学习有单词学习,短语学习, 句子翻译学习(四六级汉译英,研考英译汉), 完型填空学习, 阅读理解学习, 还有写作练习;组合学习是从分类中用户选择要组合的类型进行套卷组合进行学习, 而整体学习是包括了所有分类题型的学习。分类学习可以选择题目数量,最少5道题以上,最多100道题,增加数目以5的倍数增加。

学习完成后,系统自动判题统计分数以及给出完成的时间, 根据分数和时间进行积分运算, 积分用于排名。

1.2功能需求及数据需求分析

1.2.1用例图

 

 

图1.1管理操作用例图

 

 

图1-2 客户端使用的用列图

1.2.2.具体功能和数据需求

1.2.2.1 登录注册管理

(1) 注册

用户填写基本信息进行注册,要填写的信息有(账号,密码,确认密码,邮箱,密保问题,密保问题可以设置多个,最多三个)

(2) 登录

用户根据账号或者邮箱号进行登录

(3) 忘记密码

根据密保问题重置密码

1.2.2.2 英语资料数据管理

该模块的使用用户只针对管理员

(1) 查看数据

英语数据资料首先根据层次分类,不同的层次有对应的类型的不同的题目

(2) 上传数据

选择层次(英语四级,英语六级,研考级)和类型进行上传

(3) 修改数据

可修改题目的层次,类型,描述,答案等

(4) 删除数据

可批量删除和单个删除

1.2.2.3 个人中心模块管理

(1) 用户基本信息的操作

查看/修改用户的基本信息(账号名,用户昵称,性别,年龄,邮箱,密保问题,学历,毕业学校)

查看用户的荣誉信息(总积分,排名,单词学习积分,短语学习积分,句子翻译学习积分,完型填空学习积分,阅读理解学习积分,写作学习积分)

查看学习历史,查看做过的学习套卷,可查看每道题的得分情况,用的提示次数和用户所做的答案和标准答案以及其他用户对题目的评论信息

(2) 好友模块的操作

查看好友列表,好友信息(好友账号,好友昵称,好友在线状态,好友总积分,好友排名)

可以给好友发送留言信息

发送好友申请,选择账号/邮箱号发送好友申请

查看好友申请,可以拒绝申请/接受申请

(3) 留言信息的操作

查看留言信息,回复留言

1.2.2.4 英语学习模块管理

(1) 选择学习层次

选择有:英语四级水平,英语六级水平和研考水平

(2) 选择学习方式

选择分类学习/组合学习/整体学习, 其中分类学习可以选择单词学习,短语学习,句子翻译学习,完型填空学习,阅读理解学习和写作学习等。组合学习可以任意选择一个或多个分类学习中的类型进行套卷组合来做题。整体学习结合所有分类来整体出卷。组合学习和整体学习还可以选择不同的类型的题目的出题数量来进行学习

(3) 具体学习

具体学习中,每道题有两次提示,用一次提示题目得分/2, 提交试卷后,系统自动给出总分和用户所用提示次数。

1.2.2.5 社区模块管理

(1) 发帖

用户可以创建帖子来进行发布,帖子发布包括(题目,主体内容)

(2) 回帖

可在具体帖子里留言,也可在其他用户留言里回复

1.2.2.6排行榜管理

(1) 查看排行榜

查看总积分排行前10的用户的信息(用户名,总积分,排名,单词学习积分,短语学习积分,句子翻译学习积分,完型填空学习积分,阅读理解学习积分,写作学习积分) 对他们的互动有好友添加和留言

2.主要业务的概念建模分析

2.1业务规则与数据存储分析

(1) 所有的用户,包括管理员和普通用户都有唯一的用户ID,用户ID在创建用户记录时由系统自动生成。

(2) 用户注册时填写的密保问题最多三个,最少一个,一个用户对应多个密保问题,而一个密保问题只能属于一个用户,密保问题的唯一标识是用户ID,外键也是用户ID。

(3) 用户的账号或者是用户的邮箱号也是唯一标识一个用户,不可重复。

(4) 好友储存的每条记录由两个用户的ID组成,一个用户有多个好友,也可是多个用户的好友。由两个用户的ID唯一标识。

(5) 留言信息由留言时间,发送者的ID,接收者的ID唯一标识。其中发送者ID,接收者ID也是外键。一条留言信息只能属于一个发送用户和一个接受用户,而一个用户可以给不同的用户发送多条留言,也可以接受不同用户发送的不同数量的留言。

(6) 好友申请由申请ID唯一标识。外键是发送申请的用户ID和接收申请的用户的ID。一个好友申请只能属于一个发送申请的用户和一个收到申请的用户,一个用户可以给多个用户发好友申请,也可以接受多个用户发出的好友申请。

 (7) 荣誉信息存储用户的不同学习层次上以及不同的题目类型上的荣誉数据,由用户ID,学习层次ID,题目类型ID唯一标识。标识的属性既是构成主键之一,也是外键。存储的数据应该要包括获得积分,当前类型积分排名,做题完整性,做题正确率,做题用过的提示次数

 (8) 历史记录存储分两级进行存储, 一级存储是套卷存储, 由套卷ID唯一标识,。二级存储是具体出题存储,由出题ID唯一标识,外键指向套卷ID。一个套卷存储对应多个出题存储记录,而一个出题存储记录只属于一个套卷存储。

(9) 英语数据存储分多级存储,首先一级是层次水平存储,由层次ID唯一标识。二级存储是类型存储,由类型ID唯一标识,外键对应一级存储的层次ID而三级存储是具体的题目存储,由其三级存储的题目ID唯一标识,外键对应于二级存储的类型ID。最后是四级选项存储,存储的是选择题的选项,外键对应三级存储的题目ID。统计学习人数由联系集来进行联合,首先设计层次水平存储与用户的联系集,存储为层次联系存储,联系属性应该包括:是否学习过,做题次数,获得积分,做题正确率,做题完整性,累积提示次数, 然后是二级类型水平与用户的联系集,存储为类型联系存储,联系属性应该包括: 是否学习过,做题次数,获得积分,做题正确率, 做题完整性, 累积使用提示次数。而对于具体的题目的与用户的联系,历史记录的出题表里已经记录了历史的具体做题的情况,而对于每一个题还得存储一个总的联系集,即用户累积做具体的题的情况的信息,存储为题目联系存储,联系属性应该包括:做题的次数,累积获得积分,累积做题正确率,累积做题完整性,累积使用提示次数。

(10) 套卷模块在用户选择学习方式和题目数量后,系统自动抽取相应的题目组成套卷,而如果用户还没有提交套卷答案,那么套卷的统计属性将保持默认,一旦用户提交后,系统自动判题给出相应得分和积分,以及给出套卷的做题相应统计情况。

(11) 社区存储也是分多级存储,一级存储是帖子存储,也是由帖子id唯一标识,二级存储是回帖存储,外键对应一级存储的帖子id。三级存储对应的是留言回帖的信息存储,外键对应回帖id,留言的用户id,主键应该由回帖id,留言的用户id和留言时间共同构成。一个帖子的存储有多个回帖,而一个回帖可以有多个留言信息,而一个回帖只能属于一个主贴,一个留言只能属于一个回帖。

3.E-R图设计

 

图 3-1数据库ER设计图

4.数据库逻辑模型设计

4.1 管理员存储管理

(1) 管理员信息表(实体集)

表名:manager_info

存储字段(管理员ID, 账号,密码,管理员名字,权限级别,在线状态,最后一次上线时间,账号创建时间)

表4.1管理员信息表

字段描述

字段名

类型

能否为空/默认

约束

管理员ID

manager_id

int

主键

账号

username

varchar(30)

唯一

密码

password

varchar(30)

 

管理员名字

nickname

varchar(30)

 

权限级别

power

int

默认1

 

在线状态

status

int

默认0

 

最后上线时间

last_login

datetime

 

创建时间

create_time

datetime

 

 

(2) 管理操作日记(弱实体,依赖管理员实体)

表名:manage_log

存储字段(操作时间管理员ID,操作IP,操作内容)

表4.2管理操作日记表

字段描述

字段名

类型

能否为空/默认

约束

操作时间

action_time

datetime

主键之一

管理员ID

manager_id

int

主键之一,外键

操作IP

manager_ip

varchar(20)

 

操作内容

action_content

varchar(100)

 

 

4.2用户信息存储管理

(1) 用户基本信息表(实体集)

表名: user_info

存储字段(用户ID,账号,邮箱,密码,昵称,性别,年龄,学历,毕业学校,在线状态,积分排名)

表4.3用户基本信息表

字段描述

字段名

类型

能否为空/默认

约束

用户ID

user_id

int

主键

账号

username

varchar(30)

唯一

邮箱

email

varchar(30)

唯一

密码

password

varchar(30)

 

昵称

nickname

varchar(30)

 

性别

sex

varchar(10)

默认男

 

年龄

age

int

默认0

 

学历

education

varchar(30)

 

毕业学校

graduated_school

varchar(60)

 

在线状态

status

int

默认0

 

积分排名

ranking

int

默认0

 

创建时间

create_time

datetime

 

 

(2) 密保问题存储表(弱实体, 依赖于用户实体)

表名:security_info

存储字段(用户ID,问题,答案)

 

 

表4.4密保问题存储表

字段描述

字段名

类型

能否为空/默认

约束

用户ID

user_id

int

主键 外键

问题

question

varchar(210)

 

答案

answer

varchar(210)

 

创建时间

create_time

datetime

 

 

 (3) 用户留言信息表(联系集,联系两个用户之间的通信信息)

表名:user_message_info

存储字段(发送的用户的ID接收用户的ID留言时间,留言信息)

表4.5用户留言信息表

字段描述

字段名

类型

能否为空/默认

约束

发送的用户ID

send_user_id

int

主键之一 外键

接收的用户ID

recv_user_id

int

主键之一 外键

留言时间

send_time

datetime

主键之一

留言信息

send_message

varchar(300)

 

4.3 好友模块存储管理

(1) 好友信息表(联系集)

表名:friend_info

存储字段(用户1的ID用户2的ID

表4.6好友信息表

字段描述

字段名

类型

能否为空/默认

约束

用户1ID

user1_id

int

主键之一 外键

用户2ID

user2_id

int

主键之一 外键

创建时间

create_time

datetime

 

 

(2) 好友申请表(实体集)

表名:apply_info

存储字段(申请ID发送申请的用户ID接收申请的用户ID,处理状态)

表4.7好友申请表

字段描述

字段名

类型

能否为空/默认

约束

申请ID

apply_id

int

主键

发送申请的用户ID

send_user_id

int

外键

接收申请的用户ID

recv_user_id

int

外键

处理状态

status

int

默认0

 

创建时间

create_time

datetime

 

 

4.4社区模块存储管理

(1) 社区帖子表(实体集)

表名:article_info

存储字段(帖子ID发帖用户的ID,标题,主体内容,回帖数,浏览次数)

表4.8社区帖子表

字段描述

字段名

类型

能否为空/默认

约束

帖子ID

article_id

int

主键

发帖的用户的ID

host_user_id

int

外键

标题

title

varchar(100)

 

主体内容

message

varchar(500)

 

回帖数

reply_num

int

默认0

 

浏览次数

visited_num

int

默认0

 

发帖时间

send_time

datetime

 

 

(2) 回帖存储表(实体集)

表名:reply_info

存储字段(帖子ID回帖ID回帖用户ID,回帖内容,回帖时间

表4.9回帖存储表

字段描述

字段名

类型

能否为空/默认

约束

帖子ID

article_id

int

外键

回帖ID

reply_id

int

主键

回帖的用户ID

reply_user_id

int

外键

回帖内容

message

varchar(500)

 

回帖时间

reply_time

datetime

 

 

(3) 回帖留言表(联系集,联系用户与回帖)

表名:reply_message_info

存储字段(回帖ID留言用户ID留言时间,留言信息)

表4.10回帖留言表

字段描述

字段名

类型

能否为空/默认

约束

回帖ID

reply_id

int

主键之一 外键

留言用户的ID

send_user_id

int

主键之一 外键

留言时间

send_time

datetime

主键之一

留言信息

message

varchar(200)

 

 

4.5英语题目数据存储管理

(1) 学习层次存储(实体集)

表名:level_info

存储字段(层次ID,层次名,学习人数,累积积分,题目总数,统计做题正确率,统计做题完整性,累积使用提示次数)

 

表4.11学习层次存储表

字段描述

字段名

类型

能否为空/默认

约束

层次ID

level_id

int

主键

层次名

level_name

varchar(100)

 

学习人数

sum_studies

int

默认0

 

累积积分

sum_rank_score

double

默认0

 

题目总数

sum_problems

int

默认0

 

统计做题正确率

cal_correct_rate

double

默认0

 

统计做题完整性

cal_integrity

double

默认0

 

累积使用提示次数

sum_tips

int

默认0

 

创建时间

create_time

datetime

 

 

(2) 题目类型存储(实体集)

表名:type_info

存储字段(层次ID类型ID,类型名,题目总数,学习人数,累积积分,统计做题正确率,统计做题完整性,累积使用提示次数)

表4.12题目类型存储表

字段描述

字段名

类型

能否为空/默认

约束

层次ID

level_id

int

外键

类型ID

type_id

int

主键

类型名

type_name

varchar(100)

 

学习人数

sum_studies

int

默认0

 

累积积分

sum_rank_score

double

默认0

 

题目总数

sum_problems

int

默认0

 

统计做题正确率

cal_correct_rate

double

默认0

 

统计做题完整性

cal_integrity

double

默认0

 

累积使用提示次数

sum_tips

int

默认0

 

创建时间

create_time

datetime

 

 

(3) 具体题目存储(实体集)

表名:problem_info

存储字段(类型ID题目ID,题目描述,参考答案,是否为选择题,累积积分,分数,学习人数,统计做题正确率,统计做题完整性,累积使用提示次数)

表4.13具体题目存储表

字段描述

字段名

类型

能否为空/默认

约束

类型ID

type_id

int

外键

题目ID

problem_id

int

主键

分数

score

double

 

题目描述

problem_desc

varchar(800)

 

参考答案

answer

varchar(800)

 

是否为选择题

is_select

int

默认0

 

累积积分

sum_rank_score

double

默认0

 

学习人数

sum_studies

int

默认0

 

统计做题正确率

cal_correct_rate

double

默认0

 

统计做题完整性

cal_integrity

double

默认0

 

累积使用提示次数

sum_tips

int

默认0

 

创建时间

create_time

datetime

 

 

(4) 选择题选项存储(实体集)

表名:select_info

存储字段(选项ID题目ID,选项描述)

表4.14选择题选项存储表

字段描述

字段名

类型

能否为空/默认

约束

选项ID

select_id

int

主键

题目ID

problem_id

int

外键

选项描述

select_desc

varchar(100)

 

创建时间

create_time

datetime

 

 

4.6 用户学习数据存储管理

(1) 出题套卷存储(实体集)

表名:test_info

存储字段(套卷ID层次ID,得分,获得积分,统计做题正确率,统计做题完整性,累积使用提示次数)

表4.15出题套卷存储表

字段描述

字段名

类型

能否为空/默认

约束

套卷ID

test_id

int

主键

用户ID

user_id

int

 外键

层次ID

level_id

int

外键

是否提交

is_submit

int

默认0

 

得分

sum_score

double

默认0

 

累积积分

sum_rank_score

double

默认0

 

统计做题正确率

cal_correct_rate

double

默认0

 

统计做题完整性

cal_integrity

double

默认0

 

累积使用提示次数

sum_tips

int

默认0

 

创建时间

create_time

datetime

 

 

(2) 出题题目表(弱实体)

表名:test_problem_info

存储字段(套卷ID题目ID,得分,获得积分,得分率,用户的答案,用过的提示次数)

表4.16出题题目表

字段描述

字段名

类型

能否为空/默认

约束

套卷ID

test_id

int

主键之一 外键

题目ID

problem_id

int

主键之一 外键

得分

get_score

double

默认0

 

获得积分

get_rank_score

double

默认0

 

得分率

get_score_rate

double

默认0

 

用户的答案

user_answer

varchar(800)

默认0

 

用过的提示次数

sum_tips

int

默认0

 

创建时间

create_time

datetime

 

 

(3) 选择层次表(联系集,联系用户与学习层次)

表名:user_level_info

存储字段(用户ID层次ID,是否学习过,累积积分,做题次数,统计做题正确率,统计做题完整性,累积使用提示次数)

表4.17选择层次表

字段描述

字段名

类型

能否为空/默认

约束

用户ID

user_id

int

主键之一 外键

层次ID

level_id

int

主键之一 外键

是否学习过

is_study

int

默认0

 

层次排名

level_rank

int

默认0

 

累积积分

sum_rank_score

double

默认0

 

做题次数

sum_do_num

int

默认0

 

统计做题正确率

cal_correct_rate

double

默认0

 

统计做题完整性

cal_integrity

double

默认0

 

累积使用提示次数

sum_tips

int

默认0

 

创建时间

create_time

datetime

 

 

(4) 选择类型表(联系集,联系用户与题目类型之间)

表名:user_type_info

存储字段(用户ID类型ID,是否学习过,累积积分,做题次数,统计做题正确率,统计做题完整性,累积使用提示次数)

表4.18选择类型表

字段描述

字段名

类型

能否为空/默认

约束

用户ID

user_id

int

主键之一 外键

类型ID

type_id

int

主键之一 外键

是否学习过

is_study

int

默认0

 

类型排名

type_rank

int

默认0

 

累积积分

sum_rank_score

double

默认0

 

做题次数

sum_do_num

int

默认0

 

统计做题正确率

cal_correct_rate

double

默认0

 

统计做题完整性

cal_integrity

double

默认0

 

累积使用提示次数

sum_tips

int

默认0

 

创建时间

create_time

datetime

 

 

(5) 题目用户联系表(联系集,联系用户与具体题目之间)

表名:user_problem_info

存储字段(用户ID题目ID,是否学习过,累积积分,做题次数,统计做题正确率,统计做题完整性,累积使用提示次数)

表4.19题目用户联系表

字段描述

字段名

类型

能否为空/默认

约束

用户ID

user_id

int

主键之一 外键

题目ID

problem_id

int

主键之一 外键

是否学习过

is_study

int

默认0

 

累积积分

sum_rank_score

double

默认0

 

做题次数

sum_do_num

int

默认0

 

统计做题正确率

cal_correct_rate

double

默认0

 

统计做题完整性

cal_integrity

double

默认0

 

累积使用提示次数

sum_tips

int

默认0

 

创建时间

create_time

datetime

 

5.界面原型设计

 

工作分配

刘博良(组长):项目策划,产品设计,项目架构,数据库设计,后台逻辑编写,爬虫数据筛选编写,数据分析模块编写,前端数据逻辑编写 权重比例: 50%

郑锦伟:界面美化,前端编写,后台部分逻辑编写,爬虫编写,代码测试 权重比例30%

王纯:界面美化,前端编写,文档编写,代码测试 权重比例20%

posted @ 2018-05-02 22:17  博良  阅读(315)  评论(1编辑  收藏  举报