实验一 类与对象

#include<iostream>
#include<cmath>
class Complex {
public:
    Complex(double i = 0, double j = 0) :a{ i }, b{ j }{}
    Complex(Complex const& p) :a{ p.a }, b{ p.b }{}
    ~Complex() {}
    double get_real()const { return a; }
    double get_imag() const { return b; }
    void show() const {
        std::cout << a;
        if (b > 0) {
            std::cout << '+' << b << 'i';
        }
        if (b < 0) {
            std::cout << b << 'i';
        }
    }
    void add(Complex c) {
        a += c.a;
        b += c.b;
    }
    friend Complex  add(Complex aa, Complex  bb);
    friend bool is_equal(Complex a, Complex b);
    friend double abs(Complex c);
private:
    double a, b;
};
Complex add(Complex aa, Complex  bb) {
    Complex i;
    i.a = aa.a + bb.a;
    i.b = aa.b + bb.b;
    return i;
}
bool is_equal(Complex a, Complex b) {
    if (a.a != b.a)return false;
    else if (a.b != b.b)return false;
    else return true;
}
double abs(Complex c) {
    return sqrt(c.a * c.a + c.b * c.b);
}

int main()
{
    using namespace std;
    Complex c1(3,-4);
    const Complex c2(4.5);
    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;
}

 

#pragma once
#ifndef USER_h
#define USER_h
#include<iostream>
#include<string>
using namespace std;
class User {
    
public:
    User(string n, string p = "111111", string e = "") :name(n), passwd(p), email(e) { ++count; };
    void set_email() { 
        cout << "Enter email address:";
        cin >> email;
        cout << endl << "emai is set succesfully..." << endl;
    }
    static void print_n() { cout << "there are " << count << " users."; }
    void change_passwd();
    void print_info();
    ~User(){}
private:
    std::string name, passwd, email;
    static int count;
};
int User::count = 0;
void User::change_passwd() {
    cout << "Enter old passwd:";
    string a;
    cin >> a;
    for (int n = 1; n <= 3; ++n) {
        if (a != passwd) {
            if (n == 3) {
                cout << "password input error.Please try after a while."<<endl;
                return;
            }
            else {
                cout << "password input error.Please re-enter again:";
                cin >> a;
            }
        }
        else {
            cout << "Please change password:";
            cin >>passwd;
        }
    }
}
void User::print_info() {
    cout << "name:" << name<<endl;
    cout << "passwd:******"  << endl;
    cout << "email:" << email << endl;
}
#endif // !USER_h

#include <iostream>
int main()
{
    using namespace std;
    cout << "testing 1......" << endl;
    User user1("Jonny", "92197", "xyz@hotmail.com");
    user1.print_info();
    cout << endl
        << "testing 2......" << endl
        << endl;
    User user2("Leonard");
    user2.change_passwd();
    user2.set_email();
    user2.print_info();
    User::print_n();
}

 

posted @ 2021-10-24 22:34  此生不想敲代码  阅读(33)  评论(2编辑  收藏  举报