天才吃鸡少女

导航

实验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下了半天没下好,第一题的话比较简单,第三题跟着老师给的提示做就好了,第二题我个人觉得有点难,就是这样。

posted on 2019-03-24 20:26  天才吃鸡少女  阅读(191)  评论(2编辑  收藏  举报