- 1、本文档共10页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
PAGE
PAGE 9
一、实验目的和要求
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):求职工文件中职工的平均工资。
总体设计
main
average
change
SaveFile
DelAll
Sortsalary
Sortdepno
Sortno
ReadFile
Display
InputEmp
详细设计
exci1.cpp文件包含如下函数:
ReadFile(EmpList *L):读取emp.dat文件中所有职工记录并建立带头节点的职工单链表L,若存在emp.dat文件,,则采用尾插法建立单链表L,使用尾指针始终指向当前链表的尾节点,将新节点插到当前链表的表尾上;若不存在该文件,则输出“不能创建emp.dat文件”,最后输出职工单链表的记录个数。
InputEmp(EmpList *L):采用头插法插入节点*p,创建新的存储空间,将添加的数据存放在新结点的数据域中,然后将新节点插入到当前链表的表头,完成添加一个职工记录。
Display(EmpList *L):逐一扫描链表的每个数据节点,并显示个节点的data域值,即显示单链表中L所有职工记录。
Sortno(EmpList *L):采用直接插入法对单链表L按no递增有序排序。先使p指向第2个数据节点,在表中通过比较找插入*p节点的前驱节点*pre,然后在*pre节点之后插入*p节点。然后扫描单链表L余下节点*p(直到p==NULL为止),实现递增有序排序。
Sortdepno(EmpList *L):采用直接插入法对单链表L按depno递增有序排列。
Sortsalary(EmpList *L):采用直接插入法对单链表L按salary递增有序排列。
DelAll(EmpList *L):清除职工文件中全部记录并释放单链表L中除头节点外的所有节点。先使p指向L-next,pre指向*p的前驱节点,扫描单链表L,当p!=NULL时,释放*pre节点,pre、p再同步后移一个节点,直到p==NULL时,pre指向尾结点,并释放。此时,除头节点外单链表全部节点释放。
SaveFile(EmpList *L):将职工单链表L中的所有数据存入到职工文件emp.dat中。
可拓展功能如下:
change(EmpList *L):修改职工文件中的职工信息。通过输入要修改的职工编号,*p扫描要找的节点,再输入新的信息。
aver(EmpList *L):求职工文件中职工的平均工资。
E-R图
职工信息=姓名+编号+部门号+工资
职工信息
工资
部门号
姓名
编号
三、编写程序(详见文件夹)
本实验采用顺序存储方式。
void DelAll(
您可能关注的文档
- 张勇:第3章金属学概念.ppt
- 张裕红酒市场整体概念.doc
- 直流设计作业指导书介绍.docx
- 有创动脉压力监测介绍.ppt
- 有创意的小王子读后感:我小心翼翼的呵护我们的爱情介绍.ppt
- 综合布线基础知识培训1概念.ppt
- 张哲1306013011螺纹千斤顶设计概念.doc
- 有道云笔记企业版(产品手册)介绍.docx
- 有关“执著”话题作文(8篇)介绍.doc
- 有关电化学的计算介绍.ppt
- 剧本杀行业报告:内容创作规范与剧本市场拓展策略.docx
- 剧本杀行业区域市场区域文化特色与市场潜力分析报告.docx
- 剧本杀行业区域市场拓展实战案例研究.docx
- 剧本杀行业区域市场拓展路径与模式探索报告.docx
- 剧本杀行业区域市场竞争态势与品牌差异化策略研究报告.docx
- 剧本杀行业2025年西北区域市场市场细分领域竞争态势与品牌竞争策略分析研究报告.docx
- 剧本杀行业2025年西北市场拓展前景预测报告.docx
- 剧本杀行业2025年长沙市场发展潜力分析报告.docx
- 剧本杀行业2025年长三角市场竞争策略与布局分析.docx
- 医疗行业数据合规:2025年数据安全法实施后的合规监管挑战与应对.docx
最近下载
- 2024新沪教版版九年级上册化学各章节必背知识点复习提纲.docx VIP
- 高中数学-思维导图(60图).pdf VIP
- 饮水机清洁技巧课件.pptx VIP
- 放学路上作文600字.docx VIP
- 应急大队档案培训.pptx
- 人体解剖学(第二版):消化系统PPT全套教学课件.pptx VIP
- 2012年下半年小学教师资格证考试真题《教育教学知识与能力》(附答案).pdf VIP
- 18.6审理旅游纠纷案件适用法律的规定(政策与法律法规 第7版).pptx VIP
- 作风建设专题党课讲稿2篇:加强作风建设,推动高质量发展.docx VIP
- (四升五)四年级语文暑假特色作业(可修改可打印).docx VIP
文档评论(0)