- 声明一个简单的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;
}