版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、武汉大学200 6 200 7 学年度第 2 学期(108)面向对象程序设计试 卷 学院 专业 班 学号 姓名 分数 一、请利用Visual C+编程完成以下题目。(每题8分,共32分)1 编写一个程序,输入三角形的三个边的边长,求三角形的面积。2 函数的参数传递方式有“单向值传递”、“按地址传递”和“引用传递”三种方式, 请采用内联函数的方法实现实参和形参的按地址传递。3 编写一个SDI应用程序SDIDraw ,为应用程序添加主菜单“我的菜单”,并添加“显示文本”和“画图”两个菜单项,编写上述两个菜单项的消息处理函数,分别在客户区显示一行文本或画一个圆。4 编写一个对话框应用程序CorBut
2、n,对话框中有两个用于选择颜色模式的单选按钮和3个用于选择颜色的复选框,只有在彩色模式下才能选择3中不同的颜色的组合。对话框运行效果如右图,当用户单击“应用”按钮,对话框右边的按键按钮根据选择的颜色实现按钮的自画。二、请用Visual C+按要求编写下列程序。(每题12分,共48分)1 用指针作为函数参数编写冒泡排序函数:BubbleSort(int * pArray,int n),在主函数中以指针作为实参调用函数BubbleSort(), 从而对一个数组的元素进行排序。2 设计一个日期类CDate,该类用于表示日期值(年、月、日)。要求除了能够通过相应的成员函数设置和获取日期值外,还能够用友
3、元函数实现将日期加一天的操作。3 定义矢量类型,给出平面上两个矢量的加法和减法运算。要求利用非成员函数重载运算符“”,利用成员函数重载运算符“”。4 建立一个名为CTeacher的类,该类有以下成员变量:教师姓名、ID号、基本工资、奖金、所得税和实际发放数。还有以下成员函数:两个构造函数,一个用于只初始化教师姓名和ID号,一个用于初始化教师姓名、ID号、基本工资、奖金和所得税;一个输入基本工资、奖金和所得税的函数;一个计算实际发放数的函数;一个输出教师信息的函数,两个重载运算符“”,一个用于将其他教师的工资加到该教师(如该教师替其他教师代课),一个函数用于将一个数值加到该教师(如提高该教师的工
4、资)。编写主函数,调用第一个构造函数声明一个教师对象并输入其工资,再调用第二个构造函数声明一个教师对象。最后分别计算两个教师的实际发放数,在屏幕输出,并编写代码验证两个重载运算符“”的功能。三、选做题:请在以下4题中任选2题,用Visual C+按要求编写程序。(每题10分,共20分)1:编写一个名为Hello的类SDK应用程序,在HELP主菜单中添加菜单项Message,当用户执行菜单项命令Message后弹出信息对话框,显示该菜单项的执行次数,提示:使用函数 _itoa()。2:编写一个SDI应用程序,在“查看”主菜单中添加“等待光标”菜单项,执行“等待光标”菜单命令后首先将光标改为沙漏形
5、,然后进行2秒钟左右的这种操作,最后将光标回复原状。3:编写一个SDI应用程序,按照以下要求编程:(1)执行“编辑|输入数据(I)”菜单命令打开标题为“输入数据”的对话框,通过该对话框输入X和Y坐标值,要求输入值在100400的范围内;(2)在视图类中定义两个成员变量,单击对话框的“确定”按钮时接收输入数据,并赋值给视图对象的两个成员变量,调用Invalidate()函数刷新窗口;(3)在视图类OnDraw()函数中添加代码,画出一条从当前位置到输入坐标的直线。4:编写一个应用程序,在客户区利用函数DrawText()显示3行文本。 一、请利用Visual C+编程完成以下题目。(每题8分,共
6、32分)1 从键盘输入一个大写字母,然后改用小写字母在屏幕上输出。2 一个程序由两个C+源文件组成,在一个源文件中定义主函数main() 并声明一个外部整型变量n,在另一个源文件中定义一个不带参数的函数factorial(void),该函数用于计算变量n的阶乘。编程在主函数main() 中输入一个整数并求它的阶乘。3 编写一个SDI应用程序SDIDraw ,为应用程序添加主菜单“我的菜单”,并添加“显示文本”和“画图”两个菜单项,编写上述两个菜单项的消息处理函数,分别在客户区显示一行文本或画一个圆。 要求:显示文本后“显示文本”菜单项处于不可用状态;当画一个圆后“画圆”菜单项处于不可用状态。其
7、他情况下处于可用状态。4 假设已利用MFC AppWizard应用程序向导建立了一个名为Mysdi的单文档应用程序,在应用程序中添加标题为“输入半径”的对话框资源和对应的对话框类,在对话框资源中添加内容为“请输入半径”的静态文本框控件和用于接收输入的编辑框控件,并添加与控件关联的成员变量。通过“编辑”菜单中的“输入半径(I)”打开标题为“输入半径对话框”,并根据输入的半径画一个圆。二、请用Visual C+按要求编写下列程序。(每题12分,共48分) 1 设计一个日期类CDate,该类用于表示日期值(年、月、日)。要求除了能够通过相应的成员函数设置和获取日期值外,还能够实现将日期加一天的操作。
8、2 建立一个名为CStudent的类,该类有以下几个私有成员变量:学生姓名、学号、性别和年龄。有一个成员函数:用于初始化学生姓名、学号、性别和年龄的构造函数。还有一个用于输出学生信息的友元函数。编写一个主函数,声明一个学生对象,然后调用友元函数在屏幕输出学生信息。3 建立一个名为CTeacher的类,该类有以下成员变量:教师姓名、ID号、基本工资、奖金、所得税和实际发放数。还有以下成员函数:两个构造函数,一个用于只初始化教师姓名和ID号,一个用于初始化教师姓名、ID号、基本工资、奖金和所得税;一个输入基本工资、奖金和所得税的函数;一个计算实际发放数的函数;一个输出教师信息的函数,两个Add()
9、成员函数,一个用于将其他教师的工资加到该教师(如该教师替其他教师代课),一个函数用于将一个数值加到该教师(如提高该教师的工资)。编写主函数,调用第一个构造函数声明一个教师对象并输入其工资,再调用第二个构造函数声明一个教师对象。最后分别计算两个教师的实际发放数,在屏幕输出,并编写代码验证两个Add()函数的功能。4 试编写一个MDI应用程序,在客户区显示文本串“欢迎使用Visual C+面向对象编程教程”,要求从左到右滚动显示这行字。三、选做题:请在以下4题中任选2题,用Visual C+按要求编写程序。(每题10分,共20分)1:编写一个名为Hello的类SDK应用程序,当单击鼠标时通过调用A
10、PI函数,以弹出一个提示信息对话框。为程序添加键盘输入消息WM_CHAR的处理代码,判断当前按下的键是否是X或x,并给出相应的提示。2:编写一个自定义消息应用程序,设置一个定时器,在WM_TIMER的消息处理函数中发送一个用户自定义消息,在对应的自定义消息处理函数中以动画的形式旋转显示一行文本。程序启动后当用户选择“旋转”菜单命令时启动定时器以发送用户自定义消息,在自定义消息处理函数中旋转显示一行文本。当用户选择“停止”菜单命令时停止旋转显示文本。3:编写一个SDI应用程序,执行某菜单命令时打开一个对话框,通过该对话框输入要显示的字符串和坐标值,并单击OK在视图区指定位置显示输入的字符串。4:
11、编写一个SDI应用程序,为程序添加一个工具栏按钮,当单击按钮时弹出一个对话框。对话框中有3个标题为红、绿、蓝的复选框,当用户单击“确定”按钮,程序根据选择的组合颜色在用户区显示一行文本。 一、请利用Visual C+编程完成以下题目。(每题8分,共32分)1 把华氏温度转换为摄氏温度的计算公式是:c=(59)(F32)。编写一个程序,用户输入一个华氏温度,程序输出相应的摄氏温度。要求将32和5/9用户const型变量表示。2 首先编写一个选择排序函数,然后在主函数中调用排序函数对10个整数从小到大进行排序。提示:采用数组名作为函数参数。选择排序:每一趟从待排序的序列中选出一个最小的数据。3 设
12、计一个应用程序,当双击鼠标后弹出一个信息框,显示双击鼠标的次数。4 假设已利用MFC AppWizard应用程序向导建立了一个名为Mysdi的单文档应用程序,在应用程序中添加标题为“输入半径”的对话框资源和对应的对话框类,在对话框资源中添加内容为“请输入半径”的静态文本框控件和用于接收输入的编辑框控件,并添加与控件关联的成员变量。通过“编辑”菜单中的“输入半径(I)”打开标题为“输入半径对话框”,并根据输入的半径画一个圆。要求以非模态对话框形式实现绘图功能。二、请用Visual C+按要求编写下列程序。(每题12分,共48分)1 建立一个名为CStudent的类,该类有以下几个私有成员变量:学
13、生姓名、学号、性别和年龄。还有以下两个成员函数:一个用于初始化学生姓名、学号、性别和年龄的构造函数,一个用于输出学生信息的函数。编写一个主函数,声明一个学生对象,然后调用成员函数在屏幕输出学生信息。2 一个名为CPerson的类有以下属性:姓名、身份证号、性别和年龄,请用C+语言定义这个类,并为上述属性定义相应的方法。然后从CPerson类中派生出类CEmployee(雇员),派生类CEmployee增加了两个新的数据成员,分别用于表示部门和薪水。要求派生类CEmployee的构造函数显式调用基类CPerson的构造函数,可根据需要为派生类增加新的成员函数。3 建立一个名为CTeacher的类
14、,该类有以下成员变量:教师姓名、ID号、基本工资、奖金、所得税和实际发放数。还有以下成员函数:两个构造函数,一个用于只初始化教师姓名和ID号,一个用于初始化教师姓名、ID号、基本工资、奖金和所得税;一个输入基本工资、奖金和所得税的函数;一个计算实际发放数的函数;一个输出教师信息的函数。编写主函数,调用第一个构造函数声明一个教师对象并输入其工资,再调用第二个构造函数声明一个教师对象。最后分别计算两个教师的实际发放数,并在屏幕输出。4 试编写一个MDI应用程序,在客户区显示文本串“欢迎使用Visual C+面向对象编程教程”,要求从左到右滚动显示这行字。三、选做题:请在以下4题中任选2题,用Vis
15、ual C+按要求编写程序。(每题10分,共20分)1: 编写一个SDI应用程序,在“查看”主菜单中添加“等待光标”菜单项,执行“等待光标”菜单命令后首先将光标改为沙漏形,然后进行2秒钟左右的这种操作,最后将光标回复原状。2:编写一个名为Hello的类SDK应用程序,当单击鼠标时通过调用API函数,以弹出一个提示信息对话框。为程序添加键盘输入消息WM_CHAR的处理代码,判断当前按下的键是否是X或x,并给出相应的提示。3:编写一个SDI应用程序,执行某菜单命令时打开一个对话框,通过该对话框输入要显示的字符串和坐标值,并单击OK在视图区指定位置显示输入的字符串。4:编写一个应用程序,在客户区利用
16、函数DrawText()显示3行文本。 一、请利用Visual C+编程完成以下题目。(每题8分,共32分)1 编程求两个复数的和。2 首先编写以下函数声明的函数:void swap(float * px, float *py),该函数用于交换两个实型变量的值,然后编写一个主函数验证函数swap() 功能。3 编写一个对话框应用程序,在对话框中显示“Hello MFC Dialog!”,并画出一个椭圆。4 编写一个基于对话框的程序StatText,单击“统计文本行”打开一个公共文件对话框,并统计在文件对话框中所选择文本文件的行数。二、请用Visual C+按要求编写下列程序。(每题12分,共4
17、8分)1 用函数重载形式编写函数square():求一个int型或double型参数的平方。2 建立一个CPoint类,该类有两个私有成员变量x,y,表示点的坐标。有一个构造函数用于设置坐标,还有两个公有的成员函数:分别用于获取x和y 的坐标。由CPoint派生出CCircle类,派生类CCircle增加一个私有成员变量用于表示半径,并用派生类的构造函数设置半径,同时增加三个成员函数:一个用于获取半径,另两个分别用于获取圆外接正方形左上角的x坐标和y坐标。3 建立一个名为CStudent的类,该类有以下几个私有成员变量:学生姓名、学号、性别和年龄。还有以下两个成员函数:一个用于初始化学生姓名、
18、学号、性别和年龄的构造函数,一个用于输出学生信息的函数。采用类继承的方法,在派生的新类中增加几个私有成员变量:高等数学、英语、操作系统、数据结构等4门课的分数和总成绩。修改或重新定义以下成员函数:用于初始化学生姓名、学号、性别、年龄和4门课分数的构造函数,输入4门课分数的函数,计算学生总成绩的函数,输出学生信息的函数。编写一个主函数,调用继承的构造函数声明一个学生对象并输入其4门课的分数,再调用新增加的构造函数声明另一个学生对象。最后分别计算两个学生的总分,并在屏幕输出两个学生的所有信息。4 试编写一个MDI应用程序,在客户区显示文本串“欢迎使用Visual C+面向对象编程教程”,要求从左到
19、右滚动显示这行字。三、选做题:请在以下4题中任选2题,用Visual C+按要求编写程序。(每题10分,共20分)1:编写一个自定义消息应用程序,设置一个定时器,在WM_TIMER的消息处理函数中发送一个用户自定义消息,在对应的自定义消息处理函数中以动画的形式旋转显示一行文本。程序启动后当用户选择“旋转”菜单命令时启动定时器以发送用户自定义消息,在自定义消息处理函数中旋转显示一行文本。当用户选择“停止”菜单命令时停止旋转显示文本。2:编写一个SDI应用程序,在“查看”主菜单中添加“等待光标”菜单项,执行“等待光标”菜单命令后首先将光标改为沙漏形,然后进行2秒钟左右的这种操作,最后将光标回复原状
20、。3:编写一个SDI应用程序,为程序添加一个工具栏按钮,当单击按钮时弹出一个对话框。对话框中有3个标题为红、绿、蓝的复选框,当用户单击“确定”按钮,程序根据选择的组合颜色在用户区显示一行文本。4:编写一个SDI应用程序,执行某菜单命令时打开一个对话框,通过该对话框输入要显示的字符串和坐标值,并单击OK在视图区指定位置显示输入的字符串。 一、请利用Visual C+编程完成以下题目。(每题8分,共32分)1 分别使用for语句、while语句、do-while 语句编程求50以内的自然数之和。2 输入n 个整数,利用冒泡排序法将它们从小到大排序,并在屏幕上输出。3 一个名为CPerson的类有以
21、下属性:姓名、身份证号、性别和年龄,请用C+语言定义这个类,并为上述属性定义相应的方法。4 编写一个SDI应用程序Password,程序启动后首先弹出一个用户身份确认对话框,当用户键入正确口令后才能进入程序的主界面。二、请用Visual C+按要求编写下列程序。(每题12分,共48分)1 编写一个函数模板:求三个数中的最大数。2 设计一个类Time(时间),该类用于表示时间值(时、分、秒)。要求能设置时间和输出时间。再设计一个日期类Date,该类用于表示日期值(年、月、日)。要求除了能够通过相应的成员函数设置和获取日期值外,还能够实现将日期加一天的操作。利用建立的日期类和时间类多重派生出日期时
22、间类DateTime,并实现日期和时间的设置和输出。3 建立一个名为CStudent的类,该类有以下几个私有成员变量:学生姓名、学号、性别、年龄和高等数学、英语、操作系统、数据结构等4门课的分数和总成绩。还有以下成员函数:用于初始化学生姓名、学号、性别和年龄的构造函数,用于初始化学生姓名、学号、性别、年龄和4门课分数的构造函数,输入4门课分数的函数,计算学生总成绩的函数,输出学生信息的函数。编写一个主函数,调用第一个构造函数声明一个学生对象并输入其4门课的分数,再调用新增加的构造函数声明另一个学生对象。最后分别计算两个学生的总分,并在屏幕输出两个学生的所有信息。4 试编写一个MDI应用程序,在
23、客户区显示文本串“欢迎使用Visual C+面向对象编程教程”,要求从左到右滚动显示这行字。三、选做题:请在以下4题中任选2题,用Visual C+按要求编写程序。(每题10分,共20分)1:编写一个名为Hello的类SDK应用程序,当单击鼠标时通过调用API函数,以弹出一个提示信息对话框。为程序添加键盘输入消息WM_CHAR的处理代码,判断当前按下的键是否是X或x,并给出相应的提示。2:编写一个名为Hello的类SDK应用程序,在HELP主菜单中添加菜单项Message,当用户执行菜单项命令Message后弹出信息对话框,显示该菜单项的执行次数,提示:使用函数 _itoa()。3:编写一个S
24、DI应用程序,为程序添加一个工具栏按钮,当单击按钮时弹出一个对话框。对话框中有3个标题为红、绿、蓝的复选框,当用户单击“确定”按钮,程序根据选择的组合颜色在用户区显示一行文本。4:编写一个SDI应用程序,按照以下要求编程:(1)执行“编辑|输入数据(I)”菜单命令打开标题为“输入数据”的对话框,通过该对话框输入X和Y坐标值,要求输入值在100400的范围内;(2)在视图类中定义两个成员变量,单击对话框的“确定”按钮时接收输入数据,并赋值给视图对象的两个成员变量,调用Invalidate()函数刷新窗口;(3)在视图类OnDraw()函数中添加代码,画出一条从当前位置到输入坐标的直线。一、请利用
25、Visual C+编程完成以下题目。(每题8分,共32分)1 把华氏温度转换为摄氏温度的计算公式是:c=(59)(F32)。编写一个程序,用户输入一个华氏温度,程序输出相应的摄氏温度。要求将32和5/9用户const型变量表示。2 函数的参数传递方式有“单向值传递”、“按地址传递”和“引用传递”三种方式, 请采用内联函数的方法实现实参和形参的按地址传递。3 一个名为CPerson的类有以下属性:姓名、身份证号、性别和年龄,请用C+语言定义这个类,并为上述属性定义相应的方法。4 假设已利用MFC AppWizard应用程序向导建立了一个名为Mysdi的单文档应用程序,在应用程序中添加标题为“输入
26、半径”的对话框资源和对应的对话框类,在对话框资源中添加内容为“请输入半径”的静态文本框控件和用于接收输入的编辑框控件。通过“编辑”菜单中的“输入半径(I)”打开标题为“输入半径对话框”,并根据输入的半径画一个圆。要求只向对话框添加控件,不能添加与控件有关联的成员变量。二、请用Visual C+按要求编写下列程序。(每题12分,共48分)1 编写一个冒泡排序的函数模板,并利用它分别对int型和字符数据进行排序。2 设类X分别派生出类Y和类Z,类Y和类Z又共同派生出类W,请用虚基类方式定义这些类。要求为类简单添加一些成员,并编写main()函数进行验证。3 首先定义类CPoint类,该类有两个保护
27、成员变量x,y,表示点的坐标。有一个构造函数用于设置坐标并输出点坐标,一个析构函数,用于输出点坐标。由CPoint派生出CCircle类,派生类CCircle增加一个保护成员变量用于表示半径;并用派生类的构造函数设置半径和显示点坐标以及半径;析构函数用于显示点坐标以及半径。再由CCircle类派生出CCylinder类,派生类CCylinder增加一个保护成员变量用于表示高度;构造函数设置高度,并显示高度、半径和点坐标;析构函数显示高度、半径和点坐标。要求三个类的析构函数采用虚析构函数来实现,并编写代码验证所完成的功能。4 建立一个名为CTeacher的类,该类有以下成员变量:教师姓名、ID号
28、、基本工资、奖金、所得税和实际发放数。还有以下成员函数:两个构造函数,一个用于只初始化教师姓名和ID号,一个用于初始化教师姓名、ID号、基本工资、奖金和所得税;一个输入基本工资、奖金和所得税的函数;一个计算实际发放数的函数;一个输出教师信息的函数,两个重载运算符“”,一个用于将其他教师的工资加到该教师(如该教师替其他教师代课),一个函数用于将一个数值加到该教师(如提高该教师的工资)。编写主函数,调用第一个构造函数声明一个教师对象并输入其工资,再调用第二个构造函数声明一个教师对象。最后分别计算两个教师的实际发放数,在屏幕输出,并编写代码验证两个重载运算符“”的功能。三、选做题:请在以下4题中任选
29、2题,用Visual C+按要求编写程序。(每题10分,共20分)1:编写一个名为Hello的类SDK应用程序,在HELP主菜单中添加菜单项Message,当用户执行菜单项命令Message后弹出信息对话框,显示该菜单项的执行次数,提示:使用函数 _itoa()。2:编写一个自定义消息应用程序,设置一个定时器,在WM_TIMER的消息处理函数中发送一个用户自定义消息,在对应的自定义消息处理函数中以动画的形式旋转显示一行文本。程序启动后当用户选择“旋转”菜单命令时启动定时器以发送用户自定义消息,在自定义消息处理函数中旋转显示一行文本。当用户选择“停止”菜单命令时停止旋转显示文本。3:编写一个SD
30、I应用程序,按照以下要求编程:(1)执行“编辑|输入数据(I)”菜单命令打开标题为“输入数据”的对话框,通过该对话框输入X和Y坐标值,要求输入值在100400的范围内;(2)在视图类中定义两个成员变量,单击对话框的“确定”按钮时接收输入数据,并赋值给视图对象的两个成员变量,调用Invalidate()函数刷新窗口;(3)在视图类OnDraw()函数中添加代码,画出一条从当前位置到输入坐标的直线。4:编写一个SDI应用程序,执行某菜单命令时打开一个对话框,通过该对话框输入要显示的字符串和坐标值,并单击OK在视图区指定位置显示输入的字符串。一、请利用Visual C+编程完成以下题目。(每题8分,
31、共32分)1 编程求两个复数的和。2 一个程序由两个C+源文件组成,在一个源文件中定义主函数main() 并声明一个外部整型变量n,在另一个源文件中定义一个不带参数的函数factorial(void),该函数用于计算变量n的阶乘。编程在主函数main() 中输入一个整数并求它的阶乘。3 设计一个应用程序,当双击鼠标后弹出一个信息框,显示双击鼠标的次数。4 编写一个应用程序MyCursor,程序运行后,当光标移动到客户区时变为自定义形状。执行菜单命令“查看|系统光标”打开一个对话框,当光标移动到一个对话框时,光标变为Windows预定义的4个方向箭头光标。二、请用Visual C+按要求编写下列
32、程序。(每题12分,共48分)1编写一个名为MyLine的程序,与Windows“画图”工具一样,在利用鼠标画出一条直线时,按住鼠标左键并拖拽,先画出随鼠标移动的直线,当释放左键后才真正画出一条所需要的直线。要求实现窗口重绘功能。2 一个名为CPerson的类有以下属性:姓名、身份证号、性别和年龄,请用C+语言定义这个类,并为上述属性定义相应的方法。然后从CPerson类中派生出类CEmployee(雇员),派生类CEmployee增加了两个新的数据成员,分别用于表示部门和薪水。要求派生类CEmployee的构造函数显式调用基类CPerson的构造函数,可根据需要为派生类增加新的成员函数。3
33、首先定义类CPoint类,该类有两个保护成员变量x,y,表示点的坐标。有一个构造函数用于设置坐标并输出点坐标,一个析构函数,用于输出点坐标。由CPoint派生出CCircle类,派生类CCircle增加一个保护成员变量用于表示半径;并用派生类的构造函数设置半径和显示点坐标以及半径;析构函数用于显示点坐标以及半径。再由CCircle类派生出CCylinder类,派生类CCylinder增加一个保护成员变量用于表示高度;构造函数设置高度,并显示高度、半径和点坐标;析构函数显示高度、半径和点坐标。为类CPoint、类CCircle和类Cctlinder添加计算面积的成员函数Area(),要求函数Ar
34、ea()采用虚函数的形式,并通过基类指针调用虚函数Area()。4 建立一个名为CTeacher的类,该类有以下成员变量:教师姓名、ID号、基本工资、奖金、所得税和实际发放数。还有以下成员函数:两个构造函数,一个用于只初始化教师姓名和ID号,一个用于初始化教师姓名、ID号、基本工资、奖金和所得税;一个输入基本工资、奖金和所得税的函数;一个计算实际发放数的函数;一个输出教师信息的函数,两个重载运算符“”,一个用于将其他教师的工资加到该教师(如该教师替其他教师代课),一个函数用于将一个数值加到该教师(如提高该教师的工资)。编写主函数,调用第一个构造函数声明一个教师对象并输入其工资,再调用第二个构造
35、函数声明一个教师对象。最后分别计算两个教师的实际发放数,在屏幕输出,并编写代码验证两个重载运算符“”的功能。三、选做题:请在以下4题中任选2题,用Visual C+按要求编写程序。(每题10分,共20分)1:编写一个名为Hello的类SDK应用程序,当单击鼠标时通过调用API函数,以弹出一个提示信息对话框。为程序添加键盘输入消息WM_CHAR的处理代码,判断当前按下的键是否是X或x,并给出相应的提示。2:编写一个自定义消息应用程序,设置一个定时器,在WM_TIMER的消息处理函数中发送一个用户自定义消息,在对应的自定义消息处理函数中以动画的形式旋转显示一行文本。程序启动后当用户选择“旋转”菜单
36、命令时启动定时器以发送用户自定义消息,在自定义消息处理函数中旋转显示一行文本。当用户选择“停止”菜单命令时停止旋转显示文本。3:编写一个SDI应用程序,按照以下要求编程:(1)执行“编辑|输入数据(I)”菜单命令打开标题为“输入数据”的对话框,通过该对话框输入X和Y坐标值,要求输入值在100400的范围内;(2)在视图类中定义两个成员变量,单击对话框的“确定”按钮时接收输入数据,并赋值给视图对象的两个成员变量,调用Invalidate()函数刷新窗口;(3)在视图类OnDraw()函数中添加代码,画出一条从当前位置到输入坐标的直线。4:编写一个应用程序,在客户区利用函数DrawText()显示
37、3行文本。一、请利用Visual C+编程完成以下题目。(每题8分,共32分)1 编写一个程序,输入三角形的三个边的边长,求三角形的面积。2 首先编写一个选择排序函数,然后在主函数中调用排序函数对10个整数从小到大进行排序。提示:采用数组名作为函数参数。选择排序:每一趟从待排序的序列中选出一个最小的数据。3 编写一个对话框应用程序,在对话框中显示“Hello MFC Dialog!”,并画出一个椭圆。4 编写一个SDI应用程序,绘制不同风格、宽度何颜色的直线。 二、请用Visual C+按要求编写下列程序。(每题12分,共48分)1 用函数重载形式编写函数square():求一个int型或do
38、uble型参数的平方。2 编写一个函数模板:求三个数中的最大数。3 建立一个名为CTeacher的类,该类有以下成员变量:教师姓名、ID号、基本工资、奖金、所得税和实际发放数。还有以下成员函数:两个构造函数,一个用于只初始化教师姓名和ID号,一个用于初始化教师姓名、ID号、基本工资、奖金和所得税;一个输入基本工资、奖金和所得税的函数;一个计算实际发放数的函数;一个输出教师信息的函数。编写主函数,调用第一个构造函数声明一个教师对象并输入其工资,再调用第二个构造函数声明一个教师对象。最后分别计算两个教师的实际发放数,并在屏幕输出。4 试编写一个MDI应用程序,在客户区显示文本串“欢迎使用Visua
39、l C+面向对象编程教程”,要求从左到右滚动显示这行字。三、选做题:请在以下4题中任选2题,用Visual C+按要求编写程序。(每题10分,共20分)1:编写一个名为Hello的类SDK应用程序,当单击鼠标时通过调用API函数,以弹出一个提示信息对话框。为程序添加键盘输入消息WM_CHAR的处理代码,判断当前按下的键是否是X或x,并给出相应的提示。2: 编写一个SDI应用程序,在“查看”主菜单中添加“等待光标”菜单项,执行“等待光标”菜单命令后首先将光标改为沙漏形,然后进行2秒钟左右的这种操作,最后将光标回复原状。3:编写一个SDI应用程序,为程序添加一个工具栏按钮,当单击按钮时弹出一个对话
40、框。对话框中有3个标题为红、绿、蓝的复选框,当用户单击“确定”按钮,程序根据选择的组合颜色在用户区显示一行文本。4:编写一个SDI应用程序,按照以下要求编程:(1)执行“编辑|输入数据(I)”菜单命令打开标题为“输入数据”的对话框,通过该对话框输入X和Y坐标值,要求输入值在100400的范围内;(2)在视图类中定义两个成员变量,单击对话框的“确定”按钮时接收输入数据,并赋值给视图对象的两个成员变量,调用Invalidate()函数刷新窗口;(3)在视图类OnDraw()函数中添加代码,画出一条从当前位置到输入坐标的直线。 一、请利用Visual C+编程完成以下题目。(每题8分,共32分)1
41、把华氏温度转换为摄氏温度的计算公式是:c=(59)(F32)。编写一个程序,用户输入一个华氏温度,程序输出相应的摄氏温度。要求将32和5/9用户const型变量表示。2 首先编写以下函数声明的函数:void swap(float * px, float *py),该函数用于交换两个实型变量的值,然后编写一个主函数验证函数swap() 功能。3 一个名为CPerson的类有以下属性:姓名、身份证号、性别和年龄,请用C+语言定义这个类,并为上述属性定义相应的方法。4 编写一个绘图程序,利用CDC类的成员函数绘制像素点、五条折线、贝济埃曲线、圆角矩形、椭圆弧、扇形、弦形、五边形等常见几何图形中的五种
42、图形。二、请用Visual C+按要求编写下列程序。(每题12分,共48分)1 设计一个日期类CDate,该类用于表示日期值(年、月、日)。要求除了能够通过相应的成员函数设置和获取日期值外,还能够实现将日期加一天的操作。2编写一个名为MyLine的程序,与Windows“画图”工具一样,在利用鼠标画出一条直线时,按住鼠标左键并拖拽,先画出随鼠标移动的直线,当释放左键后才真正画出一条所需要的直线。要求实现窗口重绘功能并能够将绘制好的图像保存在磁盘上。3 设类X分别派生出类Y和类Z,类Y和类Z又共同派生出类W,请用虚基类方式定义这些类。要求为类简单添加一些成员,并编写main()函数进行验证。4
43、建立一个名为CTeacher的类,该类有以下成员变量:教师姓名、ID号、基本工资、奖金、所得税和实际发放数。还有以下成员函数:两个构造函数,一个用于只初始化教师姓名和ID号,一个用于初始化教师姓名、ID号、基本工资、奖金和所得税;一个输入基本工资、奖金和所得税的函数;一个计算实际发放数的函数;一个输出教师信息的函数,两个重载运算符“”,一个用于将其他教师的工资加到该教师(如该教师替其他教师代课),一个函数用于将一个数值加到该教师(如提高该教师的工资)。编写主函数,调用第一个构造函数声明一个教师对象并输入其工资,再调用第二个构造函数声明一个教师对象。最后分别计算两个教师的实际发放数,在屏幕输出,
44、并编写代码验证两个重载运算符“”的功能。三、选做题:请在以下4题中任选2题,用Visual C+按要求编写程序。(每题10分,共20分)1:编写一个名为Hello的类SDK应用程序,在HELP主菜单中添加菜单项Message,当用户执行菜单项命令Message后弹出信息对话框,显示该菜单项的执行次数,提示:使用函数 _itoa()。2:编写一个名为Hello的类SDK应用程序,当单击鼠标时通过调用API函数,以弹出一个提示信息对话框。为程序添加键盘输入消息WM_CHAR的处理代码,判断当前按下的键是否是X或x,并给出相应的提示。3:编写一个SDI应用程序,按照以下要求编程:(1)执行“编辑|输
45、入数据(I)”菜单命令打开标题为“输入数据”的对话框,通过该对话框输入X和Y坐标值,要求输入值在100400的范围内;(2)在视图类中定义两个成员变量,单击对话框的“确定”按钮时接收输入数据,并赋值给视图对象的两个成员变量,调用Invalidate()函数刷新窗口;(3)在视图类OnDraw()函数中添加代码,画出一条从当前位置到输入坐标的直线。4:编写一个SDI应用程序,执行某菜单命令时打开一个对话框,通过该对话框输入要显示的字符串和坐标值,并单击OK在视图区指定位置显示输入的字符串。一、请利用Visual C+编程完成以下题目。(每题8分,共32分)1 分别使用for语句、while语句、
46、do-while 语句编程求50以内的自然数之和。2 函数的参数传递方式有“单向值传递”、“按地址传递”和“引用传递”三种方式, 请采用内联函数的方法实现实参和形参的按地址传递。3 编写一个SDI应用程序SDIDraw ,为应用程序添加主菜单“我的菜单”,并添加“显示文本”和“画图”两个菜单项,编写上述两个菜单项的消息处理函数,分别在客户区显示一行文本或画一个圆。 要求:显示文本后“显示文本”菜单项处于不可用状态;当画一个圆后“画圆”菜单项处于不可用状态。其他情况下处于可用状态。4 编写一个应用程序MyBMP,程序运行后在客户区显示一幅位图。二、请用Visual C+按要求编写下列程序。(每题
47、12分,共48分)1 采用动态内存分配方法设计一个学生成绩处理程序,要求输入任意数量学生的学号、姓名和4门课的成绩,并按平均成绩高低输出每个学生的姓名和成绩。2 建立一个名为CStudent的类,该类有以下几个私有成员变量:学生姓名、学号、性别和年龄。有以下两个成员函数:一个用于初始化学生姓名、学号、性别和年龄的构造函数,一个用于输出学生信息的函数。此外还有一个静态成员变量,用于表示已创建对象的数量;有两个静态成员函数,一个用于输出已创建对象的数量,一个用于输出一个学生的姓名和学号。编写一个主函数,声明一个学生对象,然后调用成员函数在屏幕输出学生信息。3 设计一个日期类CDate,该类用于表示
48、日期值(年、月、日)。要求除了能够通过相应的成员函数设置和获取日期值外,还能够用重载运算符“+”的方法实现将日期加一天的操作。4 建立一个名为CTeacher的类,该类有以下成员变量:教师姓名、ID号、基本工资、奖金、所得税和实际发放数。还有以下成员函数:两个构造函数,一个用于只初始化教师姓名和ID号,一个用于初始化教师姓名、ID号、基本工资、奖金和所得税;一个输入基本工资、奖金和所得税的函数;一个计算实际发放数的函数;一个输出教师信息的函数,两个重载运算符“”,一个用于将其他教师的工资加到该教师(如该教师替其他教师代课),一个函数用于将一个数值加到该教师(如提高该教师的工资)。编写主函数,调
49、用第一个构造函数声明一个教师对象并输入其工资,再调用第二个构造函数声明一个教师对象。最后分别计算两个教师的实际发放数,在屏幕输出,并编写代码验证两个重载运算符“”的功能。三、选做题:请在以下4题中任选2题,用Visual C+按要求编写程序。(每题10分,共20分)1:编写一个名为Hello的类SDK应用程序,在HELP主菜单中添加菜单项Message,当用户执行菜单项命令Message后弹出信息对话框,显示该菜单项的执行次数,提示:使用函数 _itoa()。2:编写一个自定义消息应用程序,设置一个定时器,在WM_TIMER的消息处理函数中发送一个用户自定义消息,在对应的自定义消息处理函数中以
50、动画的形式旋转显示一行文本。程序启动后当用户选择“旋转”菜单命令时启动定时器以发送用户自定义消息,在自定义消息处理函数中旋转显示一行文本。当用户选择“停止”菜单命令时停止旋转显示文本。3:编写一个SDI应用程序,按照以下要求编程:(1)执行“编辑|输入数据(I)”菜单命令打开标题为“输入数据”的对话框,通过该对话框输入X和Y坐标值,要求输入值在100400的范围内;(2)在视图类中定义两个成员变量,单击对话框的“确定”按钮时接收输入数据,并赋值给视图对象的两个成员变量,调用Invalidate()函数刷新窗口;(3)在视图类OnDraw()函数中添加代码,画出一条从当前位置到输入坐标的直线。4
51、:编写一个SDI应用程序,为程序添加一个工具栏按钮,当单击按钮时弹出一个对话框。对话框中有3个标题为红、绿、蓝的复选框,当用户单击“确定”按钮,程序根据选择的组合颜色在用户区显示一行文本。 一、请利用Visual C+编程完成以下题目。(每题8分,共32分)1 编写一个程序,输入三角形的三个边的边长,求三角形的面积。2 函数的参数传递方式有“单向值传递”、“按地址传递”和“引用传递”三种方式, 请采用内联函数的方法实现实参和形参的按地址传递。3 编写一个SDI应用程序SDIDraw ,为应用程序添加主菜单“我的菜单”,并添加“显示文本”和“画图”两个菜单项,编写上述两个菜单项的消息处理函数,分
52、别在客户区显示一行文本或画一个圆。4 编写一个对话框应用程序CorButn,对话框中有两个用于选择颜色模式的单选按钮和3个用于选择颜色的复选框,只有在彩色模式下才能选择3中不同的颜色的组合。对话框运行效果如右图,当用户单击“应用”按钮,对话框右边的按键按钮根据选择的颜色实现按钮的自画。二、请用Visual C+按要求编写下列程序。(每题12分,共48分)1 设计一个日期类CDate,该类用于表示日期值(年、月、日)。要求除了能够通过相应的成员函数设置和获取日期值外,还能够实现将日期加一天的操作。2 建立一个名为CStudent的类,该类有以下几个私有成员变量:学生姓名、学号、性别和年龄。有一个
53、成员函数:用于初始化学生姓名、学号、性别和年龄的构造函数。还有一个用于输出学生信息的友元函数。编写一个主函数,声明一个学生对象,然后调用友元函数在屏幕输出学生信息。3 建立一个名为CTeacher的类,该类有以下成员变量:教师姓名、ID号、基本工资、奖金、所得税和实际发放数。还有以下成员函数:两个构造函数,一个用于只初始化教师姓名和ID号,一个用于初始化教师姓名、ID号、基本工资、奖金和所得税;一个输入基本工资、奖金和所得税的函数;一个计算实际发放数的函数;一个输出教师信息的函数,两个Add()成员函数,一个用于将其他教师的工资加到该教师(如该教师替其他教师代课),一个函数用于将一个数值加到该
54、教师(如提高该教师的工资)。编写主函数,调用第一个构造函数声明一个教师对象并输入其工资,再调用第二个构造函数声明一个教师对象。最后分别计算两个教师的实际发放数,在屏幕输出,并编写代码验证两个Add()函数的功能。4 试编写一个MDI应用程序,在客户区显示文本串“欢迎使用Visual C+面向对象编程教程”,要求从左到右滚动显示这行字。三、选做题:请在以下4题中任选2题,用Visual C+按要求编写程序。(每题10分,共20分)1:编写一个名为Hello的类SDK应用程序,当单击鼠标时通过调用API函数,以弹出一个提示信息对话框。为程序添加键盘输入消息WM_CHAR的处理代码,判断当前按下的键
55、是否是X或x,并给出相应的提示。2:编写一个自定义消息应用程序,设置一个定时器,在WM_TIMER的消息处理函数中发送一个用户自定义消息,在对应的自定义消息处理函数中以动画的形式旋转显示一行文本。程序启动后当用户选择“旋转”菜单命令时启动定时器以发送用户自定义消息,在自定义消息处理函数中旋转显示一行文本。当用户选择“停止”菜单命令时停止旋转显示文本。3:编写一个SDI应用程序,执行某菜单命令时打开一个对话框,通过该对话框输入要显示的字符串和坐标值,并单击OK在视图区指定位置显示输入的字符串。4:编写一个SDI应用程序,为程序添加一个工具栏按钮,当单击按钮时弹出一个对话框。对话框中有3个标题为红
56、、绿、蓝的复选框,当用户单击“确定”按钮,程序根据选择的组合颜色在用户区显示一行文本。一、请利用Visual C+编程完成以下题目。(每题8分,共32分)1 从键盘输入一个大写字母,然后改用小写字母在屏幕上输出。2 一个程序由两个C+源文件组成,在一个源文件中定义主函数main() 并声明一个外部整型变量n,在另一个源文件中定义一个不带参数的函数factorial(void),该函数用于计算变量n的阶乘。编程在主函数main() 中输入一个整数并求它的阶乘。3 编写一个SDI应用程序SDIDraw ,为应用程序添加主菜单“我的菜单”,并添加“显示文本”和“画图”两个菜单项,编写上述两个菜单项的
57、消息处理函数,分别在客户区显示一行文本或画一个圆。 要求:显示文本后“显示文本”菜单项处于不可用状态;当画一个圆后“画圆”菜单项处于不可用状态。其他情况下处于可用状态。4 假设已利用MFC AppWizard应用程序向导建立了一个名为Mysdi的单文档应用程序,在应用程序中添加标题为“输入半径”的对话框资源和对应的对话框类,在对话框资源中添加内容为“请输入半径”的静态文本框控件和用于接收输入的编辑框控件,并添加与控件关联的成员变量。通过“编辑”菜单中的“输入半径(I)”打开标题为“输入半径对话框”,并根据输入的半径画一个圆。 二、请用Visual C+按要求编写下列程序。(每题12分,共48分)1 建立一个名为CStudent的类,该类有以下几个私有成员变量:学生姓名、学号、性别和年龄。还有以下两个成员函数:一个用于初始化学生姓名、学号、性别和年龄的构造函数,一个用于输出学生信息的函数。编写一个主函数,声明一个学生对象,然后调用成员函数在屏幕输出学生信息。2 一个名为CPerson的类有以下属性:姓名、身份证号、性别和年龄,请用C+语言定义这个类,并为上述属性定义相应的方法。然后从CPerson类中派生出类CEmployee(雇员),派生类CEmployee增加了两个新的数据成员,分别用于
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 洛阳市栾川县2026-2027学年数学六年级第一学期期末考试试题含解析
- 某铝厂工艺流程细则
- 市政基础设施项目安全隐患排查治理报告
- 工业园区分布式微电网建设项目可行性研究报告
- 医药中间体项目竣工验收报告
- 喷气织机引纬气流压力及耗气量检测报告
- 喂食器易用检验报告
- 分布式能源站控制室设计方案
- 智能高温烘箱安全指南
- 劳动教育实施评价手册
- 2026年中小学教师(语文)副高级职称评审答辩题库及答案
- 学校管理与教师专业发展手册
- 初中音乐七年级上册《美丽的草原我的家》深度鉴赏与跨文化理解教案
- 2026秋新人教版英语五年级上册单元一Unit 1 Different friends测试卷-提高卷附答案(文档中已插入听力音频)
- 2026广西南宁市青秀区伶俐镇人民政府招聘2人(劳务派遣)笔试参考题库及答案详解
- 2026年餐饮服务食品安全管理员试题及答案
- GB/T 47950-2026资产管理数据资产登记指南
- 2026版《医师外出会诊管理暂行规定》课件
- 影像医学技术操作规程大全
- 2026年河南高考地理考试试卷及答案
- 中国老年抗中性粒细胞胞浆抗体相关肾小球肾炎治疗指南总结2026
评论
0/150
提交评论