深圳大学期末考试试卷编程题Word文件下载.doc

上传人:wj 文档编号:7007056 上传时间:2023-05-07 格式:DOC 页数:4 大小:43.50KB
下载 相关 举报
深圳大学期末考试试卷编程题Word文件下载.doc_第1页
第1页 / 共4页
深圳大学期末考试试卷编程题Word文件下载.doc_第2页
第2页 / 共4页
深圳大学期末考试试卷编程题Word文件下载.doc_第3页
第3页 / 共4页
深圳大学期末考试试卷编程题Word文件下载.doc_第4页
第4页 / 共4页
亲,该文档总共4页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

深圳大学期末考试试卷编程题Word文件下载.doc

《深圳大学期末考试试卷编程题Word文件下载.doc》由会员分享,可在线阅读,更多相关《深圳大学期末考试试卷编程题Word文件下载.doc(4页珍藏版)》请在冰点文库上搜索。

深圳大学期末考试试卷编程题Word文件下载.doc

endl;

~CBook(){delete[]p_book;

};

voidmain()

charbook_title[60];

CBook*p_book_obj;

cout<

“Enterbooktitle:

”;

cin>

>

p;

CBookabook(p);

p_book_obj=&

abook;

p_book_obj->

print();

}

三、根据如下所示程序,回答下列问题(共10分)

classCJournal

CJournal(){cout<

“Journaldefaultconstructor”<

virtualvoidsubscribe()=0;

voidread(){cout<

“Readpaper”<

~CJournal(){cout<

“Journaldefaultdestructor”<

classCComputerDesign:

publicCJournal

CComputerDesign(){cout<

“《ComputerDesign》defaultconstructor”<

virtualvoidsubscribe(){cout<

“Subscribing《ComputerDesign》”<

voidread(){cout<

“Reading《ComputerDesign》”<

~CComputerDesign(){cout<

“《ComputerDesign》defaultdestructor”<

CComputerDesignjournal1;

CJournal*p_journal;

journal1.subscribe();

journal1.read();

//①

p_journal=&

journal1;

p_journal->

subscribe();

read();

1.当程序运行到①处时,写出程序运行的输出结果(3分)

2.当程序结束时,程序会在第1问的基础上增加哪些输出。

(4分)

3.若在主函数中定义一个对象CJournaljournal;

程序编译时会否出错?

为什么?

(3分)

四、编程题(共40分)

1.定义一个商品类CGoods,其中包含商品号(longno)、商品名(char*p_name)、商品价格(doubleprice)三个数据成员,以及相应的构造函数、拷贝构造函数、析构函数、打印数据成员的成员函数。

(10分)

iostream>

string.h>

usingnamespacestd;

classCCourse

longno;

char*p_name;

floatcredit;

CCourse(longno_val,charp_val,floatcredit_val);

CCourse(constCCourse&

r_course);

~CCourse(){deletep_name;

voidprint()const;

CCourse:

CCourse(longno_val,charp_val,floatcredit_val)

{

no=no_val;

p_name=newchar[strlen(p_val)+1];

strcpy(p_name,p_val);

credit=credit_val;

}

CCourse(constCCourse&

r_course)

no=r_course.no;

p_name=newchar[strlen(r_course.p_name)+1];

strcpy(p_name,r_course.p_name);

credit=r_course.credit;

voidCCourse:

print()const

cout<

"

Coursenumber"

no<

endl;

Coursename"

p_name<

Coursecredit"

credit<

2.为CGoods类增加一个商品总数(intcount)数据成员,并增加一个成员函数getCount()获取count的值,编写一个友元函数getName()获取商品名称p_name。

做如上修改后,重新实现CGoods类(与第1问相同的不用再重复)。

3.为CGoods类定义小于运算符(‘<

’)和不小于运算符(‘>

=’)两个运算符重载函数。

CGoods类对象大小的比较是根据其商品价格(price)的值的大小来实现的。

(与第2问相同的不用再重复)(10分)

4.以CGoods类为基类,派生出服装类CClothes和食品类CFood两个派生类,并在这两个类中分别增加一个表示品牌的指针数据成员(char*p_brand)和表示用途的成员函数(voidusedFor()——可分别输出一条表示服装和食品用途的信息)。

写出CClothes类和CFood类的完整定义(包括构造、析构和usedFor()成员函数的实现)。

二、下面的程序是关于CComplex类的一个定义,试改正程序中出现的5处错误。

classCComplex

doublereal=0.0,image;

CComplex(doublea=0.0,doubleb=0.0){real=a;

image=b;

staticdoublegetReal()const{returnreal;

intgetImage()const{returnimage;

CComplex&

operator+(constCComplex&

r_x,constCComplex&

r_y);

r_y)

CComplextemp;

temp.real=r_x.real+r_y.image;

returntemp;

CComplexa(3.0,4.0),b(5.0),c;

c=a+b;

c.getReal();

c.getImage();

错误为:

第5行,real=0.0,改为real,

第8行,staticdoublegetReal()改为doublegetReal()

第9行,intgetImage()改为doublegetImage()

第10行,CComplex&

operator+改为friendCComplexoperator+

第12行,CComplex&

operator+改为CComplexoperator+

protected:

staticintcount;

CBook(){count++;

cout<

“Bookconstructorcalled”<

count<

virtualvoidorder()=0;

“Readbook”<

virtual~CBook(){cout<

“Bookdestructorcalled”<

count--;

staticintgetCount(){returncount;

intCBook:

:

count=0;

classCTextBook:

publicCBook

CTextBook(){cout<

“Textbookconstructorcalled”<

voidorder(){cout<

“Ordertextbook”<

“Readtextbook”<

~CTextBook(){cout<

“Textbookdestructorcalled”<

CTextBookoop;

CBook*p_book;

oop.order();

oop.read();

cout<

CTextBook:

getCount()<

p_book=newCTextBook;

p_book->

order();

deletep_book;

1当程序运行到①处时,写出程序运行的输出结果(3分)

2当程序结束时,程序会在第1问的基础上增加哪些输出。

(5分)

3若在主函数中定义一个对象CBookbook;

(2分)

1.定义一个课程类CCourse,其中包含课程号(longno)、课程学分(floatcredit)两个数据成员,以及相应的构造函数和打印数据成员的成员函数print()。

(8分)

2.为CCourse类增加一个课程总数(inttotal_course)数据成员,并增加一个成员函数getTotalCourse()获取total_course的值,编写一个友元函数getCourseNo()获取课程号no。

做如上修改后,重新实现CCourse类(与第1问相同的不用再重复,注意说明数据成员和成员函数的存储类型,以便能够用类名来调用getTotalCourse())。

3.为CCourse类定义小于运算符(‘<

’)运算符重载函数。

CCourse类对象大小的比较是根据其课程学分(credit)的值的大小来实现的。

(与第2问相同的不用再重复)(5分)

4.以CCourse类为基类,派生出面向对象程序设计课程类COOP,并在该类中增加一个表示开课单位的指针数据成员(char*p_openby)和根据学生学号判断能否选课的成员函数boolselect(constchar*p_xh)(只有学号前4位为2006的学生可选面向对象程序设计课程)。

写出COOP类的完整定义(包括构造、拷贝构造、赋值运算符重载、析构和select()成员函数的实现)。

(17分)

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

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 幼儿教育 > 幼儿读物

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2