实验2 类和对象的定义与使用

实验2  类和对象的定义与使用

1、实验目的

(1)掌握类与对象的定义;

(2)掌握构造函数和析构函数的实现方法;

(3)掌握静态成员函数和友元函数的使用方法;

(4)掌握类对象作为成员的使用方法。

2、实验学时:6学时

3、实验内容

(1)声明一个CPU类,在该类中包括数据成员rank(等级)、frequency(频率)、voltage(电压)。其中,rank为字符型,可以取等级’A’、’B’、’C’、’D’;frequency为整型(单位MHz),voltage为浮点型;还包括成员函数GetRank( )、GetFrequency( )、GetVoltage( )用来获取等级、频率、电压的值。SetRank( )、SetFrequency( )、SetVoltage( )用来设置等级、频率、电压的值。Run( )、Stop( )中Run( )要求输出“CPU开始运行!”,Stop( )要求输出“CPU停止运行!”。构造函数需要输出“构造一个CPU”,析构函数需要输出“析构一个CPU”。观察构造函数和析构函数的调用顺序。编写主函数使用这个类定义两个对象cpu1,cpu2,调用不同在成员函数,观察数据的赋值和输出。

#include
using namespace std;
class CPU
{    
    public:
        char rank='A'; 
        int frequency=1000;
        float voltage=220;
        CPU();
        ~CPU();
        int GetRank();
        int GetFrequency();
        int GetVoltage();
        int SetRank(char r);
        int SetFrequency(int f);
        int SetVoltage(float v); 
        int Run();
        int Stop();
}; 
    CPU::CPU()
    {
        cout<<"构造一个CPU"<

(2)声明一个Student类,在该类中包括两个数据成员name(姓名)和score(分数)、两个静态数据成员total_score(学生总分)和count(学生人数);还包括两个成员函数show()用于输出学生的姓名、成绩和account( )用于设置分数、累计学生的成绩之和、累计学生人数,一个静态成员函数sum( )用于返回学生的成绩之和,另一个静态成员函数average( )用于求全班成绩的平均值。在main( )函数中,输入某班同学的姓名和成绩,输出所有学生的姓名和成绩,并调用上述函数求出全班学生的成绩之和和平均值。

#include
#include
using namespace std;
class Student
{
    private:
        string name;
        int score;
        int math;
        int english;
        int computer;
        int sums;
        int ave;
        int j=1;
        static int total_score;
        static int count;
    public:
        Student()
        {
        }
        string getname(string name);
        int show();
        void account(int m,int e,int c);//设置分数、累计学生的成绩之和、累计学生人数
        int outcount();
        static int sum();//返回学生的成绩之和
        static int average();//用于求全班成绩的平均值    
};
int Student::total_score;
int Student::count;
string Student::getname(string n)
{
    name=n;
    return name;
}
Student::show()
{
    cout<<"name:"<>i;    
        cout<>name;
                cout<<"scanf score of math:";
                cin>>math;
                cout<<"scanf score of english:";
                cin>>english;    
                cout<<"scanf score of computer:";
                cin>>computer;
                stu[n].getname(name);
                stu[n].account(math,english,computer);
                stu[n].sum() ;
                stu[n].average(); 
                n=n+1;
                j++;
        }
        else 
        {
            cout<<"Student information:"<

(3)声明一个Car类,在该类中包括数据成员color(颜色)、speed(速度)和成员函数Input( )用于输入color和speed,利用友元函数Output()输出Car类对象数据。

#include
#include
using namespace std;
class car
{
    private:
        string colar;
        int speed;
    public:
        string input(string colar);
        int input(int speed);
        friend int output(car c1);
};
string car::input(string cloar) 
{
    return colar;
}
int car::input(int speed) 
{
    return speed;
}
int output(car c1)
{
    cout<<"colar:"<>colar>>speed;
    cout<

(4)声明日期Date类,包含数据成员year(年)、month(月)、day(日);人员Person类,包含数据成员id(编号)、name(姓名)、sex(性别)、birthday(出生日期),其中birthday定义为Date类内嵌子对象。用成员函数实现对人员信息的录入和显示。

/*声明日期Date类,
包含数据成员year(年)、month(月)、day(日);
人员Person类,包含数据成员id(编号)、name(姓名)、sex(性别)、birthday(出生日期),
其中birthday定义为Date类内嵌子对象。
用成员函数实现对人员信息的录入和显示。*/
#include
#include
using namespace std;

class Person
{
    private:
        string id;
        string name;
        string sex;
    public:
        Person()
        {
        }
        Person(string i,string n,string s)
        {
            id=i;
            name=n;
            sex=s;
        }
        void p();
        void get(string i,string n,string s);
};
void Person::get(string i,string n,string s)
{
    id=i;
    name=n;
    sex=s;
}
void Person::p() 
{
    cout<<"身份证号:"<>i;
        if(i)
        {    
            cout<<"-------------------------------------"<>id;
            cout<<"请输入姓名:";
            cin>>name;
            cout<<"请输入性别:";
            cin>>sex;
            cout<<"请输入出生年份:";
            cin>>year;
            cout<<"请输入出生月份:";
            cin>>month;
            cout<<"请输入出生日:";
            cin>>day;
            p[j].get(id,name,sex);    
            d[j].get(year,month,day);
            j++;
        } 
        else 
        {
            for(i=0;i

 

你可能感兴趣的:(C++,实验,c++)