实验2
第一题函数重载编程:
#include <iostream> using namespace std; struct Complex{ double real; double imaginary; }; int add(int x,int y); double add(double x,double y); Complex add(Complex x,Complex y); int main(){ int a,b; double c,d; Complex e,f; cout<<"请输入两个整数"; cin>>a>>b; cout<<add(a,b)<<endl; cout<<"请输入两个小数"; cin>>c>>d; cout<<add(c,d)<<endl; cout<<"请输入两个复数"; cin>>e.real>>e.imaginary>>f.real>>f.imaginary; cout<<add(e,f).real<<"+"<<add(e,f).imaginary<<"i"<<endl; return 0; } int add(int x,int y){ return x+y; } double add(double x,double y){ return x+y; } Complex add(Complex x,Complex y){ Complex z; z.real=x.real+y.real; z.imaginary=x.imaginary+y.imaginary; return z; }
第二题函数模板编程练习:
#include<iostream> using namespace std; template<typename T> void QuickSort(T a[],int l,int r) { if(l<r) { int d=l; int h=r; T array=a[d]; while(d<h) {while(d<h&&a[h]>array) h--; if(d<h) { a[d]=a[h]; d++; } while(d<h&&a[d]<array) d++; if(d<h) { a[h]=a[d]; h--; } } a[d]=array; QuickSort(a,l,d-1); QuickSort(a,d+1,r); } } int main() { int i; int a[10]={15,65,82,3,42,92,64,13,27,40}; cout<<"a[10]={15,65,82,3,42,92,64,13,27,40}"<<endl; QuickSort(a,0,9); cout<<"从小到大排序:"<<endl; for(i=0;i<10;i++) cout<<a[i]<<ends; cout<<endl; float b[10]={3.5,4.6,2.5,9.8,13.5,16.2,11.8,23.5,7.8,21.8}; cout<<"b[10]={3.5,4.6,2.5,9.8,13.5,16.2,11.8,23.5,7.8,21.8}"<<endl; cout<<"从小到大排序:"<<endl; QuickSort(b,0,9); for(i=0;i<10;i++) cout<<b[i]<<ends; return 0; }
第三题设计用户类
#include <iostream> #include <string> using namespace std; class User { public: void setInfo(string zcq,string passwd0="123456",string email0=""); void changePasswd(); void printInfo(); private: string name; string passwd; string email; }; void User::setInfo(string zcq,string passwd0,string email0) { name=zcq; passwd=passwd0; email=email0; } void User::changePasswd() { string passwd1; int count=1; cout<<"请输入原密码:"; cin>>passwd1; while(passwd1!="123456"&&count<3) { count++; cout<<"密码错误,请重新输入:"; cin>>passwd1; } if(count>=3) { cout<<"请稍后再试."<<endl; } else { cout<<"密码正确"<<endl; passwd=passwd1; } } void User::printInfo() { cout<<"name:\t"<<name<<endl; cout<<"passwd:\t"<<"******"<<endl; cout<<"email:\t"<<email<<endl; } int main() { cout<<"testing 1......"<<endl; User user1; user1.setInfo("zcq"); user1.printInfo(); user1.changePasswd(); user1.printInfo(); cout<<endl<<"testing 2......"<<endl<<endl; User user2; user2.setInfo("zcq2","123456","zcq@qq.com"); user2.printInfo(); return 0; }
总结:那个快速排序我看了半天才明白,还是要自己亲自排一下才可以明白。但是我没有用项目做,因为我的VS下了半天没下好,第一题的话比较简单,第三题跟着老师给的提示做就好了,第二题我个人觉得有点难,就是这样。