一:用类编写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;
}