用类编写简单的代码(求面积;display信息;构造函数求面积;创建学生类;创建Person类)

一:用类编写c++代码求面积和周长

#include <iostream>
#include <cstdio>
using namespace std;
class CR
{
    
    
    double w;
    double l;
public:
    void SetValue(double l1,double w1)
    {
    
    
        this->l=l1;
        this->w=w1;
    }
    double area()//求面积
    {
    
    
        double r=this->l*this->w;
        return r;
    }
    double cir()//求周长
    {
    
    
        double r=(this->l+this->w)*2;
        return r;
    }


} ;
int main()
{
    
    
    CR cr;
    double len,wid;
    cout<<"请输入长,宽:"<<endl;
    cin>>len>>wid;
    cr.SetValue(len,wid);
    double cs1=cr.area();
    double cs2=cr.cir();
    cout<<"面积:"<<cs1<<endl<<"周长:"<<cs2<<endl;
    return 0;
}

二:输入人的信息(身份证,名字,性别,家庭住址)
输出对应的信息便于display;

#include <iostream>
#include <string>
using namespace std;
class Ps
{
    
    
   long long int id;
    string name;
    char sex;
    string ha;
public:
    void set()
    {
    
    
        cin>>id>>name>>sex>>ha;
    }
    void display()
    {
    
    
        cout<<"my name is:"<<name<<endl;
        cout<<"idperson:"<<id<<endl;
        cout<<"sex:"<<sex<<endl;
        cout<<"homeaddress:"<<ha<<endl;

    }
}ps;
int main()
{
    
    
    cout<<"w代表女性,m代表男性"<<endl;
    ps.set();
    ps.display();
    return 0;
}

三:构造函数
(1)使用带默认形参值(三条边长均为1)的构造函数,分别使用默认值和自定义值构造两个对象,并计算两个三角形的面积。
(2)利用带参数的构造函数,使用建立动态对象的方法建立两个对象,计算并输出面积后,删除两个对象。

(1):

#include <iostream>
#include <cmath>
using namespace std;
typedef long long ll;
class san
{
    
    
public:
    san();///声明一个无参的构造函数;
    san(int h,int w,int len):h1(h),w1(w),l1(len) {
    
    }///参数初始化表方法。声明一个有参的构造函数;
    double s();
private:
    int h1,w1,l1;
};
double san::s()///域操作名用来指明函数s()属于类san;
{
    
    
    double p=(h1+w1+l1)*1.0/2;
    double s=sqrt(p*(p-h1)*(p-w1)*(p-l1)*1.0);
    return s;
}
int main( )
{
    
    
    san box1(1,1,1);///默认参数
    cout<<box1.s()<<endl;
    int a,b,c;
    cin>>a>>b>>c;
    san box2(a,b,c);///自定义参数
    cout<<box2.s()<<endl;
    return 0;
}

(2):
注意:
在这里插入图片描述
在这里插入图片描述

#include <iostream>
#include <cmath>
using namespace std;
typedef long long ll;
class san
{
    
    
public:
    san();///定义函数
    san(int h,int w,int len):h1(h),w1(w),l1(len) {
    
    }///构造函数
    double s();
private:
    int h1,w1,l1;
};
double san::s()
{
    
    
    double p=(h1+w1+l1)*1.0/2;
    double s=sqrt(p*(p-h1)*(p-w1)*(p-l1)*1.0);
    return s;
}
int main( )
{
    
    
    san *t1=new san(1,1,1);///默认参数并实现动态内存分配
    cout<<t1->s()<<endl;
    int a,b,c;
    cin>>a>>b>>c;
    san *t2=new san(a,b,c);///自定义参数并实现动态内存分配
    cout<<t2->s()<<endl;//等价于*(t2).s;
    delete t1;
    delete t2;//释放
    return 0;
}

四:创建学生类

创建学生类,建立一个对象数组,内放5个学生的信息(包括学号、姓名和成绩),编写程序要求:
(1) 5个学生的信息在对象初始化时获得; 分5行输出学生的信息。
(2)用指针指向数组首地址,输出第1、3、5个学生的数据;
仅展示第二个代码,第一个可以思考思考=~=

#include <iostream>
#include <string>
using namespace std;
class stu
{
    
    
private:
    string id;
    string name;
    double sore;
public:
    stu();
    stu(string id1, string name1,double sore1)///构造函数
    {
    
    
        id=id1;
        name=name1;
        sore=sore1;
    }
    void display()///信息输出
    {
    
    
        cout<<"id="<<id;
        cout<<"  name="<<name;
        cout<<"  sore="<<sore<<endl;
    }
};
int main()
{
    
    
    stu s[5]= {
    
    stu("191111111","小兰",67),///用数组记录5个学生的信息
               stu("192222222","小红",98),stu("193333333","小明",87),
               stu("194444444","小飞",100),stu("195555555","小芳",79)
              };
    stu *p;
    for(int i=0; i<5; i++)
    {
    
    
        if(i==0||i==2||i==4)
        {
    
    
            cout<<"请输出第"<<i+1<<"位同学的信息:"<<endl;
            stu *p=&s[i];///动态内存分配
            p->display();
        }
    }
    delete[]p;///动态内存释放
    return 0;
}

创建Person类

#include <bits/stdc++.h>
using namespace std;
class Person///声明基类;
{
    
    
public:
    void IntroduceMe()  ///自我介绍
    {
    
    
        string gender= (sex=='M'?"Male":"Female");
        /* if(sex=='M')
             gender="Male";
         else
             gender="Female";*/
        cout<<"My Name is "<<name<<", " <<gender<<", "<<age<<" years old.vitality:"<<vitality<<endl;
    }
    void Eat()  ///吃饭
    {
    
    

        cout<<"I'm hungry! I'd like something to eat! "<<endl;
        vitality=100;
    }
    void Rest() /// 睡觉
    {
    
    
        cout<<"I'm tired. I need to rest."<<endl;
        vitality=100;
    }

    void Run()  ///length  单位km  10vitality per km
    {
    
    
        cout<<"I am running!"<<endl;
        int len=10;
        while(len>=0)
        {
    
    
            len=len-(vitality-20)/10;
            cout<<len<<endl;;
            if(vitality<=20)
                Rest();
        }
        // vitality=vitality-Length/10;
    }
    ///Constructor  and Destructor  构造函数(初始化类的对象,没有返回值)和
    ///析构函数(完成程序结束前的清理工作,特点:当对象的生命周期结束时,会自动执行析构函数)
    ///一个类只可以拥有一个析构函数;
    Person(string Name,char Sex,int Age,int Vitality )
    {
    
    
        name=Name;
        sex=Sex;
        age=Age;
        vitality=Vitality;
        cout<<"Person("<<name<<"): is constructed!"<<endl;
    }
    /* Person();///声明一个无参的构造函数;
     Person(string Name,char Sex,int Age,int Vitality):name(Name),sex(Sex),age(Age),vitality(Vitality){}
     ///参数初始化表方法。声明一个有参的构造函数;*/
    ~Person()
    {
    
    
        cout<<"Person("<<name<<"): is destructed!"<<endl;
    }
protected:///派生类:减少重复工作;
    string name;
    char sex;
    int age;
    int vitality;///活力值;
    int length;///run的路程;
};
int main()
{
    
    
    Person p1("张三",'M',19,35);
    p1.IntroduceMe();
    p1.Eat();
    p1.Rest();
    p1.Run();

    return 0;
}

猜你喜欢

转载自blog.csdn.net/cuijunrongaa/article/details/104528310