首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
阅读下列说明和C++代码,填写代码中的空缺,将解答写入答题纸的对应栏内。 【说明】 球类比赛记分系统中,每场有两支球队(Team)进行比赛(Game),分别记录各自的得分。图6-1所示为记分系统的类图。 【C++代码】 #in
阅读下列说明和C++代码,填写代码中的空缺,将解答写入答题纸的对应栏内。 【说明】 球类比赛记分系统中,每场有两支球队(Team)进行比赛(Game),分别记录各自的得分。图6-1所示为记分系统的类图。 【C++代码】 #in
admin
2021-03-24
29
问题
阅读下列说明和C++代码,填写代码中的空缺,将解答写入答题纸的对应栏内。
【说明】
球类比赛记分系统中,每场有两支球队(Team)进行比赛(Game),分别记录各自的得分。图6-1所示为记分系统的类图。
【C++代码】
#inClude<iostream>
#include<string>
using namespace std;
Class Team {
private:
string name;
(1)
;
public:
Team(string name){
(2)
=name;goals=0;
}
void increamentGoal(){
(3)
;
}
intgetGoals(){
return goals;
}
stringgetName(){
return name;
}
};
Class Game {
private:
Team
*
a,
*
b; //两支比赛球队
public:
Game(Team
*
t1,Team
*
t2){
a=t1;
b=t2;
}
void getResults(){ //输出比分
cout<<a->getName() <<":"<<b->getName() <<"=";
cout<<a->getGoals() << ":" <
}
void incrementGoal(
(4)
t){ //球队t进1球
t->inereamentGoal();
}
};
int main(){
Team
*
t1=new Team("TA");
Team
*
t2=new Team("TB");
Game
*
football=
(5)
;
football->incrementGoal(t1);
football->incrementGoal(t2);
football->getResults(); //输出为:TA:TB=1:1
football->incrementGoal(t2);
football->getResults(); //输出为:TA:TB=1:2
return 0;
}
选项
答案
(1)intgoals或intgoals=0 (2)this->name (3)goals++或++goals或等价表示 (4)Team
*
(5)new Game(t1.t2)
解析
本题考查考生应用C++语言进行程序设计的能力,涉及类、对象、函数的定义和相关操作。要求考生根据给出的案例和代码说明,阅读并完成程序填空。
本题中涉及比赛和球队。根据说明进行设计,题目给出了类图(图6-1类图所示)。
图中类Game和Team之间是聚合关系。Game类有两个public的函数:getResults()和incrementGoal()分别表示获取比赛结果和某支球队进1球后增加比分;private属性就是参加比赛的两支球队。Team类中有3个public函数,分别为本球队进1球后增加得分、获得本队得分和获得球队名称;private的属性为球队名称和得分。球队名采用string类型,得分信息从上下文可知是goals,用int类型。
在Team对象创建时,初始化球队名称和得分。C++11标准之后,对象的属性定义时才可显式初始化;对象的属性name类型为string,需要在构造器中对球队名称加以显式初始化。其构造器接收球队名称,参数名称与对象的属性名均为name,用this关键字加以区分。其中this关键字用来引用当前对象或类实例,可以用->取属性或行为,即:
this->name=name;
this->goals=0;
注:没有同名时是否有this->都表示名称所表示的对象属性。
从函数getGoals()中的return goals判断,缺少属性goals来表示得分。再从上下文判断,函数increamentGoal()中,表示在比赛中某球队进1球,即goals的值增加1。
创建Game对象表示两支球队的一场比赛。构造器参数为两支球队,用以初始化Game对象的两个属性。函数getResults()用于输出当前比分。函数incrementGoal()用于表示一支球队进1球,具体是哪支球队由参数给定,所以参数类型为Team
*
。
主控逻辑代码在程序主入口函数main()中实现。在main()函数中,先创建两支球队(用new关键字),即两个Team类的对象指针,球队名称分别为“TA”和“TB”,指针名称分别为t1和t2,即:
Team
*
t1=new Team("TA");
Team
*
t2=new Team("TB");
以这两个对象指针名称为参数,创建一场比赛对象(用new关键字),指针名称为football,即:
Game
*
football=new Game(t1,t2);
然后用:
football->incrementGoal(t1);
football->incrementGoal(t2);
表示球队TA进一球,球队TB进一球。然后调用getResults()数输出此时的比分,即:
football->getResults();
然后TB再进一球,再调用getResults()函数输出此时的比分,即:
football->incrementGoal(t2);
football->getResults();
综上所述,空(1)需要定义表示一支球队的得分goals,题目代码中已经给出用分号结尾,所以空(1)为int goals(或c++11标准之后int goals=0也支持);空(2)需要表示Team对象指针的name属性,即this->name;空(3)需要表示当前球队得分加1,因为只有一条语句,只要表示goals加1即可,即goals++或++goals(等价表示):空(4)需要表示参数类型为球队指针,即Team
*
;空(5)处为创建Game类的对象football,需要两个Team类型对象的指针,从其后面语句可知,两个指针名称为t1和t2,即newGame(t1,t2)。
转载请注明原文地址:https://kaotiyun.com/show/A2jZ777K
本试题收录于:
程序员下午应用技术考试题库软考初级分类
0
程序员下午应用技术考试
软考初级
相关试题推荐
删除Windows中某个应用程序的快捷方式,意味着(39)。
计算机使用了一段时间后,系统磁盘空间不足,系统启动时间变长,系统响应延迟,应用程序运行缓慢,此时,需要对系统进行优化。(28)________________不属于系统优化工作。
在Excel中,函数“=AVERAGE(A1,.B4)”的含义是()。
在Excel的A1单元格中输入函数“=6+16+MAX(16,6)”,按回车键后,A1单元格中显示的值为__________。
收集数据时,设计调查的问题很重要。此时,需要注意的原则不包括(8)。
在Excel中,设单元格A1中的值为80,B1中的值为35,若在C1单元格中输入函数“=IF(AND(A1>=60,B1>=60),“不及格”,“补考”)”,按回车键后,C1单元格中的值为()。
2008年9月27日,地面指挥中心通过“天地语音系统”和航天员进行了通话。“天地语音系统”的地面设备包括通信设备、数据传输设备、分组交换设备和地面卫星通信站等,飞船上则配备了无线通信、视频传输与数据记录等设备,使得航天员与地面指挥中心随时可以进行信息交流。
阅读以下说明,回答问题1至问题5,将解答填入答题纸对应的解答栏内。说明某公司内部有一个采用TCP/IP作为传输协议的100BASE-TX局域网,包括1台服务器和20台客户机,通过一台16端口的交换机与一台8端口共享集线器级连,其网络结构如图11所
随机试题
出版物消费者的购买过程包含()。
胸部侧位不能显示
在微博上,不同群体表现出的特征各异:“60后”_______,指点江山,_______;“70后”_______,常制造深度话题;“80后”从不_______,参与度较高;“90后”则基本上是娱乐。依次填入画横线部分最恰当的一项是()。
根据我国《招标投标法》规定,招标程序包括()。
对工程的()有严重影响的关键部位应设置为A级质量控制点。
某民间非营利组织2017年年初“非限定性净资产”科目余额为100万元。2017年年末有关科目贷方余额如下:“捐赠收入——非限定性收入”5000万元、“会费收入——非限定性收入”1000万元、“提供服务收入——非限定性收入”2000万元、“政府补助收入——非
多电子原子的原子轨道能级顺序随着原子序数的增加,()。
应用入侵防护系统(AIPS)一般部署在()。
A、电子毒品B、电子可卡因C、电子海洛因D、电子咖啡因C录音末尾提到“暴力游戏甚至被一些人称为电子海洛因”,所以选C。
Tibetisagoodplacetoenjoytheuniqueandimposingscenerywhileadmiringthepurebluesky.
最新回复
(
0
)