标签:space img print info 数组 mil 结构 很多 .com
第一部分:代码&运行结果
第一题:设置一个重载函数,分别用整数、实数、复数求和
代码如下:
1 #include<iostream> 2 using namespace std; 3 int add(int,int); 4 double add(double,double); 5 struct complex{ 6 double real; 7 double imaginary; 8 }; 9 complex add(complex,complex); 10 int main() 11 { 12 while(true){ 13 int a,b; 14 double c,d; 15 complex e,f; 16 cout<<"请输入两个整数"<<endl; 17 cin>>a>>b; 18 cout<<"请输入两个实数"<<endl; 19 cin>>c>>d; 20 cout<<"请输入两个复数"<<endl; 21 cin>>e.real>>e.imaginary>>f.real>>f.imaginary; 22 cout<<"整数的和为"<<add(a,b)<<endl; 23 cout<<"实数的和为"<<add(c,d)<<endl; 24 complex t=add(e,f); 25 cout<<"复数的和为"<<t.real<<‘+‘<<t.imaginary<<‘i‘<<endl; 26 return 0; 27 } 28 } 29 int add(int a,int b) 30 { 31 int o; 32 o=a+b; 33 return o; 34 } 35 double add(double c,double d) 36 { 37 double p; 38 p=c+d; 39 return p; 40 } 41 complex add(complex m,complex n) 42 { 43 complex g; 44 g.real=m.real+n.real; 45 g.imaginary=m.imaginary+n.imaginary; 46 return g; 47 }
运行结果:
第二题:写一个快速排序的函数模板
代码如下:
1 #include<iostream> 2 #include<cstdio> 3 #include<cstring> 4 using namespace std; 5 template <class T> 6 T find_mid(T a[],int low,int high) 7 { 8 a[0]=a[low]; 9 T mid=a[low]; 10 while(low<high) 11 { 12 while(low<high&&a[high]>=mid) 13 high--; 14 a[low]=a[high]; 15 while(low<high&&a[low]<=mid) 16 low++; 17 a[high]=a[low]; 18 } 19 a[low]=a[0]; 20 return low; 21 } 22 template <class T> 23 void very_quick(T a[],int low, int high) 24 { 25 if(low<high) 26 { 27 int mid=find_mid(a,low,high); 28 very_quick(a,low,mid-1); 29 very_quick(a,mid+1,high); 30 } 31 } 32 int main() 33 { 34 int a[50]; 35 int m; 36 while (cin>>m) 37 { 38 cout<<"整数排序前:"; 39 for (int j=1;j<=m;j++) 40 cin>>a[j]; 41 very_quick(a,1,m); 42 cout<<"整数排序后:"; 43 for (int j=1;j<=m;j++) 44 cout<<a[j]<<‘ ‘; 45 46 double b[50]; 47 int n; 48 cout<<endl; 49 cout<<"实数排序前:"; 50 for (int i=1;i<=m;i++) 51 cin>>b[i]; 52 very_quick(b,1,m); 53 cout<<"实数排序后:"; 54 for (int i=1;i<=m;i++) 55 cout<<b[i]<<‘ ‘; 56 } 57 return 0; 58 59 }
结果如下:
第三题:写一个处理用户信息的类,可以打印信息,支持修改密码。
代码如下:
#include<iostream> #include<string> using namespace std; class user { public: 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; } void user::changepasswd() { cout<<"请输入旧密码:" <<endl; string passwd; int i=0; for(i=0;i<3;i++) { cin>>passwd; if(passwd=="111111") break; else cout<<"密码错误,请重新输入"<<endl; } if(i==3) cout<<"请稍后再试"<<endl; else { cout<<"密码正确,输入新密码"<<endl; cin>>passwd; cout<<"修改密码成功"<<endl; } } void user::printinfo() { cout<<"name:"<<name<<endl; cout<<"passwd:"<<"******" <<endl; cout<<"email:"<<email<<endl; } int main() { cout << "testing 1......" << endl; user user1; user1.setinfo("Leonard"); user1.printinfo(); user1.changepasswd(); cout << endl << "testing 2......" << endl << endl; user user2; user2.setinfo("Jonny","92197","xyz@hotmail.com"); user2.printinfo(); return 0; }
运行结果如下:
1.三次密码输入错误
2.旧密码输入正确
第二部分:实验反思
complex add(complex m,complex n) { complex g; g.real=m.real+n.real; g.imaginary=m.imaginary+n.imaginary; return g; }
int main() 33 { 34 int a[50]; 35 int m; 36 while (cin>>m) 37 { 38 cout<<"整数排序前:"; 39 for (int j=1;j<=m;j++) 40 cin>>a[j]; 41 very_quick(a,1,m); 42 cout<<"整数排序后:"; 43 for (int j=1;j<=m;j++) 44 cout<<a[j]<<‘ ‘; 45 46 double b[50]; 47 int n; 48 cout<<endl; 49 cout<<"实数排序前:"; 50 for (int i=1;i<=m;i++) 51 cin>>b[i]; 52 very_quick(b,1,m); 53 cout<<"实数排序后:"; 54 for (int i=1;i<=m;i++) 55 cout<<b[i]<<‘ ‘; 56 } 57 return 0; 58 59 }
在这个主函数上花的时间反而比在函数模板上多。
void user::changepasswd() { cout<<"请输入旧密码:" <<endl; string passwd; int i=0; for(i=0;i<3;i++) { cin>>passwd; if(passwd=="111111") break; else cout<<"密码错误,请重新输入"<<endl; } if(i==3) cout<<"请稍后再试"<<endl; else { cout<<"密码正确,输入新密码"<<endl; cin>>passwd; cout<<"修改密码成功"<<endl; } }
用了一个0到3的for循环,当然也可以用while,但是我觉得这样写比较容易能看懂。
标签:space img print info 数组 mil 结构 很多 .com
原文地址:https://www.cnblogs.com/21savage-code/p/10562233.html