《2022年数据结构基础实验归类》由会员分享,可在线阅读,更多相关《2022年数据结构基础实验归类(10页珍藏版)》请在金锄头文库上搜索。
1、浙江大学城市学院实验报告课程名称数据结构基础实验项目名称实验一熟悉 Project组织应用程序学生姓名专业班级学号实验成绩指导老师(签名)日期一. 实验目的和要求1、 熟悉 VC6.0 开发环境;使用 Workspace 和 Project 组织应用程序;2、 回顾 C 语言程序设计,编写完整的实验应用程序,并调试通过。3、 掌握文件包含,以及库函数iostream.h 中的标准输入、输出流对象cin 和cout,理解“引用( &)”方式的参数传递。二. 实验内容1、 按下述介绍的方法,练习并掌握使用Project 组织应用程序的方法。步骤: 启动 VC+ ,选择“文件( File)”菜单中的
2、“新建( New)”项,选择“工程( Projects )页,然后选择“ Win32 Console Application”,在右上角输入 project 的名称(如: test1),再选择合适的存储路径,然后按下“确定”按钮。这样就建立了一个新的工程。如下图所示:名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 10 页 - - - - - - - - - 在窗口左侧出现 WorkSpace 视图,选择“FileView ”页可浏览该工程所包含的文件。然后可在项目中新建
3、源文件 (菜单:文件新建),包括“C/C+Header File”和“ C/C+Source File ”两类文件,或将已有的源文件加入到这个工程中(菜单:工程增加到工程)。如下图:完成后程序组织结构如下图:名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 10 页 - - - - - - - - - 其中 Source Fileste 中包含主程序等源程序文件 (如:test1_main.cpp ) , Header Fileste 中包含头文件等(如: test1_fu
4、nction.h )。2、在 VC中建立工程(取名为test1 ),并编写如下程序加入到工程中,编译执行该程序。要求使用cin 和 cout 进行数据的输入输出。程序题目如下:设 a 为长度为 n 的整数型一维数组。(1)试编写求 a 中的最大值、最小值和平均值的函数。请分别用两种方法完成:分别编写三个函数int aMAX(int *a,int n)、 int aMIN(int *a,int n)、int aAVE(int *a,int n) 实现求最大值、最小值和平均值。用一个函数 void aMAX_MIN_AVE(int *a, int n, int &max, int &min, in
5、t &aver) 实现求上述三个值,用“引用参数”带回结果。(2)试编写函数int prime_SUM(int *a, int n) 计算 a 中所有素数之和 。(3)编写函数void aSORT(int *a,int n) 对 a 进行从小到大的排序, 并输出排序结果。要求:把以上函数存放在头文件test1.h 中,并自行设计主函数来测试各类操作实现的正确性,主函数存放在文件test1.cpp中。3、填写实验报告,实验报告文件取名为report1.doc。4、上传实验报告文件report1.doc 、源程序文件 test1.cpp 及 test1.h 到 Ftp服务器上(ftp:/10.61
6、.14.240:5000 )自己的文件夹下。三. 函数的功能说明及算法思路(包括每个函数的功能说明,及一些重要函数的算法实现思路)1、求 a 中的最大值int aMAX(int *a,int n) int i,max; max=a0; for(i=0;in;i+) if(maxai) max=ai; return max; 2、求 a 中的最小值int aMIN(int *a,int n) int i,min=a0; for(i=0;iai) min=ai; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - -
7、- - - - - 第 3 页,共 10 页 - - - - - - - - - return min; 3、求 a 中的平均值int aAVE(int *a,int n) int i,sum=0,ave; for(i=0;in;i+) sum=sum+ai; ave=sum/n; return ave; 4、用一个函数 求 a 中的最大值、最小值、平均值void aMAX_MIN_AVE(int *a, int n, int &max, int &min, int &aver) int sum,i; sum=0; max=a0; min=a0; aver=a0; for(i=0;imax)
8、max=ai; if(aimin) min=ai; sum=sum+ai; aver=sum/n; 5、计算 a 中所有素数之和int prime_SUM(int *a, int n) int i,sum=0; for(i=0;in;i+) if(prime(ai) sum=sum+ai; return sum; int prime(int x) /判断一个数是否是素数 int i; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 10 页 - - - - - - - -
9、 - for(i=2;i=x/2) return 1; else return 0; 6、对 a 进行从小到大的排序,并输出排序结果void aSORT(int *a,int n) int i, index,j,temp; for(i=0;in-1;i+) index=i; for(j=i+1;jn;j+) if(ajaindex) index=j; temp=ai; ai=aindex; aindex=temp; 四. 实验结果与分析(包括运行结果截图、结果分析等)input data:0 1 2 3 4 5 6 7 8 9 max in a:9 min in a:0 ave in a:4
10、sum of prime:18 max in a:9 min in a:0 ave in a:4 the sort is:0 1 2 3 4 5 6 7 8 9Press any key to continue 五. 心得体会(记录实验感受、 上机过程中遇到的困难及解决办法、遗留的问题、 意见和建议等。)最开始编译时, 总是有十几个错误, 或是变量未定义, 或是函数中有错误, 在经过调试和与同学交流之后, 终于解决了这些问题。 这使我意识到自己在综合编程方面的不足,函数一多容易搞混,以后一定改正。【附录 -源程序】Test1_func.h int prime(int x) /判断一个数是否是素
11、数名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 5 页,共 10 页 - - - - - - - - - int i; for(i=2;i=x/2) return 1; else return 0; int aMAX(int *a,int n) int i,max; max=a0; for(i=0;in;i+) if(maxai) max=ai; return max; int aMIN(int *a,int n) 名师资料总结 - - -精品资料欢迎下载 - - - - - -
12、- - - - - - - - - - - - 名师精心整理 - - - - - - - 第 6 页,共 10 页 - - - - - - - - - int i,min=a0; for(i=0;iai) min=ai; return min; int aAVE(int *a,int n) int i,sum=0,ave; for(i=0;in;i+) sum=sum+ai; ave=sum/n; return ave; int prime_SUM(int *a, int n) 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名
13、师精心整理 - - - - - - - 第 7 页,共 10 页 - - - - - - - - - int i,sum=0; for(i=0;in;i+) if(prime(ai) sum=sum+ai; return sum; void aMAX_MIN_A VE(int *a, int n, int &max, int &min, int &aver) int sum,i; sum=0; max=a0; min=a0; aver=a0; for(i=0;imax) max=ai; if(aimin) min=ai; sum=sum+ai; aver=sum/n; 名师资料总结 - - -
14、精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 8 页,共 10 页 - - - - - - - - - void aSORT(int *a,int n) int i, index,j,temp; for(i=0;in-1;i+) index=i; for(j=i+1;jn;j+) if(ajaindex) index=j; temp=ai; ai=aindex; aindex=temp; Test1_main.cpp #include #include #includetest1_func.h void
15、main() 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 9 页,共 10 页 - - - - - - - - - int a10,i,max,min,ave; coutinput data:; for(i=0;i%d,&ai; coutmax in a:aMAX(a,10)endl; coutmin in a:aMIN(a,10)endl; coutave in a:aAVE(a,10)endl; coutsum of prime:prime_SUM(a,10)endl; aMAX_MIN_A VE(a,10,max,min,ave); coutmax in a:maxendl; coutmin in a:minendl; coutave in a:aveendl; aSORT(a,10); coutafter sort:; for(i=0;i10;i+) coutthe sort is:aiendl; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 10 页,共 10 页 - - - - - - - - -