实验1 类与对象
实验任务三
Complex.hpp
1 #include<iostream> 2 #include<cmath> 3 using namespace std; 4 class Complex{ 5 private: 6 double real, imag; 7 public: 8 Complex(double r = 0, double i = 0):real(r), imag(i){} 9 Complex(const Complex & c){real = c.real; imag = c.imag;} 10 double get_real()const{return real;} 11 double get_imag()const{return imag;} 12 void show()const; 13 void add(const Complex &c); 14 friend Complex add(const Complex &c1, const Complex &c2); 15 friend bool is_equal(const Complex &c1, const Complex &c2); 16 friend double abs(const Complex &c); 17 }; 18 19 void Complex::show()const{ 20 if(imag > 0) 21 cout << real << " + " <<imag << "i"; 22 else if(imag < 0) 23 cout << real <<" - " << -1*imag << "i"; 24 else 25 cout << real; 26 } 27 void Complex::add(const Complex &c){ 28 real += c.real; 29 imag += c.imag; 30 } 31 Complex add(const Complex &c1, const Complex &c2){ 32 Complex c; 33 c.real = c1.real + c2.real; 34 c.imag = c1.imag + c2.imag; 35 return c; 36 } 37 bool is_equal(const Complex &c1, const Complex &c2){ 38 if(c1.real==c2.real && c1.imag==c2.imag) 39 return true; 40 return false; 41 } 42 double abs(const Complex &c){ 43 double s = sqrt(c.real * c.real + c.imag * c.imag); 44 return s; 45 }
task3.cpp
#include "Complex.hpp" #include <iostream> int main() { using namespace std; Complex c1(-9, 2); const Complex c2(6.3); 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; }
实验结果
实验任务4
User.hpp
1 #include<iostream> 2 #include<cstring> 3 using namespace std; 4 5 class User{ 6 private: 7 string name; 8 string passwd; 9 string email; 10 static int n; 11 public: 12 User(string name0, string passwd0 = "111111", string email0 = "\0"): 13 name(name0), passwd(passwd0), email(email0){ ++n;} 14 void set_email(); 15 void change_passwd(); 16 void print_info()const; 17 static void print_n(); 18 }; 19 int User::n = 0; 20 21 void User::set_email(){ 22 cout << "Enter email address:"; 23 cin >> email; 24 cout << "email is set successfully..." << endl; 25 } 26 27 void User::change_passwd(){ 28 string p; 29 cout << "Enter old password: "; 30 for(int i=0; i<3; i++){ 31 cin >> p; 32 if(p==passwd){ 33 cout << "Enter new password: "; 34 cin >> passwd; 35 cout << "new password is set successfully..." << endl; 36 break; 37 } 38 else{ 39 cout << "password input error."; 40 if(i==0||i==1) 41 cout << " Please re-enter again: "; 42 else 43 cout << "Please try after a while." << endl; 44 } 45 } 46 } 47 48 void User::print_info()const{ 49 cout << "name: " << name << endl; 50 cout << "password: ******" << endl; 51 cout << "email: " << email << endl; 52 53 } 54 55 void User::print_n(){ 56 if(n == 1) 57 cout << "there is " << n << " user." << endl; 58 else 59 cout << "there are " << n << " users." << endl; 60 }
task4.cpp
1 #include "User.hpp" 2 #include <iostream> 3 4 int main() 5 { 6 using namespace std; 7 8 cout << "testing 1......" << endl; 9 User user1("Jonny", "92197", "xyz@hotmail.com"); 10 user1.print_info(); 11 12 cout << endl 13 << "testing 2......" << endl 14 << endl; 15 User user2("Leonard"); 16 user2.change_passwd(); 17 user2.set_email(); 18 user2.print_info(); 19 20 User::print_n(); 21 }
实验结果