task.4
Complex.hpp
#include<iostream> #include<math.h> using namespace std; class Complex{ public: Complex (float r = 0, float i = 0) : real{r}, imag{i} {} Complex (const Complex &obj) : real{obj.real} , imag{obj.imag} {} float get_real() const { return real; } float get_imag() const { return imag; } void show() const { if(imag > 0) cout << real<< " + " << imag << "i"<<endl; if(imag < 0) cout <<real<< " - " << -imag << "i"<<endl; if(imag==0) cout << real<<endl; } void add(const Complex &obj){ real += obj.get_real(); imag += obj.get_imag(); } friend Complex add(const Complex &a, const Complex &b){ return Complex(a.real + b.real, a.imag + b.imag); } friend bool is_equal(const Complex &a, const Complex &b){ if(a.get_imag()==b.get_imag()&&a.get_real()==b.get_real())return true; else return false; } friend float abs(const Complex &obj){ return sqrt(obj.real * obj.real + obj.imag * obj.imag); } private: float real, imag; };
task4.cpp
#include<iostream> #include"Complex.hpp" void test(){ using namespace std; Complex c1(1, 4); const Complex c2(2.34); 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(); }
测试结果1
测试结果二
task.5
User.hpp
#include<iostream> #include<string> using namespace std; class User{ public: User(string n,string p="111111", string e=""); void set_email(){ cout<<"Enter email address:"<<endl; cin>>email; cout << "email is set successfully..." << endl; } void change_passwd(); void print_info()const; void static print_n(){ cout<<"there are "<<n<<" users"<<endl; } private: string name,passwd,email; static int n; }; User::User(string n1,string p,string e):name(n1),passwd(p),email(e){ n++; } int User::n=0; void User::change_passwd(){ cout<<"Enter old password:"; string c; int count=1; cin>>c; while (c!=passwd&&count<3) { cout << "password input error.please re-enter again: "; cin >> passwd; count++; if (count == 3) { cout << "password input error.please try after a while." << endl; } } if (count!=3) { cout << "enter new passwd: "; cin >> passwd; cout << "new passwd is set successfully..." << endl; } } void User::print_info()const{ int l=passwd.length(); cout<<"name: "<<name<<endl; cout<<"password: "; while(l--){cout<<"*"; }cout<<'\n'; cout<<"email: "<<email<<endl; }
task5.cpp
#include "User.hpp" #include <iostream> void test() { using std::cout; using std::endl; cout << "testing 1......\n"; User user1("lucy", "123456", "[email protected]"); user1.print_info(); cout << endl << "testing 2......\n\n"; User user2("Alice"); user2.change_passwd(); user2.set_email(); user2.print_info(); cout << endl; User::print_n(); } int main() { test(); }
测试结果1
测试结果二
测试结果三
实验总结
const用法不太熟悉
语句还不够精炼
标签:real,const,cout,对象,imag,Complex,实验,include From: https://www.cnblogs.com/akumanpower/p/16786294.html