- 博客(9)
- 收藏
- 关注
原创 【Java】期末大作业:实现简单的通讯软件
仅用Java标准库和SQLite数据库,从零开发一款具备基本通信功能的桌面应用。这款软件实现了:✅ 用户注册与登录系统✅ 实时消息通信✅ 离线消息存储与转发✅ 直观的图形界面简单即是美:SQLite作为嵌入式数据库,完美契合小型桌面应用异常处理的重要性:数据库操作必须有完善的错误处理Swing仍具生命力:对于轻量级桌面应用,Swing开发效率极高离线能力是基础:网络不可靠环境下,本地存储确保核心功能可用。
2025-06-27 12:12:49
478
原创 【Java】手写基于链表数据结构实现的LinkedList的add方法
双向链表中的每一个node都存储了我们的元素值,下一个元素以及前一个元素。但我们可以很明显的看出,头节点以及尾节点是不同的,头节点的prev应为null,尾节点的next也应为null。所以我们在定义我们的LinkedList时也需要定义出这两个不同的节点。可以看到,我们使用链表增加时,不用再像ArrayList那样去扩容我们的数组,也不用一个个去遍历了。这样,我们就能定义出每个Node了,但是要想再动态增加更多Node,需要我们来写add方法。方法,它的作用就是为了实现我们上文中的每一个node。
2025-03-22 19:15:50
397
原创 【Java】学生管理系统
4.使用异常结束此循环(不建议此方法,(1)使用异常结束难度较大且会导致明显的性能下降,耗时长(2)降低代码的可读性与维护性(3)可能会导致我们忽略掉真正的异常(4)对于我们程序员而言,对异常是避之不及了,反而要来利用异常是违反我们的设计原则的。这个菜单很好的展示了我们学生管理系统的功能,那么下一步我们应该创建一个学生类,它包含了学生的名字,年龄,地址,学号。好了,这样之后,我们的增删查改都已经写完了,接下来的退出系统对我们而言也是小菜一碟了,这里有四种方法。这下再看我们的删除学生代码,更加清晰明了了。
2025-03-16 16:15:09
477
原创 【Java】 final 关键字
当用final修饰成员属性时,它的值无法被修改;当我们用final修饰局部变量时,我们得将其分为基本数据类型与引用数据类型,当我们修饰基本数据类型时,它的值无法被修改,但是如果我们修饰引用数据类型,却可以改变它的成员属性值,这是因为我们new出来的对象都是存放在堆空间中,而当main方法启动时就会创建一个栈空间,在main栈帧中,我们的引用数据类型是指向了堆空间中new出来的对象的地址,所以其实我们引用数据类型的值都为new出来对象它的地址,所以我们可以改变其成员变量属性值,但无法改变其地址。
2025-03-08 10:23:54
408
原创 【C】初步实现简易的三子棋
首先创建一个test.c,它的作用是用来运行程序,再创建一个game.c,它的作用是用来实现游戏的逻辑,再创建一个game.h,这是一个头文件,我们可以把game.c中的函数的声明写在其中,使得test.c可以访问这些函数,进而实现三子棋;既然已经设置好了棋盘,那棋盘中的元素也得来思考,玩家下棋使用的是‘*’,电脑下棋使用的是‘#’,如果没有棋盘的这个坐标没棋的话,就应该是‘ ’。基本的操作我们已经完成的差不多了,对于游戏而言,胜利与否是十分重要的,所以我们需要编写判断谁输谁赢的函数。
2025-02-28 13:52:39
769
原创 【C】猜数字小游戏
这里我们利用了rand函数,它的作用是根据一个种子生成一个序列,这样就可以实现生成游戏所需的数字的功能,因为rand的最大值就为32767,所以我们需要将其除以100取模,这样就可以将生成的数字限制在0-99之间,在将其加1,得到的数字范围为1-100。主函数先根据玩家输入的值利用switch判断下一步行为,1为游戏开始,0为退出游戏,输入其他为输入错误,在每个case下都应加上break,避免输出我们不要的结果。
2025-02-24 11:23:02
773
1
原创 【C】遍历素数的三种方法
素数即为质数,除了一之外只能被自己整除。 这里我们用寻找100到200中的素数作为例子。 方法一:试除法 定义一个i,它的作用是用来遍历从100到200的数,在此循环中,再次定义一个j,它的功能是从2开始,到i结束,以此来判断每一个i有无除了i本身与1还有无其他约数, 当j能被i整除时,说明此时i除了本身与1两个约数,还有另外一个约数,也就不是素数,结束循环。方法二: 方法一中有大量多余的运算,因为如果一个数大于i/2,那么它一定无法被i整除,所以我们仅需计算j<=i/2的情况。如果j>i/2则说明j在2到
2025-02-23 10:00:33
453
原创 【C】如何不使用“*”实现乘法的功能
则会导致x的值会不断跟着i的增加而增加,从而实现不了y个x相加的功能。要想x保持不变,我们可以在循环外定义一个参数z初始化为0,它可用于记录每次相加后x的值,但由于没有直接对x进行运算,x的值保持不变,才能成功实现y个x相加的功能,最后才能不用“*”实现乘法的功能。我在复习函数的时候,遇到了这道有趣的题目,它很好的锻炼了我的逻辑,遂与各位大佬分享我的思路,如果有更好的思路,欢迎各位大佬在评论区分享。
2025-02-17 00:24:26
580
1
原创 我的第一篇博客
对于编程的目标而言,肯定是要能帮助我赚钱,但要实现这个目标,我得根据各种各样的信息,自己选择出一条对于我这种低学历能走的通的路 ,就目前而言,我先得筑牢C语言基础,再学习Java,最后再学习数据结构,以争取在大一暑假的时候,能自己写出自己的Java项目,并提供我支持参加各种比赛与考取相关证书的能力,为实习与专升本加分奠定一定的基础,谈到专升本,我也需要额外学习英语,数学,政治,当然,这些优先级还是低于专业课基础。在听从我哥的建议后,我还是重新找C语言有关的课程,开始夯实自己的程序基础。
2025-02-15 23:16:50
369
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅