- 1、本文档共4页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
实验七 链式存储结构
一、实验目的
1. 掌握链表结点定义的存储结构;
2. 掌握使用指针访问结构体数组元素;
3. 掌握数组名作为函数参数。
二、实验内容及要求
1、建立学生链表,每个结点包括:学号、姓名、性别、年龄,总成绩,并在链表上实现插入、删除、查找和输出操作;
要求:
(1)创建的链表为动态链表。(知识点:利用动态内存分配的有关函数,如malloc,free函数)
(2)定义学生结构体数组,数组元素为结构体类型,成员有学号、姓名、性别、年龄,总成绩。
(3)定义链表的创建、插入、删除、查找和输出函数,主函数里分别调用以上函数,其中创建、插入和删除函数函数类型是指针类型,函数返回值是链表起始地址。在调用以上函数前,主函数里要先完成学生结构体数组的数据输入(注意:要求按学生的学号顺序输入)。
(4)链表的创建,函数参数有两个,分别表示指向结构体数组的指针和数组元素个数。(注意:主函数调用链表的创建函数,实参分别为结构体数组名和数组元素个数)。
(5)链表插入即插入一个新生的结点,要求按学生的学号顺序插入。(注意:函数参数有两个,分别表示链表头指针和待插入结点的地址,按照插入的位置不同分情况插入。允许插入多个结点,直到输入要插入的学号为0)。
(6)链表删除即删除一个指定的结点,要求按指定学号删除指定的结点。(注意:函数参数有两个,分别表示链表头指针和要删除的学号,按照删除的位置不同分情况删除,还要考虑链表是空表和找不到要删除的结点情况。允许删除多个结点,直到输入要删除的学号为0)。
(7)链表查找要求按学生的学号进行查找。(注意:函数参数有两个,分别表示链表头指针和要查找的学号。找到该结点,输出结点全部信息。找不到该结点,输出信息提示。允许多次查找,直到输入要查找的学号为0)。
(8)链表输出要求将链表中各结点的数据依次输出。(注意:函数参数即为链表头指针)。
2、查找并计算已知一个链表中数据域值为一个指定值范围(如总成绩是良好等)的结点个数;
要求:
(1)在上一题的基础上,再定义一个统计函数。
(2)定义一个工作指针,初始值为链表起始地址。
(3)让工作指针对链表进行遍历,检查当前结点是否在指定值范围内,如是则计数。最后输出符合要求的结点个数。
(知识点:链表的遍历,工作指针的移动)
3、建立另外一个同结构的学生链表,将2个链表分别排序,并合并2个同结构链表为一个有序链表并显示数据。(增加了难度!!,可选做)。
要求:
在第一题的基础上,再定义链表排序和链表合并函数。(注意:排序函数参数有1个,表示链表头指针,函数有返回值表示链表起始地址;合并函数参数有2个,分别表示两个链表头指针,函数返回值表示链表起始地址)。
链表排序根据结点的总成绩大小进行从小到大的排序,对每个学生链表,新设一个链表头指针(作为排好序的链表头指针)。对每个学生链表,各设一个工作指针,对该链表进行遍历。遍历到每一个结点,将其插入到对应的有序链表中(插入时要在有序链表中遍历寻找插入位置)。当两个原学生链表遍历完,即可建立起两个新的学生有序链表。(知识点:链表的排序)
两个有序链表合并,需新设一个合并后的链表头指针。针对三个链表,设立三个工作指针。对两个有序链表进行遍历,比较两个工作指针所指结点的大小。将工作指针所指的较小结点先插入到新表工作指针所指结点之后,然后将该工作指针后移。重复以上操作,直至将一个链表提前插完。最后再将另一个链表的剩余段插入到新表工作指针所指结点之后即可。(知识点:两个有序链表的合并得到一个新的有序链表)
实验八 文件操作
一、实验目的
1. 掌握文件、文件缓冲系统、文件指针的概念;
2. 学会使用缓冲文件系统中的文本及流式方式将文件打开、关闭、读、写等文件操作函数;
3. 掌握并理解读写文件与文件缓冲区、程序数据区之间数据交换流程。
二、实验内容及要求
1、从键盘输入多个字符串,然后将其保存到磁盘上的文件file1.txt上,该文件打开时用文本模式;
要求:
(1)利用gets字符串函数从键盘输入多个字符串,放入到字符数组。
(2)利用fopen函数打开文件,要指定file1.txt的文件路径(注意:文件路径的表示方法)。
(3)利用fputs函数将字符数组里的字符串写到文件里(注意:在输出一个字符串后,要人为将一个’\n’写到文件里)。
(4)利用fgets函数将文件里的字符串读出显示到屏幕上
(知识点:文本文件的打开、关闭操作,fopen函数和fputs函数的使用。)
2、修改上题的程序:用结构体定义学生学号、姓名、成绩,输入若干个数据到file2.txt中,并将其显示在显示器上。
要求:
(1)定义一个结构体数组,数组元素为结构体类型,成员有学号、姓名、成绩,数组长度为SIZE。
(2)定义一个save函数,
您可能关注的文档
- 戴瑜兴《建筑智能化系统工程设计》5 第五章 火灾自动报警及消防联动系统设计.ppt
- 戴瑜兴《建筑智能化系统工程设计》4 第四章 建筑设备自动化系统设计.ppt
- 电磁场与电磁波精品教学(温州大学)第1章 矢量分析.ppt
- 戴瑜兴《建筑智能化系统工程设计》2 第二章 网络综合布线.ppt
- 戴瑜兴《建筑智能化系统工程设计》10 第十章 小区智能化系统设计.ppt
- 电磁场与电磁波精品教学(温州大学)第4章 恒定电流场.ppt
- 电磁场与电磁波精品教学(温州大学)第2章 静电场.ppt
- 电磁场与电磁波精品教学(温州大学)第6章 电磁感应.ppt
- 电磁场与电磁波精品教学(温州大学)第5章 恒定磁场.ppt
- 电磁场与电磁波精品教学(温州大学)第3章 静电场的边值问题.ppt
文档评论(0)