实验二
实验结论
1.函数重载编程练习
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
#include <iostream> using namespace std; struct complex { double real; double imaginary; }; int add(int a,int b); double add(double x,double y); complex add(complex m,complex n); int main() { int a=1,b=2,sum1; double x=3.5,y=6.5,sum2; complex complex1,complex2,complex3; complex1.real=3,complex1.imaginary=5; complex2.real=6,complex2.imaginary=9; sum1=add(a,b); sum2=add(x,y); complex3=add(complex1,complex2); cout<<"sum1="<<sum1<<endl; cout<<"sum2="<<sum2<<endl; cout<<"complex3="<<complex3.real<<"+"<<complex3.imaginary<<"i"<<endl; return 0; } int add(int a ,int b) { return a+b;} double add(double x,double y) { return x+y;} complex add(complex m,complex n) { complex l; l.real=m.real+n.real; l.imaginary=m.imaginary+n.imaginary; return l; }
2.函数模板编程练习
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
#include <iostream> using namespace std; template<class T> void Quicksort(T a[],int m,int n) { int i=m, j=n-1; T t=a[i]; if(i<j) {while(i<j) { while(i<j&&a[j]>=t) j--; if(i<j) {a[i]=a[j];i++;} while(i<j&&t>a[i]) i++; if(i<j){a[j]=a[i];j--;} } a[i]=t; Quicksort(a,m,i); Quicksort(a,i+1,n); } } int main() { int i; int a[5]={13,31,23,32,43}; cout<<"a[5]={13,31,23,32,43}"<<endl; Quicksort(a,0,5); cout<<"按升序排序为:"; for(i=0;i<5;i++) cout<<a[i]<<" "; cout<<endl; double b[5]={1.3,3.1,2.3,3.2,4.3}; cout<<"b[5]={1.3,3.1,2.3,3.2,4.3}"<<endl; Quicksort(b,0,5); cout<<"按升序排序为:"; for(i=0;i<5;i++) cout<<b[i]<<" "; cout<<endl; return 0; }
3.类的定义、实现和使用编程练习
设计并实现一个用户类User,并在主函数中使用和测试这个类。具体要求如下:
每一个用户有用户名(name), 密码(passwd),联系邮箱(email)三个属性。
支持设置用户信息setInfo()。允许设置信息时密码默认为6个1,联系邮箱默认为空串。
支持打印用户信息printInfo()。打印用户名、密码、联系邮箱。其中,密码以6个*方式显示。
支持修改密码changePasswd(),。在修改密码前,要求先输入旧密码,验证无误后,才允许修改。
如果输入旧密码时,连续三次输入错误,则提示用户稍后再试,暂时退出修改密码程序。
在main()函数中创建User类实例,测试User类的各项操作(设置用户信息,修改密码,打印用户信
息)
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
#include <iostream> #include <string> using namespace std; class User { public: void setInfo(string name1,string password1="111111",string email1=""); void changePasswd(); void printInfo(); private: string name; string password; string email; }; void User::setInfo(string name1,string password1,string email1) { name=name1; password=password1; email=email1; } void User::changePasswd() { string oldpassword; int a=1; cout<<"请输入你的旧密码:"; cin>>oldpassword; while(oldpassword!=password&&a<3) { cout<<"错误,再输一次:"; cin>>oldpassword; a++; } if(oldpassword!=password&&a==3) cout<<"请稍后再试!"<<endl; if(oldpassword==password) { cout<<"请输入你的新密码:"; cin>>password;} } void User::printInfo() { cout<<"name: "<<name<<endl; cout<<"password:****** "<<endl;; cout<<"email: "<<email<<endl; cout<<endl; } int main() { cout << "testing 1......" << endl; User user1; user1.setInfo("Leonard"); user1.printInfo(); user1.changePasswd(); user1.printInfo(); cout << endl << "testing 2......" << endl << endl; User user2; user2.setInfo("Jonny","92197","xyz@hotmail.com"); user2.printInfo(); return 0; }
实验总结与体会
经过这次的编程,发现自己对所学的新知识还不能扎实掌握,这次的编程题也是在同学的帮助下才勉强完成的,希望每次的编程都能让我真正掌握新知识,请各位学霸们指出我的不足,我一定会加油改进!
https://www.cnblogs.com/jzgjzg/p/10599286.html
https://www.cnblogs.com/0122Frank/p/10587023.html
https://www.cnblogs.com/hi-ypy/p/10604787.html