实验2

本文介绍了C++中的函数重载、快速排序算法实现及类对象的应用。通过实例展示了不同数据类型的函数重载方法、快速排序模板函数的具体应用以及类对象的属性设置与修改。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.函数重载add()

#include<iostream>
using namespace std;
struct complex {
double real;
double imaginary;
};
int Add(int a,int b)
{
        return a+b;
}
double Add(double a, double b)
{ 
        return a+b;
}
complex Add(complex a,complex b)
{       complex s;
s.imaginary=a.imaginary+b.imaginary;
s.real=a.real+b.real; 
return s;
}
int main()
{
    complex a={1.1,2.1};
    complex b={3.1,4.1};
    complex c=Add(a,b);
    cout<<"1+2="<<Add(1,2)<<endl;
    cout<<"1.5+2.5="<<Add(1.5,2.5)<<endl;
    cout<<"complex ab="<<c.real<<","<<c.imaginary<<endl; 
    return 0;
}

 

2.快速排序

#include<iostream>
using namespace std;
template<class X>
X Quicksort(X a[],int low,int high)
{ if(low>=high)
{ return 0;
}
int n1=low;
int e1=high;
int key=a[n1];
while(n1<e1)
{ while(a[e1]>=key&&n1<e1)
{ --e1;
}
a[n1]=a[e1];
while(a[n1]<=key&&n1<e1)
{ ++n1;
}
a[e1]=a[n1];
}
a[n1]=key;
Quicksort(a,low,n1-1);
Quicksort(a,n1+1,high);
}
int main()
{int i,a[5]={3,6,4,9,5};
Quicksort(a,0,5);
for(i=1;i<6;i++)
cout<<a[i]<<" ";
return 0;
}

 

3.类对象

#include <iostream>
#include <string>
using namespace std;
class User{
    public:
        void setinfo(string name1="",string passwd1="111111",string email1="");
        void changepasswd();
        void printinfo();
    private:
        string name;
        string passwd;
        string email;
};
void User::setinfo(string name1,string passwd1,string email1){
                   name=name1;
                   passwd=passwd1;
                   email=email1;
}
void User::changepasswd(){
      string old;
      int i=0;
      do{cout<<"请输入原密码:"; 
         cin>>old;
         if(old==passwd)
         {cout<<"请输入修改后的密码:"; 
          cin>>passwd;
          cout<<"修改成功:"; 
          break;
         }            
         else    i++;
         if(i==3)     
         cout<<"连续三次输错,请稍后重试!";         
        }while(i!=3);
     } 
void User::printinfo(){
       cout<<"name: "<<name<<endl;
       cout<<"password:******"<<endl;
       cout<<"email: "<<email<<endl;    
}
int main(){
    cout << "testing 1......" << endl;    
    User user1;    
    user1.setinfo("Leonard");    
    user1.printinfo();    
    user1.changepasswd();    
    user1.printinfo();
    cout << "testing 2......" << endl; 
    User user2;    
    user2.setinfo("Jonny","92197","xyz@hotmail.com");    
    user2.printinfo();        
    return 0; 
}

 

转载于:https://www.cnblogs.com/rcloud/p/10604345.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值