- 博客(742)
- 收藏
- 关注
原创 重构豆瓣网主页:前端开发实践课程
<section><aside>, 和<nav>,它们各自代表了网页不同部分的特定含义。这些标签使得页面的结构更加直观,让浏览器和开发者能够更清楚地理解网页内容。<header><h1>网站标题</h1><nav><ul><li><a href="#">首页</a></li><li><a href="#">关于我们
2025-07-29 16:58:15
403
原创 微信小程序开发实战100套全集
微信小程序是一种不需要下载安装即可使用的应用,它实现了应用“触手可及”的梦想,用户扫一扫或者搜一下即可打开应用。小程序也体现了“用完即走”的理念,用户不用关心是否安装太多应用的问题。应用将无处不在,随时可用,但又无需安装卸载。微信小程序技术栈主要包括:前端技术:主要包括WXML(类似HTML,用于结构展示),WXSS(类似CSS,用于样式定义),JavaScript(用于逻辑控制)。后端技术:可以使用任意服务器端技术,微信官方推荐使用Node.js。
2025-07-29 15:57:34
536
原创 OK6410开发板外部中断控制LED与蜂鸣器实战
外部中断是一种处理器响应外部事件的机制,允许外部硬件设备在特定条件下通知CPU停止当前操作并执行中断服务程序(ISR)。在嵌入式系统中,外部中断能够处理如按键按下、外部信号变化等异步事件,它们是多任务处理和实时系统设计的关键部分。OK6410是基于ARM1176JZF-S内核的开发板,拥有丰富的外设接口和扩展功能。OK6410的处理器架构为ARMv6指令集,提供了强大的处理能力和较高的集成度,特别适用于嵌入式系统的开发。
2025-07-29 15:56:39
439
原创 PWM技术学习与应用手册
脉冲宽度调制(Pulse Width Modulation,简称PWM)是电子工程中一种非常重要的技术。PWM通过改变脉冲信号的占空比来控制电压,从而达到控制能量传输的效果。与传统的电压控制方式相比,PWM技术因其高效率和良好的动态响应,被广泛应用于电机控制、电源管理和信号处理等领域。脉冲宽度调制(Pulse Width Modulation,简称PWM)是一种利用数字信号对模拟信号进行控制的技术。
2025-07-29 15:38:47
549
原创 蚁群算法结合2opt策略求解TSP
2opt算法是一种启发式搜索方法,主要用于解决旅行商问题(TSP)。它通过在给定的路径上不断尝试进行两次交换操作来减少路径的总长度,以此达到优化的目的。2opt算法的核心在于它只考虑两个节点的交换,这种操作称为2-opt move,而这也是该算法名称的由来。在进行两次交换之后,所产生的新路径将被判断是否优于当前路径,若更优则进行接受。TSP问题,即旅行商问题(Traveling Salesman Problem),是一个经典的组合优化问题。
2025-07-29 14:51:57
658
原创 IDEA SonarLint 插件的深度解析与应用
SonarLint 允许开发者根据项目需求自定义代码规则,提供快速修复建议,并支持一键修复,大大提高了代码质量的维护效率。这不仅有助于保持代码的整洁性,还能帮助团队避免常见的编程错误。通过将SonarLint集成到开发工作流程中,可以有效地预防软件缺陷的产生,同时也提升了代码的可读性和可维护性。让我们继续深入探讨如何在不同集成开发环境中安装与配置SonarLint。SonarLint不仅仅依赖于内置的代码风格,还允许用户根据实际需求进行自定义。下面是一个自定义规则的示例:在IDEA中,打开。
2025-07-29 14:34:10
660
原创 掌握STM32 AD库:从模拟信号到数字处理的高效转换
STM32微控制器是ST公司生产的高性能Cortex-M系列处理器,广泛应用于嵌入式系统开发。STM32系列以其丰富的外设库和强大的处理能力著称,为开发者提供了灵活且高效的开发平台。其中,模数转换器(ADC)是STM32系列中不可或缺的重要组成部分,适用于各种模拟信号采集场景。
2025-07-29 12:44:08
544
原创 VB6.0精简版快速入门及安装指南
Visual Basic 6.0(简称VB6.0)是微软在1998年推出的编程语言版本,虽然已经过时,但仍然在一些特定领域中得到应用。VB6.0精简版是在标准版基础上,去除了一些非核心功能,保留了核心编程功能的版本,具有轻量级、易于维护和运行速度快等特点。Visual Basic 6.0 (VB6.0) 提供了一个丰富的控件库,用于开发丰富的用户界面和应用程序逻辑。以下是一些最常用的控件及其功能和使用方法:: 提供用户操作按钮,用于响应点击事件。通常用于提交表单或执行命令。TextBox。
2025-07-29 09:14:41
487
原创 全面掌握HDF5库v1.8.20:从基础到应用
HDF5(Hierarchical Data Format version 5)是一种广泛使用的数据存储格式,专为存储和组织大量数据而设计。其分层数据结构、自定义数据类型支持和卓越的大文件处理能力使其成为科学研究、工程和工业数据管理的理想选择。HDF5库的每一个新版本都带来了改进和创新特性,以满足不断发展的数据存储需求。在深入了解HDF5的核心功能之前,让我们先快速浏览一下HDF5库的历史及其主要版本特性,这将帮助我们理解它的发展脉络和设计初衷。
2025-07-29 09:13:44
695
原创 STM32软件模拟I2C通讯实现指南
在嵌入式系统领域,STM32微控制器由于其高性能、低功耗和易用性而广泛应用于各种项目中。要使STM32与外部设备进行有效通信,掌握I2C(Inter-Integrated Circuit)总线通信协议是至关重要的。I2C是一种两线串行通信协议,支持多主机系统,允许多个从设备连接到同一条总线上,是连接低速外设的一种理想选择。I2C是一种多主机、多从机的串行通信总线协议。它仅使用两条信号线——串行数据线(SDA)和串行时钟线(SCL),即可实现数据的传输。
2025-07-29 09:01:52
771
原创 C51单片机与ADC0809结合串口输出的Proteus仿真教程
串口通信是一种常见的计算机串行通信方式,广泛应用于短距离的通信系统中。在串口通信协议中,数据的传输通常是以”帧”为单位进行的。一个标准的数据帧包含起始位、数据位、停止位和可选的校验位。起始位标志着一个帧的开始,通常为低电平;数据位跟随在起始位之后,其数量可以根据需要进行配置,常见的有5位、6位、7位或8位;停止位用于帧的结束,其长度可以是1位、1.5位或2位;校验位是可选的,用于错误检测,常见的校验方法有奇偶校验和。
2025-07-26 16:35:04
868
原创 计算机专业学生的毕业设计综合指南
毕业设计是高等教育阶段的终结性环节,对于学生来说,它是综合运用所学知识解决实际问题的过程,是学生理论与实践结合能力的集中体现。计算机系统由多个部分组成,包括硬件和软件两大类。硬件是计算机系统的物理组成,它包括中央处理单元(CPU)、内存(RAM)、存储设备(如硬盘、固态硬盘)、输入设备(如键盘和鼠标)和输出设备(如显示器和打印机)。这些硬件组件相互协作,使得计算机能够执行用户指定的任务。CPU是计算机系统的心脏,负责执行计算任务和处理指令。内存存储临时数据和指令,供CPU快速访问。
2025-07-26 16:34:50
609
原创 EEGLAB工具箱:脑电信号处理与分析实战指南
EEGLAB是一个使用MATLAB语言编写的开源工具箱,它是专门用于脑电图(EEG)信号处理和分析的社区开发软件。它提供了一套完整的数据处理流程,包括数据导入、预处理、时频分析、独立成分分析(ICA)、事件相关电位(ERP)分析和空间分析等。EEGLAB的设计理念强调用户交互与可视化,帮助研究人员方便地查看数据的变化、执行复杂的信号分析,以及在需要时进行脚本自定义。EEGLAB的用户界面友好,提供了丰富的菜单选项和内置功能,让即使是经验不多的用户也能快速上手。
2025-07-26 16:25:24
588
原创 B0505S-1W隔离电源深度解析
电路隔离是指在电路系统中,利用物理或电气的方法,将电路的不同部分隔离开来,阻止电流直接流过,从而保证不同部分的电路可以独立工作,互不干扰。电路隔离的作用主要包括保护操作人员安全、防止电路间的干扰、提高系统稳定性和安全性。电路隔离技术在多种电子系统中都有应用,比如在医疗设备、仪器仪表、电力系统等领域,隔离技术可以确保操作人员安全,防止意外伤害。在某些复杂的控制系统中,隔离还能避免信号之间的干扰,确保信号准确传输。
2025-07-26 16:03:03
837
原创 AE水面折射插件:真实水体效果的创造
在数字影视后期制作中,模拟水面折射效果对于创造逼真水面下的视觉体验至关重要。AE水面折射插件提供了一系列工具,使得在Adobe After Effects(AE)中实现这些效果变得更加容易和高效。AE水面折射插件是一个专为After Effects设计的工具,它利用先进的算法模拟了水体对光线折射和反射的物理特性。通过简单的参数调整,插件能够创造出真实感极强的水面效果,无论是在平静的湖面还是波涛汹涌的海面。
2025-07-26 16:02:28
932
原创 Informix数据库Java连接驱动实践指南
Informix数据库作为一个商业级数据库管理系统,以其高性能、高稳定性和良好的可扩展性在企业级应用中占据一席之地。而Java作为目前广泛使用的编程语言之一,如何让Java应用程序与Informix数据库有效交互,是许多开发者所关注的焦点。JDBC(Java Database Connectivity)驱动程序正是连接Java世界和数据库世界的桥梁。是Informix数据库提供的一个扩展JDBC驱动,它在标准JDBC驱动的基础上,增加了更多的接口和功能,以适应更复杂的业务需求和提高开发的便捷性。
2025-07-26 15:49:45
706
原创 构建现代网页的HTML5视频播放器
HTML5<video>标签是前端开发中用于嵌入视频内容的标准元素。通过它,开发者可以直接在网页中嵌入视频而无需借助第三方插件,如Adobe Flash。这一特性极大地方便了用户在不同平台和设备上播放视频内容,增强了网页的交互性和用户体验。<video>随着Web技术的发展,用户对于网页视频播放器的体验要求日益提高。设计师和开发人员不仅需要关注视频内容的呈现,还需要注重播放器的视觉样式和交互功能。
2025-07-26 14:41:45
958
原创 C#编程实现扑克牌洗牌程序:从算法到用户界面
C#(读作“C Sharp”)是由微软开发的一种强类型语言,它是在.NET框架上运行的。C#的设计目的是为了构建在.NET环境下的各类应用程序,包括Windows桌面应用、Web应用和Web服务等。它拥有简洁的语法、强大的类型系统、异常处理、垃圾回收机制以及丰富的类库,适合快速开发各种应用。Fisher–Yates洗牌算法,也称为Knuth洗牌算法,是一种在计算机科学中常用的随机化算法,用于生成一个随机排列,即打乱数组或列表中的元素顺序。
2025-07-26 14:30:57
1004
原创 打造Android华丽翻页动画的终极指南
ViewPager 是 Android 开发中用于实现页面滑动功能的一个视图容器组件,它能够承载多个页面,并允许用户通过左右滑动在这些页面之间切换。在智能手机中,这种模式常被用于引导页、图片展示、文章阅读等场景。工作原理方面,ViewPager 依赖于它的适配器(Adapter),即PagerAdapter,来为每一个页面提供视图。PagerAdapter 管理页面的生命周期,并且在用户滑动时动态地创建和回收视图。这个过程是一个典型的视图懒加载模式,可以有效降低内存的使用。
2025-07-26 14:17:32
785
原创 中兴U880固件升级实用工具包
随着智能手机技术的不断进步,设备的更新换代也变得日益频繁。中兴U880作为一款经典的安卓智能手机,它的升级工具是用户获得新功能与性能提升的重要途径。本章将对中兴U880升级工具的来源、功能以及如何使用这些工具进行基础性介绍,为后续深入探讨各版本固件升级包以及刷机工具包内容打下基础。升级工具的使用方法通常包括下载固件、连接设备、运行工具等几个步骤。用户需要在电脑上安装相应的驱动程序和升级软件,然后根据工具的提示进行操作,通常是一个简单易懂的图形用户界面(GUI)流程。
2025-07-26 13:14:36
622
原创 深入掌握Android AlarmManager定时任务实践
Android中的服务是用于处理一次性或周期性闹钟的系统级服务。开发者能够使用它来安排在将来某个特定时间点或者在重复的时间间隔触发的事件。AlarmManager的一个显著特点是,它在Android的休眠模式下仍然能够准时触发事件,这对于需要在后台执行任务的应用程序来说,是非常重要的功能。在Android系统中,用于设置定时任务,但其本身不直接处理任务执行。当设定的时间到达时,系统会发送一个广播(Intent),而这个广播则由来接收和处理。就是这样一个特殊的,专门用来接收。
2025-07-26 12:58:15
553
原创 C# WinForm实现自定义窗口拖动效果
在.NET框架中,Form类是WinForms应用程序中最核心的组件之一,它是所有窗体的基类。Form类提供了一个可视化的表面,用于承载各种控件,并通过编程方式控制其行为。Form的实例可以是一个窗口,包含标题栏、边框、菜单栏、工具栏等,也可以是一个没有边框的无模式对话框,用于与用户交互。在进行桌面应用程序的开发时,了解Form类的定义及其作用对于构建良好的用户界面非常关键。Form类不仅提供了控件的容器,还允许开发者为窗体添加事件处理逻辑,从而响应用户的操作。
2025-07-26 12:47:43
916
原创 创建艺术签名:完整源码实现
艺术签名项目的核心理念是通过软件自动生成具有个人风格的签名,以满足用户在数字世界中展示个性的需求。本章将介绍整个项目的源码结构,并为读者提供一个全面的概览。为了提供更丰富的用户体验,自定义样式接口是不可或缺的。它允许用户根据自己的喜好和需要调整样式。以下是一个简单的接口设计示例:# 初始化时载入现有样式# 选择样式逻辑# 调整样式参数逻辑else:print(f"参数 {param_name} 不存在于样式中")这个接口定义了加载样式、选择样式、调整参数和获取当前样式的方法。
2025-07-26 12:40:27
536
原创 实现Winform图片动态缩放功能
PictureBox是一个用于在Windows Forms应用程序中显示图片的容器控件。通过PictureBox控件,开发者可以实现图像的导入、展示、缩放、裁剪等多种图像处理功能。它支持多种图像格式,如.jpg、.png、.bmp等,并提供了一系列属性和事件,供开发者自定义图像的显示方式。
2025-07-26 12:35:30
274
原创 C#消息提示框控件实践指南:实例详解
MessageBox控件是图形用户界面应用程序中用于显示文本信息、提示和警告消息的一种简单方式。它允许开发者在不同的交互点向用户提供反馈信息,并且可以获取用户的选择作为程序下一步的依据。在多数编程语言中,MessageBox控件都有其对应的实现和API,例如.NET中的MessageBox.Show()方法。本章将详细介绍MessageBox控件的基本概念和使用场景,为进一步深入探讨自定义和优化方法打下基础。在前一章节中,我们了解了如何使用MessageBox.Show方法以及其高级应用。
2025-07-26 12:16:19
973
原创 MeeGo系统中文输入法技术解析与实践
MeeGo操作系统是一款基于Linux内核的开源操作系统,专为移动设备和车载信息系统设计。它是由诺基亚和英特尔联合开发,旨在提供跨设备的无缝用户体验。MeeGo凭借其模块化和可扩展性,为开发者提供了一个理想的平台,能够在多种硬件平台上构建和部署应用程序。MeeGo系统的设计理念是在有限的资源上实现高效性能,它支持广泛的硬件架构,如ARM、x86以及多种变种。为了适应不同的设备,MeeGo采用了Qt作为其主要的应用程序开发框架,这为用户界面设计和应用开发提供了强大的工具集。
2025-07-26 12:15:08
997
原创 C++中的字符串倒序实现
字符串,作为编程中的基础数据类型之一,是连续的字符序列。它广泛应用于各种场景中,如文本处理、用户输入、数据存储等。在C++中,字符串可以使用字符数组或类来实现。字符数组是由单个字符组成的数组,而是封装了字符数组的类,提供了更加丰富和安全的操作接口。在这一章中,我们将从字符串的定义开始,深入探讨字符数组与在字符串处理上的异同。理解基础概念是掌握字符串操作的第一步,也是后续各种高级字符串处理技术的基石。无论你是初学者还是经验丰富的开发人员,掌握字符串的基本知识都将对你的编程之路大有裨益。
2025-07-26 11:22:57
697
原创 掌握FIRST集和FOLLOW集的构建方法与解析应用
在编译原理中,理解FIRST集的定义及如何计算它是构建解析器的基石。FIRST集表示一个非终结符或输入串的前缀集,包含所有可能的起始终结符。以下是详细的定义与计算步骤:FIRST集是编译理论中用于语法分析的一个集合,它包含了某个非终结符能够推导出的所有可能的终结符串的第一个终结符。形式上,对于文法G中的非终结符A,FIRST(A)是从A出发能推导出的终结符串的集合。FOLLOW集是编译原理中的一个重要概念,它用于在语法分析阶段确定非终结符后可能出现的终结符集合。
2025-07-26 10:26:54
955
原创 BUS Hound 5.0:USB设备开发与调试的全面解决方案
BUS Hound 5.0的用户界面设计简洁直观,方便用户快速上手。以下是主要功能区域和工具栏的介绍:工具栏:包含启动监控、停止监控、保存记录和打开现有记录等快速操作按钮。菜单栏:从“View”菜单可以切换各种视图,如“Timeline”视图、“Hex Dump”视图等。而“Tools”菜单中可访问日志分析、过滤器配置等高级功能。设备状态栏:显示当前连接的USB设备列表及其状态。事件日志:记录所有捕获的USB事件,包括设备插入、移除、数据传输等。
2025-07-26 09:37:04
653
原创 探索混沌理论与时间序列预测
混沌理论是现代数学的一个分支,它研究在确定性系统中不规则、不可预测的行为,这种行为表现出的复杂性和混沌,即使在没有随机性参与的情况下也会出现。时间序列作为数据点按照时间顺序排列的序列,是分析和预测混沌行为的重要工具。混沌理论与时间序列结合,可以帮助我们理解和预测自然界和社会现象中的复杂动态行为。Ergodicity(遍历性)是遍历理论中的一个核心概念,它指的是系统的每一个轨道在长时间演化中几乎覆盖整个相空间。具有ergodicity性质的系统,其长时间行为在统计意义上与初始条件无关。
2025-07-26 09:27:20
592
原创 MyBatis核心DTD文件解析与配置实践
MyBatis 是一款优秀的持久层框架,其前身是 Apache 的开源项目 iBatis。2010年,iBatis 进行了重构并更名为 MyBatis。它提供了一种新思路:通过 XML 或注解的方式将对象和 SQL 语句关联起来,实现了对象模型与数据库模型的分离,使得 SQL 语句的管理更加清晰。MyBatis提供了多个注解,用于简化映射配置。以下是一些常用的注解:@Select用于执行查询操作。@Insert用于插入数据操作。@Update用于更新数据操作。@Delete。
2025-07-24 16:42:37
938
原创 SSM框架注册功能实战教程
SSM框架是指Spring、SpringMVC和MyBatis这三个框架的组合使用。Spring是一个轻量级的Java开发框架,旨在简化企业级应用开发,通过依赖注入、面向切面编程等功能提供企业应用服务。SpringMVC是基于Spring的一个MVC框架,它把Web层进行分离,提供了一个清晰的视图解析,实现了Web层的组件化管理。MyBatis是一个支持定制化SQL、存储过程以及高级映射的持久层框架。
2025-07-24 16:41:26
888
原创 HTML5文件导入导出示例与JavaScript实现.zip
FileReader对象允许Web应用程序异步读取存储在用户计算机上的文件(或原始数据缓冲区)的内容,使用File或Blob对象来指定要读取的文件或数据。主要用途包括:读取由<input>元素选取的文件。通过拖放接口选取的文件。通过API在Web Workers中读取文件。此对象提供了几个读取文件的方法,以适应不同的需求:: 读取文本文件,返回文件内容。: 读取文件内容为二进制字符串。: 将文件读取为DataURL。
2025-07-24 16:36:08
741
原创 Qt贪吃蛇游戏的完整源代码剖析
Qt是一个跨平台的C++图形界面应用程序框架,由Trolltech公司开发,现在属于Nokia公司。由于其简洁的编程接口和高度的可移植性,Qt在业界有着广泛的使用。控制结构是编程中用于控制程序流程的语句,如条件判断和循环。函数是代码的模块化单元,允许代码重用和分离关注点。// if 条件语句// 执行某些操作// switch 多条件判断// 执行与值1相关的操作break;// 其他case...default:// 默认情况下的操作// for 循环i < count;
2025-07-24 16:01:44
707
原创 北大ACM竞赛培训与杭电ACM题库实战资料整合
ACM国际大学生程序设计竞赛(ACM ICPC)是世界上最权威的计算机程序设计竞赛之一,自1970年起,吸引了全球顶尖高校和计算机精英的关注和参与。它不仅是学生展示编程实力的平台,也是技术交流和人才发掘的重要场所。竞赛要求参赛者在有限时间内解决复杂的算法问题,这不仅考验了个人的编程技巧,更重要的是考察团队合作和问题解决能力。ACM ICPC的核心在于算法与数据结构的深入理解及应用。参赛队伍通常由三人组成,他们需要合作完成一系列编码挑战。
2025-07-24 15:06:23
702
原创 Matlab环境下人工势场法路径规划实战项目
人工势场法是一种常用于移动机器人路径规划中的方法。通过模拟自然界中物体之间的相互作用力,该方法构建出一个虚拟的势场环境,然后通过计算机器人在势场中的受力情况来引导其完成从起点到终点的路径规划。在人工势场法路径规划中,环境可以表示为离散空间或连续空间。离散空间通过网格划分整个规划区域,每个网格表示一个位置。在每个网格点上,路径搜索是有限且明确的,适合于复杂度较低、对精度要求不高的情况。连续空间则将环境视作无界的,可进行任意精度的计算,适合于要求高精度的应用场景,如机器人避障等。
2025-07-24 14:53:29
716
原创 构建智能互联的汽车物联网HTML5网站模板
htmltable {th, td {th {pre {简介:在数字化时代背景下,汽车物联网技术推动了汽车行业智能化与互联化的发展。HTML5技术提供强大的支持,使开发者能快速构建交互性强、响应速度快、兼容性好的汽车企业在线平台。汽车物联网HTML5模板设计融合了多媒体元素和语义化标签,采用响应式设计,提供了一站式解决方案,包含多个模块和丰富的交互功能,极大降低了建站成本并提升了用户体验,有效促进了与用户的互动和品牌形象提升。
2025-07-24 11:04:30
819
原创 离线图片文字提取工具——OCR技术应用
特征提取是光学字符识别(OCR)技术中的核心环节,它关注于从图像中提取出对识别过程有帮助的信息,同时剔除冗余数据。图像中包含了丰富的信息,但并非所有的信息都对最终的识别结果有用,因此需要经过筛选和转换以突出那些有助于区分不同字符的关键特征。特征提取的重要性体现在它能够降低数据的维度,提高模式识别的效率。有效提取的特征能够提升OCR系统对字符的区分能力,减少噪声和非目标因素的干扰,从而提高整体的识别精度。
2025-07-24 10:12:59
884
原创 CMSIS_5-5.6.0:Cortex-M微控制器软件开发标准包
CMSIS是微控制器软件开发的基础,它定义了一系列标准和接口,允许软件组件在不同厂商的Cortex-M处理器之间轻松移植。该标准包括了几个关键部分,如硬件抽象层(HAL),核心外设访问库,实时操作系统(RTOS)接口,数字信号处理(DSP)库和设备驱动接口(Driver)。CMSIS(Cortex Microcontroller Software Interface Standard)是ARM公司推出的针对Cortex-M系列处理器的软件接口标准。它的目的是简化软件开发,提升软件的可移植性和可重用性。
2025-07-24 09:46:41
869
原创 PCA算法实践:PPT解析与Python代码实现
htmltable {th, td {th {pre {简介:主成分分析(PCA)是数据分析中用于降维和特征提取的技术,尤其在机器学习的高维数据处理中占据重要地位。PCA通过最大化方差方向来确定数据的主要成分,从而简化数据结构,减少不必要的信息冗余,提升模型效率和解释性。应用场合包括数据可视化、特征选择、模型预处理和计算效率提升。
2025-07-24 09:21:27
742
网页设计原则与实践指南
2025-05-17
Python Web开发快速入门:使用FastApi
2025-05-09
网络应用黑客手册:安全漏洞攻防指南
2025-05-02
WordPress站内SEO优化指南
2025-04-24
网络世界的安全与匿名
2025-04-16
专业Linux编程指南
2025-03-31
树结构数据的有效压缩算法研究
2025-03-18
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人