作业2 - 个人项目

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了作业2 - 个人项目相关的知识,希望对你有一定的参考价值。

数组求和

目标

  • 使用开发工具
  • 使用源代码管理工具

要求

  • 对数组指定范围内的元素求和。PS:数组存放的是实数。
  • 开发语言:C++
  • 开发工具:Visual 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 Data("D:\\data.txt");

         if(!Data)

         {cout<<"不能打开文件";exit(1);}//判断文件是否能被打开

         for(int i=0;Data>>a[i],i<100;i++)

         {

                   sum+=a[i];//做加法

         }

         cout<<sum;

 

         return 0;

}

实验结果:

  技术分享

 

这是后面几个实验的基础,运用了fstream库函数,我先把文件里的A组导出到D盘保存成一个txt文件,方便ifstream导出。再逐个求和。

2.第二版本程序Prog2
+ 改写成一个函数(函数名称为ArraySum),能实现任意长度数组所有元素求和;
+ 数据准备:a)数组长度:任意; b)数组数据来源:实验数据A列.

 源程序如下:

#include<iostream>

#include<fstream>

using namespace std;

 

void ArraySum(int n)

{

         int *a=new int[n];

         int sum=0;

        

         if(a==0)

         {

                   cout<<"没有申请到动态内存";exit(3);}

         ifstream Data("D:\\data.txt");

         if(!Data)

         {

                   cout<<"不能打开文件";exit(1);

         }

        

         for(int i=0;Data>>a[i],i<n;i++)

         {       

                   sum+=a[i];

         }

         cout<<sum;

         delete []a;

 

}

 

int main()

{

         int n;

         cout<<"请输入数组长度:";

         cin>>n;

         cout<<"所求和为:";

         ArraySum(n);

         return 0;

}

实验结果:

技术分享

技术分享

 

在prog1的基础上,在主函数中输入数组长度,函数ArraySum中以参数n代替,在主函数中调用函数即可。这里因为n是任意值,所以要为其申请动态内存。

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

源程序如下:

#include<iostream>

#include<fstream>

using namespace std;

 

void ArraySum(int n,int min,int max)

{

         int *a=new int[n];

         int sum=0;

        

         if(a==0)

         {

                   cout<<"没有申请到动态内存";exit(3);}

         ifstream Data("D:\\data.txt");

         if(!Data)

         {

                   cout<<"不能打开文件";exit(1);

         }

        

         for(int i=0;Data>>a[i],i<n;i++)

         {       

                   if(min<a[i]&&a[i]<max)

                   sum+=a[i];

         }

         cout<<sum;

         delete []a;

 

}

 

int main()

{

         int n,min,max;

         cout<<"请依次输入数组长度,最小值和最大值:";

         cin>>n>>min>>max;

 

         cout<<"所求和为:";

         ArraySum(n,min,max);

         return 0;

}

实验结果

技术分享

在prog2的基础上,给Data取值时加了范围,在函数ArraySum中实现,再到主函数中输入范围以及数组长度即可。

 

遇到的问题

未注意到无返回值函数不用return,调试时发现错误改正过来了。

以上是关于作业2 - 个人项目的主要内容,如果未能解决你的问题,请参考以下文章

个人编程项目作业

个人附加作业

个人附加作业 201421123108 王坤彬 网络1414

个人附加作业

作业二:个人编程项目——四则运算

软件工程-构建之法 个人的附加作业