自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(303)
  • 收藏
  • 关注

原创 一个大一计算机学生的学期总结(2022下半年)

一个大一计算机学生的学期总结(2022下半年)

2022-06-10 08:10:08 6044 40

原创 个人目标:计算机学生如何实现经济独立(分享)

经济独立前言一.网站1.CODING 码币2.开源众包3.程序员客栈4.英选5.开发邦6.猿急送7.人人开发8.我爱方案网9.码易10.我要外包网二.接单时注意事项细节决定成败!前言       在评论区有小伙伴问我如何实现经济独立,在此我就仅分享我的意见与想法,希望对你有所帮助,当然我的必然不全面,博主我也正在这条路上走着,还在不断学习中,不足之处欢迎在评论区友善的指出,一起努力进步。   &nbs

2021-12-31 15:48:44 1317 17

原创 一个大一计算机学生的学期总结(2022年)

学期总结一. 为什么选择计算机这一专业1.个人的成长2.优秀的前景3薪资待遇二.这学期我收获了什么关于python语言三.起始打印三角形99乘法表四.课堂练习中期的总结五.本学期最后的专业学生管理系统一个是文件型一个是数据库型六.假期的安排一直奉行的话一. 为什么选择计算机这一专业1.个人的成长(1) 起始于小时候的好奇,小时候因为家里有一台老式的计算机,也就是大家现在所调侃的坨坨机、方块电脑。因为当时我们小姨要考公务员然后每天下午的时候就会看见她坐在计算机前忙碌,我们小姨很疼我,所以每次来的时候都会

2021-12-29 22:21:39 14722 54

原创 Python项目:学生管理系统连接MySQL数据库(增删改查、排序、统计、显示所有信息)

文章目录一程序功能(Function)1. 功能概述2. 思维导图二.开始实践战前准备定义学生管理系统菜单定义主函数1.录入学生信息2.查找学生信息3.删除学生信息4.修改学生信息5.排序6.统计总人数7.显示学生所有信息一程序功能(Function)1. 功能概述利用Python完成一个关于MySQL数据库的学生信息的增删改查程序,主要涉及知识点:游标的运用、SQL语句以及之前学习的基础知识。2. 思维导图想法已有开始实践二.开始实践战前准备你需要先导入sqlite3 模块与pymy

2021-12-28 00:32:14 7537 7

原创 Python项目:词频统计 两种方法简单易懂

统计文件里每个单词的个数思路:分别统计文档中的单词,与出现的次数用两个列表将其保存起来,最后再用zip()函数连接输出**想法成立开始实践方法一:# 导入文件with open("passage.txt", 'r') as file: dates = file.readlines()# 处理words = []for i in dates: words += i.replace("\n", "").split(" ") # 用空字符来代替换行 words +是为了不被覆

2021-12-05 16:19:05 1422

原创 6.5 MySQL的并发控制(表级锁、行级锁、意向锁)

在实际应用中,意向锁有助于减少死锁的可能性,因为事务在申请行级锁之前,其他事务可以通过检查意向锁来预测潜在的锁冲突,从而避免等待或冲突。MySQL的行级锁是一种更细粒度的锁定机制,它允许多个事务同时访问表中的不同行,从而大大提高了数据库的并发性能。在MySQL中,意向锁(Intention Locks)是InnoDB存储引擎特有的一种锁,用于在多粒度锁定系统中表明事务对表中某些行加锁的意图。在使用表级锁时,需要考虑事务的持续时间和锁的粒度,以避免长时间锁定表资源,影响其他事务的执行。

2024-09-20 14:36:04 870

原创 6.4 MySQL 的封锁机制(一二三级封锁协议)

在实际应用中,锁的粒度和类型需要根据业务需求和性能考虑来选择。意向锁是InnoDB用来支持多粒度锁定的一种机制,它允许在不同粒度上锁定数据,同时保持一致性和兼容性。在MySQL中,死锁是一个常见的并发问题,当两个或多个事务在等待对方释放资源时,就会发生死锁。在MySQL中,封锁协议是确保数据一致性和完整性的关键机制。在MySQL中,锁是并发控制的重要机制,用于管理多个事务对同一资源的访问。通过上述措施,可以有效地检测、解决和预防MySQL中的死锁问题,从而提高数据库的性能和稳定性。

2024-09-20 14:25:43 613

原创 6.3 MySQL并发控制(丢失更新、隔离级别与隔离级别设置)

过高的隔离级别可能会影响数据库的并发性能,而过低的隔离级别可能会导致数据一致性问题。在MySQL中,当多个事务并发执行时,可能会遇到一些问题,如丢失更新、不可重复读和读取数据的一致性问题。MySQL中的事务隔离级别用于解决并发事务中的一些问题,如脏读、不可重复读和幻读。在实际应用中,通过设置适当的事务隔离级别和使用锁,可以避免这些问题,确保数据库的一致性和数据的完整性。是MySQL的默认隔离级别,因为它在避免大多数并发问题的同时,还能够提供较好的并发性能。:事务B读取了未提交的数据,事务A最终回滚。

2024-09-20 14:12:23 542

原创 6.2 MySQL的事务详细(ACID特性、事务控制语句、表结构)

MySQL事务是一个非常重要的特性,它确保了数据库操作的原子性、一致性、隔离性和持久性(ACID原则)。

2024-09-20 13:59:56 951

原创 第六章:MySQL的触发器与事务处理

触发器可以用来强制执行业务规则、维护数据完整性、自动更新数据,或者记录数据变化等。事件驱动:触发器是事件驱动的。这意味着它们会在特定的数据库事件(如插入、更新或删除操作)发生时被触发。这些事件可以是单个操作,也可以是批量操作。自动执行:一旦触发器被定义并关联到特定的表和事件上,它就会在满足条件时自动执行。不需要手动调用触发器,它们是透明的,对数据库用户是隐藏的。业务规则的强制:触发器可以用来强制执行数据库的业务规则和完整性约束。

2024-09-20 13:48:07 539

原创 C语言求1-1/2+1/3-1/4+1/5....+1/99-1/100=

【代码】C语言求1-1/2+1/3-1/4+1/5....+1/99-1/100=

2024-09-20 11:26:52 57

原创 4.7 C语言用switch语句实现多分支选择结构

语句在C语言中用于基于不同的情况执行不同的代码块,它是一种多分支选择结构,允许程序根据变量的值选择执行不同的代码路径。语句的方式在程序中非常常见,用于实现基于不同情况的多分支选择结构。在这个例子中,程序首先提示用户输入表示星期几的首字母。语句结束,不执行任何操作。语句根据输入的字符选择相应的。块,并且输入的字符不匹配任何。下面是一个流程图,展示了。评估expression。中的常量不匹配,并且没有。执行default代码。匹配default?

2024-09-19 18:05:52 580

原创 4.6 C语言选择结构的嵌套(if的嵌套)

的相对大小,然后根据第二层条件判断较大的数是否大于10。根据这些条件,程序输出相应的信息。这种嵌套选择结构使得程序能够根据不同的条件执行不同的代码块,从而实现复杂的逻辑判断。这种嵌套可以创建复杂的条件逻辑,使得程序能够根据不同的条件执行不同的代码块。在这个例子中,程序首先提示用户输入两个整数,然后使用嵌套的。结构来判断这两个整数的大小关系。在C语言中,选择结构的嵌套是指在一个。

2024-09-19 18:01:48 557

原创 4.4 C语言中逻辑运算符和逻辑表达式详解

在这个例子中,程序首先提示用户输入两个整数,然后使用逻辑运算符判断这两个整数是否都是正数、都是负数或都是零。根据逻辑表达式的结果,程序输出相应的信息。这种使用逻辑运算符的方式在程序中非常常见,用于实现复杂的条件判断和选择结构。在C语言中,逻辑运算符包括逻辑与(AND)、逻辑或(OR)和逻辑非(NOT)。逻辑表达式是由逻辑运算符连接的两个或多个布尔表达式。逻辑表达式的结果是布尔值,即真(1)或假(0)。)的优先级最高,这意味着它将首先被计算。)的优先级次之,而逻辑或(

2024-09-19 17:58:17 192

原创 第四章:C语言选择结构程序设计(if、if-else、关系运算符)

在C语言中,关系运算符的优先级是相对较低的,确保了表达式中的关系比较在算术和逻辑运算之后进行。在这个例子中,程序首先提示用户输入两个整数,然后使用关系运算符比较这两个整数。根据比较的结果,程序输出相应的信息。这种使用关系运算符的方式在程序中非常常见,用于实现条件判断和选择结构。关系表达式是由关系运算符连接的两个操作数组成的表达式。这种结构使得程序能够根据不同的条件执行不同的操作,从而实现选择结构的目的。在这个例子中,程序首先提示用户输入一个分数,然后根据分数的不同范围,使用。

2024-09-19 17:52:38 785

原创 3.5 C语言数据的输入输出(putchar、getchar、printf、scanf、input、output)

在编程中,输入(Input)和输出(Output)是两个基本的概念,它们涉及到数据的读取和显示。函数是用来从标准输入(通常是键盘)读取并格式化输入数据的标准函数之一。输出是指程序将数据发送到外部目标(如屏幕、文件、设备等)的过程。函数非常灵活,它允许你格式化输出字符串,包括文本和不同类型的变量。函数是最常用的标准输出函数之一,用于将数据输出到屏幕。在C语言中,数据的输入和输出通常使用标准库中的。函数用于从标准输入(通常是键盘)读取一个字符。是两个简单的函数,用于处理字符的输入和输出。

2024-09-18 17:10:52 936

原创 5.5 MySQL游标全解(声明游标与使用、如何进行异常处理)

在MySQL中,异常处理是指在存储过程、函数或触发器中对可能出现的错误或异常情况进行管理和响应的过程。在MySQL中,游标(Cursor)是一种用于处理存储过程内的SELECT语句结果集的对象。表中的数据,然后打开游标,通过循环提取数据,最后关闭游标。在存储过程中,你需要先声明游标,指定要操作的结果集。在这个例子中,如果存储过程执行期间发生了任何SQL异常,将执行指定的错误处理代码。是另一种声明条件处理程序的方式,它可以在存储过程、函数或触发器之外声明。在声明游标后,你需要打开它以准备提取数据。

2024-09-18 13:06:42 650

原创 5.4 存储过程全解(封装性、事务控制、存储过程与存储函数的区别……)

存储过程是一组为了完成特定功能的SQL语句的集合,这些语句集合被保存在数据库中,可以被调用执行。存储过程是数据库编程中的一个重要工具,它们提供了代码封装、性能优化、安全性增强和事务控制等优点。通过使用存储过程,开发者可以编写更加高效、安全和可靠的数据库应用程序。

2024-09-18 13:01:25 823

原创 5.3 程序流程控制语句(IF语句、CASE语句、LOOP循环、WHILE循环、REPEAT循环)

在MySQL中,程序流程控制语句允许你在存储过程、函数和触发器中控制代码的执行流程。在MySQL中,循环语句允许你重复执行一段代码,直到满足某个条件。在MySQL中,程序流程控制语句允许在存储过程、函数、触发器等数据库对象中控制代码的执行流程。循环是一种基础的循环结构,它无限次地执行代码块,直到遇到。语句提供了更复杂的条件判断,类似于编程语言中的。在条件判断语句中,变量通常用于存储和比较值。循环重复执行代码块,直到给定条件为真。循环在满足给定条件时重复执行代码块。语句在满足条件时执行一段代码。

2024-09-18 12:52:03 553

原创 5.2 MySQL存储函数(常量与变量、布尔、语句块、注释……)

在MySQL中,存储函数(Stored Function)是一种用户定义的函数,它可以在SQL语句中被调用,就像内置的MySQL函数一样。在MySQL中,变量可以用于存储用户定义的值,这些值在查询、存储过程、函数或整个会话中可以被检索和修改。日期和时间常量可以是标准的日期和时间格式,也可以是其他格式,只要它们可以用MySQL的日期和时间函数解析。在MySQL中,存储函数是一种用户定义的函数,它可以在SQL语句中被调用。在MySQL中,语句块、注释和重置语句结束标记是编写复杂SQL语句和程序时常用的工具。

2024-09-18 12:46:11 1166

原创 MySQL高级应用篇:存储函数与存储过程9000子全解(数学函数、字符串、日期和时间、系统信息函数、加密函数)

MySQL中的存储函数(Stored Function)和存储过程(Stored Procedure)都是数据库中预先编写好的SQL语句集合,它们在数据库系统中以程序的形式存储,可以在需要时被调用执行。函数,它通常用于将用户密码以加密形式存储在数据库中,但请注意,从MySQL 5.7.6开始,这个函数已被弃用。某些函数的结果可能会根据MySQL服务器的设置和版本略有不同,特别是涉及到浮点数的函数。函数每次调用都会生成一个新的随机数,所以它的结果在每次执行时都是不同的。函数则提供了一种更灵活的条件判断方式。

2024-09-18 12:36:20 1234

原创 3.4 C#的运算符和表达式详解(运算符优先级、算术运算符、逻辑运算符……)

在C#中,运算符的优先级决定了在表达式中多个运算符被求值的顺序。结合性(也称为运算符的关联性)则决定了当表达式中包含同一优先级的运算符时,运算是如何进行的。在这些表格中,我们展示了各种运算符和表达式的符号、描述、代码示例以及预期的结果。这些运算符和表达式是C#编程中的基本构建块,用于执行各种计算和条件判断。在这个示例中,展示了不同运算符的优先级和结合性如何影响表达式的求值结果。结合性决定了具有相同优先级的运算符在表达式中的求值顺序。当然,以下是C#中各种运算符和表达式的表格表达,以及简单的代码说明。

2024-09-14 11:47:15 706

原创 3.3 C#常用的数据类型(数值类型、字符串、布尔、枚举、类型转换)

在这个示例中,声明了各种整数和实数类型的变量,并为它们赋了初值。显式转换通常发生在从较大范围或精度的类型转换为较小范围或精度的类型时,因为可能会丢失数据或精度。在C#中,数值类型是用于存储数值的数据类型,它们可以进一步分为整数类型和实数类型。类型转换可以是隐式的,也可以是显式的。C# 提供了一些方法来进行数据类型的转换,这些方法可以处理隐式和显式转换无法解决的情况。对象类型是所有类的基类,可以用来引用任何类型的对象。当然,让我们通过一些简单的例子来展示布尔类型和对象类型在C#中的使用。

2024-09-14 11:35:49 678

原创 3.2 C#的变量和常量(直接常量、符号常量、应用实例)

请注意,变量在使用前应该被初始化,尤其是在它们被作为参数传递给方法或在方法中被使用时。代码中的控件索引(如。局部变量的作用域通常限于声明它的代码块,而类成员变量的作用域是整个类。方法中,我们从文本框中获取用户输入的速度和时间,将它们转换为米/秒,然后计算行驶的路程,并在结果标签中显示。在C#中,变量声明和变量赋值是两个基本的操作,它们允许你创建变量并为它们赋予值。可变变量的值可以在声明后被修改,而不可变变量的值一旦设置就不能更改。是符号常量,它们的值在编译时就已经确定,并且在程序的整个运行期间都不会改变。

2024-09-14 10:57:04 871

原创 第三章:C#语言基础(C#组成要素、程序格式、标识符)

抽象是将复杂的现实世界简化为更易于理解的模型的过程。在C#中,可以通过抽象类和接口来实现抽象。

2024-09-14 10:47:33 867

原创 3.5 操作系统的线程(定义、状态、比较、分类、模型)

线程是进程内的一个执行单元线程是进程中的一个实体,它代表了进程中的一个执行流。一个进程可以包含多个线程,每个线程都能独立执行程序的指令。线程是进程内部的执行单元,它可以与进程中的其他线程并行执行,共同完成进程的任务。线程是进程内的一个可调度实体线程是操作系统进行调度的最小单位。操作系统通过调度线程来分配CPU时间,从而实现多线程并发执行。线程的调度通常比进程调度更频繁,因为线程的创建和切换开销较小,这有助于提高系统的并发性能。线程是程序中一个相对独立的控制流线索。

2024-09-14 10:00:00 1073

原创 3.4 操作系统进程的控制(内核、微内核、进程家族树、进程控制原语)

然而,微内核也可能面临性能上的挑战,因为用户空间的服务需要通过系统调用与内核通信,这可能会增加额外的开销。微内核(Microkernel)是一种操作系统内核的设计哲学,它将操作系统的核心功能最小化,仅包括必要的服务,如进程管理、内存管理、设备驱动等。在实际的操作系统实现中,这些原语可能会有所不同,但它们的基本功能和目的是相似的。它提供了一系列基本的服务和功能,以支持用户空间程序的运行和系统的整体管理。进程控制原语是操作系统提供的一些基本操作,用于管理和控制进程的生命周期和状态。

2024-09-14 09:46:10 1126

原创 3.3 操作系统进程的状态(基本控制块、进程的挂起)全解

进程的基本状态通常描述了进程在生命周期中的不同阶段,这些状态在操作系统中被严格定义和管理。在UNIX和类UNIX操作系统中,进程控制块(PCB)是操作系统中用于描述进程的基本信息和控制进程运行的数据结构。进程的挂起状态是指进程在某些情况下被暂时从内存中移出并保存到外存(如磁盘)中的状态。在实际的操作系统中,这些状态转换是由复杂的调度算法和系统调用处理程序管理的。挂起状态是操作系统中对进程进行管理的一种重要机制,它允许系统在资源紧张时对进程进行有效的调度和管理。结构体的简化描述,实际的。

2024-09-14 09:32:43 1026

原创 3.2 进程定义与特性、进程与程序的区别、进程控制块全解

进程是操作系统进行资源分配和任务调度的一个独立单位,它是程序执行的实体,代表了程序在计算机上的一次动态执行过程。进程具有独立的地址空间,可以并发执行,且在系统中有明确定义的生命周期。在UNIX和类UNIX操作系统中,如Linux,进程控制块(Process Control Block,PCB)是操作系统中用于描述进程的基本信息和控制进程运行的数据结构。

2024-09-14 09:09:56 1066

原创 3.1 操作系统进程的描述与控制(并发执行、顺序执行)

然而,需要注意的是,随着并发编程和多线程技术的发展,现代程序设计中可能会遇到一些挑战这些特点的情况,如线程间的竞态条件和死锁问题可能会影响程序的封闭性和可再现性。程序并发执行是指在操作系统中,多个程序或任务在同一时间段内同时进行处理。然而,程序并发执行也带来了一些挑战和问题,特别是“与时间相关的错误”。在设计并发程序时,开发者需要考虑这些特点,并采取适当的同步和并发控制机制,如互斥锁、信号量、条件变量等,以确保程序的正确性和稳定性。同时,也需要对并发程序进行充分的测试,以发现和解决潜在的并发问题。

2024-09-14 08:48:55 502

原创 2.2 Visual C# 建立应用程序(人民币与美圆兑换的程序)

③ 对象事件处理函数编程。① 建立用户界面的对象。② 对象属性的设置。④ 运行和调试程序。

2024-09-13 15:56:05 178

原创 2.1 Visual C#面向对象概念

【代码】2.1 Visual C#面向对象概念。

2024-09-13 15:49:28 163

原创 4.4 元组关系演算

元组关系演算是关系数据库理论中的一个核心概念,它是关系演算语言的一种形式,用于指定数据库查询。与关系代数不同,关系演算使用逻辑表达式来描述数据的查询,而不是通过操作符对表进行操作。元组关系演算关注的是数据的内容,而不是数据的物理结构。元组关系演算是一种强大的查询语言,它允许用户以非常抽象的方式表达查询需求。在实际的数据库系统中,元组关系演算通常被转化为关系代数表达式或直接由查询优化器处理,以执行数据库查询。元组关系演算的表达式通常包含变量,这些变量在表达式中代表元组。在SQL中,元组关系演算的概念通过。

2024-09-13 14:37:07 333

原创 4.3 MySQL的关系代数全解,一篇文章给你讲透(关系代数的基本操作五种、交,自然连接、实例操作9个)

外连接操作用于包括左关系、右关系或两个关系中的所有元组,即使它们在另一个关系中没有匹配的元组。:自然连接操作用于基于两个关系中有相同名称的属性,将这些属性的值相等的元组连接起来。:θ连接操作用于基于两个关系中满足特定条件的属性,将这些属性满足条件的元组连接起来。关系代数的组合操作是在基本操作的基础上进行的,它们可以结合使用来实现更复杂的查询。表,即使某些学生没有对应的成绩记录,也列出所有学生的名字和他们的课程ID及成绩。:从选修数学的学生中去掉也选修了物理的学生,找出只选修了数学的学生。

2024-09-13 14:33:53 1104

原创 4.2 MySQL数据的完整性全解,看不懂你来找我(三大完整性规则、七种约束控制)

在MySQL数据库中,数据完整性是指确保数据库中的数据准确、有效、一致且无歧义。这些约束在数据库设计中起着至关重要的作用,它们帮助开发者维护数据的完整性和准确性。通过这些约束,我们确保了图书馆管理系统中的数据完整性和一致性。如果尝试插入违反这些约束的数据,MySQL将拒绝这些操作并返回错误。通过MySQL代码来演示如何创建上述案例中的表,并应用实体完整性、参照完整性和域完整性的规则。在MySQL中,约束是用来确保数据准确性和完整性的重要工具。这些完整性规则共同作用,确保了数据库中数据的准确性和一致性。

2024-09-13 14:10:00 883

原创 4.1 MySQL关系模型的基本原理(一个案例说明白)

这种模型的优点是它提供了一种结构化的方式来组织数据,使得数据的查询、更新和管理变得更加高效和灵活。同时,它也支持复杂的查询操作,如连接(Join)、选择(Select)、投影(Project)和除法(Divide)等。好的,让我们通过MySQL代码来演示如何创建上述案例中的表,并展示一些基本的SQL操作。:关系模式是对关系的描述,包括关系名、属性名、属性的数据类型和主键。:外键是一个或一组属性,它在一个关系中引用另一个关系的主键。,它的值可以唯一地标识关系中的每个元组。最后,我们可以删除表中的数据。

2024-09-13 13:56:34 770

原创 3.2 Java中类与对象(构造方法、封装、访问权限控制、传递、静态变量)

在Java中,类的定义是创建对象的基础。类定义了对象的属性(成员变量)和方法(成员函数),以及对象的行为和状态。// 构造方法// 公有方法// 私有方法// 静态方法在这个示例中,Person类有两个私有成员变量name和age,一个构造方法,一个公有方法,一个私有方法think,以及一个静态方法main。main方法用于创建Person对象并调用其方法。通过这些步骤,可以在Java中创建和使用对象,实现面向对象编程的各种功能。

2024-09-12 14:45:17 751

原创 3.1 Java面向对象的思想

抽象是将复杂的现实世界简化为更易于理解和操作的概念的过程。在Java中,可以通过抽象类和接口来实现抽象。

2024-09-12 13:44:10 440

原创 3.4 C语句的作用与分类和赋值语句全解(for循环,while循环)

在编程语言中,赋值语句是一种基本的语句,用于将一个值或表达式的结果赋给一个变量。这里,“变量”是已经声明的变量名,“表达式”是任何合法的表达式,它可以是常量、变量、函数调用或更复杂的表达式。C语言是一种广泛使用的编程语言,它提供了丰富的语句来控制程序的执行流程。C语言的语句是构建程序逻辑的基础,通过这些语句,程序员可以控制程序的执行流程,实现复杂的功能。:不执行任何操作的语句,通常用于循环或条件语句中,当不需要执行任何操作时使用。:控制语句用于控制程序的执行流程,包括条件语句和循环语句。

2024-09-12 11:11:47 1040

原创 2.7 Java中的数组全解(常见数组操作,二维数组,数组遍历,for循环,索引)

在Java中,数组索引越界是一种常见的运行时错误,它发生在尝试访问数组中不存在的位置时。这些示例和描述展示了Java中数组的基本使用和操作,包括声明、初始化、访问、遍历、修改、获取长度、多维数组、作为方法参数、复制和排序等。: 这种方式声明数组时只指定数组的大小,Java会自动分配内存并初始化数组元素为默认值(数值类型为0,对象引用为null)。: 这种方式声明数组时只指定数组的大小,Java会自动分配内存并初始化数组元素为默认值(数值类型为0,对象引用为null)。:Java支持多维数组,即数组的数组。

2024-09-12 09:41:15 1085

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除