姓名的查找。在查找中,首先把查找链表的首地址p传递进入find函数的形参, 函find数中又定义了一个变量(根据不同的函数查找功能的不同而变化,如学好查找就定义long int型)函数find根据首地址进行读取,用for函数进行判断,如果p= =NULL则直接输出链表空置,请补充信息,其余状况才实现继续扫描。其实现过程实质是链表的遍历及按条件输出的结果。当结点的 num 成员与用户的输入值吻合时,则输出该结点的信息,否则则扫描下一个结点的信息,依次类推。当所有的结点均被扫描但仍未发现吻合的 num值时,会提示“不存在的信息”,并跳转到主菜单以实现重新操作。如果发现吻合的信息,用printf函数输出该结点的信息,即为我们所需要查找学生的信息,此时查找终止,返回主菜单。在查询函数中不改变原来连表内部保存的数值信息。Р打印部分:Р输出函数定义为无返回值(void)型,定义一个for循环,判断循环条件是当变量小于学生人数时,通过printf输出每一个结点信息。当读入最后一个结点时,循环终止,函数结束。Р写日志部分:Р首先获得系统当前时间。如果获得成功,返回时间。再写入日志。time_t nowtime声明变量nowtime为time_t 型。struct tm *timeinfo声明变量timeinfo为tm型结构指针。time_t,tm都是time.h头文件里定义的类型。time(&nowtime)调系统函数time(),获得现在时间。timeinfo=(localtime(&nowtime)) 调系统函数,获得当地现在时间,时间数据是tm型结构。Р退出部分:Р实现退出程序,在退出前清理内存。Р3.3 模块间调用关系Р注:“→”代表调用Р(1)主函数Р(2)新增Р开始Р判断学生信息是否存在Р输入学生信息Р输入要新增的学生学号Р判断学生学号是否存在Р新增成功Р新增失败Р结束Р1Р0