Skip to content

Latest commit

 

History

History
 
 

chapter12

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 

第九章 《类和动态内存分配》 编程练习题之我解

12.1

题: 对于下面的类声明:

image-20220213122916099

给这个类提供实现,并编写一个使用所有成员函数的小程序。

12.2

题: 通过完成下面的工作来改进String类声明(即将String1.h升级为String2.h)。

a.对+运算符进行重载,使之可将两个字符串合并成1个。

b.提供一个Stringlow( )成员函数,将字符串中所有的字母字符转 换为小写(别忘了cctype系列字符函数)。

c.提供String( )成员函数,将字符串中所有字母字符转换成大写。 d.提供一个这样的成员函数,它接受一个char参数,返回该字符在字符串中出现的次数。使用下面的程序来测试您的工作:

image-20220213123057187

image-20220213123118536

输出应与下面相似:

image-20220213123145305

10.3

题: 新编写程序清单10.7和程序清单10.8描述的Stock类,使之使用动态分配的内存,而不是 string 类对象来存储股票名称。另外,使用重 载的 operator<<()定义代替 show() 成员函数。再使用程序清单10.9测试新 的定义程序。

10.4

题: 请看下面程序清单10.10定义的Stack类的变量:

image-20220213123751514

正如私有成员表明的,这个类使用动态分配的数组来保存栈项。请重新编写方法,以适应这种新的表示法,并编写一个程序来演示所有的方法,包括复制构造函数和赋值运算符。

10.5

题: Heather银行进行的研究表明,ATM客户不希望排队时间不超过 1分钟。使用程序清单12.10中的模拟,找出要使平均等候时间为1分钟,每小时到达的客户数应为多少(试验时间不短于100小时)?

10.6

题: Heather银行想知道,如果再开设一台ATM,情况将如何。请对 模拟进行修改,以包含两个队列。假设当第一台ATM前的排队人数少 于第二台ATM时,客户将排在第一队,否则将排在第二队。然后再找 出要使平均等候时间为1分钟,每小时到达的客户数应该为多少(注 意,这是一个非线性问题,即将ATM数量加倍,并不能保证每小时处 理的客户数量也翻倍,并确保客户等候的时间少于1分钟)?