首页 > 其他分享 >实验四

实验四

时间:2022-11-01 20:46:28浏览次数:29  
标签:Matrix int double lines cols 实验 vectorInt

task5

#pragma once
#define _CRT_SECURE_NO_WARNINGS 1
#include<stdlib.h>
#include<iostream>
#include<iomanip>

using std::cout;
using std::endl;
using std::setw;
using std::left;

class vectorInt
{ 
     public:
         vectorInt(int num);
         vectorInt(int num, int value);
         vectorInt(const vectorInt& obj);
         ~vectorInt();

         int& at(int i) { return n[i];}
         int get_size() { return size; }
         friend void output(vectorInt&obj);

     private:
         int* n,size;

};

vectorInt::vectorInt(int num) :size{num}
{
    cout << "constuctot 1 called" << endl;
    n = (int*)malloc(sizeof(int) * num);
}
vectorInt::vectorInt(int num, int value) :size{num}
{
    cout << "constuctot 2 called" << endl;
    n= (int*)malloc(sizeof(int) * num);
    for (int i = 0; i < num; ++i)
        n[i] = value;
}
vectorInt::vectorInt(const vectorInt& obj) :size{obj.size}
{
    cout << "copy constuctot called" << endl;
    n = (int*)malloc(sizeof(int) * obj.size);
    for (int i = 0; i < obj.size; ++i)
        n[i] = obj.n[i];
}
vectorInt::~vectorInt()
{
    free(n);
    cout << "destructor called" << endl;
}

void output(vectorInt&obj)
{
    for (int i = 0; i < obj.size; ++i)
        cout << setw(3) << left << obj.n[i];
    cout << endl;
}

  实验结果

 

 task6

#pragma once
#include <iostream>
#include<stdlib.h>
#include<iomanip>

using std::cout;
using std::endl;
using std::setw;
using std::left;

class Matrix
{
	public:
		Matrix(int n);
		Matrix(int n, int m);
		Matrix(const Matrix& X);
		~Matrix();

		void set(const double* pvalue);
		void set(int i, int j, int value) { p[i][j] = value; }
		double& at(int i, int j) { return p[i][j]; }
		double at(int i, int j) const { return p[i][j]; }
		int get_lines() const { return lines; }
		int get_cols() const { return cols; }
		void print() const;

	private:
		int lines, cols;
		double **p;
};

Matrix::Matrix(int n) :lines{ n }, cols{n}
{
	p = (double**)malloc(sizeof(double) * n);
	for (int i = 0; i < n; ++i)
		p[i] = (double*)malloc(sizeof(double) * n);
}
Matrix::Matrix(int n, int m) :lines{ n},cols{ m }
{
	p = (double**)malloc(sizeof(double) * n);
	for (int i = 0; i < n; ++i)
		p[i] = (double*)malloc(sizeof(double) * m);
}
Matrix::Matrix(const Matrix& X) :lines{ X.lines }, cols{ X.cols } 
{
	p = (double**)malloc(sizeof(double) * X.lines);
	for (int i = 0; i < X.lines; ++i)
		p[i] = (double*)malloc(sizeof(double) * X.cols);
	for (int i = 0; i < X.lines; ++i)
		for (int j = 0; j < X.cols; ++j)
			p[i][j] = X.at(i,j);
}
Matrix::~Matrix()
{
	for(int i=0;i<lines;++i)
		free(p[i]);
	free(p);
}

void Matrix::set(const double* pvalue)
{
	for (int i = 0; i < lines; ++i)
		for (int j = 0; j < cols; ++j)
			p[i][j] = pvalue[i * cols + j];
}
void Matrix::print() const
{
	for (int i = 0; i < lines; ++i)
	{
		for (int j = 0; j < cols; ++j)
			cout <<setw(4)<<left<< int(p[i][j]);
		cout << endl;
	}
}

  实验结果

 

标签:Matrix,int,double,lines,cols,实验,vectorInt
From: https://www.cnblogs.com/gosj/p/16849071.html

相关文章

  • 实验二:逻辑回归算法实验
    【实验目的】1.理解逻辑回归算法原理,掌握逻辑回归算法框架;2.理解逻辑回归的sigmoid函数;3.理解逻辑回归的损失函数;4.针对特定应用场景及数据,能应用逻辑回归算法解决实际......
  • 实验3:文法问题处理器
    一、实验内容设计一个应用软件,以实现文法的化简及各种问题的处理。二、实验要求必做内容系统需要提供一个文法编辑界面,让用户输入文法规则(可保存、打开存有文法规......
  • 实验6:开源控制器实践——RYU
    实验6:开源控制器实践——RYU一、实验目的能够独立部署RYU控制器;能够理解RYU控制器实现软件定义的集线器原理;能够理解RYU控制器实现软件定义的交换机原理。二、实验环......
  • Java实验报告——教务系统(继承)
    一、实验目的使学生进一步了解Java面向对象中继承、封装、抽象、重载的运用。二、实验内容1、设计教师、学生、课程这三个教务系统中的对象类,包括这些对象的属性和方法。实......
  • Java实验报告-计算器(AWT图形界面)
     一、实验目的掌握图形用户界面的设计与实现。二、实验内容使用图形界面制作一个计算器并实现相应功能。三、实验步骤publicclassfirstappextendsAppletimplementsAc......
  • Java实验报告--计时器(线程)
    一、实验目的了解Java线程的使用方法二、实验内容1、使用多线程制作一计时器,要求实现文本框输入一个时间(分),计时结束后提示。2、系统通过点击按钮可实现启动计时、暂停、结束......
  • 实验7:基于REST API的SDN北向应用实践
    (一)基本要求1:编写Python程序,调用OpenDaylight的北向接口实现以下功能(1)利用Mininet平台搭建下图所示网络拓扑,并连接OpenDaylight;建立拓扑sudomn--customtopo.py--to......
  • 实验7:基于REST API的SDN北向应用实践
    一、实验目的能够编写程序调用OpenDaylightRESTAPI实现特定网络功能;能够编写程序调用RyuRESTAPI实现特定网络功能。二、实验环境下载虚拟机软件OracleVisualBox或V......
  • 实验二:逻辑回归算法实验
    博客班级班级链接作业要求作业链接学号181613146【实验目的】理解逻辑回归算法原理,掌握逻辑回归算法框架;理解逻辑回归的sigmoid函数;理解逻辑回归的损......
  • 实验7:基于REST API的SDN北向应用实践
    ......