具体思路如下:
顺序:键盘-主机-显示器
他们与计算机类的关系是has-a的关系,也就是三者加上一些相关功能组成计算机类。对于这种类型,一般是把组成直接写入类里,例如:
class computer
{
private://电脑的内部结构对用户透明,所以是私有的
host h;//电脑主机
keyboard kb;//键盘
monito m;//显示器
void getinformation();//进入输入准备,这个函数完成用户键盘输入然后到显示器显示
void setkeyboard();//改变键盘类成员kb的一些属性,比如设置大写小写,字段宽度等
vodi setmonito();//设置显示器,比如显示的间隔,显示的长度,或者屏蔽某些词组等
public://用户的权限只有2个,一个是调用菜单界面,一个是关机
void menu();
//菜单提示,由用户选择,输入1设置键盘参数,2设置显示器,3进行输入,4关机
int is_turn_on;//如果为1表示电脑开机,显示菜单,2表示电脑关机,退出程序
void turn_on () ;//开机,关机
};
int main()
{
computer cmp;
cmp.turn_on();//开机
while (cmp.is_turn_on) cmp.menu();//只要电脑是开机的,一直调用菜单函数等待用户操作
}
题目要求是编写计算机类,那么你就定义一个计算机类,里面包含三个函数,分别代表键盘、显示器和主机的功能。
其中,键盘函数实现输入的功能——它能实现从键盘获取数据,并且return数据;主机函数实现对数据的处理——它需要参数来获取处理的数据,然后返回处理好的数据;显示器函数实现对数据的输出——它需要参数获取需要输出的数据,不需要返回值。
计算机类 作为基类? 其他三个部分继承计算机类。 然后通过友元函数 通信?
你可以先分为大的三部分:
1)键盘 2)显示器 3)主机
然后每个部分用一个类来实现,然后每个类再细分。
键盘: 输入的接收,你可以根据需要精确到每一个按键;
显示器:输出流的传送目标;
主机:数据的处理 。
希望可以帮到你。