- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
上海建桥学院
本科《数据结构》实验报告(二)课程名称: 数据结构 实验类型: 综合 实验室名称: 机房 开课系: 信息技术系 学生姓名: 专业: 学号: 指导老师:实验二:线性表应用——顺序表
实验日期: 2011 年 9 月 日评阅成绩:实验目的及要求
1. 熟练掌握线性表的基本操作在顺序存储上的实现;
2. 以线性表的各种操作(建立、插入、删除、遍历等)的实现为重点;
3. 掌握线性表的顺序存储结构的定义和基本操作的实现;
4. 通过本实验加深对C语言的使用(特别是函数调用的参数传递、指针类型的应用)。
实验内容
已知程序文件seqlist.cpp已给出学生身高信息顺序表的类型定义和基本运算函数定义。
(1)顺序表类型定义
typedef struct {int xh; /*学号*/float sg; /*身高*/int sex; /*性别,0为男生,1为女生*/
} datatype;
typedef struct{datatype data[MAX]; /*存放顺序表元素的数组*/int last;/*表示data中实际存放元素个数*/
}Seqlist;(2)基本运算函数原型
void initList(Seqlist *lp);/*置一个空表*/
void createList(Seqlist *lp);/*建一个学生顺序表*/
void sort_xh(Seqlist *lp);/*按学号排序*/
void Error(char *s);/*自定义错误处理函数*/
void pntList(Seqlist *lp);/*输出学生表*/
void save(Seqlist *lp,char strname[]);/*保存学生顺序表到指定文件*/
任务一
阅读程序seqlist.cpp(见电子文档),理解顺序表类型Seqlist和基本运算函数。
任务二
1.题目要求
创建一个新的程序文件sy2.cpp,请调用seqlist.cpp提供的功能函数(以#include “seqlist.cpp” 方式导入函数库)及自定义的函数完成以下操作:
创建一个包含学生学号、身高、性别的学生身高信息表并输出到屏幕,学生信息从records.txt文件读取;
对已建立的学生身高信息表按学号从小到大排序,并把结果写入到数据文件中(result.txt);
从键盘输入一位学生的相关信息插入到已排序的学生身高信息表中后仍然保持学号的有序性;
对插入后的学生身高信息表进行倒置,结果输出在屏幕;
从键盘输入一个身高值,统计与该身高相同的学生个数并输出在屏幕;
将原学生表拆分为男生身高信息表和女生身高信息表,分别输出在屏幕上。
在程序文件sy2.cpp需再定义以下四个功能函数:
(1)void insertX(Seqlist *lp, datatype x)
功能:在学号从小到大排序的学生表中插入值为x的学生仍保持学号的有序性
(2)void reverse(Seqlist *lp)
功能:对lp指向的顺序表进行倒置操作
(3)int count(Seqlist *lp,float y)
功能:统计学生表中身高值为y的学生数并返回
(4)void split(Seqlist *lp, Seqlist *lpm, Seqlist *lpfm)
功能:对原lp学生表拆分成男生身高表lpm与女生身高表lpfm
2.sy2.cpp源程序清单(含必要的注释)
#include seqlist.cpp
void insertX(Seqlist *lp,datatype x);/*表中插入值为x的学生*/
void reverse(Seqlist *lp);/*将表倒置*/
int count(Seqlist *lp,float y);/*统计学生表中身高值为y的学生数量*/
void split(Seqlist *lp, Seqlist *lpm, Seqlist *lpfm);/*将表拆分成男生表和女生表*/
void main()
{
Seqlist lp;
Seqlist lpm;
Seqlist lpfm;/*定义结构变量*/
datatype x;/*定义插入学生的数组下标*/
char strname[]=result.txt;/*定义保存学生顺序表的文件名*/
float sg;
initList(lp);
createList(lp);
pntList(lp);/*把学生身高信息表并输出到屏幕,学生信息从records.txt文件读取*/
sort_xh(lp);
save(lp,strname);/*对已建立的学生身高信息表按学号从小到大排序,并把结果写入到数据文
文档评论(0)