第三次上机作业

第一题;
结果应为
Constructor called
Copy constructor called
Constructor called
Constructor called
Constructor called
Constructor called
Copy constructor called
Copy constructor called
Constructor called
Copy constructor called

#include <iostream>
using namespace std;


class Fraction {
    //数据成员,访问控制属性默认是私有
    int m_Numerator = 0; // 分子默认为0; C++11
    int m_Denominator = 1; //分母默认为1;


public://公有成员函数
    Fraction(int above = 0, int below = 1) :
        m_Numerator(above), m_Denominator(below) {
        cout << "Constructor called" << endl;
    }

    Fraction(const Fraction& rhs) : m_Numerator(rhs.m_Numerator), \
        m_Denominator(rhs.m_Denominator) {
        cout << "Copy constructor called" << endl;
    }

    //显示定义析构函数
    ~Fraction() {
        cout << "Fraction的析构函数的调用" << endl;
    }
    //分子
    int getnumerator()
        const {
        return m_Numerator;
    }
    //获取分母
    int getdenominator()
        const {
        return m_Denominator;
    }
    //实现约分
    void reduce();
    Fraction operator/(Fraction b) {
        Fraction yuefen(m_Numerator * b.getdenominator(), m_Denominator * b.getnumerator());
        yuefen.reduce();
        return yuefen;
    }//运用operator/

public:
    int gcd(int i, int j)  //得出最大公约数
    {
        int x = j;
        while (i % j != 0)
        {
            x = i % j;
          
        }
        while (i = j) {
            x = i;
        }
        return x;
    }

};

void Fraction::reduce() {
    int n = gcd(m_Numerator, m_Denominator);//获取分子分母的最大公约数
    m_Numerator /= n;
    m_Denominator /= n;
}
Fraction tongfen(Fraction a, Fraction b) {
    Fraction tongfen1(a.getnumerator() * b.getdenominator() + a.getdenominator() * b.getnumerator(), a.getdenominator() * b.getdenominator());
    tongfen1.reduce();
    return tongfen1;
}
Fraction divide1(const Fraction& divident, const Fraction& divisor) {
    return Fraction(divident.getnumerator() * divisor.getdenominator(), \
        divident.getdenominator() * divisor.getnumerator());
}
Fraction divide2(Fraction divident, Fraction divisor) {
    Fraction result(divident.getnumerator() * divisor.getdenominator(), \
        divident.getdenominator() * divisor.getnumerator());
    return result;
}
int main() {
    Fraction a;
    Fraction b(a);
    Fraction c = Fraction(3, 2);
    Fraction d1(2, 3), d2(4, 5);
    Fraction e1 = divide1(d1, d2);
    Fraction e2 = divide2(d1, d2);

      
     system("pause");
    return 0;
}

第二题

#include<iostream>
#include<vector>
using namespace std;
int a[5] = { 19,67,24,11,17 }, b[5] = { 2,3,9,17,59 };
int pos1, pos2,temp;
int key;
int fun1(int i) {
	for (i = 0; i <= 5; i++) {
		if (a[i] == 17) {
			pos1 = i + 1;
			break;
		}
	}
	return pos1;
};
int fun2(int x, int low, int high) {
	while (low <= high) {
		pos2 = (low + high) / 2;
		if (b[pos2]>17)
			high = pos2 - 1;
		else if (b[pos2]<17)
			low = pos2 + 1;
		else if ( b[pos2]==17) {
			return pos2 + 1;
		}
	}
	if (low > high)
		return -1;
}
	
	
int main() {
	int i = 0, n = 0, low, high;
	pos1 = fun1(i);
	pos2 = fun2(b[5], 1, 5);
	cout << pos1 << endl;
	cout << pos2 << endl;
	vector <int> vi;
	for (int x = 0; x <= 5; x++) {
		for (int y = 2; y < b[x]; y++) {
			if (b[x] % y == 0) {

				if (y = b[x] - 1) {
					vi.push_back(b[x]);
				}
			}
		}
	}
	for (int x = 0; x <= 5; x++) {
		for (int y = 2; y < a[x]; y++) {
			if (a[x] % y != 0) {
				if (y = a[x] - 1) {
					vi.push_back(a[x]);
				}
				else continue;
			}
		}
	}
	for (int i = 10; i > 0; i--) {
		if (vi[i] < vi[i - 1]) {
			temp = vi[i];
			vi[i] = vi[i - 1];
			vi[i - 1] = temp;
		}
		else
			continue;
	}
	for (int i = 0; i <= 10; i++)
		cout << vi[i] << "\t";
	return 0;
}

第三题
结果
Constructor of Point
Copy constructor of Point
Constructor of Circle
Destructor of Point
end
Destructor of Circle
Destructor of Point
流程:先执行point函数,再执行circle函数

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

class Point {
	double m_x = 0, m_y = 0;
public:
	Point(double x = 0, double y = 0) : m_x(x), m_y(y) {
		cout << "Constructor of Point" << endl;
	}
	Point(const Point& p) :m_x(p.m_x), m_y(p.m_y) {
		cout << "Copy constructor of Point" << endl;
	}
	~Point() {
		cout << "Destructor of Point" << endl;
	}
	double getX()
	{
		return m_x;
	}
	double getY()
	{
		return m_y;
	}
public:
	friend double changdu(const Point& a, const Point& b);
};

double changdu(const Point& a, const Point& b) {
	double i = sqrt(a.m_x * a.m_x + a.m_y * a.m_y);
	return i;
}
class Circle {
	Point m_center; double m_radius = 1.0;
public:
	Circle(double r = 1, const Point& p = Point()) :m_center(p), m_radius(r) {
		cout << "Constructor of Circle" << endl;
	}
	~Circle() {
		cout << "Destructor of Circle" << endl;
	}

	
	double zhouchang()
	{
		const double PI = 3.14;
		double w = 2 * PI * m_radius;
		return w;
	}
	double mianji()
	{
		const double PI = 3.14;
		double q = PI * m_radius * m_radius;
		return q;
	}
};

int main()
{
	Circle a(2, Point(1, 1));
	cout << "end" << endl;

	Point e(2, 3);
	Point m(4, 2);
	cout << "圆的横坐标" << e.getX() <<endl;
	cout << "圆的纵坐标" << m.getY() << endl;
	cout << "两点间的距离" << changdu(e,m) << endl;
	Circle r(3, e);

	cout << "圆的面积:" << r.mianji() << endl;
	cout << "圆的周长:" << r.zhouchang() << endl;
	return 0;
}

坐标,距离,面积,周长分别通过四个函数实现

数据治理是确保数据准确性、可靠性、安全性、可用性和完整性的体系和框架。它定义了组织内部如何使用、存储、保护和共享数据的规则和流程。数据治理的重要性随着数字化转型的加速而日益凸显,它能够提高决策效率、增强业务竞争力、降低风险,并促进业务创新。有效的数据治理体系可以确保数据在采集、存储、处理、共享和保护等环节的合规性和有效性。 数据质量管理是数据治理中的关键环节,它涉及数据质量评估、数据清洗、标准化和监控。高质量的数据能够提升业务决策的准确性,优化业务流程,并挖掘潜在的商业价值。随着大数据和人工智能技术的发展,数据质量管理在确保数据准确性和可靠性方面的作用愈发重要。企业需要建立完善的数据质量管理和校验机制,并通过数据清洗和标准化提高数据质量。 数据安全与隐私保护是数据治理中的另一个重要领域。随着数据量的快速增长和互联网技术的迅速发展,数据安全与隐私保护面临前所未有的挑战。企业需要加强数据安全与隐私保护的法律法规和技术手段,采用数据加密、脱敏和备份恢复等技术手段,以及加强培训和教育,提高安全意识和技能水平。 数据流程管理与监控是确保数据质量、提高数据利用率、保护数据安全的重要环节。有效的数据流程管理可以确保数据流程的合规性和高效性,而实时监控则有助于及时发现并解决潜在问题。企业需要设计合理的数据流程架构,制定详细的数据管理流程规范,并运用数据审计和可视化技术手段进行监控。 数据资产管理是将数据视为组织的重要资产,通过有效的管理和利用,为组织带来经济价值。数据资产管理涵盖数据的整个生命周期,包括数据的创建、存储、处理、共享、使用和保护。它面临的挑战包括数据量的快速增长、数据类型的多样化和数据更新的迅速性。组织需要建立完善的数据管理体系,提高数据处理和分析能力,以应对这些挑战。同时,数据资产的分类与评估、共享与使用规范也是数据资产管理的重要组成部分,需要制定合理的标准和规范,确保数据共享的安全性和隐私保护,以及建立合理的利益分配和权益保障机制。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值