实验二

编写重载函数add(),实现对int型,double型,Complex型数据的加法。在main()函数中定义不同类型 数据,调用测试。

#include <iostream>
using namespace std;
struct addgsp 
{double s1;
 double s2;
};

int add(int x,int y)
{return x+y;
} 

double add(double x,double y)
{return x+y;
}

addgsp add(addgsp x, addgsp y)
{struct addgsp a;
 a.s1=x.s1+y.s1;
 a.s2=x.s2+y.s2;
 return a;
}

int main() 
{cout<<"请按顺序输入两个整数"<<endl;
 int x1,y1;
 double x2,y2,m1,n1,m2,n2;
 cin>>x1>>y1;
 cout<<x1<<" "<<y1<<"的和是"<<add(x1,y1)<<endl;
 cout<<"请按顺序输入两个双精度实数"<<endl;
 cin>>x2>>y2;
 cout<<x2<<" "<<y2<<"的和是"<<add(x2,y2)<<endl;
 cout<<"请输入四个数"<<endl;
 cin>>m1>>n2;
 cin>>m2>>n2;
 addgsp x={m1,n1};
 addgsp y={m2,n2};
 addgsp a=add(x,y);
 cout<<"四个数之和分别为"<<a.s1<<","<<a.s2<<endl;
 return 0;
}

【运行截图】

 

 

 

 

 

 

 

编写实现快速排序函数模板,并在main()函数中,定义不同类型数据,调用测试。

 

#include <iostream>
using namespace std;
template<typename T>
int gsp(T s[], int left, int right)
{int i=left+1,j=right;
 T temp=s[left],t;
 while(i<=j)
    {while (s[i]<temp)
          i++;
     while (s[j]>temp)
          j--;
     if (i<j)
        {t=s[i];
         s[i]=s[j];
         s[j]=t;
        }
     else i++;
    }
    t=s[j];
    s[j]=s[left];
    s[left]=t;
    return j;
}

template<typename T>
void px(T s[],int left,int right) 
{if (left>right)
   return;
 int j=gsp(s,left,right);
 px(s,left,j-1);
 px(s,j+1,right);
}

int main()
{int a[5];
 double b[5];
 int i,j;
 cout<<"请输入五个整型数字"<<endl;
 for(i=0;i<=4;i++)
    cin>>a[i];
 cout<<"请输入五个double型数字"<<endl;
 for(i=0;i<=4;i++)
    cin>>b[i];
 cout<<endl;
 px(a,0,4);
 px(b,0,4);
 for(i=0;i<=4;i++)
    cout<<a[i]<<endl;
 for(i=0;i<=4;i++)
    cout<<endl<<b[i];
 return 0;
}

【运行截图】

 

 

 

 

 

 

类的定义、实现和使用编程练习 设计并实现一个用户类User,并在主函数中使用和测试这个类。具体要求如下: 每一个用户有用户名(name), 密码(passwd),联系邮箱(email)三个属性。 支持设置用户信息setInfo()。允许设置信息时密码默认为6个1,联系邮箱默认为空串。 支持打印用户信息printInfo()。打印用户名、密码、联系邮箱。其中,密码以6个*方式显示。 支持修改密码changePasswd(),。在修改密码前,要求先输入旧密码,验证无误后,才允许修改。 如果输入旧密码时,连续三次输入错误,则提示用户稍后再试,暂时退出修改密码程序。 在main()函数中创建User类实例,测试User类的各项操作(设置用户信息,修改密码,打印用户信 息)

#include <iostream>
#include <string>
using namespace std;
class user 
{public:
   void setInfo(string name0,string password0="111111",string email0=" ");
   void changePassword();
   void printInfo();
 private:
   string name;
   string password;
   string email;
};

void user::setInfo(string name0,string password0,string email0)
{name=name0;
 password=password0;
 email=email0;
}

void user::changePassword()
{string old;
 int i=0;
 cout<<"请输入你的原密码"<<endl;
 cin>>old;
 while (old!=password && i<2)
      {i++;
       cout<<"错误,请重新输入"<<endl;
       cin>>old;
      }
 if(old==password)
   {cout<<"请输入你的新密码"<<endl;
    cin>>password;
   }
 else if(i=2)
   cout<<"请稍后再试"<<endl;
}

void user::printInfo ()
{cout<<"name is :"<<name<<endl;
 cout<<"password is ******"<<endl;
 cout<<"email is :"<<email<<endl;
}

int main() 
{user user1;
 user1.setInfo("Leonard");
 user1.printInfo();
 user1.changePassword();
 user1.printInfo();
 cout<<endl;
 user user2;
 user2.setInfo("Jonny","92197","xyz@hotmail.com");
 user2.printInfo();
 return 0;
}

【运行截图】

学会了简单的类的操作,但还不是特别熟练,下一次做到可能就会忘记了,还有模块的运用也更加纯熟了。学会了重载函数算是比较大的帮助了。

posted @ 2019-03-22 20:55  顾少鹏  阅读(167)  评论(2编辑  收藏  举报