作业 c++编写
1.第一版本程序Prog1:
+ 给定一个数组,实现数组元素求和;,具体要求:实现对一维数组(a[100])的所有元素相加运算。
+ 数据准备:a)数组长度:100;b)数组数据来源:实验数据A列:1~100,CSV 格式则填充 前100个数据.
源代码:
#include<iostream>
#include<fstream>
using namespace std;
int main ()
{
int a[100];//存放数据的数组
int sum=0;//数据的和
ifstream f("F:\\1.txt");
for(int c=0;f>>a[c],c<100;c++)
sum+=a[c];
cout<<sum<<endl;
}
这个程序并不难用循环求和就结束了。
运行结果如下图:
调试结果正确。
2.第二版本程序Prog2:
改写成一个函数(函数名称为ArraySum),能实现任意长度数组所有元素求和;
数据准备:a)数组长度:任意; b)数组数据来源:实验数据A列.
编写的源代码如下:
#include<iostream>
#include<fstream>
using namespace std;
void Arraysum (int n)
{
int *a;
a=new int[n];
int sum=0;
ifstream f("F:\\1.txt");
for(int c=0;f>>a[c],c<n;c++)
sum+=a[c];
cout<<sum;
delete []a;
}
int main (void)
{
int n=0;
cout<<"输入数组长度";
cin>>n;
Arraysum(n);
}
这个题目要求数组长度是任意的,我就重键盘输入数组的长度,因为数组的长度是不确定的所以需要申请内存空间,来完成数组的定义。又要求写一个Arraysum的函数,
而在函数中需要完成对数组的求和,还有对数组的赋值,打开所给的excel文件有6万多行数据,我就将数据复制粘贴到一个新建的文本文档中,从而方便在函数中调用。
最后主函数就很简单了;
测试结果如下:
测试了3组数据 第一组10个数结果正确,第二组与第一题答案一样正确,第三题我把数组大到20000依然可以输出程序可以输出,测试完毕,程序可以运行。
3.第三版本程序Prog3:
+ 将Prog2改写成能从文件中读取数据,实现任意长度数组,指定范围内元素相加。
+ 数据准备:a)数组长度:任意; b)数组数据来源:从文件中读取.
源代码如下:
#include<iostream>
#include<fstream>
using namespace std;
void Arraysum (int n,int e,int d)
{
int *a;
a=new int[n];
int sum=0;
ifstream f("F:\\1.txt");
for(int c=0;f>>a[c],c<n;c++)
if(a[c]>=e&&d>=a[c])
sum+=a[c];
cout<<sum<<endl;
delete []a;
}
int main (void)
{
double e,d;
cout<<"输入指定范围的最小值";
cin>>e;
cout<<"输入指定范围的最大值";
cin>>d;
int n=0;
cout<<"输入数组长度";
cin>>n;
Arraysum(n,e,d);
}
这一题我感觉就是在第二题的基础上加了一个取值范围,比较简单不多说,调试去了。
调试结果:
个人觉的程序并没有什么大问题,调试完毕。
这三个实验中有一个问题想了很久 如何将excel中的数据弄到数组中去,最后只能用文本文档完成对数据的调用。
Github的链接,在github的zuoye仓库下的TXT 文档上传了3个题目的代码。