- 博客(28)
- 收藏
- 关注
原创 走进Java:学生管理系统进阶
上一篇文章当中,写了一个简单的学生管理系统,今天在这个系统的基础上,实现一个基于用户登录注册的学生管理系统。
2025-03-31 19:18:48
1565
51
原创 走进Java:实现一个简单的学生管理系统
ArrayList是Java中一个非常的集合类,可以把它看作为一种动态数组,并且可以存储任意类型的元素,他有以下一些特点。动态大小:与传统数组不同,ArrayList的大小能够动态调整。当添加元素使数组容量不足时,ArrayList会自动扩容。允许存储重复元素:你可以在ArrayList里存储多个相同的元素。有序集合:元素会按照插入的顺序进行存储,你能够通过索引访问特定位置的元素。可存储不同类型元素:借助泛型,你既可以指定ArrayList存储特定类型的元素,也可以存储Object。
2025-03-27 09:15:07
823
7
原创 走进Java:String字符串的基本使用
String是JDK提供的一个类,是引用类型,并不是基本的数据类型,String用于字符串操作,在之前学习c语言的时候,对于一些字符串,会初始化字符数组表示。在Java中,String像是一个很大的char数组,我们在定义字符串的时候,不需要再去像上方代码一样去定义,而是直接可以使用String去定义。String就像是很大的char数组,但相比于char数组而言,String可以做字符串拼接操作,而char数组并不能直接去做字符串的拼接,如下代码。
2025-03-19 20:05:14
1629
96
原创 走进Java:Integer128陷阱
今天在学习Java的时候遇到了下面几个问题。我会认为这个问题的输出结果是true、true、true、true。但是在运行的时候发现,结果并不是想象中的那样子。正确答案如下。
2025-03-17 16:36:41
5634
61
原创 走进Java:类和对象的初步理解
对于Java初学者来说,类和对象是一个有些不太好理解的知识点,在学习类和对象之前,会接触到Java中的八大基本数据类型。
2025-03-13 14:02:16
1231
42
原创 深入C语言:指针与数组的经典笔试题剖析
是C语言中的一个操作符,用于计算变量或数据类型所占内存空间的大小,单位是字节。它不关心内存中存储的具体数据内容,只关注内存空间的大小。是C语言标准库中的一个函数,用于计算字符串的长度。计算的是两个指针之间的元素个数差,结果为-4。从传入的字符串指针开始,向后查找直到遇到。的初始化使用了逗号表达式,实际初始化为。是结构体指针,结构体大小为20字节,会继续向后查找,可能导致越界访问。是第一行最后一个元素,值为5。会继续向后查找,直到遇到。是最后一个元素,值为10。的结果是不确定的,因为。是最后一个元素地址,
2025-03-05 16:08:47
2807
96
原创 深入理解指针与回调函数:从基础到实践
回调函数(Callback Function)是一种通过函数指针调用的函数。简单来说,回调函数是一个在特定事件或条件发生时被调用的函数。回调函数不是由该函数的实现方直接调用,而是通过函数指针传递给另一个函数,由该函数在适当的时机调用。qsort是C标准库中的一个函数,用于对数组进行排序。base:指向要排序的数组的第一个元素的指针。nmemb:数组中元素的个数。size:数组中每个元素的大小(以字节为单位)。compar:指向比较函数的指针。这个函数用于比较两个元素的大小。
2025-03-03 15:38:32
1730
79
原创 指针的魔法世界:从字符指针到函数指针,解锁C语言的终极奥秘!
通过本篇博文,我们深入探讨了字符指针、数组指针、二维数组传参的本质、函数指针以及函数指针数组的使用。指针是C语言中非常强大的工具,理解指针的用法可以帮助我们编写更高效、更灵活的代码。希望本文的内容能够帮助你更好地理解指针的高级用法。
2025-02-28 20:59:40
1677
32
原创 指针与数组:深入C语言的内存操作艺术
那么在数组传参的时候,传递的就是数组名呀,也就是说从本质上讲,数组传参传递的就是数组首元素的地址呢。就是整型一维数组中的元素啦。运行后你会发现,数组名和数组首元素的地址打印出来的结果是一模一样的呀,这就再次印证了数组名就是数组首元素(也就是第一个元素)的地址这一说法。在编译器处理数组元素访问的时候,实际上就是将其转换成首元素的地址加上偏移量求出元素的地址,然后再通过解引用的方式来访问元素的哟。sizeof(数组名),sizeof中单独放数组名,这⾥的数组名表⽰整个数组,计算的是整个数组的⼤⼩,单位是字节。
2024-12-27 20:35:17
2058
30
原创 指针的奥秘:深入探索内存的秘密
在计算机编程的广阔天地中,指针作为一种独特的数据类型,它不仅是C语言的核心,也是理解计算机内存管理的基石。指针的概念虽然强大,但对于初学者来说,它常常是学习过程中的一个难点。本文旨在揭开指针的神秘面纱,带你一探究竟,从基础概念到高级应用,全面解析指针的奥秘。内存编址是计算机能够高效运行的基础。它使得CPU能够快速准确地访问内存中的任何数据,就像我们能够通过房间号快速找到宿舍楼中的朋友一样。这种编址系统是硬件设计的一部分,是计算机内部通信和数据传递的基础。
2024-11-25 12:45:06
1676
42
原创 深入理解递归:从基础到实践
在C语言中,递归通常用于解决那些可以分解为相似子问题的问题。函数不返回,函数对应的栈帧空间就⼀直占⽤,所以如果函数调⽤中存在递归调⽤的话,每⼀次递归函数调⽤都会开辟属于⾃⼰的栈帧空间,直到函数递归不再继续,开始回归,才逐层释放栈帧空间。当我们n输⼊为50的时候,需要很⻓时间才能算出结果,这个计算所花费的时间,是我们很难接受的,这也说明递归的写法是⾮常低效的,那是为什么呢?事实上,我们看到的许多问题是以递归的形式进⾏解释的,这只是因为它⽐⾮递归的形式更加清晰,但是这些问题的迭代实现往往⽐递归实现效率更⾼。
2024-10-31 23:42:20
1605
51
原创 扫雷游戏的分析、设计与代码实现详解
扫雷游戏作为一款经典的益智游戏,深受广大玩家喜爱。它不仅考验玩家的逻辑思维能力,还需要一定的策略和运气。本文将详细介绍如何使用 C 语言实现一个简单的扫雷游戏,包括游戏功能的分析、数据结构的设计、文件结构的规划以及具体的代码实现。通过阅读本文,你将对扫雷游戏的实现原理有更深入的理解,并且可以根据本文提供的代码进行实践和拓展。游戏平台与实现方式本扫雷游戏使用控制台进行实现。游戏操作与流程玩家可以通过菜单选择继续玩或者退出游戏。游戏的棋盘规格为 9*9 的格子。默认随机布置 10 个雷。
2024-10-24 21:38:01
1858
33
原创 函数的力量:掌握C语言的基石
在数学的世界里,我们早已邂逅了函数这一概念,例如那条简洁的直线方程 y=kx+b,其中 k 和 b 是常数。只要你给出一个 x 值,它就能准确无误地返回对应的 y 值。这一概念在 C 语言的编程领域同样适用,函数(有时也被称作子程序)在这里扮演着至关重要的角色。在 C 语言中,函数是一段执行特定任务的代码,它遵循特定的编写规则和调用方式。想象一下,一个复杂的软件程序,就像一座由无数块乐高积木搭建的城堡。每一块积木,就好比一个函数,负责完成一个具体的小任务。
2024-10-21 15:52:44
1710
9
原创 数组编程艺术:从基础到高级技巧
在C99之前,数组的大小必须在编译时确定,要么通过常量表达式指定,要么在数组初始化时省略大小。变长数组打破了这一限制,允许使用变量来定义数组的大小。int n = 10;int arr[n];在这个例子中,数组arr的大小由变量n的值决定,这使得数组的大小可以在运行时确定。本篇文章全面介绍了数组的使用,从一维到多维数组的创建、初始化、内存存储和操作。探讨了C99的变长数组,并提供了字符移动和二分查找的编程练习,帮助读者深入理解并掌握数组的应用。
2024-10-16 16:17:05
1621
12
原创 猜字游戏背后:C语言编程技巧解析
通过这篇文章,我们学习了如何在C语言中生成随机数,并使用这些随机数来创建一个简单的猜数字游戏。这个练习不仅帮助我们理解了随机数的生成原理,还让我们熟悉了如何接收用户输入和处理条件逻辑。希望你喜欢这个小游戏,并能从中学到一些有用的编程知识。
2024-10-13 18:44:01
1207
9
原创 实验2:数据查询
3. 对student_info表,查询学生的学号、姓名、性别、出生日期及家庭住址,查询结果先按照性别的由小到大排序,性别相同的再按学号由大到小排序。5. 使用UNION运算符针student_info表中姓“刘”的学生的学号、姓名与姓“张”的学生的学号、姓名返回在一个表中。(4)使用ALL子查询查找学号为0001的学生的分数比学号为0002的学生的最高成绩还要高的课程编号和分数。(3)使用ANY子查询查找学号为0001的学生的分数比0002号的学生的最低分数高的课程编号和分数。
2024-06-20 23:04:15
578
7
原创 开启数据之旅:MySQL入门指南与实用技巧大揭秘
数据查询是数据库的核心操作,是使用频率最高的操作。SQL提供了SELECT语句进行数据库的查询,该语句具有灵活的使用方式和丰富的功能。SELECT语句的基本语法如下:SELECT * |<列名|列表达式> [,<列名!列表达式>]......FROM <表名或视图名>[,<表名或视图名>]......[ WHERE <条件表达式> ]GROUP BY <分组列名1][,<分组列名2>]......
2024-06-20 22:58:03
1305
7
原创 实验一 数据库和表的管理
4. 使用SQL语句INSERT向studentsdb数据库的student_info、curriculum、grade表插入数据,各表数据如表4-表6所示。3. 使用SQL语句在studentsdb数据库创建数据表student_info、curriculum、grade,三个表的数据结构如表1-表3所示。8. 使用SQL语句创建数据库studb,并在此数据库下创建表stu,表结构与数据与studentsdb的student_info表相同。3. 学会使用SQL语句创建、修改、删除表。
2024-06-09 18:30:31
1028
1
原创 数据世界的导航者:揭秘MySQL的强大与魅力
DDL用来定义修改、删除数据库中的各种对象,包括创建、修改、删除或者重命名模式对象(CREATE、ALTER、DROP、RENAME)的语句,以及删除表中所有行但不删除表(TRUNCATE)的语句等。数据库是存放数据的容器,在设计一个应用系统时必须先设计数据库。在MySQL中一个数据服务器可以包含多个数据库。学习MySQL不仅仅是为了掌握一种技术,更是为了理解数据如何在现代社会中发挥作用,以及如何利用这些数据来创造更好的产品和服务。
2024-06-09 17:01:30
1065
7
原创 探索c语言:深入了解指针与数组
在这里我们发现&arr[0]和&arr[0]+1相差4个字节,arr和arr+1相差4个字节,是因为&arr[0]和arr都是首元素的地址,+1是跳过一个元素(跳过一个整型)。那么在数组传参的时候,传递的是数组名,也就是说本质上数组传参本质上传递的是数组首元素的地址。sizeof(数组名),sizeof中单独放数组名,这里的数组名表示整个数组,计算的是整个数组的大小,单位是字节。&数组名,这里的数组名表示整个数组,取出的是整个数组的地址(整个数组和首元素的地址是有区别的)//等价于pa=&b。
2024-05-25 15:49:58
382
3
原创 探索c语言:深入了解指针
我们可以通过一个小案例来了了解:假设有一栋宿舍楼,把你放在楼里,楼上有100个房间号,但房间里没有编号,刚好你的一个朋友找你玩,如果想要找到你就得挨个房间找,这样子效率很低,但是如果我们根据楼层和楼层的房间号的情况,给每个房间编上号,如:1 一楼:101 102 103......2 二楼: 201 202 203................有了房间号,你的朋友就可以快速找到你。把上面的问题放到计算机里,那会怎么样呢?
2024-05-25 15:49:44
796
原创 零基础学习操作符
num的反码是:num=11111111 11111111 11111111 11111001。num的补码是:num=11111111 11111111 11111111 11111010。我们在学习中有看到+、-、*、/、%等,其实这些就是操作符,在c语言中操作符分为几大类。在这两个右移中,最常用的是算数右移,大家也不要纠结于逻辑右移。算术右移:左边用原该值的符号位填充,右边丢弃。位操作符有:&、|、^、~,操作数必须是整数。逻辑右移:左边用0填充,右边丢弃。左移:
2024-05-10 15:04:29
337
2
原创 零基础学习2进制,8进制,16进制
16进制的数字是由0-9和a-f(大小不分)组成的,a表示十进制中的10,依次类推f表示10进制中的15。4个2进制数转化为一位16进制的数,从右到左开始向左每4个2进制换算成一个16进制,如果不够为的话,直接换算。在我们生活中10进制是最常见的。有符号整数的三种表示方法均有符号位和数值位,这两部分,在2进制中,从左到右数,第一位是符号位,剩下的是数值位。我们平常都听过说过2进制,8进制,10进制,16进制,那是什么意思呢?如2进制中的01101011,换成8进制:0153,0开头的数字,会当成8进制。
2024-05-04 23:58:39
520
原创 VS启动扫雷游戏
扫雷游戏是一种经典的单人电脑游戏,玩家要在一个由方块组成的区域中揭开覆盖在方块上的地雷,避免踩到地雷并揭示出隐藏在周围数字方块上的地雷数目以帮助玩家推断周围地雷的位置。如果我么要排查一个坐标,这个位坐标不是雷,这个坐标的周围有多少个雷,那就需要我们把这些排查出雷的信息记录和储存起来,那雷的个数信息存放在哪,如果我们放在雷的数组里,那就会混淆,这就会使我们很难完成扫雷个任务。再把没有雷的周围如果有雷就显示有几个。假设我们要排查(2,2)这个坐标,我们要访问一圈周围的8个黄色位置,统计雷的个数是1的有多少个。
2024-04-19 11:47:26
805
2
原创 小青蛙跳台阶
从上面的例子上,我们可以很清楚的了解到递归其实就是重复调用函数自身实现循环。优点就是a.用有限的循环语句实现无限集合;b.代码易于理解;c.大问题转化成小问题。缺点:a.递归不断调用函数,导致浪费空间;b.容易导致堆栈溢出。迭代函数内某段代码实现循环。优点就是a.效率高,代码运行的时间只会随循环的增加而增加,相对于递归的话,它没有额外开销。缺点:a.代码难推理;b.相对于代码它没递归的好理解。写者可以根据利弊来写代码。
2024-03-28 11:56:55
1179
4
原创 函数递归
递归是在C语言中绕不开的一个话题,那究竟什么是递归呢?递归,就是函数在运行的过程中调用自己的就叫递归。//main函数中又调用了main函数return 0;上述就是一个简单的递归函数,上面的代码是为了展示递归的基本形式,不是为了解决问题,最终代码会陷入死循环里,导致栈溢出来。就会这样子。
2024-03-23 13:11:39
798
5
原创 初始C语言
C语言程序是从main函数开始执行,main函数是程序的入口,一个函数有且只有一个main函数,int表示main函数执行结束后返回一个整型类型的值,而return 恰好就是返回的意思。所以main函数最后写return 0printf()是一个库函数,它的功能是实现屏幕上信息的打印,例如printf("hello"),实则是在电脑打印hello。只要想要把打印的一串字符放在双引号中并传递给printf()函数就可以打印。当然,printf函数也可以打印其他数据类型的。//printf打印整形。
2024-01-04 19:19:00
1124
2
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人