实验报告

  1. 声明一个简单的Computer类,有数据成员芯片(cpu)、内存(ram)、光驱(cdrom)等等,有两个公有成员函数run、stop。cpu为CPU类的一个对象,ram为RAM类的一个对象,cdrom为CDROM类的一个对象,声明并实现这个类。
#include<iostream>
using namespace std; 
enum CPU_Rank{P1 = 1, P2, P3, P4, P5, P6, P7};
class CPU//定义CPU类
{
private:
	CPU_Rank rank;
    int frequency;
    float voltage;
public:
    CPU(CPU_Rank r, int f, float v)
    {  
    rank = r;
    frequency = f;
    voltage = v;
    cout << "构造了一个CPU!" << endl;
    }
    ~CPU(){cout << "析构了一个CPU!" << endl;}
    CPU_Rank GetRank()const{return rank;}
    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开始运行!" << endl;}
    void Stop(){cout << "CPU停止运行!" << endl;}
};

class RAM//定义RAM类
{
private:
	int x;
public:
	RAM(int a)
	{
		x = a;
		cout << "构造了一个RAM!" << endl;
	}
	~RAM(){cout << "析构了一个RAM!" << endl;}
	void Run(){cout << "RAM开始运行!" << endl;}
    void Stop(){cout << "RAM停止运行!" << endl;}
};

class CDROM//定义CDROM类
{
private:
	char y;
public:
	CDROM(char v)
	{
		y = v;
		cout << "构造了一个CDROM!" << endl;
	}
	~CDROM(){cout << "析构了一个CDROM!" << endl;}
	void Run(){cout << "CDROM开始运行!" << endl;}
    void Stop(){cout << "CDROM停止运行!" << endl;}
};

class Computer//定义Computer类
{
private:
	CPU a;
	RAM b;
	CDROM c;
public:
	Computer(CPU_Rank x,int y,float z,int xx,char yy):a(x, y, z), b(xx), c(yy)//构造函数
	{
		cout << "构造了一个Computer!" << endl;
	}
	~Computer(){cout << "析构了一个Computer!" << endl;}
	void Run(){cout << "Computer开始运行!" << endl;}
    void Stop(){cout << "Computer停止运行!" << endl;}
};

int main()
{
	CPU cpu(P6, 3, 2.3);
	cpu.Run();
	cpu.Stop();
	cout << "-------------" << endl;
	RAM ram(2);
	ram.Run();
	ram.Stop();
	cout << "-------------" << endl;
	CDROM cdrom('a');
	cdrom.Run();
	cdrom.Stop();
	cout << "-------------" << endl;
	Computer computer(P6, 3, 2.9, 4, 'G');
	computer.Run();
	computer.Stop();
	cout << "-------------" << endl;
	return 0;
} 

2.设计一个用于人事管理的People(人员)类。考虑到通用性,这里只抽象出所有类型人员都具有的属性:number(编号)、sex(性别)、birthday(出生日期)、id(身份证号)等等。其中“出生日期”声明为一个“日期”类内嵌子对象。用成员函数实现对人员信息的录入和显示。要求包括:构造函数和析构函数、拷贝构造函数、内联成员函数、组合。

#include <iostream> 
#include <cstring> 
using namespace std;
//日期类
class date {
private:
    int year;
    int month;
    int day;

public:
    date() {}
    date(int y, int m, int d): year(y), month(m), day(d)
    {
    }
    void set() //输入数据
    {
        cin >> year >> month >> day;
    }
    void display() //显示数据
    {
        cout << year << "年" << month << "月" << day << "日";
    }
};
//人员类
class person {
private:
    int num;
    char sex;
    date birthday;
    char id[20];

public:
    person() {}
    person(int n, int y, int m, int d, char id[], char s = 'm'): birthday(y, m, d)
    {
        num = n;
        sex = s;
        strcpy_s(id,strlen(id), id);
    }
    person(person& p) //拷贝构造
    {
        num = p.num;
        sex = p.sex;
        birthday = p.birthday;
        strcpy_s(id, strlen(id), p.id);
    }
    void input() //输入函数
    {
        cout << "录入数据:" << endl;
        cout << "编号:";
        cin >> num;
        cout << "性别(m/f):";
        cin >> sex;
        cout << "生日:";
        birthday.set();
        cout << "身份证号:";
        cin >> id;
        id[18] = '\0';
        cout << endl;
    }
    void output() //输出函数
    {
        cout << "编号:" << num << endl;
        cout << "性别:" << sex << endl;
        cout << "生日:";
        birthday.display();
        cout << endl;
        cout << "身份证号:" << id << endl;
    }
    ~person() { cout << " " << num << "号人员已经录入" << endl; }
};

int main()
{
    person a;
    a.input();
    a.output();
    return 0;
}
  • 2
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值