首页 > 其他分享 >类和对象

类和对象

时间:2022-10-15 20:11:22浏览次数:38  
标签:const cout 对象 void Complex include imag

#include "complex.hpp"
#include <iostream>


void test() {
    using namespace std;

    Complex c1(6, 6);
    const Complex c2(6);
    Complex c3(c1);

    cout << "c1 = ";
    c1.show();
    cout << endl;

    cout << "c2 = ";
    c2.show();
    cout << endl;
    cout << "c2.imag = " << c2.get_imag() << endl;

    cout << "c3 = ";
    c3.show();
    cout << endl;

    cout << "abs(c1) = ";
    cout << abs(c1) << endl;

    cout << boolalpha;
    cout << "c1 == c3 : " << is_equal(c1, c3) << endl;
    cout << "c1 == c2 : " << is_equal(c1, c2) << endl;

    Complex c4;
    c4 = add(c1, c2);
    cout << "c4 = c1 + c2 = ";
    c4.show();
    cout << endl;

    c1.add(c2);
    cout << "c1 += c2, " << "c1 = ";
    c1.show();
    cout << endl;
}

int main() {
    test();
}

  

#pragma once

#include <iostream>
#include <cmath>

using std::cout;
using std::endl;

class Complex
{
public:
    Complex(double r = 0.0, double i = 0.0) : real{r}, imag{i} {}
    Complex(const Complex &obj) : real{obj.real}, imag{obj.imag} {}

public:
    double get_real() const { return real; }
    double get_imag() const { return imag; }
    void show() const;
    void add(const Complex &obj);

    friend Complex add(const Complex &c1, const Complex &c2);
    friend bool is_equal(const Complex &c1, const Complex &c2);
    friend double abs(const Complex &obj);

private:
    double real; 
    double imag; 
};

void Complex::show() const
{
    if (imag > 0)
    {
        cout << real << " + " << imag << "i";
    }
    else if (imag < 0)
    {
        cout << real << " - " << abs(imag) << "i";
    }
    else
    {
        cout << real;
    }
}

void Complex::add(const Complex &obj)
{
    real += obj.real;
    imag += obj.imag;
}

Complex add(const Complex &c1, const Complex &c2)
{
    return Complex(c1.real + c2.real, c1.imag + c2.imag);
}

bool is_equal(const Complex &c1, const Complex &c2)
{
    if (c1.real == c2.real && c1.imag == c2.imag)
        return true;
    return false;
}

double abs(const Complex &obj)
{
    return sqrt(obj.real * obj.real + obj.imag * obj.imag);
}

  

#include "User.hpp"
#include <iostream>


void test()
{
    using std::cout;
    using std::endl;

    cout << "testing 1......\n";
    User user1("cfl", "123456", "[email protected]");
    user1.print_info();

    cout << endl
         << "testing 2......\n\n";

    User user2("xl");
    user2.change_passwd();
    user2.set_email();
    user2.print_info();

    cout << endl;
    User::print_n();
}

int main()
{
    test();
}

  

#pragma once

#include <iostream>
#include <string.h>
#include <algorithm>


using namespace std;


class User
{
public:
    User(string n, string p = "111111", string e = "");
    void set_email();
    void change_passwd();
    void print_info();
    static void print_n() { cout << "there are " << count << " users" << endl; }

public:
    static int count;

private:
    string name;
    string passwd;
    string email;
};

int User::count = 0;

User::User(string n, string p, string e)
{
    name = n;
    passwd = p;
    email = e;
    count++;
}

void User::set_email()
{
    string s1;
    cout << "Enter email address: ";
    cin >> s1;
    email = s1;
    cout << "email is set successfully..." << endl;
}

void User::change_passwd()
{
    cout << "Enter old password: ";
    int times = 0;
    while (times < 3)
    {
        string s1;
        cin >> s1;
        if (s1.compare(passwd)==0)
        {
            cout << "Enter new passwd: ";
            string s1;
            cin >> s1;
            passwd = s1;
            cout << "new passwd is set successfully..." << endl;
            break;
        }
        if (times < 2)
            cout << "password input error. Please re-enter again:";
        times++;
    }
    if (times >= 3)
        cout << "passwd input error. Please try affter a while." << endl;
}

void User::print_info()
{
    cout << "name: " << name << endl;
    cout << "passwd: ";
    string s1(passwd.length(), '*');
    cout << s1 << endl;
    cout << "email: " << email << endl;
}

  

 

标签:const,cout,对象,void,Complex,include,imag
From: https://www.cnblogs.com/cflxl/p/16794939.html

相关文章