实验题

求100以内的4N+1型质数:

水题:




/*
    title:C++实验1/A
    description:
    author: averyboy
    time:
    version:
*/
#include<cstdio>
#include<iostream>
#include<algorithm>
#include<cstring>
#include<string>
#include<cmath>
#include<map>
#include<set>
#include<cctype>
#include<ctime>
#define INF 0x3f3f3f3f3
#define PI acos(-1.0)
using namespace std;
bool IsPrime(int n)
{
    for(int i=2;i<=sqrt(n);i++)
    {
        if(n%i==0)
            return false;
    }
    return true;
}
bool Isfour(int n)
{
    return !((n-1)%4);
}
int main()
{
    int cnt=0;
    for(int i=2;i<=100;i++)
    {
       if(IsPrime(i)&&Isfour(i))
        {
           //cout<<i<<' ';
            cnt++;
        }
       //cout<<endl;
    }
    cout<<cnt<<endl;
    return 0;
}


(面积问题)函数重载:

/*
    title:
    description:
    author: averyboy
    time:
    version:
*/
#include<cstdio>
#include<iomanip>
#include<iostream>
#include<algorithm>
#include<cstring>
#include<string>
#include<cmath>
#include<map>
#include<set>
#include<cctype>
#include<ctime>
#define INF 0x3f3f3f3f3
#define PI acos(-1.0)
using namespace std;
double area(double radius=0)
{
    return PI*radius*radius;
}
double area(double a,double b)
{
    return a*b;
}
double area(double a,double b,double h)
{
    return (a+b)*h/2;
}
double area(double a,double b,double c,int t)
{
    int p=(a+b+c)/2;
    return sqrt(p*(p-a)*(p-b)*(p-c));
}
int main()
{
    int r,a,b,c,h,t;
    cin>>r;
    cout<<setprecision(5)<<area(r)<<endl;
    cin>>a>>b;
    cout<<area(a,b)<<endl;
    cin>>a>>b>>h;
    cout<<area(a,b,h)<<endl;
    cin>>a>>b>>c;
    cout<<area(a,b,c,t);
    return 0;
}



Problem D: CPU类(类的设计);

/*
    title:
    description:
    author: averyboy
    time:
    version:
*/
#include<cstdio>
#include<iostream>
#include<algorithm>
#include<cstring>
#include<string>
#include<cmath>
#include<map>
#include<set>
#include<cctype>
#include<ctime>
#define INF 0x3f3f3f3
#define PI acos(-1.0)
using namespace std;
enum CPU_Rank{P1=1,P2,P3,P4,P5,P6,P7};
class CPU
{
public:
     CPU(CPU_Rank r,int f,float v)
    {
        Rank=r;
        F=f;
        V=v;
        cout<<"构造了一个CPU!"<<endl;
    }
    ~CPU()
    {
        cout<<"析构了一个CPU!"<<endl;
    }
    void Run()
    {
        cout<<"CPU开始运行!"<<endl;
        return;
    }
    void Stop()
    {
        cout<<"CPU停止运行!"<<endl;
        return;
    }
    bool set(CPU_Rank r)
    {
        Rank=r;
        return 1;
    }
    bool set(int f)
    {
        F=f;
        return 1;
    }
    bool set(double v)
    {
        V=v;
        return 1;
    }
    bool get(string s);
private:
        CPU_Rank Rank;
        int F;
        double V;
};

bool CPU::get(string s)
{
    if (s=="F")
        cout<<"Frequency:"<<F<<"MHz"<<endl;
    else if (s=="V")
        cout<<"Voltage:"<<V<<"V"<<endl;
    else if (s=="Rank")
        cout<<"CPU Rank:"<<Rank<<endl;
    else
        return 0;
    return 1;
}
int main()
{
    CPU a(P6,300,2.8);
    a.Run();
    a.Stop();
    return 0;
}


Problem E: Computer类(类的设计);

/*
    title:
    description:
    author: averyboy
    time:
    version:
*/
#include<cstdio>
#include<iostream>
#include<algorithm>
#include<cstring>
#include<string>
#include<cmath>
#include<map>
#include<set>
#include<cctype>
#include<ctime>
#define INF 0x3f3f3f3f
#define PI acos(-1.0)
using namespace std;
enum CPU_Rank{P1=1,P2,P3,P4,P5,P6,P7};
class CPU
{
public:
     CPU(CPU_Rank r,int f,float v)
    {
         Rank=r;F=f;V=v;cout<<"构造了一个CPU!"<<endl;
    }
     ~CPU()
    {
         cout<<"析构了一个CPU!"<<endl;
    }
     void Run()
    {
         cout<<"CPU开始运行!"<<endl;
         return;
    }
     void Stop()
    {
         cout<<"CPU停止运行!"<<endl;
         return;
    }
     void set(CPU_Rank r,int f,double v)
    {
         Rank=r;
         F=f;
         V=v;
         return ;
    }
     void get();
private:
    CPU_Rank Rank;
    int F;
    double V;
};

void CPU::get()
{
    cout<<"Frequency:"<<F<<"MHz"<<endl;
    cout<<"Voltage:"<<V<<"V"<<endl;
    cout<<"CPU Rank:"<<Rank<<endl;
    return ;
}

class RAM
{
private:
    int ram;
public:
    RAM(int R)
    {
        ram=R;cout<<"构造了一个RAM!"<<endl;
    }
    ~RAM()
    {
        cout<<"析构了一个RAM!"<<endl;
    }
};

class CDROM
{
private:
    char y;
public:
    CDROM(char Y)
    {
        y=Y;
        cout<<"构造了一个CDROM!"<<endl;
    }
    ~CDROM()
    {
        cout<<"析构了一个CDROM!"<<endl;
    }
};

class Computer
{
private:
    CPU *cpu;
    RAM *ram;
    CDROM *cdrom;
public:
    Computer(CPU_Rank r,int f,double v,int x,char y)
    {
        cpu=new CPU(r,f,v);
        ram=new RAM(x);
        cdrom=new CDROM(y);
        cout<<"构造了一个Computer!"<<endl;
    }
    ~Computer()
    {
        cout<<"析构了一个Computer!"<<endl;
        cdrom->~CDROM();
        ram->~RAM();
        cpu->~CPU();
    }
    bool Run()
    {
        cout<<"Computer开始运行!"<<endl;
        return 1;
    }
    bool Stop()
    {
        cout<<"Computer停止运行!"<<endl;
        return 1;
    }
};

int main()
{
    Computer niu(P6,3,2.9,4,'G');
    niu.Run();
    niu.Stop();
    return 0;
}


Problem F: 椭圆类——1(类的设计):

/*
    title:
    description:
    author: averyboy
    time:
    version:
*/
#include<cstdio>
#include<iostream>
#include<algorithm>
#include<cstring>
#include<string>
#include<cmath>
#include<map>
#include<set>
#include<cctype>
#include<ctime>
#define INF 0x3f3f3f3f
//#define PI acos(-1.0)
#define PI 3.1415
using namespace std;
class Ellipse
{
public:
    Ellipse(int X1,int Y1,int X2,int Y2)
    {
        x1=X1;
        y1=Y1;
        x2=X2;
        y2=Y2;
    }
    void getleftup(int &x,int &y)
    {
        x=x1;
        y=y1;
        return;
    }
    void getleftdown(int &x,int &y)
    {
        x=x1;
        y=y2;
        return;
    }
    void getrightup(int &x,int &y)
    {
        x=x2;
        y=y1;
        return;
    }
    void getrightdown(int &x,int &y)
    {
        x=x2;
        y=y2;
        return;
    }
    double Area();
private:
    int x1,y1,x2,y2;
};

double Ellipse::Area()
{
    double ans;
    ans=(x1-x2)*(y1-y2)*PI/4;
    return ans>=0?ans:-ans;
}

int main()
{
    int x1,y1,x2,y2;
    cin>>x1>>y1>>x2>>y2;
    Ellipse eclipse(x1,y1,x2,y2);
    int x,y;
    eclipse.getleftup(x,y);cout<<x<<" "<<y<<" ";
    eclipse.getrightdown(x,y);cout<<x<<" "<<y<<endl;
    cout<<eclipse.Area()<<endl;
    return 0;
}


Problem G: 椭圆类——2(拷贝构造函数和析构函数):

/*
    title:
    description:
    author: averyboy
    time:
    version:
*/
#include<cstdio>
#include<iostream>
#include<algorithm>
#include<cstring>
#include<string>
#include<cmath>
#include<map>
#include<set>
#include<cctype>
#include<ctime>
#define INF 0x3f3f3f3f
//#define PI acos(-1.0)
#define PI 3.1415
using namespace std;
class Ellipse
{
public:
    Ellipse(int X1,int Y1,int X2,int Y2)
    {
        x1=X1;
        y1=Y1;
        x2=X2;
        y2=Y2;
    }
    Ellipse(const Ellipse&e)
    {
        x1=e.x1;
        x2=e.x2;
        y1=e.y1;
        y2=e.y2;
    }
    ~Ellipse()
    {
        cout<<"xigou "<<x1<<" "<<y1<<endl;
    }
    void getLU(int &x,int &y)
    {
        x=x1;
        y=y1;
        return;
    }
    void getLD(int &x,int &y)
    {
        x=x1;
        y=y2;
        return;
    }
    void getRU(int &x,int &y)
    {
        x=x2;
        y=y1;
        return;
    }
    void getRD(int &x,int &y)
    {
        x=x2;
        y=y2;
        return;
    }
    void Fun(int y)
    {
        y1+=y;
        y2-=y;
        return;
    }
    void Show()
    {
        cout<<x1<<" "<<y1<<" "<<x2<<" "<<y1<<endl;
        cout<<x1<<" "<<y2<<" "<<x2<<" "<<y2<<endl;
    }
    double Area();
private:
    int x1,y1,x2,y2;
};

double Ellipse::Area()
{
    double ans;
    ans=(x1-x2)*(y1-y2)*PI/4;
    if (ans>0)
        return ans;
    else
        return -ans;
}

int main()
{
    int x1,y1,x2,y2;
    cin>>x1>>y1>>x2>>y2;
    Ellipse eclipse1(x1,y1,x2,y2);
    int x,y;
    eclipse1.getLU(x,y);
    cout<<x<<" "<<y<<" ";
    eclipse1.getRD(x,y);
    cout<<x<<" "<<y<<endl;
    Ellipse eclipse2(eclipse1);
    eclipse2.getLU(x,y);
    cout<<x<<" "<<y<<" ";
    eclipse2.getRD(x,y);
    cout<<x<<" "<<y<<endl;
    cout<<eclipse1.Area()<<endl;
    cout<<eclipse1.Area()<<endl;
    cin>>y;
    eclipse2.Fun(y);
    cout<<eclipse2.Area()<<endl;
    return 0;
}


Problem H: 椭圆类——3 (类的复杂设计):

/*
    title:
    description:
    author: averyboy
    time:
    version:
*/
#include<cstdio>
#include<iostream>
#include<algorithm>
#include<cstring>
#include<string>
#include<cmath>
#include<map>
#include<set>
#include<cctype>
#include<ctime>
#define INF 0x3f3f3f3f
#define PI 3.1415
using namespace std;
class point
{
public:
    point()
    {
        x=0;
        y=0;
    }
    point(point&p)
    {
        x=p.x;
        y=p.y;
    }
    ~point()
    {
        cout<<"Point xigou "<<x<<" "<<y<<endl;
    }
    int GetX()
    {
        return x;
    }
    int Gety()
    {
        return y;
    }
    void update(int X,int Y)
    {
        x=X;
        y=Y;
    }
private:
    int x,y;
};

class Ellipse
{
public:
    Ellipse(int X1,int Y1,int X2,int Y2);
    Ellipse(point&p1,point&p2);
    ~Ellipse()
    {
        cout<<"Ellipse xigou "<<b.GetX()<<" "<<b.Gety()<<endl;
    }
    double Area();
    void pointout()
    {
        cout<<a.GetX()<<" "<<a.Gety()<<" "<<b.GetX()<<" "<<b.Gety()<<endl;
        return;
    }
private:
    point a,b;
};

Ellipse::Ellipse(int X1,int Y1,int X2,int Y2)
{
    a.update(X1,Y1);
    b.update(X2,Y2);
    cout<<"gouzao 1 "<<X1<<" "<<Y1<<" "<<X2<<" "<<Y2<<endl;
}
Ellipse::Ellipse(point&p1,point&p2)
{
    a=p1;b=p2;
    cout<<"gouzao 2 "<<a.GetX()<<" "<<a.Gety()<<" "<<b.GetX()<<" "<<b.Gety()<<endl;
}

double Ellipse::Area()
{
    double ans;
    ans=(a.GetX()-b.GetX())*(a.Gety()-b.Gety())*PI/4;
    if (ans>0)
    return ans;
    else
        return -ans;
}

int main()
{
    int x1,y1,x2,y2;
    cin>>x1>>y1>>x2>>y2;
    Ellipse E1(x1,y1,x2,y2);
    cin>>x1>>y1>>x2>>y2;
    point a,b;
    a.update(x1,y1);
    b.update(x2,y2);
    Ellipse E2(a,b);
    E1.pointout();
    E2.pointout();
    cout<<E1.Area()<<endl;
    cout<<E2.Area()<<endl;
    return 0;
}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值