实验2

实验4

hpp

#pragma once

#include <iostream>
#include <string>
#include <cmath>
using namespace std;

class Complex{
public:
    Complex(): real{0}, imag{0} { }
    Complex(double r,double i=0): real{r}, imag{i} { }
    Complex(Complex& com): real{com.real}, imag{com.imag} { }
    
    double get_real() const {return real;}
    double get_imag() const {return imag;}
    
    void show () const ;
    void add(const Complex &com);
    
    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,imag;    
};

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

void Complex::add(const Complex &com){
    this->real=this->real+com.real;
    this->imag=this->imag+com.imag;
    
}

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

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

double abs(const Complex &c){
    return sqrt(pow(c.real,2)+pow(c.imag,2));    
}

cpp

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

void test() {
    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;
}

int main() {
    test();
}

 

实验5

hpp

#pragma once

#include <iostream>
#include <string>
using namespace std;
class User{
public:
    User(string name1,string passwd1="111111",string email1=""): name{name1}, passwd{passwd1}, email{email1} { n++; }
    
    void set_email();
    void change_passwd();
    void print_info();
    
    void static print_n(){
        cout<<"there are "<<n<<" user"<<endl;
    }
private:
    string name;
    string passwd;
    string email; 
    static int n;
};

int User::n=0;

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

void User::change_passwd(){
    cout<<"Enter old password: ";
    string old;
    int count=1;
    cin>>old;
    while(old!=passwd&&count<3){
        cout<<"password input error, Please re-enter again: ";
        cin>>old;
        count++;    
    }
    if(count==3){
        cout<<"password input error, Please try after a while"<<endl;    
    }
    if(old==passwd){
        cout<<"Enter new password: ";
        cin>>passwd;
        cout<<"new password is set successfully..."<<endl;
    }    
}

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

cpp

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


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

    cout << "testing 1......\n";
    User user1("Jonny", "92197", "xyz@hotmail.com");
    user1.print_info();

    cout << endl
         << "testing 2......\n\n";
         
    User user2("Leonard");
    user2.change_passwd();
    user2.set_email();
    user2.print_info();

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

int main() {
    test();
}

 

posted @ 2022-10-18 20:43  魏泽炜  阅读(16)  评论(0)    收藏  举报