欢迎来到天天文库
浏览记录
ID:40661810
大小:49.62 KB
页数:5页
时间:2019-08-05
《2009-2010学年期末考试A》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、武汉大学2009—2010学年上学期《面向对象的程序设计》试卷(A)学号:姓名:院系:专业:得分:一、名词解释(每题5分,共计25分)(1)类(2)多态(3)抽象类(4)文档模板(5)序列化二、简答题(每题10分,共计40分)1.简述文档、视图和应用程序框架之间如何相互作用?2.Windows消息的发送有哪两种方式?主要区别是什么?WindowsAPI提供了哪几个函数用于消息的发送?3.试简述const型变量与用#define宏定义的符号常量的差异。4.简述Windows应用程序绘图过程。三、改错题(每题5分,共计10分)。1、根据左边的结构定义,
2、找出右边程序的错误并修改正确。typedefstructtagWORKER{longintnum;char*name;charsex;intage;}Worker;voidmain(){Workera;a.Num=187045;strcpy(a.name,"ZhangFun");a.sex='Man';a.age=18;}2、下面两段程序的目的是在屏幕上输出“Hello!”,但是两段程序中都不能得到正确的运行结果,请简述其错误并改正。(5分)voidGetMemory(char*p){p=newchar[100];}voidTest(void){c
3、har*str=NULL;GetMemory(str);strcpy(str,"Hello!");printf(str);}char*GetMemory(void){charp[]="Hello!";returnp;}voidTest(void){char*str=NULL;str=GetMemory();printf(str);}五、编程题(25分):下面的单文档应用程序用于在客户区内绘制矩形。程序运行后,当用户在客户区窗口按下鼠标左键并移动时,程序会在鼠标按下的起始位置和鼠标当前位置之间绘制矩形,当鼠标左键弹起时,记录矩形参数并在窗口中使用绿色
4、的单像素线条绘出最终的矩形形状。请在题中画横线的地方添加相应的实现代码。1、下面是文档类CDrawRectDoc的类声明、构造函数、析构函数和成员函数AddRect。请在析构函数和成员函数AddRect中添加相应代码。classCDrawRectDoc:publicCDocument{protected://createfromserializationonlyCDrawRectDoc();DECLARE_DYNCREATE(CDrawRectDoc)//Operationspublic:voidAddRect(RECT&rect);//添加新的矩
5、形RECT*GetRectData(){returnm_pRectArray;};//获得矩形数组指针intGetRectNumber(){returnm_nRect;};//获得矩形数量......protected:RECT*m_pRectArray;//矩阵数组intm_nRect;//矩阵数量intm_nSize;//矩阵数组的容量......};CDrawRectDoc::CDrawRectDoc(){m_pRectArray=newRECT[64];memset(m_pRectArray,0,64*sizeof(RECT));m_nRe
6、ct=0;m_nSize=64;}CDrawRectDoc::~CDrawRectDoc(){//请在下面添加“释放矩阵数组所占用的内存”的代码(2分)}//成员函数:添加新的矩形voidCDrawRectDoc::AddRect(RECT&rect){//请在函数体内添加实现代码(5分)}2、下面是视图类CDrawRectView的类声明、消息响应函数OnLButtonDown、OnMouseMove和OnRButtonDown、以及绘图成员函数OnDraw,请在黑体注释后面添加相应的实现代码。classCDrawRectView:publicC
7、ScrollView{protected://createfromserializationonlyCDrawRectView();DECLARE_DYNCREATE(CDrawRectView)//Attributespublic:CPointm_ptOrigin;//鼠标按下的位置,用于记录矩形左上角CPointm_ptEnd;//鼠标弹起的位置,用于记录矩形右下角BOOLm_bDragging;//鼠标是否处于拖曳状态HCURSORm_hCursor;//鼠标形状......protected:voidDrawRectangle(CDC*pD
8、C,CPoint&ptStart,CPoint&ptEnd);//{{AFX_MSG(CDrawRectView)afx_
此文档下载收益归作者所有