2007年深圳大学C++期末考试试卷A 联系客服

发布时间 : 星期日 文章2007年深圳大学C++期末考试试卷A更新完毕开始阅读

打印数据成员的成员函数。(10分) #include #include using namespace std; class CCourse {

private:

long no;

char *p_name; float credit; public:

CCourse(long no_val,char p_val,float credit_val); CCourse(const CCourse &r_course); ~CCourse(){delete p_name;} void print() const; };

CCourse:CCourse(long no_val,char p_val,float credit_val) {

no=no_val;

p_name=new char[strlen(p_val)+1]; strcpy(p_name,p_val); credit=credit_val; }

CCourse:CCourse(const CCourse &r_course) {

no=r_course.no;

p_name=new char[strlen(r_course.p_name)+1]; strcpy(p_name,r_course.p_name); credit=r_course.credit; }

void CCourse:print() const {

cout<<\ cout<<\ cout<<\ }

《面向对象程序设计》试卷 A 卷 第 5 页 共 8 页

2. 为CGoods类增加一个商品总数(int count)数据成员,并增加一个成员函数getCount()获取count的值,编写一个友元函数getName()获取商品名称p_name。做如上修改后,重新实现CGoods类(与第1问相同的不用再重复)。(10分)

3. 为CGoods类定义小于运算符(‘<’)和不小于运算符(‘>=’)两个运算符重载函数。CGoods类对象大小的比较是根据其商品价格(price)的值的大小来实现的。(与第2问相同的不用再重复)(10分)

4. 以CGoods类为基类,派生出服装类CClothes和食品类CFood两个派生类,并在这两个类中分别增加一个表示品牌的指针数据成员(char *p_brand)和表示用途的成员函数(void usedFor()——可分别输出一条表示服装和食品用途的信息)。写出CClothes类和CFood类的完整定义(包括构造、析构和usedFor()成员函数的实现)。(10分)

《面向对象程序设计》试卷 A 卷 第 6 页 共 8 页

五、附加题(共30分。注意:确保基本题成绩能达到75分以上,再尝试做附加题!)

1. 在基本题第四题的基础上,在CGoods类增加总商品数(long total_goods)和商品总价格(double total_price)两个数据成员,以及相应的获取这两个数据成员值的成员函数getTotalGoods()和getTotalPrice()。(注意说明数据成员和成员函数的存储类型,以便能够用类名来调用getTotalGoods()和getTotalPrice()这两个函数)。为了能够采用动态联编的方式调用派生类的usedFor()成员函数,应该在CGoods类及其派生类CClothes和CFood类中作何改动? (15分)

《面向对象程序设计》试卷 A 卷 第 7 页 共 8 页

2. 编写一个实现两个数交换的函数模板swap,然后使用该函数模板再编写一个对具有n个数组元素(通用类型)的数组采用冒泡排序算法进行排序的函数模板。(15分)

《面向对象程序设计》试卷 A 卷第 8 页 共 8 页