void { }
main()
Sample
s1,s2(2,3); s1.disp(); s2.disp();
31. 设计一个Bank类,实现银行某账号的资金往来账目管理,包括建账号、存入、取出等。(20分)
参考答案:
1 A 2 C 3 C 4 D 5 B 6 C 7 A 8 B 9 A 10 C 11 C 12 A 13 B 14 ABC 15 ABD 16 ABD 17 BCD 18 数据
19 protected 20 相似 21 inline 22 基类 23 static 24 块 25 friend 26 申明
27 ios::app 28 ios::left
29. 解:x=2,y=3
本题说明了对象指针的使用方法。这里通过指向对象的指针来调用对象的成员函数。对象指针p指向对象s,p->disp()等价于s.disp()。所以输出为: x=2,y=3.
30.解:x=0,y=0 x=2,y=3
本题说明了构造函数的调用顺序。首先定义了一个类Sample,在main()中定义了它的两个对象,定义s1对象时调用其默认构造函数(x=0,y=0),定义s2对象时调用其重载构造函数(x=2,y=3),然后,调用各自的成员函数输出各自的数据成员。所以输出为: x=0,y=0 x=2,y=3
31. 解:Bank类包括私有数据成员top(当前账指针),date(日期),money(金额),rest(余额)和sum(累计余额)。另有一个构造函数和三个成员函数bankin()(处理存入账),bankout()处理取出账)和disp() (输出明细账)。 本题程序如下: #include
int top;
char date[Max][10]; // 日期 int money[Max]; // 金额 int rest[Max]; // 余额 static int sum; // 累计余额 public:
Bank(){top=0;}
void bankin(char d[],int m) {
strcpy(date[top],d); money[top]=m; sum=sum+m; rest[top]=sum; top++; }
void bankout(char d[],int m) {
strcpy(date[top],d); money[top]=-m; sum=sum-m; rest[top]=sum;
top++; }
void disp(); };
int Bank::sum=0; void Bank::disp() {
int i;
printf(\日期存入 取出余额\\n\ for(i=0;i printf(\ if(money[i]<0) printf(\ else printf(\ printf(\ } } void main() { Bank obj; obj.bankin(\ obj.bankin(\ obj.bankout(\ obj.bankout(\ obj.disp(); } 本程序的执行结果如下: 日期 存入 取出 余额 2001.2.5 1000 1000 2001.3.2 2000 3000 2001.4.1 500 2500 2001.4.5 800 1700
相关推荐: