首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
阅读下列说明和C++代码,填补代码中的空缺,将解答填入答题纸的对应栏内。 【说明】 以下C++代码实现一个简单的聊天室系统(ChatRoomSystem),多个用户(User)可以向聊天室(ChatRoom)发送消息,聊天室将消息展示给所有用户。类图如图6
阅读下列说明和C++代码,填补代码中的空缺,将解答填入答题纸的对应栏内。 【说明】 以下C++代码实现一个简单的聊天室系统(ChatRoomSystem),多个用户(User)可以向聊天室(ChatRoom)发送消息,聊天室将消息展示给所有用户。类图如图6
admin
2017-11-28
62
问题
阅读下列说明和C++代码,填补代码中的空缺,将解答填入答题纸的对应栏内。
【说明】
以下C++代码实现一个简单的聊天室系统(ChatRoomSystem),多个用户(User)可以向聊天室(ChatRoom)发送消息,聊天室将消息展示给所有用户。类图如图6-1所示。
【C++代码】
#include
#include
using namespace std;
Class User{
private:
string name;
public:
User(string name){
(1) =name;
}
~User(){}
void setName(string name){
this->name=name;
}
string getName(){
return name;
}
void sendMessage(string message);
};
class ChatRoom {
public:
static void showMessage(User*user,string message){
cout<< “[.- <
getName() << ”] : ” <
}
};
void User::sendMessage(string message){
(2)(this,message);
}
class ChatRoomSystem {
public:
void startup(){
User*zhang=new User(“John”);
User*1i=new User(“Leo”);
zhang一>sendMessage(“Hi!Leo!”);
li->sendMessage(“Hi!John!”);
}
void join(User*user){
(3) (“Hello Everyone!I am”+user一>getName());
}
};
int main(){
chatRoomsystem* crs =(4) ;
crs一>startup();
crs->join(*(5)(“Wayne”));
delete crs;
}
/*
程序运行结果:
[John]:Hi!Leo!
[Leo]:Hi!John!
[Wayne]:Hello Everyone!I am Wayne
*/
选项
答案
(1)this->name (2)ChatRoom::showMessage (3)user->sendMessage (4)new ChatRoomSystem(i)或new ChatRoomSystem (5)new User
解析
本题考查C++语言程序设计的能力,涉及类、对象、对象函数(非静态)和静态函数的定义和使用。要求考生根据给出的案例和代码说明,认真阅读理清程序思路,然后完成题目。题目所给代码较短,较易理清思路。
先考查题目说明,实现一个简单的聊天室系统(ChatRoomSystem),多个用户(User)可以向聊天室(ChatRoom)发送消息,聊天室将消息展示给所有用户。根据说明进行设计,题目说明中图6-1的类图给出了类ChatRoomSystem、User、ChatRoom之间的关系。ChatRoom作为中介器,处理User对象之间的所有消息交互,即User向ChatRoom发送消息,ChatRoom负责将消息显示给所有的User对象。User对象使用ChatRoom的函数分享其消息。
ChatRoom中定义了一个静态成员函数,使所有调用者直接通过类来访问此函数,无须创建对象。静态函数用关键字static修饰,参数接收User对象和消息内容,并显示。
public static void showMessage(User*user, string message) {……}
在C++中,static函数直接通过类名ChatRoom来访问,即:
ChatRoom::showMeSSage(…)
User类中定义私有属性name及其get和set函数,通过User类的构造器创建对象,赋给新建对象的name属性值。构造器参数和对象的属性区分方式用this关键字。User类的对象发送消息时提供对象自身,用this表示,以及消息内容,字符串表示,调用ChatRoom中的静态函数showMessage,即:
ChatRoom::showMessage(this, message);
ChatRoomSystem类实现聊天室系统,实现启动初始化聊天和聊天过程中加入新聊天用户(聊天过程中的退出等实现类似)。在主函数main中,创建ChatRoomSystem对象,然后调用startup函数(crs一>startupO),初始化加入一些用户(字符串用户名:“John”和“Leo”)并发送问候消息,即:
User*zhang:new User(“John”);
User*li=new User(“Leo”);
zhang一>sendMessage(“Hi!Leo!”);
li一>sendMessage(“Hi!John!”);
调用join函数(crs一>join)加入用户“Wayne”,并由此用户对象发送问候消息,即:
user一>sendMessage(“Hello Everyone!I am”+user一>getName());
C++中创建对象采用new关键字,在没有定义构造器时,使用编译器自动创建一个不带参数的缺省构造器。ChatRoomSystem中没有定义构造器,所以对象创建方式为:
new chatRoomsystem() 或new chatRoomsystem
User的对象创建为:
new User(字符串用户名)
综上所述,空(I)需要标识当前对象的name属性,即this->name;空(2)调用类ChatRoom的静态函数showMessage,即ChatRoom::showMessage空(3)需要表示user对象调用发送消息的函数sendMessage,即user->sendMessage:空(4)需要用new关键字调用缺省构造器,即new ChatRoomSystem()或new ChatRoomSystem;空(5)处为采用new关键字调用User类的构造器函数创建User类的对象,即new User。
转载请注明原文地址:https://kaotiyun.com/show/Y9jZ777K
本试题收录于:
程序员下午应用技术考试题库软考初级分类
0
程序员下午应用技术考试
软考初级
相关试题推荐
在统计学中,用来衡量一个样本中各个数据波动大小的量是______。
数据处理有批处理和联机实时处理两种基本的处理方式。以下各种类型的数据处理中,______宜采用联机实时处理方式。
计算机运行一段时间后性能一般会有所下降,为此需要用优化工具对系统进行优化。系统优化的工作不包括()。
在Windows XP中,可用来改变窗口大小的光标是(37)。
在大型分布式信息系统中,为提高信息处理效率,减少网络拥堵,信息存储的原则是:数据应尽量(66)________________。
在Excel2007中,利用填充柄可以将数据复制到相邻单元格中。若选择含有数值的上下相邻的两个单元格,按住鼠标左键向下拖动填充柄,则数据将以(49)________________填充。
自然数1,2,3,4,5中,任意两个数都可以算出平均值,其中有些平均值是相同的。那么,不同的平均值共有______个。
阅读以下说明,回答问题1至问题6,将解答填入答题纸对应的解答栏内。【说明】在Linux下安装配置DHCP服务,DHCP服务程序/usr/sbin/dhcpd需要读取配置文件/etc/d/hcpd.conf,以下是一个DHCP配置文件的主要内容:
阅读以下说明,回答问题1至问题5,将解答填入对应栏内。[说明]某大学要拟建一个小型局域网,如图10-5所示,PCI、PC3、PC5的IP地址分别为10.244.80.2,10.244.80.3,10.244.80.4子网掩码是255.255
随机试题
企业生产的产品必须符合国家标准和行业标准的规定及企业明示的质量要求。
三端集成稳压器的输出端有正、负之分,使用时不得用错。()
Haveyoujustbeenfired?Don’tworry.Cheeryourselfupandsendyour【C1】______Perhapsanothermuchbetteropportunityisawai
长期石膏固定,缺乏功能锻炼容易发生的并发症是
为承办每年全省高校运动会,某高校新建一栋体育馆,由主体建筑和附属建筑两部分组成。主体建筑为比赛馆,附属建筑为训练馆,建筑高度为23m,总建筑面积为1.70万m2,采用框架及大跨度钢屋架结构体系,耐火等级二级。比赛馆为单层大空间建筑,可容纳观众席4446个,
下列项目中,符合资产定义的是()。
下列教育家中()提出了“泛智主义”教育思想,主张“把一切事物教给一切人”。
抗日战争时期“干部教育第一,国民教育第二”的政策是由()提出来的。
李某明知其朋友刘某没有驾驶证,但碍于情面不得不将其轿车借给刘某使用。刘某无证驾驶该轿车沿A公路向东行驶,因超速行驶,加之清晨雾气较大,在发现路边有人影闪动时,刘某已经来不及刹车,为躲避该人影而强行将车向右拐,但还是将该行人吴某撞伤。因躲避吴某,刘某不慎掉入
WhatdidPETAaskHamburgauthoritiestodoinitsletter?
最新回复
(
0
)