2022年深圳大学期末考试试卷编程题 .pdf

上传人:H****o 文档编号:32526141 上传时间:2022-08-09 格式:PDF 页数:4 大小:44.54KB
返回 下载 相关 举报
2022年深圳大学期末考试试卷编程题 .pdf_第1页
第1页 / 共4页
2022年深圳大学期末考试试卷编程题 .pdf_第2页
第2页 / 共4页
点击查看更多>>
资源描述

《2022年深圳大学期末考试试卷编程题 .pdf》由会员分享,可在线阅读,更多相关《2022年深圳大学期末考试试卷编程题 .pdf(4页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、面向对象程序设计试卷A 卷第 1 页 共 4 页深圳大学期末考试试卷二、下面的程序是关于CBook类的一个定义,试改正程序中的错误。(共 10 分)#include #include #inlcude class CBook private: char *p_book; public: p_book=new charstrlen(p_val)+1 CBook(const char *p_val) p_book = new charstrlen(p_val); strcpy(p_book, p_val); void print() const cout p_book endl; CBook()

2、delete p_book; ; void main() char book_title60; CBook *p_book_obj; cout p; CBook abook(p); p_book_obj = &abook; p_book_obj-print(); 三、根据如下所示程序,回答下列问题(共10 分)#include class CJournal public: CJournal () cout “ Journal default constructor” endl; virtual void subscribe() = 0; void read() cout “ Read pape

3、r ” endl; CJournal () cout “ Journal default destructor” endl; ; class CComputerDesign : public CJournal public: CComputerDesign () cout “ Computer Design default constructor” endl; virtual void subscribe() cout “ Subscribing Computer Design ” endl; void read() cout “ Reading Computer Design ” endl;

4、 CComputerDesign() cout “ Computer Design default destructor” subscribe(); p_journal-read(); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 4 页 - - - - - - - - - 面向对象程序设计试卷A 卷第 2 页 共 4 页1. 当程序运行到处时,写出程序运行的输出结果 (3分) 2. 当程序结束时,程序会在第1 问的基础上增加哪些输出。 (4分) 3. 若在主函数中定义

5、一个对象CJournal journal;程序编译时会否出错?为什么?(3 分) 四、编程题 ( 共 40 分) 1. 定义一个商品类CGoods ,其中包含商品号(long no)、商品名 (char *p_name)、商品价格 (double price)三个数据成员,以及相应的构造函数、拷贝构造函数、析构函数、打印数据成员的成员函数。(10 分) #include #include using namespace std; class CCourse private: long no; char *p_name; float credit; public: CCourse(long no

6、_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 charstrlen(p_val)+1; strcpy(p_name,p_val); credit=credit_val; CCourse:CCourse(const CCourse &r_course) no=

7、r_course.no; p_name=new charstrlen(r_course.p_name)+1; strcpy(p_name,r_course.p_name); credit=r_course.credit; void CCourse:print() const coutCourse numbernoendl; coutCourse namep_nameendl; coutCourse creditcreditendl; 2. 为 CGoods类增加一个商品总数(int count) 数据成员,并增加一个成员函数getCount()获取 count 的值,编写一个友元函数getNa

8、me() 获取商品名称p_name 。做如上修改后,重新实现CGoods类( 与第 1 问相同的不用再重复) 。(10分) 3. 为 CGoods类定义小于运算符 (=)两个运算符重载函数。CGoods类对象大小的比较是根据其商品价格 (price)的值的大小来实现的。( 与第 2 问相同的不用再重复)(10 分) 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 4 页 - - - - - - - - - 面向对象程序设计试卷A 卷第 3 页 共 4 页4. 以 CGoo

9、ds类为基类,派生出服装类CClothes 和食品类 CFood两个派生类,并在这两个类中分别增加一个表示品牌的指针数据成员(char *p_brand)和表示用途的成员函数(void usedFor()可分别输出一条表示服装和食品用途的信息 ) 。写出 CClothes 类和 CFood类的完整定义 ( 包括构造、析构和usedFor() 成员函数的实现) 。(10 分) 二、下面的程序是关于CComplex类的一个定义,试改正程序中出现的5 处错误。(共 10 分)#include class CComplex private: double real = 0.0, image; publ

10、ic: CComplex(double a=0.0, double b=0.0) real = a; image = b; static double getReal() const return real; int getImage() const return image; CComplex & operator + (const CComplex &r_x, const CComplex &r_y); ; CComplex & operator + (const CComplex &r_x, const CComplex &r_y) CComplex temp; temp.real =

11、r_x.real + r_y.image; temp.real = r_x.real + r_y.image; return temp; void main() CComplex a(3.0, 4.0), b(5.0), c; c = a + b; cout c.getReal(); cout c.getImage(); 错误为:第5 行, real=0.0,改为 real, 第 8 行, static double getReal()改为 double getReal() 第 9 行, int getImage()改为 double getImage() 第 10 行, CComplex &

12、 operator+改为 friend CComplex operator+ 第 12 行, CComplex & operator+改为 CComplex operator+ 三、根据如下所示程序,回答下列问题(共10 分)#include class CBook protected: static int count; public: CBook() count+; cout “ Book constructor called ” count endl; virtual void order() = 0; void read() cout “ Read book ” endl; virtu

13、al CBook() cout “ Book destructor called ” count endl; count-; static int getCount() return count; ; int CBook:count = 0; class CTextBook : public CBook public: 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 4 页 - - - - - - - - - 面向对象程序设计试卷A 卷第 4 页 共 4 页CTextBo

14、ok() cout “ Textbook constructor called ” count endl; void order() cout “ Order textbook” endl; void read() cout “ Read textbook ” endl; CTextBook() cout “ Textbook destructor called ” count endl; ; void main() CTextBook oop; CBook *p_book; oop.order(); oop.read(); cout CTextBook:getCount() endl; /

15、p_book = new CTextBook; cout CTextBook:getCount() order(); p_book-read(); delete p_book; cout CTextBook:getCount() endl; 1 当程序运行到处时,写出程序运行的输出结果 (3 分) 2 当程序结束时,程序会在第1 问的基础上增加哪些输出。 (5分) 3 若在主函数中定义一个对象CBook book; 程序编译时会否出错?为什么?(2 分) 四、编程题 ( 共 40 分) 1. 定义一个课程类CCourse,其中包含课程号(long no)、课程学分 (float credit)

16、两个数据成员,以及相应的构造函数和打印数据成员的成员函数print()。(8 分) 2. 为 CCourse 类增加一个课程总数(int total_course)数据成员,并增加一个成员函数getTotalCourse()获取total_course的值,编写一个友元函数getCourseNo() 获取课程号no。做如上修改后,重新实现CCourse 类( 与第 1 问相同的不用再重复,注意说明数据成员和成员函数的存储类型,以便能够用类名来调用getTotalCourse()) 。(10 分) 3. 为 CCourse 类定义小于运算符 ()运算符重载函数。CCourse 类对象大小的比较是

17、根据其课程学分(credit)的值的大小来实现的。( 与第 2 问相同的不用再重复)(5 分) 4. 以 CCourse 类为基类,派生出面向对象程序设计课程类COOP ,并在该类中增加一个表示开课单位的指针数据成员(char *p_openby)和根据学生学号判断能否选课的成员函数bool select(const char *p_xh)(只有学号前4 位为 2006的学生可选面向对象程序设计课程) 。 写出 COOP 类的完整定义 ( 包括构造、 拷贝构造、赋值运算符重载、 析构和 select()成员函数的实现 ) 。(17 分) 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 4 页 - - - - - - - - -

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 技术资料 > 技术总结

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁