首页 > 其他分享 >实验2 类和对象(2)

实验2 类和对象(2)

时间:2022-10-16 19:00:07浏览次数:42  
标签:const cout 对象 imag passwd Complex 实验 include

实验任务4

#pragma once
#include<iostream>
#include<cmath>
using namespace std;
//定义Complex类
class Complex{
    public:
        Complex(double r=0,double i=0):real{r},imag{i}{}
        Complex(const Complex &c)
        {
            real=c.real;
            imag=c.imag;
        }
        double get_real()const{return real;}
        double get_imag()const{return imag;}
        void show()const
        {
            if(imag>0)
            {
                cout<<real<<'+'<<imag<<'i';
            }
            else if(imag<0)
            {
                cout<<real<<imag<<'i';
            }
            else
            {
                cout<<real;
            }
        }
        void add(const Complex c)
        {
            real+=c.real;
            imag+=c.imag;
        }
        friend Complex add(const Complex c1,const Complex c2);
        friend bool is_equal(const Complex c1, const Complex c2);
        friend double abs(const Complex c1);
    private:
        double real,imag;
};
Complex add(const Complex c1,const Complex c2)
{
    Complex c3;
    c3.real=c1.real+c2.real;
    c3.imag=c1.imag+c2.imag;
    return c3;
}
bool is_equal(const Complex c1,const Complex c2)
{
    if(c1.real==c2.real&&c1.imag==c2.imag)
    {
        return true;
    }
    return false;
}
double abs(const Complex c)
{
    return sqrt(c.real*c.real+c.imag*c.imag);
}
#include "Complex.hpp"
#include <iostream>
// 类测试
void test() {
using namespace std;
Complex c1(-3, -4);
const Complex c2(2.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

#pragma once
#include<iostream>
#include<iomanip>
#include<string>
using namespace std;
class User{
public: 
    User(string s1,string s2="111111",string s3=""):name{s1},passwd{s2},email{s3}{n++;}
    ~User(){n--;}
    void change_passwd()
    {
        string s;
        cout<<"Enter old password: ";
        cin>>s;
        if(s==passwd)
        {
            cout<<"Enter new passwd: ";
            cin>>passwd;
            cout<<"new passwd is set successfully..."<<endl;
        }
        else
        {
            cout<<"password input error. Please re-enter again: ";
            cin>>s;
            if(s==passwd)
            {
                cout<<"Enter new passwd: ";
                cin>>passwd;
                cout<<"new passwd is set successfully..."<<endl;
            }
            else
            {
                cout<<"password input error. Please re-enter again: ";
                cin>>s;
                if(s==passwd)
                {
                    cout<<"Enter new passwd: ";
                    cin>>passwd;
                    cout<<"new passwd is set successfully..."<<endl;
                }
                else
                {
                    cout<<"password input error. Please try after a while."<<endl;
                }
            }
        }
    }
    void set_email()
    {
        cout<<"Enter email address: ";
        cin>>email;
        cout<<"email is set successfully..."<<endl;
    }
    void print_info()
    {
        cout<<left<<setw(8)<<"name:"<<name<<endl;
        cout<<left<<setw(8)<<"passwd:";
        for(auto i:passwd)
        {
            cout<<'*';
        }
        cout<<endl;
        cout<<left<<setw(8)<<"email:"<<email<<endl;
    }
private:
    string name,passwd,email;
private:
    static int n;
};
#include "User.hpp"
#include <iostream>
// 测试User类
void test() {
using std::cout;
using std::endl;
cout << "testing 1......\n";
User user1("Mary", "92197", "[email protected]");
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 User::n=0;
int main() {
test();
}

 

标签:const,cout,对象,imag,passwd,Complex,实验,include
From: https://www.cnblogs.com/fch20030128/p/16796801.html

相关文章

  • 实验5:开源控制器实践——POX
    实验5:开源控制器实践——POX一、实验目的1.能够理解POX控制器的工作原理;2.通过验证POX的forwarding.hub和forwarding.l2_learning模块,初步掌握POX控制器的使用方法;3.......
  • Windows不分区VHD装Linux多系统(七):ubuntu 22.04.1安装实验
    一、安装过程:环境:1.物理机系统:Win102. ISO镜像:ubuntu-22.04.1-desktop-amd64.iso3.虚拟机:VirtualBox图形用户界面,版本6.1.36r152435(Qt5.6.2)    安......
  • 实验二 类和对象(2)
    4.实验任务4不使用C++标准库,自行设计并实现一个简化版复数类Complex。Complex.hpp: #pragmaonce#include<iostream>#include<string>#include<iomanip>#incl......
  • 实验5:开源控制器实践——POX
    实验5:开源控制器实践——POX一、实验目的能够理解POX控制器的工作原理;通过验证POX的forwarding.hub和forwarding.l2_learning模块,初步掌握POX控制器的使用方法;能够......
  • 实验4:开源控制器实践——OpenDaylight
    实验4:开源控制器实践——OpenDaylight一、实验目的能够独立完成OpenDaylight控制器的安装配置;能够使用Postman工具调用OpenDaylightAPI接口下发流表。二、实验环境Ub......
  • 实验4:开源控制器实践——OpenDaylight
    实验4:开源控制器实践——OpenDaylight一、实验目的1.能够独立完成OpenDaylight控制器的安装配置;2.能够使用Postman工具调用OpenDaylightAPI接口下发流表。二、实验环......
  • Python第六章实验报告
    一.实验内容:《零基础学Python》第六章实例和实战,以及一道作业题二.实验环境:IDLEShell3.9.7三.实验目的和要求:掌握定义和调用函数、变量的作用域、匿名函数、参数传递、......
  • 实验1
    1#include<stdio.h>2intmain()3{4printf("O\n");5printf("<H>\n");6printf("II\n");7return0;8}   1#include<st......
  • 实验2 类与对象(2)
    一、实验内容:实验任务4:1.Complex.hpp:#include<iostream>#include<cmath>usingnamespacestd;classComplex{public:Complex(doublex=0,doubley=0......
  • 实验5:开源控制器实践——POX
    基础要求实验总结本次实验的难度相较于之前的几次实验要有所提升,本次实验中运用POX控制器,这使得我熟悉了这一控制器的安装方法及其基础使用方法,同时对于在前几......