我是靠谱客的博主 魁梧小蜜蜂,最近开发中收集的这篇文章主要介绍实验四,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

// test4.cpp : 定义控制台应用程序的入口点。
//    1.声明一个CPU类,包含等级rank,频率frequency,电压voltage等属性,有两个共有函数
//    stop 和ran。
//    其中,rank为枚举类型CPU_Rank,声明为enum CPU_Rank{p1=1,p2,p3,p4,p5,p6,p7},frequency为单位
//    MHz整数,voltage是浮点型电压值。
//2.声明一个RAM类,CDROM类。为实验四下半部分基于类的组合来构建Computer类打下基础。
//    提示:1.RAM类的主要参数包括:容量。类型和主频;类型建议用枚举类型(DDR4/DDR3/DDR2...)。
//         2.CD_ROM类的主要参数包括:接口类型、缓存容量、安装方式;
//         接口interface类型建议用枚举类型(SATA、USB...),安装install方式建议用枚举类型(external/built-in)。
//
//3.拓展练习:
//    设计一个用于人事管理的People(人员)类,(为了通用性:抽象出所有类型人员都具有的属性:number(编号)、sex、birthday、id等)
//    要求:
//    1.“出生日期”声明为一个“日期”类内嵌子对象。
//    2.用成员函数实现对人员信息的录入和显示。
//    3.包括构造函数和析构函数、拷贝函数、内联成员函数、组合。

#include "stdafx.h"
#include <iostream>
using namespace std;

enum CPU_Rank{p1=1,p2,p3,p4,p5,p6,p7};//初始值为1,后面一次递增
//注意:类名后直接大括号+分号“;”
class CPU{
private: //声明cpu类的属性,数据成员
    CPU_Rank rank;//等级
    int frequency;//频率
    float voltage;//电压
public:
    //带有参数的CPU类的构造函数
    CPU (CPU_Rank r, int f, float v){
        rank = r;
        frequency = f;
        voltage = v;
        cout<<"Creat a CPU构造函数!n";
    }
    //拷贝构造函数
    CPU(CPU &c){
        rank = c.rank;
        frequency = c.frequency;
        voltage = c.voltage;
        cout<<"拷贝构造了一个CPU!"<<endl;
    }
    //析构函数
    ~CPU(){cout<<"release a CPU析构函数!n";}

    //函数成员
    //外部接口函数,外部访问私有成员的接口
    CPU_Rank GetRank()const{return rank;}//const作用:常量类型,不可变,因为是私有成员,不允许改变。
    int GetFrequency()const{return frequency;}
    float GetVoltage()const{return voltage;}

    void SetRank(CPU_Rank r){rank = r;}
    void SetFrequency(int f){frequency = f;}
    void SetVoltage(float v){voltage = v;}
    void run(){cout<<"CPU开始运行n";}//成员函数与正常定义函数相同;返回值类型,函数名,含参数
    void stop(){cout<<"CPU停止运行n";}

};

enum RAM_Type{DDR2=2,DDR3,DDR4 };
class RAM{
private:
    enum RAM_Type type;
    unsigned int frequency;//MHz
    unsigned int capacity;//GB
public:
    RAM(RAM_Type t, int f, int c){
        capacity = c;
        frequency = f;
        type = t;
        cout<<"creat a RAM构造函数n";
    }
    ~RAM(){cout<<"release a RAM析构函数n";}
    //成员函数
    //外部接口
    //获取3个私有成员
    RAM_Type GetType()const{return type;}
    unsigned int GetFrequency()const{return frequency;}
    unsigned int GetCapacity()const{return capacity;}
    //设置3个私有成员值
    void SetType(RAM_Type t){type=t;}
    void SetFrequency(unsigned int f){frequency = f;}
    void SetCapacity(unsigned int c){capacity = c;}

    void run(){cout<<"run the RAMn";}
    void stop(){cout<<"stop the RAMn";}
};

enum CD_ROM_Install{external, built_in};//安装
enum CD_ROM_Interface{STAT, USB};//接口interface
class CDROM{
private:
    CD_ROM_Install install;
    unsigned int cache_size;//MB
    CD_ROM_Interface interf;
public:
    //构造函数
    CDROM(CD_ROM_Install ist,unsigned int s, CD_ROM_Interface itf){
        install = ist;
        cache_size = s;
        interf = itf;
        cout<<"creat a CDROM 构造函数!n";
}
    ~CDROM(){cout<<"release a CDROM析构函数!n";}

    //外部接口
    //获取两个私有成员,使外部可以访问私有成员
    CD_ROM_Install GetInstall()const{return install;}
    unsigned int GetCache_size()const{return cache_size;}
    CD_ROM_Interface GetInterface()const{return interf;}
    //设置私有成员:将外部传进来的参数赋值给私有数据成员
    void SetCD_ROM_Install(CD_ROM_Install ist){install = ist;}
    void SetCache_size(unsigned int s){cache_size = s;}
    void SetCD_ROM_Interface(CD_ROM_Interface itf){interf = itf;}

    void run(){cout<<"run the CDROMn";}
    void stop(){cout<<"stop the CDROMn";}
};
class Computer{
private:
    CPU my_cpu;
    RAM my_ram;
    CDROM my_cdrom;
    unsigned int storage_size;//GB存储容量
    unsigned int bandwidth;//MB带宽
public:
    //声明注意那个分号,在class外部进行具体的定义
    Computer(CPU c,RAM r,CDROM cd, unsigned int s,unsigned int b);
    ~Computer(){cout<<"computer 的析构函数n";}

    void run(){
    //调用CPU,RAM,CDROM
        my_cpu.run();
        my_ram.run();
        my_cdrom.run();
        cout<<"Computer开始运行n";
    }
    void stop(){
    //停止CPU,RAM,CDROM
        my_cpu.stop();
        my_ram.stop();
        my_cdrom.stop();
        cout<<"Computer停止运行n";
    }
};
Computer::Computer(CPU c,RAM r,CDROM cd, unsigned int s,unsigned int b):my_cpu(c),my_ram(r),my_cdrom(cd) //组合类对象赋值格式如上。
{
    //简单数据成员赋值
    storage_size = s;
    bandwidth = b;
    cout<<"构造了一个Computer"<<endl;
}

int main(int argc, _TCHAR* argv[])
{
    CPU a(p6,300,2.8);//声明类对象,并初始化
    a.run();
    a.stop();
    cout<<"*******************************"<<endl;
    
    RAM b(DDR4, 1600, 8);//type,frequency,capacity
    b.run();
    b.stop();
    cout<<"*******************************"<<endl;

    CDROM c(external,1200 ,STAT);//install, cache_size, interface
    c.run();
    c.stop();
    cout<<"*******************************"<<endl;

    Computer com(a,b,c,8,120);
    com.run();
    com.stop();
    cout<<"*******************************"<<endl;

    return 0;//return之前会进行析构函数调用。
}

最后

以上就是魁梧小蜜蜂为你收集整理的实验四的全部内容,希望文章能够帮你解决实验四所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(51)

评论列表共有 0 条评论

立即
投稿
返回
顶部