1 一、实验目的和要求1. 理解链表的逻辑结构特性,深入掌握链式存储结构;2. 掌握各种基本运算,实现存储空间动态管理;3. 解决一些实际的复杂问题。二、实验内容本实验采用的数据是:typedef struct { int no; char name[10]; int depno; float salary; }EmpType; typedef struct node { EmpType data; struct node *next; }EmpList; 系统任务概述链式存储方式——链表可以实现存储空间的动态管理。在链式存储中, 每个存储节点不仅包含元素本身的信息(称为数据域),而且包含有远古之间逻辑关系的信息,即一个节点中包含有后继节点的地址信息,这称为指针域, 这样可以通过一个节点的指针域方便地找到后继节点的位置。职工信息链表的主要功能就是职工信息的保存,其中包括对信息的输入、显示、修改、删除、平均工、排序等。功能需求ReadFile(EmpList *&L): 读取 emp.dat 文件中所有职工记录并建立带头节点的职工单链表 L;InputEmp(EmpList *&L): 采用头插法插入节点,完成添加一个职工记录。Display(EmpList *L): 显示单链表中L 所有职工记录。Sortno(EmpList *&L ):采用直接插入法对单链表L 按 no 递增有序排序。Sortdepno(EmpList *&L ):采用直接插入法对单链表L 按 depno 递增有序排列。Sortsalary( EmpList *&L):采用直接插入法对单链表L 按 salary递增有序排列。DelAll (EmpList *&L ):清除职工文件中全部记录并释放单链表L 中除头节点外的所有节点。SaveFile(EmpList *L): 将职工单链表L 中的所有数据存入到职工文件emp.dat 中。change(EmpList *&L ):修改职工文件中的职工信息。通过输入要修改的职工编号,*p 扫描要找的节点,再输入新的信息。aver(EmpList *L ):求职工文件中职工的平均工资。总体设计2 详细设计exci1.cpp文件包含如下函数:ReadFile(EmpList *&L):读取 emp.dat 文件中所有职工记录并建立带头节点的职工单链表 L,若存在 emp.dat 文件,,则采用尾插法建立单链表L,使用尾指针始终指向当前链表的尾节点, 将新节点插到当前链表的表尾上;若不存在该文件, 则输出“不能创建emp.dat文件”,最后输出职工单链表的记录个数。InputEmp(EmpList *&L):采用头插法插入节点*p ,创建新的存储空间,将添加的数据存放在新结点的数据域中,然后将新节点插入到当前链表的表头,完成添加一个职工记录。Display(EmpList *L):逐一扫描...