CUC程序设计重载

运算符重载练习

Complex类为表示复数的类,两个成员函数分别为real和imag,包含构造析构函数和显示函数,按要求为Complex类重载以下几个运算符函数,并在主函数中进行测试。
1.赋值=:重载为成员函数(必须)
2.加号-:重载为友元函数
3.前置++:重载为友元函数
4.后置++:重载为友员函数
5.判断相等= = :重载为友元函数
主函数进行测试。

#include <iostream>
#include<math.h>
using namespace std;
class Complex
{
   
public:
    double real,imag;
    Complex(double r=0.0,double i=0.0):real(r),imag(i){
   }
    Complex operator = (Complex &a)
    {
   
        real=a.real,imag=a.imag;
        return *this;
    }
    friend Complex operator - (Complex &a,Complex &b)
    {
   
        return Complex(a.real-b.real,a.imag-b.imag);
    }
    friend Complex operator ++ (Complex &a,int)  //后置++
    {
   
        Complex tmp(a);
        a.real++,a.imag++;
        return tmp;
    }
    friend Complex &operator ++(Complex &c)
    {
   
        c.real++,c.imag++;
        return c;
    }
        friend bool operator == (Complex &a,Complex &b)
    {
   
        if(a.real == b.real && a.imag == b.imag) return 1;
        return 0;
    }
    void Print()
    {
   
        if(imag>0) cout<<real<<"+"<<imag<<"j"<<'\n';
        if(imag<0) cout<<real<<"-"<<imag<<"j"<<'\n';
    }
    ~Complex(){
   }
};
int main()
{
   
	Complex c1(1,2),c2;
	c2=c1;
	c2.Print();

	Complex c3(2,3),c4(1,2);
	Complex cc;
	(c3-c4).Print();


	Complex c6(1,2);
	(c6++).Print();

	(++c6).Print();

	Complex c7(1,2),c8(2,3),c9(1,2);
	cout<<(c7==c8)<<endl;
	cout<<(c7==c9)<<endl;  	
	return 0;
}

工人类01

试建立一个类Worker用于描述职工,具体要求如下:
(1)私有数据成员
unsigned int id: 职工号。
char name[11]:姓名
float salary: 工资。(有一符号常量为工资最低值,设为2000)
int level: 技术等级(1~20级),1级为最低,每个等级差别200元
(2)公有成员函数
Worker ( ):构造函数,初始化数据成员为默认值(自动生成职工号,姓名为空,工资默认最低)。
Worker (…):构造函数(自己定义参数),用参数初始化数据成员。参数有各个数据成员。
void setName(…): 设置职工姓名
void infoList( ): 输出职工的各项信息。
void setLevel(…): 修改技术等级level的值。每增加一个等级工资增加200元。
(3)static变量total计算工资总数和函数Average()计算平均工资。
(4)设置友元函数void setReward(…),给工人。
(5)在主程序中定义N(=3)个Worker对象作为测试数据,完成对Worker类和程序的测试。
(6)在主程序中对其中某个工人发放奖金500元

#include <iostream>
#include <string.h>
using namespace std;
const int N = 3;
int idx=0;
class Worker{
   
public:
     static double total,Average();
     int num=0;
    Worker()
    {
   
        id=0;
        name[0]='\0';
        w
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

幸愉信奥

谢谢亲的支持,我会继续努力啦~

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值