首页 > 其他分享 >实验四

实验四

时间:2022-11-08 19:35:12浏览次数:40  
标签:const Matrix int lines cols 实验 vectorInt

//task.5.cpp
#include <iostream>
#include "vectorInt.hpp"
 void test() {
    using namespace std;
    int n;
     cin >> n;
     vectorInt x1(n);
     for (auto i = 0; i < n; ++i)
         x1.at(i) = i * i;
     
    output(x1);
     vectorInt x2(n, 42);
    vectorInt x3(x2);
    output(x2);
    output(x3);
    x2.at(0) = 77;
    output(x2);
    output(x3);
}
int main() {
    test();
}
//hpp
#pragma once
#include <iostream>
using namespace std;
class vectorInt{
    public:
    vectorInt(int n);
    vectorInt(int n,int value);
    vectorInt( vectorInt& T);
    ~vectorInt();
    int &at(int i);
    int get_size();
    friend void output(vectorInt &T);
    private:
    int* p;    int size;
};
vectorInt::vectorInt(int n):size{n}{
    p=new int[n];
    for(int i =0 ;i < n;i ++){
        p[i]=0;
    }
    cout<<"constructor 1 called.\n";
}
vectorInt::vectorInt(int n,int value):size{n}{
        p=new int[n];

    for(int i=0;i<size;++i){
        p[i]=value;
    }
    cout<<"constructor 2 called.\n";
}
vectorInt::vectorInt( vectorInt& T){
    this->p=new int[T.size];
    this->size=T.size;
    for(int i=0;i<size;++i){
        this->p[i]=T.at(i);
    }
cout<<"copy constructor called.\n";
}
int &vectorInt::at(int i){
    return p[i];
}
int vectorInt::get_size(){
    return size;
}
void output(vectorInt &T){
    for(int i=0;i<T.get_size();++i){
    cout<<T.at(i)<<", ";
    }
    cout<<"\b\b \n";
}
vectorInt::~vectorInt(){
    delete [] p;
    cout<<"destructor called.\n";
}

 

 task 6

//cpp
#include<iostream>
#include"Matrix.hpp"

using namespace std;

void test() {
    
    double x[] = {1,2,3,4,5,6};
    
    Matrix m1(3, 2);
    m1.set(x);
    m1.print();
    
    
    cout << "the first line is: " << endl;
    cout << m1.at(0,0) << " " << m1.at(0,1) << endl;
    
    cout << endl;
    
    Matrix m2(2, 3);
    m2.set(x);
    m2.print();
    cout << "the first lint is: " << endl;
    cout << m2.at(0, 0) << " " << m2.at(0, 1) << " " << m2.at(0, 2) << endl;
    cout << endl;
    
    Matrix m3(m2);
    m3.set(0,0,999);
    m3.print();
}
int main()
{
    test();
    return 0;
}
//hpp
#pragma once
#include<iostream>
using namespace std;
class Matrix {
public:
    Matrix(int n);
    Matrix(int n,int m);
    Matrix(const Matrix &x);
    ~Matrix();
    void set(const double *pv);
    
    void set(int i,int j,int v);
    double &at(int i,int j);
    double at(int i,int j)const;
    int get_lines()const;
    int get_cols()const;
    void print()const;
   // int tolink(int i,int j);
    
private:
    int lines;
    int cols;
    double *p;
    
};

Matrix::Matrix(int n) : lines{n},cols{n}
{
    p = new double[n * n];
}

Matrix::Matrix(int n,int m) : lines{n},cols{m}
{
    p = new double[n * m];
}

Matrix::Matrix(const Matrix &x)
{
    this->p = new double[x.lines * x.cols];
    this->lines = x.lines;
    this->cols = x.cols;
    int t = 0;
    for(int i = 0;i < lines ;i ++)
        for(int j = 0;j < cols ;j ++)
            p[t ++] = x.at(i,j);
            
}

Matrix::~Matrix(){
    delete []p;
}

void Matrix::set(const double *pv)
{
    for(int i = 0;i < lines * cols ;i ++)
       p[i] = pv[i];

}

void Matrix::set(int i,int j,int v)
{
    p[i * cols + j] = v;
}

double &Matrix::at(int i,int j)
{
    return p[i * cols + j];
}

double Matrix :: at(int i,int j)const{
    return p[i * cols + j];
}

inline int Matrix ::get_lines()const
{
    return lines;
}

inline int Matrix :: get_cols()const
{
    return cols;
}

void Matrix::print()const
{
    for(int i = 0;i < lines;i ++)
    {  for(int j = 0;j < cols;j ++)
        cout << p[i * cols + j] << " ";
        cout << endl;
    }
    
}

 

标签:const,Matrix,int,lines,cols,实验,vectorInt
From: https://www.cnblogs.com/lxyyyds/p/16870889.html

相关文章

  • 实验四类和对象数组及指针
    11#pragmaonce22#include<iostream>3344usingstd::cout;55usingstd::endl;6677classvectorInt{88public:99//构造......
  • 223201062522-软件工程基础Y- 实验一 刘晋
      沈阳航空航天大学软件工程基础实验报告实验名称:实验一实验题目:个人项目完成时间:2022年11月1实验内容及要求1.1教学内容及要求建立个人博客,完......
  • 实验三
    #include<stdio.h>#include<stdlib.h>#include<time.h>#include<windows.h>#defineN80voidprint_text(intline,intcol,chartext[]);//函数声明voidp......
  • 实验3
    #include<stdio.h>#include<stdlib.h>#include<time.h>#include<windows.h>#defineN80voidprint_text(intline,intcol,chartext[]);voidprint_spaces(int......
  • 实验5:开源控制器实践——POX
    POX拓扑、h2、h3mininet>xtermh2h3h2tcpdump-nn-ih2-eth0h3tcpdump-nn-ih3-eth0Hub模块左2是h1pingh2;右2是h1pingh3Switch模块左2是h1pingh2;右2......
  • 软件工程实验一郑一鸣
    沈阳航空航天大学2022级软件工程实验一1.1个人情况(1)回顾你过去将近3年的学习经历当初你报考的时候,是真正喜欢计算机这个专业吗?答:是的,我刚报考的时候,就通过查阅资......
  • 软件工程实训实验一 ——2221刘宇航
    (1)回顾你过去将近3年的学习经历问:当初你报考的时候,是真正喜欢计算机这个专业吗?答:喜欢,从小喜欢打游戏,慢慢也变得对计算机感兴趣。问:你现在后悔选择了这个专业吗?答:不后......
  • 实验3
     ......
  • 实验一 孙绮萌
    请阅读北航陈彦吉同学的这篇博客中的各参考资料,并回答如下问题:(1)回顾你过去将近3年的学习经历当初你报考的时候,是真正喜欢软件工程这个专业吗?答:是的你现在后悔选择了......
  • 实验第三次
    #include<stdio.h>#include<stdlib.h>#include<time.h>#include<windows.h>#defineN80voidprint_text(intline,intcol,chartext[]);voidprint_spaces(intn)......