面向对象程序设计期末考试-.doc
文本预览下载声明
武汉大学电子信息学院
2006 ---2007 学年第 二 学期期末考试
《面向对象程序设计》试卷
专业 学号 姓名 成绩
一、请利用Visual C++编程完成以下题目。(每题8分,共32分)
1 编写一个程序,输入三角形的三个边的边长,求三角形的面积。
2 函数的参数传递方式有“单向值传递”、“按地址传递”和“引用传递”三种方式, 请采用内联函数的方法实现实参和形参的按地址传递。
3 编写一个SDI应用程序SDIDraw ,为应用程序添加主菜单“我的菜单”,并添加“显示文本”和“画图”两个菜单项,编写上述两个菜单项的消息处理函数,分别在客户区显示一行文本或画一个圆。
二、请用Visual C++按要求编写下列程序。(每题12分,共48分)
1 用指针作为函数参数编写冒泡排序函数:BubbleSort(int * pArray,int n),在主函数中以指针作为实参调用函数BubbleSort(), 从而对一个数组的元素进行排序。
2 设计一个日期类CDate,该类用于表示日期值(年、月、日)。要求除了能够通过相应的成员函数设置和获取日期值外,还能够用友元函数实现将日期加一天的操作。
3 定义矢量类型,给出平面上两个矢量的加法和减法运算。要求利用非成员函数重载运算符“+”,利用成员函数重载运算符“-”。
4 建立一个名为CTeacher的类,该类有以下成员变量:教师姓名、ID号、基本工资、奖金、所得税和实际发放数。还有以下成员函数:两个构造函数,一个用于只初始化教师姓名和ID号,一个用于初始化教师姓名、ID号、基本工资、奖金和所得税;一个输入基本工资、奖金和所得税的函数;一个计算实际发放数的函数;一个输出教师信息的函数,两个重载运算符“+”,一个用于将其他教师的工资加到该教师(如该教师替其他教师代课),一个函数用于将一个数值加到该教师(如提高该教师的工资)。编写主函数,调用第一个构造函数声明一个教师对象并输入其工资,再调用第二个构造函数声明一个教师对象。最后分别计算两个教师的实际发放数,在屏幕输出,并编写代码验证两个重载运算符“+”的功能。
三、选做题:请在以下4题中任选2题,用Visual C++按要求编写程序。(每题10分,共20分)
1:编写一个名为Hello的类SDK应用程序,在HELP主菜单中添加菜单项Message,当用户执行菜单项命令Message后弹出信息对话框,显示该菜单项的执行次数,提示:使用函数 _itoa()。
2:编写一个SDI应用程序,在“查看”主菜单中添加“等待光标”菜单项,执行“等待光标”菜单命令后首先将光标改为沙漏形,然后进行2秒钟左右的这种操作,最后将光标回复原状。
3:编写一个SDI应用程序,按照以下要求编程:(1)执行“编辑|输入数据(I)……”菜单命令打开标题为“输入数据”的对话框,通过该对话框输入X和Y坐标值,要求输入值在100-400的范围内;(2)在视图类中定义两个成员变量,单击对话框的“确定”按钮时接收输入数据,并赋值给视图对象的两个成员变量,调用Invalidate()函数刷新窗口;(3)在视图类OnDraw()函数中添加代码,画出一条从当前位置到输入坐标的直线。
4:编写一个应用程序,在客户区利用函数DrawText()显示3行文本。
武汉大学电子信息学院
2006 ---2007 学年第 二 学期期末考试
《面向对象程序设计》试卷
专业 学号 姓名 成绩
一、请利用Visual C++编程完成以下题目。(每题8分,共32分)
1 从键盘输入一个大写字母,然后改用小写字母在屏幕上输出。
2 一个程序由两个C++源文件组成,在一个源文件中定义主函数main() 并声明一个外部整型变量n,在另一个源文件中定义一个不带参数的函数factorial(void),该函数用于计算变量n的阶乘。编程在主函数main() 中输入一个整数并求它的阶乘。
3 编写一个SDI应用程序SDIDraw ,为应用程序添加主菜单“我的菜单”,并添加“显示文本”和“画图”两个菜单项,编写上述两个菜单项的消息处理函数,分别在客户区显示一行文本或画一个圆。 要求:显示文本后“显示文本”菜单项处于不可用状态;当画一个圆后“画圆”菜单项处于不可用状态。其他情况下处于可用状态。
4 假设已利用MFC AppWizard应用程序向导建立了一个名为Mysdi的单文档应用程序,在应用程序中添加标题为“输入半径”的对话框资源和对应的对话框类,在对话框资源中添加内容为“请输入半径”的静态文本框控件和用于接收输入
显示全部