首页 > 其他分享 >课堂练习

课堂练习

时间:2024-10-18 23:21:01浏览次数:1  
标签:real p2 p1 const 课堂练习 imag Complex

Complex.h中的代码:

#include <iostream>
#pragma once
class Complex
{
public:
	Complex(double x=0, double y=0);
	Complex(const Complex& p);
	~Complex();
	void add(const Complex& p);
	double get_real() const;
	double get_imag() const;
	friend Complex add(const Complex& p1, const Complex& p2);
	friend bool is_equal(const Complex& p1, const Complex& p2);
	friend bool is_not_equal(const Complex& p1, const Complex& p2);
	friend void output(const Complex& p);
	friend double abs(const Complex& p);
	static const std::string doc;
private:
	double real, imag;
};

Complex.cpp中的代码:

#include "Complex.h"
#include <cmath>
double Complex::get_real() const
{
	return real;
}
double Complex::get_imag() const
{
	return imag;
}
void Complex::add(const Complex& p)
{
	real = real + p.real;
	imag = imag + p.imag;
}
Complex::Complex(double x, double y):real{x},imag{y}{}
Complex::Complex(const Complex& p):real{ p.real },imag{ p.imag }{}
Complex::~Complex(){}
Complex add(const Complex& p1, const Complex& p2)
{
	return Complex(p1.real + p2.real, p1.imag + p2.imag);
}
bool is_equal(const Complex& p1, const Complex& p2)
{
	if (p1.real == p2.real && p1.imag == p2.imag)
	{
		return 1;
	}
	else
	{
		return 0;
	}
}
bool is_not_equal(const Complex& p1, const Complex& p2)
{
	if (p1.real == p2.real && p1.imag == p2.imag)
	{
		return 0;
	}
	else
	{
		return 1;
	}
}
void output(const Complex& p)
{
	if (p.imag >= 0)
	{
		std::cout << p.real << " + " << p.imag << "i";
	}
	else
	{
		std::cout << p.real <<  " - " <<(-1.0)*p.imag << "i";
	}
}
double abs(const Complex& p)
{
	return sqrt(p.real * p.real + p.imag * p.imag);
}
const std::string Complex::doc{ "a simplfified Complex class" };

  

main.cpp中的代码:

// 待补足(多文件组织代码时,需要包含的头文件)
#include <iostream>
#include "Complex.h"
using std::cout;
using std::endl;
using std::boolalpha;

void test() {
    cout << "类成员测试: " << endl;
    cout << Complex::doc << endl;

    cout << endl;

    cout << "Complex对象测试: " << endl;
    Complex c1;
    Complex c2(3, -4);
    const Complex c3(3.5);
    Complex c4(c3);

    cout << "c1 = "; output(c1); cout << endl;
    cout << "c2 = "; output(c2); cout << endl;
    cout << "c3 = "; output(c3); cout << endl;
    cout << "c4 = "; output(c4); cout << endl;
    cout << "c4.real = " << c4.get_real() << ", c4.imag = " << c4.get_imag() << endl;

    cout << endl;

    cout << "复数运算测试: " << endl;
    cout << "abs(c2) = " << abs(c2) << endl;
    c1.add(c2);
    cout << "c1 += c2, c1 = "; output(c1); cout << endl;
    cout << boolalpha;
    cout << "c1 == c2 : " << is_equal(c1, c2) << endl;
    cout << "c1 != c3 : " << is_not_equal(c1, c3) << endl;
    c4 = add(c2, c3);
    cout << "c4 = c2 + c3, c4 = "; output(c4); cout << endl;
}

int main() {
    test();
}

  

运行截图:

 注意事项:main.cpp文件中包含的文件应为“Complex.h“而不是”Complex.cpp“,这会导致头文件的内容在每个包含它的.cpp文件中重复编辑,从而造成重复定义的问题。

学习体会:学会友元函数的操作,有关返回值为Complex类型的做法。

标签:real,p2,p1,const,课堂练习,imag,Complex
From: https://www.cnblogs.com/wxdyyds/p/18475216

相关文章

  • 第一章课堂练习
    1.使用HBuilder编写符合以下要求的文档:网页标题为“网页学习”,在浏览器窗口中显示“欢迎大家一起开始学习网页制作”。完成效果。其中网页所有文字的颜色为blue,背景颜色为#99fff;水平分割线粗细为5,颜色为#ff3333。<!DOCTYPEhtml><html><head><title>网页学习</title>......
  • 01个人课堂练习
    //policy123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828......
  • 02个人课堂练习
    packagecom.example.policyquery;importandroid.content.Intent;importandroid.os.Bundle;importandroid.util.Log;importandroid.view.View;importandroid.widget.AdapterView;importandroid.widget.ArrayAdapter;importandroid.widget.AutoCompleteTextView;import......
  • 个人课堂练习01
    个人课堂练习013月15日今天进行了web端的政策查询的实现,借鉴了一些学长的一些代码,//policy*{    padding: 0;    margin: 0;    font-family: 'OpenSansLight';    letter-spacing:.05em;    margin: 0 auto;    text-align:center;......
  • 个人课堂练习02
    个人课堂练习025月15日今天是将web端的政策查询使得在手机端也能实现,同样借鉴了学长的packagecom.example.policyquery;importandroid.content.Intent;importandroid.os.Bundle;importandroid.util.Log;importandroid.view.View;importandroid.widget.AdapterView;impor......
  • 个人课堂练习01
    今天建民让我们在课堂上实现安卓端的连接数据库,然后实现增删改,我在课堂上三个小时只实现了mysql本地数据库的连接,然后在回到宿舍后,弄到了晚上22点,我实现了增删改以下是我的代码:pckagecom.example.newone;importandroidx.appcompat.app.AppCompatActivity;importandroi......
  • 课堂练习 最大值 原题链接+题解
    题目可以去我的洛谷题库看:https://www.luogu.com.cn/problem/U412348(带数据,真难出)题解考虑两种解题方式。由于题目范围较小,可以check+暴力,如果范围大一点,可以check+二分答案。先讲check函数,小学四年级数学书说了,这种问题也被它叫做“铺地砖”问题,计算剪出的正方形数量的方......
  • 三月五日 课堂练习
    课堂练习01题目:计算最长英语单词链。一、题目内容:大家经常玩成语接龙游戏,我们试一试英语的接龙吧:一个文本文件中有N个不同的英语单词,我们能否写一个程序,快速找出最长的能首尾相连的英语单词链,每个单词最多只能用一次。最长的定义是:最多单词数量,和单词中字母的数量无关。二......
  • 课堂练习
    1.createtable学生表(学号char(10),姓名char(10),出生日期date,入学成绩decimal);insertinto学生表values('1001','张三','2000-10-20','510'),('1002','赵五',null,null);2.为1002记录的出生日期和入学成绩分别添值为2002-05-26、497。upd......
  • 课堂练习
    目录pod的资源限制手动更改cpu等资源的最大最小值#命令更改[root@master-1rc]#kubectlscalersnginx-rs--replicas=8#文件内容更改,不用重启[root@master-1rc]#kubectleditrsnginx-rs#直接更改资源文件,要从新启动vimrs.yaml#rs实时扩缩容量#podapiVers......