数据结构实验报告模板(验证型).doc_第1页
数据结构实验报告模板(验证型).doc_第2页
数据结构实验报告模板(验证型).doc_第3页
数据结构实验报告模板(验证型).doc_第4页
数据结构实验报告模板(验证型).doc_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

数据结构实验实验报告班级: 09计应二班 姓名: 学号: 学期: 2010-2011学年第一学期 指导教师: 杨华莉 成绩: 实验一 顺序表的基本操作一、 实验目的1 掌握使用VC+6.0调试程序的基本方法;2 掌握线性表的顺序存储结构的类型定义;3 掌握顺序表的基本操作的实现,如:插入、删除、遍历、查找、排序、修改、合并等;4 掌握顺序表的应用。二、 实验要求1 认真阅读和掌握本实验的示例程序。2 上机运行示例程序,打印出程序的运行结果,并作必要的说明。3 对示例程序,按照对线性表的操作需要,在程序中至少添加2个顺序表的相关操作。如:i. 查找并显示分数在区间a,b)的学生信息;ii. 查找并显示最高分或最低分学生信息;iii. 统计不及格或及格人数及所占比例;iv. 将信息表按学号、姓名或分数升序或降序排列;v. 按学号顺序进行数据元素的插入;vi. 删除指定学号或姓名的学生信息;vii. 修改某个学生的信息;viii. 其它。4 重新改写主函数(要求必需调用自己添加的操作),打印出文件清单(自己添加的函数、修改后的主函数和运行结果)。5 对修改后的程序,分析每一个算法(函数)的时间复杂度。6 根据上述要求撰写实验报告,并简要给出算法设计小结和心得。三、 实验环境1 台式计算机每人一台;2 软件:Visual C+6.0四、 实验内容和实验结果一示例程序运行结果及说明 二 自己添加的新函数(至少2个),要求加必要的注释。SqList Delete_SqList(SqList &L)/删除学生信息 Elemtype x;int i=0; int choice=DMenu(); char name25;int num,k;if(!L.length) printf(表为空,无法删除!); exit(0);switch(choice) case 1: /按姓名删除 printf(n请输入要删除的学生的姓名n);scanf(%s,&name);k=strcmp(name,L.);/比较姓名 if(k=0) x=L.datai-1; for(int m=L.length-1;m=i-1;-m) L.datai-1=L.datai; -L.length; break; case 2: /按学号删除 printf(n请输入要删除学生的学号n);scanf(%d,&num);if(num=L.datai.num) for(int m=L.length-1;m=i-1;-m) L.datai-1=L.datai; -L.length; break; case 3:break; return L;void TongJi_SqList(SqList L)/统计信息表中学生的信息 int i; int choice=TMenu();/选择所要统计的方式的菜单 switch(choice) case 1: for(i=0;iL.length;i+)/统计男生信息 if(L.datai.sex=m) PrintElem(L.datai); break; case 2: for(i=0;iL.length;i+)/统计女生的信息 if(L.datai.sex=f) PrintElem(L.datai); break; case 3: for(i=0;iL.length;i+)/统计不及格的人 if(L.datai.score60) printf(“不及格的为:”); PrintElem(L.datai); break; case 4: for(i=0;i90) printf(“分数在90分以上的为:”); PrintElem(L.datai); break; case 5: break; void PaiXu_SqList(SqList L)/排序 int i,j,k; int choice=PMenu();/选择菜单 switch(choice) case 1: /按序号升序排列 for(i=0;iL.length;i+) for(j=0;jL.dataj+1.num) k=L.dataj.num; L.dataj.num=L.dataj+1.num; /冒泡法排序 L.dataj+1.num=k; for(j=0;jL.length;j+)/输出排序结果 PrintElem(L.dataj); break;case 2: /按分数降序排列 for(i=0;iL.length;i+) for(j=0;jL.length-i;j+) if(L.dataj.scoreL.dataj+1.score) k=L.dataj.score; L.dataj.score=L.dataj+1.score; L.dataj+1.score=k; for(j=0;jL.length;j+)/输出结果 PrintElem(L.dataj); break;case 3: /按分数升序排列 for(i=0;iL.length;i+) for(j=0;jL.dataj.score) k=L.dataj.score; L.dataj.score=L.dataj+1.score; L.dataj+1.score=k; for(j=0;jL.length;j+)/输出排序结果 PrintElem(L.dataj); break; case 4: break; 三 改写后的主函数(要求必需调用自己添加的操作)void main()/通过文件input1.txt输入数据,结果输出到文件output1.txt/打开输入输出文件FILE *in,*out; if(in=fopen(input1.txt,r)=NULL) printf(cannot open infilen); exit(0); if(out=fopen(output1.txt,w)=NULL) printf(cannot open infilen); exit(0); int choice;SqList L;Init_SqList(L);/系统文件初始化,构造空表Lwhile(1)choice=Menu();switch(choice)case 1:Creat_SqList(L,in);/导入数据,根据文件input.txt读入的数据建立顺序表Lbreak;case 2:Traver_SqList(L);/查询,输出顺序表break;case 3:Insert_SqList(L);/ 在顺序表L中插入一个新元素break;case 4:Delete_SqList(L); break;/删除元素case 5:TongJi_SqList(L); break;/统计case 6:PaiXu_SqList(L); break;/排序case 7:Cheng_SqList(L); break;/修改case 0: SaveList(L,out);fclose(in);fclose(out);exit(-1);break;/保存数据,并退出系统getchar();四改写后程序的运行结果。 五简要给出所选示例程序中算法的时间复杂度分析结果。void PrintElem(Elemtype a);/打印输出数据元素a的各数据项 此函数的void Init_SqList(SqList &L);/构造一个空的顺序表Lvoid SaveList(SqList L,FILE *out);/保存顺序表L的数据/建表,从文件读取数据,以尾插法建立顺序表Lvoid Creat_SqList(SqList &L,FILE *in);/查询,遍历顺序表L(输出L中的数据序列)void Traver_SqList(SqList L);void TongJi_SqList(SqList L);void PaiXu_SqList(SqList L);void Cheng_SqList(SqList L);/添加,在顺序表L中插入一个新元素SqList Insert_SqList (SqList &L);SqList Delete_SqList(SqList &L);六简要给出算法设计小结和心得。平时我们学C语言视乎都是为了考试或者做一些比较常规的题目,而这次实训却给我们的将所学知识运用于解决实际问题的机会,让人更有激情,这就是编写软件的在雏形,也让我们感受到了编写软件程序的乐趣。但是不仅仅是如此,更为重要的是在运用所学知识的过程中,记住这些知识,并能够广泛的运用!这一次编写大作业的程序

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论