浙江大学城市学院实验报告
课程名称 数据结构基础
实验项目名称 实验一 熟悉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
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<(x/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
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 9Press any key to continue
五. 心得体会
(记录实验感受、上机过程中遇到的困难及解决办法、遗留的问题、意见和建议等。)
最开始编译时,总是有十几个错误,或是变量未定义,或是函数中有错误,在经过调试和与同学交流之后,终于解决了这些问题。这使我意识到自己在综合编程方面的不足,函数一多容易搞混,以后一定改正。
【附录----源程序】
Test1_func.h
int prime(int x) ////判断一个数是否是素数
{
int i;
for(i=2;i<(x/2);i++)
if(x%i==0)break;
if(i>=x/2)
return 1;
else
return 0;
}
int aMAX(int *a,int n)
{
int i,max;
max=a[0];
for(i=0;i
max=a[i];
}
return max;
}
int aMIN(int *a,int n)
{
int i,min=a[0];
for(i=0;i
if(min>a[i])
min=a[i];
}
return min;
}
int aAVE(int *a,int n)
{
int i,sum=0,ave;
for(i=0;i
sum=sum+a[i];
ave=sum/n;
return ave;
}
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;
}
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;
}
void aSORT(int *a,int n)
{
int i, index,j,temp;
for(i=0;i
index=i;
for(j=i+1;j
index=j;
temp=a[i];
a[i]=a[index];
a[index]=temp;
}
}
Test1_main.cpp
#include
#include
#include"test1_func.h"
void main()
{
int a[10],i,max,min,ave;
cout<<"input data:";
for(i=0;i<10;i++)
cin>>"%d",&a[i];
cout<<"max in a:"<
cout<<"min in a:"<
cout<<"ave in a:"<
cout<<"sum of prime:"<
aMAX_MIN_AVE(a,10,max,min,ave);
cout<<"max in a:"<
cout<<"min in a:"<
cout<<"ave in a:"<
aSORT(a,10);
cout<<"after sort:";
for(i=0;i<10;i++)
}
本文来源:https://www.2haoxitong.net/k/doc/f6be0f0703d8ce2f00662339.html
文档为doc格式