C语言编写二叉树的代码
该二叉树代码不使用链表进行遍历,而是使用结构体里面包含变量已经多个该结构体本身的结构体指针进行遍历。定义一个结构体,包括数据变量,和两个自身的结构体指针(二叉树的左边遍历指针和右边遍历指针两个)。函数功能包括:建立二叉树功能,先跟遍历功能,中跟遍历功能,后跟遍历功能。读出二叉树的深度功能,读出二叉树总节点个数功能。首先来建立二叉树。二叉树建立完成后,会产生根节点,通过跟节点进行先跟遍历,中跟遍历,后跟遍历等这些功能。先跟遍历:先读出根节点数据,然后进行左叉遍历,最后进行右叉遍历。中跟遍历:先进行左叉遍历,然后读出根节点数据,最后进行右叉遍历。后跟遍历:先进行左叉遍历,然后进行右叉遍历,最后读出根节点数据。读出二叉树总节点功能:通过跟节点,遍历左叉树和右叉树,两边节点的总和就是该二叉树的总节点数。读出二叉树深度的功能:分别读出左叉和右叉的深度,哪个深度深就取哪个深度,最后取出的深度加1(跟节点)就是二叉树的总深度。
C语言编写的学生管理系统代码
学生管理系统是模拟学生档案的一个代码编程案例。首先在一个结构体里面包含学生的ID(学号),姓名,学生成绩等。(意味着这是一个学生的整体信息)。首先需要编写一个学生管理系统的首页(目录菜单),提示你通过 scanf 输入需要进行的操作。操作包括:添加学生信息,删除学生信息,修改学生信息,查询学生信息,查询该ID是否存在。比如学校有新的学生入职,则需要在学生管理系统上添加新入职学生的各种信息,但是在添加过程中可能添加的学生ID已经有学生在用了,会导致学生ID会重复,所以在添加新学生信息之前先查询该ID是否存在,如果ID不存在,代表没有学生在用这个学号ID,新生可以用这个ID,如果ID存在,则代表这个ID已经被其他学生使用,新生要换ID。进入添加学生信息界面后,把学生的ID,姓名,成绩输入后即添加成功。如果该学生的成绩有所改动,则只需要进入修改学生信息界面,输入学生ID后即可进行修改学生成绩。如果需要查询某个学号的学生的成绩或者姓名,只需要进入查询学生信息界面,输入学生ID就能进行学生信息查询。如果学生已经毕业或者被开除了,则进入删除学生信息界面,输入需要删除学生的ID,进行学生的信息删除。
INCD2153键盘矩阵驱动灯珠256阶灰度变化代码
MCU和INCD2153芯片通过SPI通信,INCD2153和ICND2012或者MBI5124组成键盘矩阵,通过键盘扫描来控制键盘矩阵上所有的灯。MCU通过SPI控制INCD2153的寄存器,给寄存器输入命令,从而控制灯的颜色和灰度。用软件把图片换成灰阶数据,可以通过密集的灯珠显示图片,多张图片还可做成动图,做好的效果比LCD屏和OLED屏还好很多。颜色更加接近图片原色,还原度很高。通过键盘扫描控制每个灯珠是否有电从而控制灯的亮灭。INCD根据时序来选择不同的命令类型,通过在LE锁存的时间内,不同的SCK翻转次数来确定是什么命令类型。代码里面把所有时序和命令都封装好了,用到的时候只需要调用就行。且把显示256阶灰度的数值也放在buff里面了,还有发送灯颜色的数据也放在buff里面,使用起来很方便。使用时只需要根据自己的单片机修改一下引脚就可以直接使用。如有不懂得地方或者有问题可以联系我。
SPI驱动OLED屏代码以及图片显示
OLED屏驱动显示图片代码。还有多张图片取模后的数组。代码包括OLED屏引脚初始化,命令初始化。清屏,刷屏,显示等。显示包括很多API函数。如显示点,线,显示位置设置。清屏包括部分清屏和全部清屏。屏幕可以显示汉字,数字,英文,图片,动图等。动图就是多张图片轮询显示,流畅的接起来。显示图片需要先用图片取模软件取出图片的模放入数组进行显示。可根据图片大小进行合理方法显示。图片小可以全清屏显示。图片大可以一部分一部分的清屏显示。保证效果好就行。所有代码已经写好,LCD屏也是这样驱动和显示的。一般的OLED和LCD屏都可使用。只需要根据自己的原理图修改引脚以及根据自己的屏修改一下控制命令即可使用。主要,如果是用多个LED灯密集拼起来的屏无法使用。有不懂的地方可以问我,我会帮忙解答问题和解决遇到的困难。