数据结构基础实验1_空间数据结构基础实验
数据结构基础实验1由刀豆文库小编整理,希望给你工作、学习、生活带来方便,猜你可能喜欢“空间数据结构基础实验”。
浙江大学城市学院实验报告
课程名称
数据结构基础
实验项目名称
实验一
熟悉Project组织应用程序
学生姓名
专业班级
学号
实验成绩
指导老师(签名)
日期
一.实验目的和要求
1、熟悉VC6.0开发环境;使用Workspace和Project组织应用程序;
2、回顾C语言程序设计,编写完整的实验应用程序,并调试通过。
3、掌握文件包含,以及库函数iostream.h中的标准输入、输出流对象cin和cout,理解“引用(&)”方式的参数传递。
二.实验内容
1、按下述介绍的方法,练习并掌握使用Project组织应用程序的方法。步骤:
① 启动VC++,选择“文件(File)”菜单中的“新建(New)”项,选择“工程(Projects)页,然后选择“Win32 Console Application”,在右上角输入project的名称(如:test1),再选择合适的存储路径,然后按下“确定”按钮。这样就建立了一个新的工程。如下图所示:
② 在窗口左侧出现WorkSpace视图,选择“FileView”页可浏览该工程所包含的文件。然后可在项目中新建源文件(菜单:文件新建),包括“C/C++Header File”和“C/C++Source File”两类文件,或将已有的源文件加入到这个工程中(菜单:工程增加到工程)。如下图:
完成后程序组织结构如下图:
其中Source Fileste中包含主程序等源程序文件(如:test1_main.cpp),Header Fileste中包含头文件等(如:test1_function.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, int &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.14.240:5000)自己的文件夹下。
三.函数的功能说明及算法思路
(包括每个函数的功能说明,及一些重要函数的算法实现思路)
1、求a中的最大值 int aMAX(int *a,int n){ int i,max;max=a[0];for(i=0;i
if(max
max=a[i];} return max;}
2、求a中的最小值 int aMIN(int *a,int n){ int i,min=a[0];for(i=0;i
if(min>a[i])
min=a[i];} return min;}
3、求a中的平均值 int aAVE(int *a,int n){ int i,sum=0,ave;for(i=0;i
sum=sum+a[i];
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=a[0];min=a[0];aver=a[0];for(i=0;i
if(a[i]>max)max=a[i];
if(a[i]
sum=sum+a[i];} aver=sum/n;}
5、计算a中所有素数之和 int prime_SUM(int *a, int n){ int i,sum=0;for(i=0;i
if(prime(a[i]))
sum=sum+a[i];} return sum;}
int prime(int x)
//判断一个数是否是素数 { int i;for(i=2;i
if(x%i==0)break;
if(i>=x/2)
return 1;
else
return 0;}
6、对a进行从小到大的排序,并输出排序结果 void aSORT(int *a,int n){ int i, index,j,temp;for(i=0;i
index=i;
for(j=i+1;j
if(a[j]
index=j;
temp=a[i];
a[i]=a[index];
a[index]=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 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 9Pre any key to continue 五.心得体会
(记录实验感受、上机过程中遇到的困难及解决办法、遗留的问题、意见和建议等。)
最开始编译时,总是有十几个错误,或是变量未定义,或是函数中有错误,在经过调试和与同学交流之后,终于解决了这些问题。这使我意识到自己在综合编程方面的不足,函数一多容易搞混,以后一定改正。【附录----源程序】
Test1_func.h int prime(int x)
////判断一个数是否是素数 {
}
int aMAX(int *a,int n){
}
int aMIN(int *a,int n)int i,max;max=a[0];for(i=0;i
} return max;if(max
if(x%i==0)break;if(i>=x/2)return 1;else return 0;{
}
int aAVE(int *a,int n){
}
int prime_SUM(int *a, int n){ return ave;ave=sum/n;int i,sum=0,ave;for(i=0;i
} return min;if(min>a[i])min=a[i];
} int i,sum=0;for(i=0;i
} return sum;if(prime(a[i]))sum=sum+a[i];void aMAX_MIN_AVE(int *a, int n, int &max, int &min, int &aver){
} int sum,i;sum=0;max=a[0];min=a[0];aver=a[0];for(i=0;i
} aver=sum/n;if(a[i]>max)max=a[i];if(a[i]
void aSORT(int *a,int n){
int i, index,j,temp;for(i=0;i
} index=i;for(j=i+1;j
if(a[j]
Test1_main.cpp }#include #include #include“test1_func.h” void main(){
} int a[10],i,max,min,ave;cout>“%d”,&a[i];cout