C++语言基础 例程 类和对象的简单应用举例

贺老师的教学链接  本课讲解



实例1:求出三角形的周长和面积

#include<iostream>
#include<Cmath>
#include<cstdlib>
using namespace std;
class Triangle
{
public:
    void setABC(double x, double y, double z);//置三边的值,注意要能成三角形
    double perimeter();//计算三角形的周长
    double area();//计算并返回三角形的面积
private:
    double a,b,c; //三边为私有成员数据
};
int main()
{
    Triangle tri1;    //定义三角形类的一个实例(对象)
    double x, y, z;
    cin>>x>>y>>z;
    tri1.setABC(x, y, z);    //为三边置初值
    cout<<"三角形的周长为:"<< tri1.perimeter()<<",面积为:"<< tri1.area()<<endl;
    return 0;
}

//在下面定义Triangle类中的各个成员函数
void Triangle::setABC(double x, double y, double z)
{
    if(x+y>z&&x+z>y&&y+z>x)
    {
        a=x;
        b=y;
        c=z;
    }
    else
    {
        cout<<"不能构成三角形"<<endl;
        exit(0);
    }
}


double Triangle::perimeter()
{
    return a+b+c;
}

double Triangle::area()
{
    double p=(a+b+c)/2;
    return sqrt(p*(p-a)*(p-b)*(p-c));
}


实例2:学生信息及成绩处理
#include<iostream>
#include<cstring>
using namespace std;
class Stu
{
private:
    int no; //学生学号
    char name[20];    //学生姓名
    double score[3];  //课程成绩
public:
    double average( );//计算平均成绩
    double sum( );    //计算总分
    void show( );    //打印信息
    void setStudent(int, char*);//输入学生学号、姓名
    void inputScore();
};
double Stu::average( )
{
    return sum()/3;
}//平均成绩


double Stu::sum( )
{
    return score[0]+score[1]+score[2];
}        //总分
void Stu::show( )    //打印信息
{    cout<<"No.: "<<no<<", Name: "<<name<<endl;
    cout<<"Score: "<<score[0]<<", "<<score[1]<<", "<<score[2]<<endl;
    cout<<"average: "<<average()<<'\t'<<"Sum: "<<sum()<<endl<<endl;
}
void Stu::setStudent(int n, char *nam)
{
    no = n;  //置学号
    strcpy(name,nam);    //置姓名
}


void Stu::inputScore()
{
    int i;
    cout<<"please input score of "<<name<<": ";
    for(i=0;i<3;i++)
        cin>>score[i];
}


int main( )
{
    Stu s1,*p2;
    s1.setStudent(30, "Li qing");
    s1.inputScore();
    s1.show();


    p2 = new Stu;
    p2->setStudent(28, "Wang Gang"); //对象置初值
    p2->inputScore();
    p2->show();
    return 0;
}


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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值