#ifndef COMPLEX_HPP
#define COMPLEX_HPP
#include <iostream>
#include <iomanip>
#include <string>
#include <math.h>
using namespace std;
class Complex
{
public:
Complex(){
};
Complex(double r,double i);
Complex(double r);
Complex(const Complex &c);
~Complex(){};
double get_real() const;
double get_imag() const;
void show() const;
void add(const Complex &c);
friend Complex add(const Complex &c1,const Complex &c2);
friend bool is_equal(const Complex &c1,const Complex &c2);
friend double abs(const Complex &c);
private:
double real;
double imag;
};
Complex::Complex(double r,double i):real(r),imag(i){}
Complex::Complex(double r):real(r),imag(0.0){}
Complex::Complex(const Complex &c):real(c.real),imag(c.imag){}
double Complex::get_real() const{
return real;
}
double Complex::get_imag() const{
return imag;
}
void Complex::show() const{
if(imag>0)
cout<<real<<"+"<<imag<<"i";
else if(imag==0)
cout<<real;
else
cout<<real<<imag<<"i";
}
void Complex::add(const Complex &c){
real+=c.real;
imag+=c.imag;
}
Complex add(const Complex &c1,const Complex &c2){
Complex c;
c.imag=c1.imag+c2.imag;
c.real=c1.real+c2.real;
return c;
}
bool is_equal(const Complex &c1,const Complex &c2){
if (c1.imag==c2.imag)
return true;
else
return false;
}
double abs(const Complex &c){
return sqrt(c.imag*c.imag+c.real*c.real);
}
#endif
#include "Complex.hpp"
#include <iostream>
int main()
{
using namespace std;
Complex c1(1, -1);
const Complex c2(1.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;
}
![]()
#include<iostream>
using namespace std;
class User
{
public:
User(string a, string p = "111111", string e = "") : name(a), password(p), email(e) { n++; }
User(User& u) : name(u.name), password(u.password), email(u.email) { n++; }
void set_email()
{
cout << "Enter email address:";
cin >> email;
cout << "email is set sucessfully..." << endl;
}
void change_passwd();
void print_info()
{
cout << "name: " << name << endl;
cout << "passwd:******" << endl;
cout << "email :" << email << endl;
}
static void print_n()
{
cout << "there are " << n << " users." << endl;
}
~User() { n--; }
private:
string name;
string password;
string email;
static int n;
};
int User::n = 0;
void User::change_passwd()
{
int i = 0;
string temp;
while (i != 3)
{
if (i == 0)
cout << "Enter old password:";
else
cout << "Please re-enter again:";
cin >> temp;
if (temp == password)
{
cout << "Enter new password:";
cin >> password;
while (password.length() != 6 || password.find('@') == -1)
{
cout << "The new password is wrong.";
cout << "Please input again:";
cin >> password;
}
cout << "new password is set sucessfully..." << endl;
return;
}
else
{
cout << "password input error.";
i++;
}
}
if (i == 3)
cout << "Please try after a while." << endl;
}
#include "User.hpp"
#include <iostream>
int main()
{
using namespace std;
cout << "testing 1......" << endl;
User user1("hahha", "12345", "1234@bb.com");
user1.print_info();
cout << endl
<< "testing 2......" << endl
<< endl;
User user2("Abc");
user2.change_passwd();
user2.set_email();
user2.print_info();
User::print_n();
}
![]()