第二次c++实验
1.重载函数
#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 z; z.real=a.real+b.real; z.imaginary=a.imaginary+b.imaginary; return z; } int main() { int a,b; cin>>a>>b; cout<<add(a,b)<<endl; double s,f; cin>>s>>f; cout<<add(s,f)<<endl; Complex c,d,x; cin>>c.real>>c.imaginary>>d.real>>d.imaginary; x=add(c,d); cout<<x.real<<"+"<<x.imaginary<<"i"<<endl; }
2.快速排序
#include<iostream> using namespace std; int fun(int a[],int j, int i); void Qsort(int a[],int j,int i)//运用函数嵌套解决后面排序问题 { if(i>j) { int mid; mid=fun(a,j,i); Qsort(a,j,mid-1); Qsort(a,mid+1,i); } } int fun(int a[],int j, int i) { int mid,q=j,t; mid=a[j];//将第一位数取出 while(i>j) { for(;i>j;i--)//先从后面找比第一位数的数大的数放入第一位的空位,此时被拿出数字存有空位 { if(a[i]<mid) { a[q]=a[i]; t=i; break; } } for(;i>j;j++)//在从前面拿出比第一位大的放入前面操作空出来的位置 { if(a[j]>=mid) { a[t]=a[j]; q=j; break; } } } a[j]=mid; return j; } int main() { int q=1,n,o=1; int a[10]={0}; cout<<"输入需要输入数字个数"; cin>>n; cout<<"输入需要排序的数字"; for(q=1;q<=n;q++) { cin>>a[q]; } Qsort(a,o,n); for(q=1;q<=n;q++) { cout<<a[q]<<" "; } }
3.类的实现
#include <iostream> #include <string> using namespace std; // User类的声明 class User { public: string getpasswd(); string getname(); void setInfo(string name0,string passwd0="111111",string email0=" "); void changePasswd(); void printInfo(); private: string name; string passwd; string email; }; void User::setInfo(string name0,string passwd0,string email0) { name=name0; passwd=passwd0; email=email0; } // User类的实现 // 成员函数setInfo()的实现 // 功能:设置用户名(name), 密码(passwd), 联系邮箱(email) // 补足代码 // ××× string User::getpasswd(){ return passwd; } void User::changePasswd() { string passwd1,passwd2; int i=0; cout<<"Enter the old passwd:"; cin>>passwd1; if(passwd1==passwd) { cin>>passwd2; passwd=passwd2; } else { cout<<"passwd input error,please re-Enter again:"; for(i=0;i<2;i++) { cin>>passwd1; if(passwd1==passwd) { cin>>passwd2; passwd=passwd2; break; } if(i==1) { cout<<"please try after while"<<endl; break; } cout<<"passwd input error,please re-Enter again:"; } } } // 成员函数changePasswd()的实现 // 功能:修改密码 // 要求:在修改密码前,要求先输入旧密码,验证无误后,才允许修改。 // 如果输入旧密码时,连续三次输入错误,则提示用户稍后再试,暂时退出修改密码程序。 // 补足代码 // ××× // 成员函数printInfo()的实现 // 功能:打印用户信息 // 要求: 密码以6个*显示 // 补足代码 // ××× string User::getname(){ return name; } void User::printInfo(){ cout<<"name:"<<name<<endl; cout<<"passwd:"<<"******"<<endl; cout<<"email"<<email<<endl; } // 在主函数中测试User类 // 用User类创建对象,测试类的功能 int main() { cout << "testing 1......" << endl; // 测试1 User user1; user1.setInfo("Leonard"); user1.printInfo(); user1.changePasswd(); user1.printInfo(); cout << endl << "testing 2......" << endl << endl; // 测试2 User user2; user2.setInfo("Jonny","92197","xyz@hotmail.com"); user2.printInfo(); return 0; }
这次实验的学会了快速排序法,以及类的使用,这种实践比光看课本收益更多。