第二次作业

  • 第一版本程序Prog1: + 给定一个数组,实现数组元素求和;,具体要求:实现对一维数组(a[100])的所有元素相加运算。 + 数据准备:a)数组长度:100;b)数组数据来源:实验数据A列:1~100,CSV 格式则填充 前100个数据.

       源代码

      

#include<iostream>
#include<fstream>
using namespace std;

int main(void)
{
    int a[100];
    int sum=0;
    ifstream f("D:\\a.txt");
    for(int i=0;f>>a[i],i<100;i++)
        sum+=a[i];
    cout<<sum<<endl;
    return 0;
}

 

实验结果

简单的数组求和,并没有什么难度,数据的提取通过TXT文档来实现。

  • 第二版本程序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("D:\\a.txt");
    for(int i=0;f>>a[i],i<n;i++)
        sum+=a[i];
    cout<<sum<<endl;
    delete []a;
}

int main(void)
{
    int n;//数组长度
    cout<<"数组长度"<<endl;
    cin>>n;
    ArraySum(n);
    return 0;
}

 

实验结果

相对于一开始,多了一个数组的长度并没有给定,所以直接在函数里定义数组。

  • 第三版本程序Prog3: + 将Prog2改写成能从文件中读取数据,实现任意长度数组,指定范围内元素相加。 + 数据准备:a)数组长度:任意; b)数组数据来源:从文件中读取.

    源代码

#include<iostream>
#include<fstream>
using namespace std;

void ArraySum(int n,double x,double y)
{
    int *a;
    a=new int[n];
    int sum=0;
    ifstream f("D:\\a.txt");
    for(int i=0;f>>a[i],i<n;i++)
        if(a[i]>=x&&a[i]<=y) sum+=a[i];
    cout<<sum<<endl;
    delete []a;
}

int main(void)
{
    int n;//数组长度
    double x;//求和元素最小值
    double y;//求和元素最大值
    cout<<"数组长度"<<endl;
    cin>>n;
    cout<<"求和元素最小值"<<endl;
    cin>>x;
    cout<<"求和元素最大值"<<endl;
    cin>>y;
    ArraySum(n,x,y);
    return 0;
}

增加求和元素的范围,求和之前筛选出满足条件的求和元素
实验结果

在编程过程中,要求提取CSV格式数据,这方面并没有了解所以选择了C++中的文件流提取TXT中的数据

上传github https://github.com/Superbiali/data

posted @ 2016-03-07 00:34  李益宁  阅读(119)  评论(1编辑  收藏  举报