首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
使用VC6打开考生文件夹下的源程序文件modi3.cpp,其中定义了用于表示日期的类Date,但类Date的定义并不完整,按要求完成下列操作,将类的定义补充完整。 (1)定义私有成员变量year、month、day,分别表示年、月、日,类型为int
使用VC6打开考生文件夹下的源程序文件modi3.cpp,其中定义了用于表示日期的类Date,但类Date的定义并不完整,按要求完成下列操作,将类的定义补充完整。 (1)定义私有成员变量year、month、day,分别表示年、月、日,类型为int
admin
2019-06-05
56
问题
使用VC6打开考生文件夹下的源程序文件modi3.cpp,其中定义了用于表示日期的类Date,但类Date的定义并不完整,按要求完成下列操作,将类的定义补充完整。
(1)定义私有成员变量year、month、day,分别表示年、月、日,类型为int。请在注释//********1********后添加适当的语句。
(2)完成构造函数,分别给year、month、day赋值,请在注释//********2********后添加适当的语句。
(3)完成重载符号“+=”的定义,请在注释//********3********后添加适当的语句。
(4)完成print()打印函数,如2008年8月8日到屏幕和文件modi3.txt格式相同,请在注释//********4********后添加适当的语句。
注意:仅在函数指定位置添加语句,请勿改动主函数main与其他函数中的任何内容。
1 #include<iostream.h>
2 #include<fstream>
3 #include<iomanip>
4 #include<cmath>
5 using namespace std;
6 void WriteFile(int c)
7 {
8 ofstream out1;
9 out1.open(’’modi3.txt’’,ios_base::app);
10 out1<<c<< ’ ’;
11 out1.close();
12 }
13 void WriteFile(char* str)
14 {
15 ofstream out1;
16 out1.open(’’modi3.txt’’,ios_base::app);
17 out1<<str;
18 out1.close();
19 }
20 void ClearFile()
21 {
22 ofstream outl;
23 out1.open(’’modi3.txt’’);
24 out1.close();
25 }
26 class Date
27 {
28 public:
29 Date(int y,int m,int d)
30 {
31 //********2********
32
33 }
34 void print() const;
35 //********3********
36
37 {
38 month+=m;
39 int i=month/12;
40 int j=month%12;
41 if(j==0)
42 {
43 year+=(i-1);
44 month=12;
45 }
46 else
47 {
48 year+=i;
49 month=j;
50 }
51 return *this;
52 }
53 private:
54 //********1********
55
56 };
57 void Date::print() const
58 {
59 //********4********
60
61 WriteFile(year);
62 WriteFile(’’年’’);
63 WriteFile(month);
64 WriteFile(’’月’’);
65 WriteFile(day);
66 WriteFile(’’日’’);
67 }
68 int main()
69 {
70 ClearFile();
71 Date Oly_day(2008,8,8);
72 Oly_day+=3;
73 Oly_day.print();
74 return 0;
78 }
选项
答案
(1)添加语句:int year,month,day; (2)添加语句:year=y;month=m;day=d; (3)添加语句:Date & operator+=(int m) (4)添加语句: cout<<year<<’’年’’<<month<<’’月’’<<day<<’’日’’<<end1;
解析
在VC环境下打开程序,根据题干给出的几条功能要求,对程序中给出注释下的内容逐个补全或修改。从已给定源程序的main主函数开始入手,可以看出程序通过调用类Date和函数print实现各种输出操作。
(1)题目1要求“定义私有成员变量year、month、day”。在C++程序的private区域中添加变量year、month、day的定义,即在第1个标识下添加“int year,month,day;”。
(2)题目2要求“完成构造函数,分别给year、month、day赋值”。在程序中“Date(int y,int m,int d)”的构造函数中添加给year、month、day赋值的语句,即在第2个标识下添加“year=y;month=m;day=d;”。
(3)题目3要求“完成重载符号“+=”的定义”。在C++中,运算符重载的定义方法是定义一个重载运算符的函数,格式为函数operator+重载运算符号+,所以这里补全“Date&operator+=(int m)”。
(4)题目4要求“完成函数print()打印函数”。在C++中的print()函数中补全其打印功能,即在第四个标识下添加“cout<<year<<’’年’’<<month<<’’月’’<<day<<’’日’’<<end1;”。
转载请注明原文地址:https://kaotiyun.com/show/9m8p777K
本试题收录于:
二级C题库NCRE全国计算机二级分类
0
二级C
NCRE全国计算机二级
相关试题推荐
在公有派生时,派生类中定义的成员函数只能访问原基类的()。A)私有成员、保护成员和公有成员B)保护成员和私有成员C)公有成员和保护成员D)公有成员和私有成员
C++中将两个字符串连接起来组成一个字符串的函数是______。
执行下列语句后,变量n的值是______。intn=0;for(inti=1;i<=3;i++)for(intj=1;j<<=i;j++)n++;
数据流的类型有______和事务型。
下列程序的输出结果为012,请根据注释将横线处的缺失部分补充完整。#include<iostream>usingnamespacestd;classTest{public:Test(intA){data=a
下列关于析构函数的描述中,错误的是()。A)析构函数可以重载B)析构函数由系统自动调用C)每个对象的析构函数只被调用一次D)每个类都有析构函数
若要对Data类中重载的加法运算符成员函数进行声明,下列选项中正确的是()。A)Data+(DatA);B)Dataoperator+{Data};C)Data+operator{Data};D)operator+(Data,D
已知类Myclass的定义如下classMyClass{public:voidfunction1(MyClass&C){cout<<c.data;)staticvoidfunction2(MyClass&C)
随机试题
男,58岁,有肝硬化病史,突然出现神志恍惚,淡漠少言,口齿不清,嗜睡,昼睡夜醒护士应警惕病人可能出现了
A.四海舒郁丸B.丹栀逍遥散合普济消毒饮C.柴胡疏肝散合海藻玉壶汤D.龙胆泻肝汤合藻药散E.四海舒郁丸合右归丸治疗单纯性甲状腺肿肝郁脾虚证应首选
构成对招标单位有约束力的招标文件,其组成内容包括( )。
甲、乙双方在合同中约定,甲公司在收到乙公司的30%的预付款后即行发货,由于乙公司资金紧张,要求甲公司先发一批货应急,遭到甲公司的拒绝。则()。
背景资料某公路隧道最大埋深约180m,设计净高5.0m,净宽14.0m,隧道长940m。隧道区域内主要为微风化黑云母和长花岗岩,设计阶段对围岩定级为Ⅱ一Ⅲ级,施工过程中,围岩发生了变化,需要重新评定。隧道区域内地表水系较发育,区域内以基岩裂隙水为主,浅部
短期贷款是指期限在()以内的贷款;长期贷款是指期限在()以上的贷款。
在衡量计算机的主要性能指标中,计算机运算部件一次能够处理的二进制数据位数叫做_________,总取____________位的整数倍。
(2016年单选11)下列关于守法的理解,不正确的是()。
毛泽东指出:“改造客观世界,也改造自己的主观世界——改造自己的认识能力,改造主观世界同客观世界的关系。”关于主观世界与客观世界说法正确的是
在网络安全防护中,()注重对网络安全状况的监管,通过监视网络或系统资源,寻找违反安全策略的行为或攻击迹象,并发出报警。
最新回复
(
0
)