YTU 2945: 编程:五元向量的运算

2945: 编程:五元向量的运算

时间限制: 1 Sec  内存限制: 128 MB
提交: 151  解决: 85

题目描述

用习惯了的运算符操作新定义的类对象,这是OO方法给我们带来的便利。下面要为的五元向量(每个向量有5个元素)装备加法、数乘和输入输出的运算功能,请在begin至end部分,写上需要的代码并提交。
#include <iostream>
using namespace std;
const int N=5;   //向量中存储的数据个数,这里确定为5元向量
class MyVector
{
public:
    MyVector(){};    //构造函数
    MyVector(const MyVector &v);  //复制构造函数
    friend istream &operator>>(istream &input, MyVector &d);   //输入向量
    friend ostream &operator<<(ostream &output, const MyVector &d);  //输出向量
    MyVector operator+(const MyVector &d);  //向量相加,当前对象与d对应位置上的元素相加
    MyVector operator*(int n);   //向量数乘,当前对象的每个元素与n相乘
private:
    int data[N];      //在data数组中存储数据
};

MyVector::MyVector(const MyVector &d)
{
    for(int i=0; i<N; ++i)
        data[i]=d.data[i];
}
//**********begin*****************


//**********end*****************
int main()
{
    MyVector d1,d2;
    int n;
    cin>>d1;
    cin>>d2;
    cin>>n;
    cout<<"+: "<<d1+d2<<endl;
    cout<<"*: "<<d1*n<<endl;
    return 0;
}

输入

第一个五元向量,五个数之间用空格隔开
第二个五元向量,五个数之间用空格隔开
一个整数

输出

两个五元向量的和: 格式:前后加括号,两数之间用加逗号和一个空格
第一个五元向量与整数的数乘结果,格式同前
(运算规则:和运算为向量对应位置元素相加,数乘运算为各元素分别乘以给定的数。)

样例输入

1 25 41 16 98
5 67 9 55 121
3

样例输出

+: (6, 92, 50, 71, 219)
*: (3, 75, 123, 48, 294)

你  离  开  了  ,  我  的  世  界  里  只  剩  下  雨  。  。  。

#include <iostream>
using namespace std;
const int N=5;   //向量中存储的数据个数
class MyVector
{
public:
    MyVector() {};   //构造函数
    MyVector(const MyVector &v);  //复制构造函数
    friend istream &operator>>(istream &input, MyVector &d);
    friend ostream &operator<<(ostream &output, const MyVector &d);
    MyVector operator+(const MyVector &d2);  //向量相加,当前对象与d2对应位置上的元素相加
    MyVector operator*(int n);   //向量数乘,当前对象的每个元素与n相乘
private:
    int data[N];      //在data数组中存储数据
};
MyVector::MyVector(const MyVector &d)
{
    for(int i=0; i<N; ++i)
        data[i]=d.data[i];
}
istream &operator>>(istream &input, MyVector &d)
{
    for(int i=0; i<5; i++)
        input>>d.data[i];
    return input;
}
ostream &operator<<(ostream &output, const MyVector &d)
{
    int i;
    output<<"("<<d.data[0]<<", ";
    for(i=1; i<4; i++)
    {
        output<<d.data[i]<<", ";
    }
    output<<d.data[i]<<")";
    return output;
}
MyVector MyVector::operator+(const MyVector &d)
{
    MyVector a;
    for(int i=0; i<5; i++)
        a.data[i]=d.data[i]+data[i];
    return a;
}
MyVector MyVector::operator*(int n)
{
    MyVector a;
    for(int i=0; i<5; i++)
        a.data[i]=n*data[i];
    return a;
}
int main()
{
    MyVector d1,d2;
    int n;
    cin>>d1;
    cin>>d2;
    cin>>n;
    cout<<"+: "<<d1+d2<<endl;
    cout<<"*: "<<d1*n<<endl;
    return 0;
}

posted @ 2016-01-16 15:47  小坏蛋_千千  阅读(271)  评论(0编辑  收藏  举报