- 博客(846)
- 收藏
- 关注
原创 数据库系统概论第5版PPT:理论与实践全覆盖
数据库是一系列有组织的数据的集合,它能够提供数据的存储、查询、更新和管理功能。自20世纪60年代末期诞生以来,数据库系统经过了层次数据库、网状数据库,发展到现在的关系数据库和对象关系数据库。随着互联网技术的发展,非关系型数据库(NoSQL)开始流行。用户定义完整性是指根据具体的业务规则而设立的完整性约束,如字段值的范围、格式等。上述SQL语句为Employees表添加了一个检查约束,确保员工年龄在18岁到65岁之间。为不同的用户定义角色,根据角色分配相应的权限。
2025-08-20 16:35:50
647
原创 JAVA语言在线考试系统全面设计与开发指南
Java编程语言由Sun Microsystems公司于1995年推出,它的诞生是为了实现跨平台应用程序的开发。最初,Java作为“Oak”项目的一部分,旨在嵌入式设备和消费电子产品中使用。然而,随着互联网的普及,Java迅速转向网络应用开发,并以“一次编写,到处运行”的理念,成为了企业级应用开发的首选语言。MVC,即Model-View-Controller,是一种软件设计模式,用于分隔应用程序的业务逻辑和用户界面。
2025-08-20 14:37:45
649
原创 JavaWeb仓库管理系统源码毕业设计
仓库管理系统是现代企业物流管理的重要组成部分,它涉及到商品的入库、存储、出库、调拨等环节。此系统不仅优化了库存的管理,减少了人工操作的错误和成本,还可以通过数据分析提高库存周转率,降低库存积压风险。MVC(Model-View-Controller)设计模式是一种流行的软件架构模式,用于分离应用程序的业务逻辑(Model)、用户界面(View)和输入处理(Controller)。在Web应用中,MVC模式允许开发者以模块化的方式组织代码,使代码更易于管理和维护。
2025-08-20 13:27:53
588
原创 Bunifu DataViz 库 - 高级数据可视化组件实战
BUFUNI DataViz DLL是一个功能强大的数据可视化动态链接库,旨在为开发者提供丰富的图表类型和自定义选项,以适应不同的数据展示需求。该DLL库支持多种数据源,包括但不限于数据库、文本文件和实时数据流。BIUI框架的设计基于用户体验至上的原则,旨在打造高效、易用、高度可定制的用户界面。该框架遵循模块化设计理念,将应用程序划分为可独立配置和更新的模块,这不仅简化了开发流程,还加快了产品的迭代速度。
2025-08-20 12:21:43
390
原创 Qt动态曲线绘制实例工程详解
是一个用于显示内容的窗口部件。是一个管理多个的容器。是所有可绘制图形项的基类,支持自定义绘图和事件处理。通过这些组件的协同工作,Qt图形视图框架能够实现复杂的2D图形和动画效果,为用户带来丰富和直观的视觉体验。接下来的章节将逐步深入探索这些组件的功能,并指导读者如何进行实际的编程操作。在自定义图形项的事件处理中,最常重写的方法包括鼠标事件和键盘事件。例如,重写方法可以让我们在用户点击图形项时执行特定操作。// 处理左键点击事件。
2025-08-20 11:32:32
703
原创 全面掌握角度调制与解调技术PPT教程
相位调制(PM)是一种信号调制方式,其信息的载波信号的相位随着调制信号的幅度变化而改变。在PM中,相位的改变与调制信号的瞬时值成正比。相位调制的原理可以通过一系列数学模型来描述,这些模型揭示了如何将信息信号编码到载波的相位上。在数字通信系统中,相位调制是通过离散的相位变化来实现的,通常称为相移键控(Phase Shift Keying, PSK)。例如,在二进制相位调制(BPSK)中,载波的相位在每个符号周期内切换180度,以代表不同的二进制位。
2025-08-20 10:51:10
666
原创 MATLAB工具箱中的遗传算法实现与应用
遗传算法(Genetic Algorithms, GAs)是启发式搜索算法的一种,受到达尔文进化论的启发,模仿自然选择和遗传学原理。其基本思想是将问题的求解表示为“染色体”,通过“选择”、“交叉”(杂交)和“变异”等操作,模拟生物进化过程,从而使“种群”中适应环境的“个体”被保留下来,经过若干代的演化,求得问题的近似最优解。遗传算法因其高度的并行性、搜索能力强、不易陷入局部最优解等特点,在优化和搜索领域得到了广泛的应用。尽管它并不能保证找到绝对的最佳解,但通常能给出一个令人满意的解决方案。
2025-08-20 10:36:23
404
原创 基于MATLAB的PMSM电机控制仿真课程设计
永磁同步电机(Permanent Magnet Synchronous Motor,PMSM)是一种高效的同步电机,它通过使用永磁体代替电励磁来产生磁场。由于其高效率、高转矩密度、良好的动态响应和低运行噪音,PMSM在工业、电动汽车和航空应用中越来越受欢迎。MATLAB(Matrix Laboratory)是一个高级数值计算和可视化的编程环境,广泛应用于工程计算、数据分析、算法开发和仿真等领域。
2025-08-20 10:11:21
455
原创 基于Java SpringBoot和SSM的高校校园点餐系统毕业设计
高校校园点餐系统的设计和实现是一个复杂的过程,涉及需求分析、系统设计、功能实现等多个阶段。通过采用SSM框架,我们可以有效地实现各个层次的分离,提高开发效率和代码的可维护性。下一章节,我们将进一步探讨前端技术在高校校园点餐系统中的应用,以实现一个完整且交互性良好的点餐流程。
2025-08-20 09:43:33
604
原创 MATLAB仿真杨氏双缝干涉与牛顿环带GUI界面
MATLAB提供了强大的数值计算能力,包括但不限于矩阵运算、函数优化、数值积分和微分方程求解等。对于光程差的计算,MATLAB提供了多种工具箱,如Optimization Toolbox和Symbolic Math Toolbox,可以用来实现复杂的数值计算和符号运算。在MATLAB中进行数值计算,通常需要进行以下步骤:1. 定义问题:明确光程差计算的目的和适用条件。2. 创建数学模型:建立描述问题的数学方程式。3. 编写代码:将数学模型转化为MATLAB能够理解并计算的代码。
2025-08-20 09:21:13
215
原创 《Android官方API文档完整版》课程设计
Android系统架构自下而上可以分为Linux内核层、系统运行库层、应用框架层和应用层。Linux内核层主要负责硬件的驱动以及进程管理;系统运行库层包含核心库和Android运行时环境,提供了Java编程接口以及C/C++的本地接口;应用框架层通过API向开发者提供各种服务和管理机制;应用层则是开发者可以直接开发和部署的应用程序。自定义View允许开发者绘制任何自定义的图形界面,满足特定的设计需求。通过继承View类或其子类,并重写onDraw()方法来实现自定义的绘图逻辑。@Override。
2025-08-19 16:41:23
461
原创 二阶连带勒让德函数程序设计与应用
连带勒让德多项式是数学中的一类特殊的正交多项式,与勒让德多项式有直接的联系。它们在物理学和工程技术中有广泛的应用,尤其是在电磁场理论、量子力学以及天体物理学等领域的研究中。连带勒让德多项式可以表示为:其中,( P_l(x) ) 是勒让德多项式,( l ) 和 ( m ) 是非负整数且 ( m \leq l )。它们满足正交关系,并且在区间 ([-1, 1]) 上具有完备性。在实际应用中,连带勒让德多项式需要被归一化以满足特定的物理要求。
2025-08-19 16:39:07
515
原创 自定义AnimTextView控件实现Android文字跑马灯动画
AnimTextView 是 Android 开发中常用的一种自定义动画文本控件。它不仅能够显示普通的文本内容,还能够通过各种动画效果增强文本的视觉表现力。与标准的 TextView 相比,AnimTextView 提供了更多的动画选项和定制性,使得开发者能够轻松实现文字的动态展示效果,例如跑马灯、颜色变化、位置移动等。文字滚动速度是动画效果中的一个关键要素,它决定了动画的快慢和用户体验的自然度。
2025-08-19 15:09:59
589
原创 掌握升降压斩波电路设计与实现
Buck-Boost转换器是一种能够实现电源电压升降的电子设备,主要用于处理不稳定的电源电压,使其转换为稳定的直流输出电压。这种转换器既可以降低高于输出电压的输入电压,也可以提升低于输出电压的输入电压,因此得名Buck-Boost。
2025-08-19 14:05:48
813
原创 STC单片机ADC查询方式编程实践
模拟-数字转换器(ADC)是数字系统与现实世界之间的桥梁,它将自然界中连续变化的模拟信号转换为数字系统可以处理的离散数字值。在STC单片机中,ADC模块扮演着至关重要的角色,它不仅能够准确地将模拟信号转换为数字信号,还能够在各种应用场景中,如温度监测、光线强度测量、声音采样等,提供精确的数据采集。模拟信号是连续变化的信号,而在数字世界中,我们需要使用数字信号来处理这些信息。模拟信号和数字信号之间存在着根本的差异,模拟信号可以通过采样和量化的过程转换成数字信号。这一步骤通常涉及到模数转换器(ADC)。
2025-08-19 13:51:43
661
原创 频域子空间语音增强算法MATLAB实现详解
频域估计器是一种信号处理工具,它可以估计信号在频域内的特性,如频率、幅度和相位。通过将信号从时域转换到频域,频域估计器允许我们更细致地分析信号的构成和质量,这对于信号的优化和增强至关重要。语音增强的技术流程可以概括为三个主要步骤:信号预处理、噪声抑制策略和增强后的后处理。子空间是线性代数中的一个概念,在信号处理中它指的是一组向量的集合,这些向量满足特定的线性相关或线性无关的性质。子空间被广泛应用于语音增强、信号检测等领域,它是信号分析和信号处理的基础。
2025-08-19 13:43:18
843
原创 MATLAB图像处理技术:高斯滤波、归一化、傅里叶变换及可视化源码详解
数据可视化是将数据转换为图形或信息图表的过程,以便用户能够更容易地理解数据中的模式、趋势和异常。在图像处理领域,可视化不仅有助于揭示图像的内在特征,还可以帮助研究者和工程师测试和验证算法效果。有效的可视化可以将复杂的信息呈现为直观的图形,使得非专业人员也能理解图像处理的技术细节和结果。MATLAB是一款强大的数学计算和仿真软件,其在图像处理领域的应用极为广泛。
2025-08-19 13:41:04
737
原创 Web端传感器数据实时读取与显示的实践教程
颜色传感器是一种利用光的物理属性来检测周围环境颜色的设备。它能够捕捉到光线的波长,并将其转换为电信号,用于处理和分析。在现代工业和消费产品中,颜色传感器发挥着至关重要的作用,不仅因为它们能够识别颜色,而且还能根据不同颜色执行特定的任务。本章节将详细探讨颜色传感器的工作原理及其在多个领域的应用案例。选择合适的Web开发框架能够大幅提高开发效率,并为应用带来更好的稳定性和扩展性。以下是几个在业界广泛使用且评价较高的框架。
2025-08-19 12:24:33
655
原创 基于STM32微控制器的THB6128电机驱动板汇编程序项目
THB6128是东芝公司推出的一款高效能双极性步进电机驱动芯片,广泛应用于各种需要精确控制电机位置和速度的场合。这款芯片的主要工作原理是通过接收来自微控制器(如STM32)的脉冲信号来驱动步进电机,其内部集成有高电流的MOSFET作为驱动电路,能够输出较大的电流来驱动电机运行。THB6128可以应用在许多领域,包括但不限于:3D打印机和CNC机器自动化装配线中的定位装置精密仪器的控制部分,如打印机、扫描仪、医疗设备等选择合适的STM32微控制器是开发项目的首要任务。
2025-08-19 12:16:17
726
原创 STM32微控制器的字库串口写入项目
微控制器(Microcontroller Unit, MCU)是集成有处理器核心、内存、外设接口等多种功能于单一芯片的微型计算机系统。基本原理在于能够根据编写的程序执行特定任务,包括处理输入信号、执行运算以及控制外围设备等。微控制器在智能家电、汽车电子、工业控制等领域应用广泛,能够实现系统的智能化和自动化。graph LRA[开始] --> B[程序加载]B --> C[初始化硬件]C --> D[等待中断]D --> |中断信号| E[执行中断服务程序]E --> D[回到等待中断]
2025-08-19 10:55:35
598
原创 交流电机速度监控器的设计与实现 - 基于MATLAB开发
MATLAB是MathWorks公司开发的一款高性能数值计算和可视化软件,它提供了丰富的工具箱,其中的Simulink工具箱为工程师提供了从系统建模、仿真到分析的一站式服务,尤其是在电机控制系统设计领域。在电机控制领域,MATLAB提供了一系列的功能强大的工具,如电机控制工具箱、优化工具箱和信号处理工具箱等。这些工具可以用于分析电机的动态性能、设计控制器以及进行系统级的优化。工程师能够通过MATLAB轻松实现对电机控制系统的数学建模,进而进行仿真分析和优化设计。
2025-08-18 16:59:35
825
原创 PMP认证考试全面模拟训练集
工作分解结构(WBS)是项目管理中定义和组织项目范围的一个关键工具。WBS通过将项目主要成果分解为较小、更易于管理的部分,帮助项目团队理解项目的全部范围。创建WBS的步骤通常包括:定义项目目标:明确项目的最终成果和项目的目标。识别主要交付物:列出项目必须交付的主要产品、服务或成果。分组并细分:将主要交付物进一步细分为更小的组和单个任务。持续细分:继续细分任务直到足够详细,以便清晰地分配到个人或小组。示例代码:1. 确定项目的最终目标1.1 设计新的软件系统。
2025-08-18 16:38:23
582
原创 XJad反编译工具及其使用方法
在软件开发的生命周期中,反编译是一个关键的环节,尤其对于Java语言来说,这种需求更加突出。Java反编译指的是将Java编译后生成的字节码文件(.class)转换回Java源代码的过程。理解反编译的概念不仅有助于程序员进行代码调试、学习和维护,而且在安全领域,反编译更是安全分析师和研究人员不可或缺的工具。反编译的主要目的是在没有原始源代码的情况下,理解和分析程序的功能。开发者通过这种方式可以查看类的结构、方法实现、变量声明等,这在调试复杂的遗留系统或逆向工程中非常有用。
2025-08-18 16:37:50
906
原创 构建MFC对话框实现图片浏览与放大镜功能
MFC(Microsoft Foundation Classes)是一个C++库,提供了丰富的接口和类,支持开发者快速构建Windows应用程序。对话框是MFC应用中不可或缺的部分,常用于展示信息、获取用户输入等。在本章中,我们将概览MFC对话框的基本开发流程,以及它在实际应用中的作用。我们将了解到对话框是通过继承CDialog类,并使用资源编辑器来设计界面,以及如何通过消息映射机制响应用户操作。MFC对话框的应用不仅限于简单的表单,还可以结合多种控件实现更复杂的交互逻辑。
2025-08-18 15:33:45
576
原创 DuoPlot:MATLAB中绘制双变量组合图的工具
MATLAB(Matrix Laboratory的缩写)是一个高性能的数值计算和可视化环境。它提供了一套丰富的函数库,使得用户能够轻松绘制各种类型的双变量图形。MATLAB以其直观的语法和强大的图形展示功能,在科学计算领域广受欢迎。
2025-08-18 15:33:44
574
原创 HTTP服务器压力测试工具的应用与实战
压力测试是一种在预设的高负载条件下,对系统稳定性及性能进行评估的测试方法。它旨在确定系统的极限性能和故障点,以此来验证系统在超出正常工作量时的健壮性和响应能力。通过模拟多个并发用户或请求对服务器进行冲击,压力测试能够揭示应用程序或服务器在资源限制下的表现,比如CPU、内存使用率的上升,响应时间的延长等。压力测试并不仅仅是试图压垮系统,更重要的是通过分析在压力下的系统表现,帮助开发团队发现性能瓶颈,从而在产品发布前进行针对性的优化。
2025-08-18 14:33:32
939
原创 实现WebUploader大文件分片上传的完整指南
WebUploader 是一款纯前端的文件上传组件,由百度前端团队开发,主要用途是为了提供一个基于网页的文件上传解决方案。它将文件上传过程的展示和逻辑分离,既可以在主流浏览器上使用,也能够无缝集成到移动端的Web应用中。Maven的核心是使用一个叫做pom.xml的项目对象模型文件,该文件包含了项目的基本信息、配置信息、构建信息以及项目依赖等。Maven使用一种标准的目录结构,这个结构定义了文件和目录的存放规则,帮助开发者快速熟悉一个项目。
2025-08-18 14:07:46
627
原创 使用`findpeaks`进行ECG峰值检测的MATLAB实践
findpeaks是一个在MATLAB环境中广泛使用的函数,专门用于识别和分析信号中的峰值。它能够从一维数据集中检测出局部最大值点,并通过各种参数配置来适应不同的峰值检测需求。该函数的灵活性和易用性使其成为信号处理和数据分析中不可或缺的工具。在获取心电图(ECG)信号的过程中,不可避免地会遇到各种噪声的干扰。这些噪声可能是来自外部设备的电磁干扰、病人的移动、呼吸影响、电极接触不良等原因造成的。噪声的存在会降低ECG信号的信噪比(SNR),进而影响峰值检测的准确性。
2025-08-18 13:36:48
604
原创 配置Webpack以支持ES6+和Less的前端开发环境
Webpack是前端构建工具的领头羊,它将项目的各种资源视为模块,并通过加载器(Loaders)和插件(Plugins)将它们转换并打包成最终的浏览器可识别的静态资源。它的出现彻底改变了前端项目的开发方式,特别是在模块化、优化和自动化处理方面。Webpack的核心优势在于其灵活性和扩展性。它不仅支持JavaScript,还可以打包如SASS、LESS、图片等静态资源,甚至可以处理Vue、React等现代前端框架和库。
2025-08-18 13:20:12
706
原创 MATLAB中使用imwrite()函数保存图像文件的完整指南
MATLAB的imwrite()函数是一个在图像处理领域内非常重要的工具,主要用于将图像数据保存到文件中。它不仅支持常用的图像格式,如JPEG、PNG、BMP等,还能提供各种参数选项以控制图像保存过程中的质量、格式和压缩等。对于专业图像处理和分析,imwrite()提供了一个直接且高效的途径,使研究人员和开发人员能够将工作成果转化为稳定的图像文件。随着本章内容的展开,我们将详细探讨imwrite()函数的各个方面,为后续深入分析打下坚实的基础。
2025-08-18 13:18:17
674
原创 信用卡验证插件Card:前端开发者的福音
在当今的数字经济时代,电子商务和在线支付平台如雨后春笋般涌现。在这些平台上,信用卡验证成为了保障交易安全和用户体验的关键环节。本章将介绍信用卡验证插件Card的核心功能,这是为电子商务网站和在线支付平台量身定制的解决方案,旨在简化信用卡验证流程并提高数据处理的准确性和安全性。Card插件具备以下几个核心功能:自动识别信用卡类型:能够根据信用卡号码自动识别出卡片类型,比如Visa、MasterCard或American Express等。格式验证。
2025-08-18 13:14:56
827
原创 构建前端交互:jQuery商品分类选择实践
htmltable {th, td {th {pre {简介:jQuery商品分类选择是电商网站常见的前端功能,通过结合jQuery库、CSS样式和HTML结构来实现用户友好的商品筛选体验。主要技术包括DOM操作、事件处理、多级选择结构、动态加载、会话存储、响应式设计以及可能涉及的PHP后端交互。本项目旨在提供实践指南,帮助开发者全面掌握该功能的实现。
2025-08-18 12:05:37
794
原创 iLibX:与Checkm8漏洞设备交互的AC库
htmltable {th, td {th {pre {简介:iLibX是一个针对通过Checkm8漏洞可以被攻击的iOS设备的交互库,它支持安全研究和逆向工程等应用。Checkm8漏洞存在于Apple A5至A11芯片中,使得攻击者可以执行引导加载程序级别的代码,实现设备的完全越狱。iLibX使用C语言编写,能够运行在多种环境并提供多种与设备交互的功能,例如设备通信、漏洞利用、内存操作、固件交互、调试工具、API接口等。
2025-08-18 11:40:51
828
原创 创新暗色个人网站模板:CSS3动画与交互体验
暗色风格网页模板因其对眼睛的友好性和现代感,成为了一种流行趋势。在本章中,我们将探讨如何创建个性化和响应式的暗色风格网页模板,以便为用户提供更加独特和舒适的浏览体验。在前端开发中,模板通常指的是一段可重用的HTML代码片段,它们可以包含一些占位符用于动态插入内容。模板语言如Handlebars或Mustache允许开发者定义包含变量和控制语句的模板,这些模板在服务器端或客户端被渲染成最终的HTML输出。这大大简化了开发者在构建网站时的重复性工作,特别是当需要生成大量相似内容的页面时。
2025-08-18 11:25:31
716
原创 手写数字识别的OpenCV实现:从源码到应用
手写数字识别是计算机视觉和机器学习领域的一个经典问题。随着技术的发展,机器学习特别是深度学习的方法已经被广泛应用于解决这一问题。机器学习算法可以从大量的手写数字样本中学习到数字的特征,并构建模型进行预测。机器学习方法在手写数字识别中的应用可以分为几个步骤:1.数据准备:收集并准备包含手写数字图片的数据集,如著名的MNIST数据集。2.特征提取:从手写数字图片中提取有助于分类的特征,这些特征包括但不限于边缘、角点、纹理等。3.模型选择。
2025-08-18 11:05:51
626
原创 MATLAB中2-D快速DOST分解与重建技术实现
快速离散正交斯蒂尔吉斯-汤普森变换(2-D FOST)是一种二维信号处理方法,它利用快速傅里叶变换(FFT)技术,结合斯蒂尔吉斯-汤普森积分,将二维信号分解为一系列正交基函数的线性组合。这种变换在处理非均匀采样的图像和信号时尤为有效,并且能够实现高效快速的信号处理。MATLAB是一个高性能的数值计算和可视化环境,它集数值分析、矩阵运算、信号处理和图形用户界面设计于一体。作为一个第四代编程语言,MATLAB的优势在于其丰富的内置函数库,这使得它在解决数学计算问题时尤为高效和直观。
2025-08-18 11:03:49
627
原创 山东大学计算机组成原理实验课程设计
计算机组成原理是研究计算机系统内部结构和工作原理的基础学科。它涵盖了从简单的逻辑门电路到复杂的中央处理器(CPU)的设计和实现。在深入了解计算机的每个部件之前,我们需要掌握一些核心概念。总线是计算机内部或多个计算机之间相互连接的一种技术,它允许多个设备共享同一条物理通信路径。总线作为信息传输的公共通道,具有以下基本功能:数据传输:在不同的系统组件(如处理器、内存、输入/输出设备)之间移动数据。控制信号传输:传输控制信号,协调不同设备间的数据交换和处理。地址信号传输。
2025-08-18 10:07:50
595
原创 BICM-OFDM与STBC-OFDM在MATLAB中的实现
BICM-OFDM,即带交织的编码调制正交频分复用技术,是一种结合了频率分集和时间分集的技术。它通过在OFDM系统中引入交织和编码技术,提高了信号传输的鲁棒性,尤其适合于多径衰落信道。空间时隙编码(Space-Time Block Coding, STBC)是一种通过空间和时间的编码来提高无线通信系统传输可靠性的技术。STBC将待传输的信息分布在多个天线上,并在时间上进行编码,从而在接收端可以利用空间和时间的分集增益来改善信号质量。
2025-08-18 09:44:33
636
原创 9款CSS3创意复选框设计案例解析
首先,我们通过设置复选框的基本样式来定义图标复选框的外观。下面是一个简单的示例:/* 定义复选框的基本样式 *//* 图标容器样式 *//* 默认边框 *//* 图标样式 */top: 3px;left: 3px;/* 默认隐藏 */在这个例子中,我们使用了::after伪元素来创建图标,并设置了默认隐藏。当复选框被选中时,我们将通过JavaScript改变伪元素的display属性,使其显示出来。在传统的表单设计中,复选框只有选中与未选中两种状态。
2025-08-18 09:20:59
835
原创 Notepad++ Xml Tools 插件:XML文档处理增强工具
在信息技术的快速发展下,文本编辑器已经不再是简单的代码编写工具,而是集成了强大插件系统的多功能平台。Notepad++作为一款广受欢迎的开源文本编辑器,凭借其丰富的插件库,尤其在处理各类标记语言时显得游刃有余。其中,Xml Tools Plugin(XML工具插件)因其对XML文件强大的支持功能而备受开发者关注。在NotePad++中使用Xml Tools Plugin进行XML到HTML的转换,首先需要打开一个XML文件。
2025-08-18 09:16:42
613
Java数据库编程与JDBC核心指南
2025-03-18
医院医生项目构建与持续指南
2025-02-27
程序评估规划实用指南
2025-02-24
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人