实验二
编写重载函数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; }
【运行截图】
学会了简单的类的操作,但还不是特别熟练,下一次做到可能就会忘记了,还有模块的运用也更加纯熟了。学会了重载函数算是比较大的帮助了。