实验2

函数重载练习程序

#include<iostream>
using namespace std;
struct complex
{
    double real;
    double imaginary;
};
int add(int ,int );
double add(double ,double );
complex add(complex ,complex );
int main()
{
        int a=5,b=8;
        double c=2.5,d=7.63;
        complex s1,s2;
        s1.real=4.11;
        s1.imaginary=5.3;
        s2.real=7.3;
        s2.imaginary=2.6; 
        cout<<add(a,b)<<endl;
        cout<<add(c,d)<<endl;
        cout<<add(s1,s2).real<<"+"<<add(s1,s2).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 s3;
    s3.real=x.real+y.real;
    s3.imaginary=(x.imaginary+y.imaginary);
    return s3;
}

快速排序函数

#include <iostream>
#include <iomanip>
using namespace std;
void Quicksort(int a[],int left,int right);
int partition(int a[], int left, int right);

int main(){
    int i;
    int a[10];
    cout<<"请输入10个整型数 "<<endl;
    for(i=0;i<10;i++)
        cin>>a[i];
    Quicksort(a,0,9);
    for(i=0;i<=9;i++)
        cout<<a[i]<<setw(3);
    cout<<endl;
    return 0;
}

int partition(int a[], int left, int right)
{
    int i=left+1;
    int j=right;
    int temp=a[left];
    
    while(i<=j)
    {
        while (a[i]<temp)
        {
            i++;
        }
        while (a[j]>temp )
        {
            j--;
        }
        if (i<j)
            swap(a[i++],a[j--]);
        else i++;
    }
    swap(a[j],a[left]);
    return j;
    
}

void Quicksort(int a[],int left,int right)
{
    int j;
    if (left>right)
           return;
    j=partition(a,left,right);
    Quicksort(a,left,j-1);
    Quicksort(a,j+1, right);
}

 

类的定义、实现和使用编程

#include<iostream>
#include<cstring>
#include<string>
using namespace std;

class User
{
public:
    void setInfo(string name1 , string passwd1 , string email1);
    int setInfo(string name1);
    void changePasswd();
    void printInfo();
private:
    string name;
    string passwd;
    string email;
};

void User::setInfo(string name1 , string passwd1 , string email1)
{
    name.assign(name1);
    passwd.assign(passwd1);
    email.assign(email1);
}

int User::setInfo(string name1)    
{
    name.assign(name1);
    email.assign("");
    passwd.assign("000000");
    return 0;
}


void User::changePasswd()
{
    string old_ps;
    string passwd1;
    cout<<"请输入原始密码: "<<endl;
    cin>>old_ps;
    int n = 1;
    while(old_ps != passwd)
    {
        if(n < 3)
        {
            cout<<"密码错误,请重新输入密码"<<endl;
            cin>>old_ps;
            n++;
        }
        else
        {
            cout<<"已输错三次,请稍后再试"<<endl;
            return;
        }
    }
    cout<<"请输入你新的密码: "<<endl;
    cin>>passwd1;
    passwd.assign(passwd1);
    return;
}

void User::printInfo()
{
    cout<<"用户名为: "<<name<<endl;
    cout<<"密码为: "<<"******"<<endl;
    cout<<"邮箱为: "<<email<<endl;
    return;
}

int main()
{
    cout<<"testing 1......"<<endl;
    User user1;
    user1.setInfo("Airlies");
    user1.printInfo();
    user1.changePasswd();
    user1.printInfo();

    cout<<endl<<"testing 2......"<<endl<<endl;
    User user2;
    user2.setInfo("Airlies" , "558742" , "123456@qq.com");
    user2.printInfo();

    return 0;
}

实验总结:

对于快速排序不太掌握,参考了网上的资料。程序二以及程序三有难度,依靠老师给的框架也难有进度,结合资料才勉强完成,会继续努力。

 

posted @ 2019-03-26 17:59  陈昱霖  阅读(123)  评论(1)    收藏  举报