# 第九章 《类和动态内存分配》 编程练习题之我解 ## 12.1 **题:** 对于下面的类声明: ![image-20220213122916099](https://static.fungenomics.com/images/2022/02/image-20220213122916099.png) 给这个类提供实现,并编写一个使用所有成员函数的小程序。 ## 12.2 **题:** 通过完成下面的工作来改进String类声明(即将String1.h升级为String2.h)。 a.对+运算符进行重载,使之可将两个字符串合并成1个。 b.提供一个Stringlow( )成员函数,将字符串中所有的字母字符转 换为小写(别忘了cctype系列字符函数)。 c.提供String( )成员函数,将字符串中所有字母字符转换成大写。 d.提供一个这样的成员函数,它接受一个char参数,返回该字符在字符串中出现的次数。使用下面的程序来测试您的工作: ![image-20220213123057187](https://static.fungenomics.com/images/2022/02/image-20220213123057187.png) ![image-20220213123118536](https://static.fungenomics.com/images/2022/02/image-20220213123118536.png) 输出应与下面相似: ![image-20220213123145305](https://static.fungenomics.com/images/2022/02/image-20220213123145305.png) ## 10.3 **题:** 新编写程序清单10.7和程序清单10.8描述的Stock类,使之使用动态分配的内存,而不是 `string` 类对象来存储股票名称。另外,使用重 载的 `operator<<()`定义代替 `show()` 成员函数。再使用程序清单10.9测试新 的定义程序。 ## 10.4 **题:** 请看下面程序清单10.10定义的Stack类的变量: ![image-20220213123751514](https://static.fungenomics.com/images/2022/02/image-20220213123751514.png) 正如私有成员表明的,这个类使用动态分配的数组来保存栈项。请重新编写方法,以适应这种新的表示法,并编写一个程序来演示所有的方法,包括复制构造函数和赋值运算符。 ## 10.5 **题:** Heather银行进行的研究表明,ATM客户不希望排队时间不超过 1分钟。使用程序清单12.10中的模拟,找出要使平均等候时间为1分钟,每小时到达的客户数应为多少(试验时间不短于100小时)? ## 10.6 **题:** Heather银行想知道,如果再开设一台ATM,情况将如何。请对 模拟进行修改,以包含两个队列。假设当第一台ATM前的排队人数少 于第二台ATM时,客户将排在第一队,否则将排在第二队。然后再找 出要使平均等候时间为1分钟,每小时到达的客户数应该为多少(注 意,这是一个非线性问题,即将ATM数量加倍,并不能保证每小时处 理的客户数量也翻倍,并确保客户等候的时间少于1分钟)?