实验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(); }