《面向对象程序设计》课程界面设计练习题目
面向对象程序设计练习题
面向对象程序设计练习题面向对象程序设计练习题面向对象程序设计是一种常用的软件开发方法,它将现实世界中的事物抽象成对象,通过定义对象的属性和方法来描述其行为。
这种编程方法可以提高代码的可重用性、可维护性和可扩展性。
下面将介绍几个面向对象程序设计的练习题,帮助读者更好地理解和应用这一编程方法。
1. 汽车租赁系统设计一个汽车租赁系统,包括汽车类、客户类和租赁记录类。
汽车类包括车牌号、品牌、型号和日租金等属性,客户类包括姓名、联系方式等属性,租赁记录类包括租车日期、租期和总租金等属性。
实现以下功能:- 客户可以查看可租赁的汽车列表;- 客户可以选择汽车租赁,并记录租车日期和租期;- 客户可以查看自己的租赁记录和总租金。
2. 图书管理系统设计一个图书管理系统,包括图书类、读者类和借阅记录类。
图书类包括书名、作者、出版社和价格等属性,读者类包括姓名、学号等属性,借阅记录类包括借书日期、归还日期等属性。
实现以下功能:- 图书管理员可以添加、删除和修改图书信息;- 读者可以查询图书信息,并借阅或归还图书;- 读者可以查看自己的借阅记录和逾期情况。
3. 银行账户管理系统设计一个银行账户管理系统,包括账户类、客户类和交易记录类。
账户类包括账户号码、余额等属性,客户类包括姓名、联系方式等属性,交易记录类包括交易日期、交易类型和交易金额等属性。
实现以下功能:- 客户可以查询账户余额;- 客户可以进行存款和取款操作,并记录交易记录;- 客户可以查看自己的交易记录和账户余额变动情况。
通过以上练习题,读者可以锻炼面向对象程序设计的能力,熟悉类的定义、属性和方法的使用,以及对象之间的交互。
在实现这些功能的过程中,读者需要考虑如何合理组织代码结构,如何处理异常情况,以及如何提高代码的可读性和可维护性。
在实际的软件开发中,面向对象程序设计是一种非常常用的编程方法。
它不仅可以提高代码的质量,还可以提高开发效率。
因此,掌握面向对象程序设计的技巧对于软件开发人员来说是非常重要的。
面向对象程序设计模拟题(C)
面向对象程序设计模拟题一、简答题:1. 什么是对象?什么是对象的事件和方法?试列举几个常用的事件和方法?答:对象是代码和数据的组合,可以作为一个单位来处理。
对象可以使应用程序的一部分,也可以是整个应用程序。
对象事件是对象可以识别的动作,即窗体、控件和其他对象可以识别的动作。
常用的事件有Click事件、Paint事件、Load事件等。
方法是对象要执行的动作,常见的有Clear、AddIRem、RemoveITem等。
2.VB有几种类型的表达式?请举例说明。
答:VB有5中类型的表达式,它们是算术表达式(例2*Pi*r*r)、字符串表达式(例“欢迎您”)、日期型表达式(例#11/22/98)、关系表达式(”abc”>”abcd”)和布尔表达式(2<=4AND6>3)。
二、填空题:1.单选按钮用于建立一组多选一的选项供用户选择,即在这些选项中,用户一次只能选择其中的一个选项选项,并且必须选择其中一个选项。
同时,当一个单选钮被选中时,其他选项自动关闭。
2.列表框是以列表形式显示一系列项目和信息,用户可通过单击其中某一项来选择的自己所需项目或信息。
在Windows中,使用列表框输出数据是保证数据标准化的重要手段,它是一个重要的输出控件。
在工具栏中它是一个标着带有滚动条的列表图案的按钮。
3.MsgBox 函数用来在对话框中显示消息,等待用户单击按钮,并返回一个整数,告诉程序用户单击了哪一个按钮。
4.在VB中有三种形式的数组,静态数组、动态的数组和控件数组。
静态数组就是指数组元素的个数在程序运行时保持不变,动态数组是指数组中的元素个数在程序运行时可以变化的数组,控件数组是使用VB中某些常用控件创建的数组。
使用静态数组、动态数组前必须要先声明,才能在程序中使用。
5.VB提供了图形控件,如Shape控件和Line控件。
它们提供一定的绘图样式,虽比较简单,但是使用非常方便,不需要编写代码,只要设置相应的属性即可。
面向对象程序设计练习题库与答案
面向对象程序设计练习题库与答案一、单选题(共36题,每题1分,共36分)1.下列关于静态内部类的说法,错误的是()A、静态内部类不能直接访问外部类的非静态成员B、静态内部类只能访问外部类的静态成员C、创建静态内部类的对象时,必须要先创建外部类的对象D、静态内部类,就是使用static关键字修饰的成员内部类正确答案:C2.以下选项中,哪个是FileInputStream的父类()A、FileB、FileOutputC、OutputStreamD、InputStream正确答案:D答案解析:FileInputStream是用来读取文件的字节流,属于InputStream类的子类。
3.下面关于FileInputStream和FileOutputStream的说法中,错误的是()A、FileInputStream是InputStream的子类,它是操作文件的字节输入流B、FileOutputStream是OutputStream的子类,它是操作文件的字节输出流C、如果使用FileOutputStream向一个已存在的文件中写入数据,那么写入的数据会被追加到该文件原先的数据后面D、使用FileInputStream读取文件数据时,必须保证要读取的文件存在并且是可读的正确答案:C答案解析:如果使用FileOutputStream向一个已存在的文件中写入数据,如果构造函数FileOutputStream的参数append的值是true,那么写入的数据才会追加到原先数据之后,否则的话,原先的数据会被清空,然后再写入新的数据。
4.下列关于类的说法中,错误的是()A、Java中创建类的关键字是class。
B、类中可以有属性与方法,属性用于描述对象的特征,方法用于描述对象的行为。
C、Java中对象的创建,首先需要定义出一个类。
D、一个类只能创建一个对象。
正确答案:D答案解析:类是对象的模板,对象是类的实例,一个类是可以创建多个对象的。
《面向对象程序设计(Java)》机试题库(含答案)
《面向对象程序设计(Java)》机试题库(含答案)1.编写一个字符界面的Java Application 程序,接受用户从键盘输入的一个正整数,然后统计并输出从1到这个正整数的累加和。
2.编写一个字符界面的Java Application 程序,接受用户输入的10个整数,并输出这10个整数的最大值和最小值。
3.编写一个完整的Java Applet 程序使用复数类Complex验证两个复数1+2i 和3+4i 相加产生一个新的复数4+6i 。
复数类Complex必须满足如下要求:(1)复数类Complex 的属性有:RealPart : int型,代表复数的实数部分ImaginPart : int型,代表复数的虚数部分(2)复数类Complex 的方法有:Complex( ) : 构造函数,将复数的实部和虚部都置0Complex( int r , int i ) : 构造函数,形参r 为实部的初值,i为虚部的初值。
Complex complexAdd(Complex a) : 将当前复数对象与形参复数对象相加,所得的结果仍是一个复数值,返回给此方法的调用者。
String ToString( ) : 把当前复数对象的实部、虚部组合成a+bi 的字符串形式,其中a 和b 分别为实部和虚部的数据。
4.编写一个学生类Student ,要求:(1) 学生类Student 属性有:id : long型,代表学号name : String类对象,代表姓名age : int型,代表年龄sex : boolen型,代表性别(其中:true表示男,false表示女)phone : String类对象,代表联系电话(2) 学生类Student的方法有:Student(long i , String n , int a , boolean s , long p): 有参构造函数,形参表中的参数分别初始化学号、姓名、年龄、性别和联系电话。
《面向对象程序设计》课程知识 复习 学习材料 试题与参考答案
《面向对象程度设计》课程知识复习学习材料试题与参考答案一、单选题1.下列(C)的调用方式是引用调用。
A.形参和实参都是变量B.形参是指针,实参是地址值C.形参是引用,实参是变量D.形参是变量,实参是地址值2.假定CTest为一个类,并且有一无默认值的的有参构造函数和一无参构造函数,则执行“CTest objTest;”语句时将自动调用该类的(B)。
A.有参构造函数B.无参构造函数C.复制构造函数D.赋值构造函数3.假定AA为一个类,a为该类私有的数据成员,GetValue()为该类公有函数成员,它返回a 的值,x为该类的一个对象,则访问x对象中数据成员a的格式为(D)。
A.x.aB.x.a()C.x->GetValue()D.x.GetValue()4.C++编译系统确定调用是具体对象的过程称为关联。
C++有(B)关联。
A.1种B.2种C.3种D.4种5.下面有关重载函数的说法中正确的是(C)。
A.重载函数必须具有不同的返回值类型B.重载函数形参个数必须不同C.重载函数必须有不同的形参列表D.重载函数名可以不同6.如果表达式a==b中的“==”是作为普通函数重载的运算符,若采用运算符函数调用格式,则可表示为(C)。
A.a.operator==(b)B.b.operator==(a)C.operator==(a,b)D.operator==(b,a)7.下列对继承关系的描述中,(D)是正确的。
A.在公有继承中,基类中的公有成员和私有成员在派生类中都是可见的;B.在公有继承中,基类中只有公有成员对派生类的对象是可见的;C.在私有继承中,基类中只有公有成员对派生类是可见的;D.在私有继承中,基类中的保护成员对派生类的对象是可见的;8.定义p并使p指向动态空间中的包含30个整数的数组所使用的定义语句为(A)。
A.int *p=new int[30];B.int *p=new int(30);C.int *p=new [30];D.*p=new int[30];9.在一个类中可以对一个运算符进行(D)重载。
面向对象程序设计模拟试题-1
C、对随机文件可以根据记录号进行读写
D、可用Input函数和Print函数进行随机文件的读写
10.在下列的( )事件中可以获取用户按下的键的ASCII码
A、KeyPressB、KeyUpC、KeyDownD、MouseUp
11.要使得文件列表框file1中只显示文件后缀名为bmp和jpg的图片文件,以下哪个语句是对的:()
4.水平滚动条HScroll1的LargeChange属性值为100,表示(C)为100
A、该滚动条值的最大值
B、拖动滚动框时滚动条值的变化量
C、单击滚动箭头和滚动框之间某位置时的滚动条值的变化量
D、单击滚动箭头时的滚动条值的变化量
5.与Microsoft SQL Server数据库连接,一般应采用中的()连接对象
14.要使窗体运行时,显示在屏幕的中央,应设置窗体的(C)属性
A、WindowState
B、StartPosition
C、CenterScreen
D、CenterParent
15.当一个窗体在可见状态下,由非活动窗体变成活动窗体时,产生的事件是:()
A、Load事件
B、Resize事件
C、Initialize事件
说明:此题中所需的数据库文件Henry Books.mdb在上机考试文件中,请找到此文件,用Access打开,找到Branch表,了解表结构设计。
二、单项选择题(在每小题的四个备选答案中选出一个正确答案,并将其号码填在题后的括号内。每小题2分,共30分)
1.下述的说法中,哪种是的程序设计方法:(D)
4.(共15分)数据库操作(在窗体Form3中完成,界面已设计好)
面向对象程序设计-1-标准答案
面向对象程序设计试卷标准答案及评分标准(1)一、上机题(70 分)1.(共20 分)(1)界面设计部分(1 分),将Form1~Form3 设成MDIFORM 的子窗体(设置Mdichild 属性为true)1 分,其余代码如下2 分Private Sub MDIForm_Load()Me.WindowState = 2End Sub(2)设计菜单1 分(过程略)Private Sub mnuExit_Click()If MsgBox("Are you sure?", vbQuestion + vbokcancel, "上机考试") = vbok Then Unload MeEnd IfEnd Sub ….2 分Private Sub mnuForm1_Click()Form1.ShowEnd SubPrivate Sub mnuForm2_Click()form2.ShowEnd SubPrivate Sub mnuForm3_Click()Form3.ShowEnd Sub ….2 分(3)设计状态栏2 分Private Sub Form_Activate()MDIForm1.StatusBar1.Panels(1).Text = Me.CaptionEnd Sub ….2 分(4)在菜单编辑器中设计菜单1 分Private Sub MDIForm_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single) If Button = 2 ThenPopupMenu mnureportEnd IfEnd Sub ….2 分(5)设计工具栏2 分Private Sub Toolbar1_ButtonClick(ByVal Button As MSComctlLib.Button)Select Case Button.IndexCase 1mnuForm1_ClickCase 2mnuForm2_ClickCase 3mnuForm3_ClickCase 5mnuExit_ClickEnd SelectEnd Sub ….2 分2.(共12 分)(1)2.947676Private Sub Command1_Click()Dim n As IntegerDim E As SingleFor n = 0 To 50E = E + 1 / (2 * n + 1)NexttxtAnswer1.Text = CStr(E)End Sub变量定义正确,For 循环结构正确2 分,功能正确4 分(2)7.54293670171318Private Sub Command2_Click()Dim E As DoubleDim S As DoubleDim n As LongS = 1DoE = E + Sn = n + 1S = 1 / (2 * n + 1)Loop Until S < 0.000001txtAnswer2.Text = CStr(E)End Sub变量定义正确,Do 循环结构正确2 分,功能正确4 分4.(共23 分)Private mvarPName As StringPrivate mvarPrice As CurrencyPrivate mvarNumber As LongPublic Event NumberBelowPoint() ….2 分Public Enum errcodedierror = vbObjectError + 512 + 1End Enum ….1 分Public Sub ShowMe() ….2 分MsgBox "Name:" & mvarPName & "-Price:" & mvarPrice & "-Number:" & mvarNumber End SubPublic Sub Sale(ByVal intAmount As Long) ….3分mvarNumber = mvarNumber - intAmountIf mvarNumber < 20 ThenRaiseEvent NumberBelowPoint ….1分End IfEnd SubPublic Sub Add(ByVal intAmount As Long) ….3分If intAmount < 0 ThenErr.ClearErr.Raise dierror, "Class1", "无效的上架数量" ….2分End IfmvarNumber = mvarNumber + intAmountIf mvarNumber < 20 ThenRaiseEvent NumberBelowPoint ….1分End IfEnd SubPublic Property Let Number(ByVal vData As Long)mvarNumber = vDataIf mvarNumber < 20 ThenRaiseEvent NumberBelowPointEnd IfEnd Property ….1 分Public Property Get Number() As LongNumber = mvarNumberEnd Property ….1 分Public Property Let Price(ByVal vData As Currency)mvarPrice = vDataEnd Property ….1 分Public Property Get Price() As CurrencyPrice = mvarPriceEnd Property ….1 分Public Property Let PName(ByVal vData As String)mvarPName = vDataEnd Property ….1 分Public Property Get PName() As StringPName = mvarPNameEnd Property ….1分Private Sub Class_Initialize()mvarPName = "Computer"mvarPrice = 12.6mvarNumber = 20End Sub ….2 分4.(共15 分)Private Sub Command1_Click() ….1分DataEnvironment1.rsCommand1.MoveFirstEnd SubPrivate Sub Command2_Click() ….1分DataEnvironment1.rsCommand1.MovePreviousIf DataEnvironment1.rsCommand1.BOF Then DataEnvironment1.rsCommand1.MoveFirst End SubPrivate Sub Command3_Click() ….1分DataEnvironment1.rsCommand1.MoveNextIf DataEnvironment1.rsCommand1.EOF Then DataEnvironment1.rsCommand1.MoveLast End SubPrivate Sub Command4_Click() ….1分DataEnvironment1.rsCommand1.MoveLastEnd SubPrivate Sub Command5_Click() ….1分DataEnvironment1.rsCommand1.AddNewEnd SubPrivate Sub Command6_Click() ….1分DataEnvironment1.rsCommand1.UpdateEnd SubPrivate Sub Command7_Click() ….1分DataEnvironment1.rsCommand1.DeleteDataEnvironment1.rsCommand1.MoveNextIf DataEnvironment1.rsCommand1.EOF Then DataEnvironment1.rsCommand1.MoveLast End Sub报表设计略其中:表头正确1 分有日期栏1 分报表结束的汇总信息2 分报表显示正确:3 分二、选择题:(每题2 分,共30 分)1.D2.C3.D4.A5.C6.D7.C8.A9.D10. A11. C12. C13. D14. A15. D。
面向对象程序设计样卷
面向对象程序设计样卷一、选择题( 本大题共10小题, 每题2分, 共20分)4.在下列定义的引用中, ( B )是错误的。
A. int i;B. int i;int &j = i; float &j=i;C. float i;D. char d;float &j = i; char &e = d;5. 假定BB为一个类,则执行BB y;语句时将自动调用该类的( B )A. 有参构造函数B. 无参构造函数C. 拷贝构造函数D. 赋值重载函数7.下列对派生类的描述中, ( C )是错误的。
A. 一个派生类能够作为另一个派生类的基类B.派生类至少应有一个基类C. 基类中成员访问权限继承到派生类中都保持不变D.派生类成员除了自己定义的成员外, 还包含了它的基类成员10.控制输出格式的控制符中, ( D )是设置输出宽度的。
A.wsB.endsC. setfill()D.setw()二、填空题( 本大题共10小题, 每题2分, 共20分)1.以/*开始, 以*/结束, 在/*和*/之间的部分即为注释。
2.重载函数在参数类型或参数个数上不同, 但函数名和类名_相同。
3. 假如一个类的名称为MyClass, 使用这个类的一个对象初始化该类的另一个对象时, 能够调用__拷贝______构造函数来完成此功能。
4.当删除对象时, 程序自动调用析构函数。
5. 对于每一个类的非静态成员函数, 都有一个隐含的_this_______指针。
8. 抽象类是指类里有一个函数, 是纯嘘函数。
三、改错题( 下面程序或程序段中有一处错误, 请用注释标明错误所在行的出错原因。
本大题共5小题, 每题2分, 共10分) 1. #include<iostream>using namespace std;int main(){ cout<<"This is a program."<<endl;return 0;}2. #include<iostream>using namespace std;int main(){x=3;int y=x*x;cout<<"y="<<y<<"\n";return 0;}3. #include<iostream>using namespace std;class Aa{public:Aa(int i=0){a=i; cout<<"Constructor "<<a<<endl; } ~Aa(){ cout<<"Destructor "<<a<<endl; }void print( ){cout<<a<<endl;}private:int a;};int main(){Aa al(1),a2(2);al.print();cout<<a2.a<<endl;return 0;}4.class A{int a,b;public:A(int aa,int bb=78){a=aa;b=bb;} };int main(){A x(2), y(4,9);return 0;}5. #include<iostream>using namespace std;class Test{public:static int x;};int Test :: x=20;int main(){cout<<Test::x;return 0;}四、程序分析题( 分析程序, 写出运行结果。
《面向对象程序设计》练习题(20120612完整版)
《面向对象程序设计》练习题《面向对象程序设计》练习题 (1)一、选择题 (2)第1部分习题 (2)第2部分习题 (3)第3部分习题 (5)第4部分习题 (6)第5部分习题 (8)附加选择题 (9)二、概念填空题 (13)三、运行程序,给出结果 (15)一、选择题第1部分习题(1)编译Java程序的命令文件名是()。
A. java.exeB. javac.exeC. javacD. appletviewer.exe(2)已知JavaDemo.class是一个独立应用程序的class文件,下面的执行语句中正确的是()。
A. java JavaDemo.classB. java JavademoC. java JavaDemoD. javac JavaDemo.class(3)设JavaAppletDemo.java是一个Applet程序,它的web文件是JavaAppletDemo.html。
现在要显示这个Applet,下列语句中正确的是()。
A. appletviewer javaAppletDemo.javaB. appletviewer JavaAppletDemo.classC. appletviewer JavaAppletDemo.htmD. appletviewer JavaAppletDemo.html(4)编译Java程序filename.java后生成的程序是()。
A. filename.htmlB. filename.javC. filename.classD. filename.jar(5)Java编译器将源代码翻译成独立于平台的格式是()。
A. opcodesB. bytecodesC. virtual machinesD. applet(6)可以用来创建Java程序的工具集是()。
A. JREB. JNIC. JVMD. JDK(7)下面声明Java独立应用程序main()方法中,正确的是()。
面向对象程序设计模拟练习题(含答案)
面向对象程序设计模拟练习题(含答案)一、单选题(共50题,每题1分,共50分)1、下列关于JDK和JRE的说法中,错误的是()A、JDK是java开发核心组件,是用来编译解释java程序的核心组件B、JDK包括Java编译器、Java文档生成工具、Java打包工具等C、JRE是个单独的软件,所以安装JDK后,还需要单独安装JRED、JRE是java运行环境,用来支持java程序的运行正确答案:C2、下列File类的构造方法格式,错误的是()A、File(File parent)B、File(String pathname)C、File(String parent,String child)D、File(URI url)正确答案:A答案解析:A选项,正确的应该是File(File parent, String child)3、下列关于静态变量的描述中,错误的是()A、静态变量指的是被static修饰的变量B、静态变量是随着类的加载而加载C、静态变量可以被所有的实例对象共享D、静态变量同成员变量一样,都需要通过实例对象来调用正确答案:D答案解析:静态变量是通过“类名.变量名”“方式调用的。
4、下列对于Runtime的描述中,正确的是()A、每一个Java应用程序运行时都产生一个Runtime类实例B、Runtime实例可以将应用程序和运行环境相结合C、Runtime类有构造函数D、Runtime实例需要被创建后才可以通过getRuntime()方法获取正确答案:A答案解析:Runtime类用于表示虚拟机运行时的状态,它用于封装JVM虚拟机进程。
每次使用java命令启动虚拟机都对应一个Runtime实例,并且只有一个实例,因此该类采用单例模式进行设计,可以通过getRuntime()方法获得一个Runtime实例。
5、下列关于LinkedList类的方法,不是从List接口中继承而来的是()A、toArray()B、pop()C、remove()D、isEmpty()正确答案:B答案解析:pop()方法表示移除并返回此列表的第一个元素,是LinkedList特有的方法。
面向对象程序设计题目库
题目模板课程名称:面向对象程序设计层次:高起专题目阶段:阶段性作业1(阶段性作业1-4只包含客观题,每套作业的题量为20-30小题)一、单选题1. 下列关于栈的叙述正确的是_(1)_(A):栈是非线性结构(B):栈是一种树状结构(C):栈具有先进先出的特征(D):栈具有后进先出的特征答案B2. 已知,int m=10,在下列表示引用的方法中正确的是_(2)_(A):int &x=m (B): int &y=10 (C): int &z (D): float &t=&m答案A3. 结构化程序设计所规定的三种基本控制结构是_(3)_(A):输入、处理、输出(B): 树形、网形、环形(C):顺序、选择、循环(D): 主程序、子程序、函数答案C4. 结构化程序设计的一种基本方法是_(4)_(A):筛选法(B): 递归法(C): 归纳法(D): 逐步求精法答案D5. C++语言的跳转语句中,对于break和continue说法正确的是_(5)_(A):break语句只应用与循环体中(B): continue语句只应用与循环体中(C): break是无条件跳转语句,continue不是(D): break和continue的跳转范围不够明确,容易产生问题答案B6. 考虑函数原型void test(int a,int b=7,char="*"),下面的函数调用中,属于不合法调用的是_(6)_(A):test(5) (B): test(5,8) (C): test(6,"#") (D): test(0,0,"*")答案C7. C++语言是从早期的C语言逐渐发展演变而来的.与C语言相比,它在求解问题方法上进行的最大改进是_(7)_(A):面向过程(B): 面向对象(C): 安全性(D): 复用性答案B8. 关于delete运算符的下列描述中,_(8)_是错误的。
面向对象程序设计习题
第6章面向对象程序设计一. 选择题1.下面有关类和对象的说法中, 不对的的是【】。
A) 类是系统提供的一种数据类型B) 对象是类的实例C) 类和对象的关系是抽象和具体的关系D) 任何一个对象只能属于一个具体的类2. 面向对象的特点重要概括为【】。
A) 可分解性、可组合型性和可分类性B) 继承性、封装性和多态性C) 封装性、易维护性、可扩展性和可通用性D) 抽象性、继承性和封装性3. 要使一个类能被同一命名空间中的其他类访问, 但不能被这个命名空间以外的类访问, 该类可以【】。
A) 不使用任何修饰符B) 使用private修饰符C) 使用public修饰符D) 使用internal修饰符4. 在C#中, 【】访问修饰符修饰的字段只能由当前程序集访问。
A) private B) public C) protected D) internal5. 类的字段和方法的默认访问修饰符是【】。
A) public B) private C) protected D) internal6. 下列关于构造函数的描述中, 不对的的是【】。
A) 构造函数中, 不可以包含return语句B) 一个类只能有一个构造函数C) 实例构造函数在生成类实例时被自动调用D) 用户可以定义无参构造函数7. 下列关于构造函数的描述中, 【】是对的的。
A) 构造函数名必须与类名相同B) 构造函数不可以重载C) 构造函数不能带参数D) 构造函数可以声明返回类型8. 下列的【】不是构造函数的特性。
A) 构造函数的函数名与类名相同B) 构造函数可以重载C) 构造函数可以带有参数D) 可以指定构造函数的返回值类型9. 类ClassA有一个名为M1的方法, 在程序中有如下一段代码, 假设该段代码是可以执行的, 则声明M1方法时一定使用了【】修饰符。
ClassA Aobj=new ClassA();ClassA.M1();A) public B) public static C) private D) virtual10. 在C#中, 从属性的读写特性上来进行分类, 可以划分为以下3种, 除了【】。
《面向对象程序设计》课程界面设计练习题目
《面向对象程序设计》课程界面设计练习题目Windows NT系统内建了若干个的常用控件,极大地方便了Windows下可视化程序的开发。
对于初学者来说,能够熟练地使用这些控件,是学好C++面向对象编程的关键步骤。
为了指引初学者或者检验学习效果,下面设计了五个练习题目,囊括了大部分的常用控件,以及程序界面开发中常常使用的技术。
练习题目如下:一、播放器配置程序二、消息提示器三、流媒体管理器四、可定制背景的视图五、通讯簿一、播放器配置程序内容:制作一个基于对话框的播放器配置程序,能够从配置文件(*.ini )中读取设置信息;能够将修改后的设置信息保存在配置文件中。
界面如图1所示:图1 播放器设置界面目的:掌握使用VS 建立基于对话框的应用程序;熟悉标签(Static Text )、分组(Group Box )、按钮(Button )、编辑框(Edit Control )、组合框(Combo Box )、单选按钮(Radio Button )、复选框(Check Box )、热键设置控件(Hot Key )等常用控件的属性、事件;掌握配置文件(*.ini )的读写;学习MSDN 文档的查阅等。
要求:1、 控件1(组合框):不可输入文字,只能从下拉列表中选取一项,列表中的内容为:简体中文、繁軆中文、English ;2、 控件2(复选框):默认勾选。
3、 控件3(热键设置控件):当控件2勾选时,控件才3可编辑;当控件2未12 345678912 1314 15 161011勾选时,控件3灰掉(不可编辑);4、控件4~7(复选框):默认勾选控件4和控件5;5、控件8(编辑框):只能输入数字,范围1~60;6、控件9~11(一组单选按钮):默认选中控件9;7、控件12(按钮):当点击按钮时,在13中输出如图1所示的文字;8、控件13(编辑框):能够输入换行符,具有垂直滚动条,当文本框内容不能全部显示时,滚动条自动有效;9、控件14~16(按钮):按钮15初始不可用,当更改设置信息后才激活;接收回车提交命令;点击该按钮,将新的设置信息(控件12和13不触发配置信息改变)写回与程序同目录下,名称为config.ini配置文件中;点击按钮14时,如果设置信息有更改,将设置信息写入配置文件,并关闭对话框;若设置信息未发生改变,直接关闭对话框;点击16直接关闭对话框;10、配置文件读写要求:程序启动时若没有找到配置文件,能够按照默认设置初始化界面(按钮15激活),点击按钮14和15生成配置文件并写入设置信息,点击16则不生成配置文件;若找到配置文件,从文件中加载配置信息并初始化程序界面;11、对话框样式:对话框可以最小化,不能最大化,不可以改变大小;界面布局要工整;对话框初始时控件1取得焦点,按tab键焦点将按图中标注的序号逐一移动到下个控件上。
面向对象程序设计考试模拟题(附参考答案)
面向对象程序设计考试模拟题(附参考答案)一、单选题(共10题,每题1分,共10分)1、下面关于javac命令作用的描述中,正确的是()。
A、可以执行java程序B、可以将编写好的Java文件编译成.class文件C、可以把文件压缩D、可以把数据打包正确答案:B答案解析:javac命令将java文件编译成java字节码文件。
2、下列关于构造方法的描述,错误的是()A、在构造方法中不能使用return语句返回一个值,但是可以单独使用return作为方法的结束B、一个类中只能定义一个空参数的构造方法C、构造方法的方法名前面没有返回值类型的声明D、一个类中可以定义多个构造方法正确答案:B3、以下关于成员属性与成员方法的描述中,错误的是()A、成员属性我们也叫成员变量,它就是描述对象的特征。
它可以定义在类中,也可以定义在方法中B、成员方法用于描述对象的行为C、在类中定义的变量,我们称为成员变量D、在类中定义的方法,我们称变成员方法正确答案:A答案解析:类中可以定义成员变量和成员方法,其中成员变量用于描述对象的特征,也被称作属性,成员方法用于描述对象的行为,可简称为方法。
定义在类中的变量被称为成员变量,定义在方法中的变量被称为局部变量。
4、FileWriter类的write(int c)方法的作用是()A、写出单个字符B、写入多个C、写入一个整形数据D、写入单个字符正确答案:D答案解析:write(int c)方法用于写入单个字符。
5、下列关于集合的描述中,哪一个是错误的()A、集合按照存储结构可以分为单列集合Collection和双列集合Map。
B、List集合的特点是元素有序、元素可重复。
C、Set集合的特点是元素无序并且不可重复。
D、集合存储的对象必须是基本数据类型。
正确答案:D答案解析:集合可以存储多种数据类型的数据,包括引用数据类型。
6、下列关键字中,哪个不能修饰接口中的成员变量?()A、publicB、staticC、finalD、private正确答案:D答案解析:接口中的成员变量其实是一个常量,用public static final 修饰,所以,用private修饰是错误的。
面向对象的程序设计试题库
面向对象的程序设计一、单项选择题1、下面那种结构不是C++的控制结构()A 顺序结构B 选择结构C 循环结构D 判断结构答: D2、下列是C++语言中合法标识符的是()。
A.3three B.ifC._1oneD.while答:C3、下列是合法的C++语言语句的是()。
A.if(x>0) then x=x-1;else x=x+1;B.if(x>0) x=x-1;else x=x+1;C.if x>0 x=x-1;else x=x+1;D.if x>0 x=x-1;答:B4、下面那一种不是计算机内部表示整数的方法()A 二进制码B原码C 补码D反码答:A5、在C++语言中,下列数为合法的实数的是()。
A.5E-3B.5E-3.5C. E5D.-3.5E答:A6、C++语言中数据类型最大的是()A longB floatC intD char7、如果一个函数可以在定义中直接或间接的调用自己,这样的函数称为()。
A.函数声明B.嵌套函数C.定义函数D.递归函数答:D8、表达式0x55^0xB4的结果为()。
A.0xF5B.0x15C.0xE1D.0x1E答:C9、C++中,源代码文件后缀为()A .cppB .objC .exeD .c答: A10、0X5A&0XB7结果是()A 0X13B 0X12C 0X14D 0X15答: B二、填空题1、程序的基本控制结构包括()、()和()。
答:顺序结构,选择结构,循环结构2、用来解决问题的,与有限多个步骤组成的具体过程称为()。
答:算法3、整数类型变量a和b被初始化为3和10,则循环语句while(a<=b) a=a+2;共执行()次,执行完语句后a的值为(),b的的值为()。
答:4,11,10)。
答:警告信息,致命错误5、计算机中的数据可以分为()和()两大类。
答:数值型、字符型6、字符型数据有两种编码方法:()和()答:有美国国家标准局制定的ASCII码、IBM公司提出的EBCDIC码7、通过C++ 语言中的()机制,可以从现存类中构建其子类。
面向对象程序设计试卷
面向对象程序设计试卷一、选择题(每题2分,共20分)1. 面向对象程序设计中的三大特征是:A. 封装、继承、多态B. 抽象、封装、继承C. 封装、继承、封装D. 继承、多态、封装2. 下列哪个不是面向对象程序设计的优点?A. 代码重用B. 易于维护C. 程序复杂度低D. 可扩展性好3. 在Java中,哪个关键字用于定义类?A. classB. structC. interfaceD. type4. 以下哪个是Java中不允许的类名?A. MyClassB. 2MyClassC. MyClass2D. MyClass_5. 在面向对象程序设计中,以下哪个概念不是用于实现封装?A. 私有成员B. 公有方法C. 访问控制D. 继承6. 下列哪个不是Java的访问控制修饰符?A. publicB. privateC. protectedD. global7. 以下哪个是Java中不允许的方法名?A. myMethodB. _myMethodC. my_methodD. myMethod_8. 在Java中,哪个关键字用于实现继承?A. extendsB. inheritC. deriveD. base9. 以下哪个不是Java的多态性实现方式?A. 接口B. 抽象类C. 重载D. 重写10. 在Java中,哪个关键字用于定义接口?A. interfaceB. protocolC. abstractD. type二、简答题(每题10分,共30分)1. 简述面向对象程序设计中封装的概念,并给出一个封装的简单示例。
2. 解释什么是多态性,并说明多态性在面向对象程序设计中的重要性。
3. 描述继承在面向对象程序设计中的作用,并举例说明如何使用继承来提高代码的复用性。
三、编程题(每题25分,共50分)1. 定义一个名为`Student`的类,包含以下属性:- 姓名(String类型)- 学号(String类型)- 年龄(int类型)并为该类实现以下方法:- 一个构造函数,用于初始化姓名、学号和年龄。
面向对象程序的设计习题
选择题1. 程序中主函数的名字为()。
A. mainB. MAINC. MainD. 任意标识符2. 为了提高程序的运行速度,可将不太复杂的功能用函数实现,此函数应选择()。
A. 内联函数B.重载函数C.递归函数D.函数模板3. 将两个字符串连接起来组成一个字符串时,选用()函数。
A. strlen()B. strcap()C. strcat()D. strcmp()4. 对于任一个类,用户所能定义的析构函数的个数至多为( )。
A. 0B. 1C. 2D. 任意个5. 对类中引用成员的初始化是通过构造函数中给出的( )实现的。
A. 函数体B. 参数表C. 初始化表D. 初始化表或函数体6. 假定AB为一个类,则执行“AB x(a,5);”语句时将自动调用该类的( )。
A. 带参构造函数B. 无参构造函数C. 拷贝构造函数D. 赋值重载函数7. 对于任一个类,用户所能定义的析构函数的个数至多为( )。
A. 0B. 1C. 2D. 任意个8. 用new运算符创建一维整型数组的正确语句是__________。
A. int *p=new a[10];B.int *p=new float[10];C. int *p=new int[10];D.int *p=new int[5]={1,2,3,4,5}9. 假定有定义“int b[10]; int *pb;”,则不正确的赋值语句为()。
A. pb=b;B. pb=&b[0];C. pb=new int;D. pb=b[5];10. 程序中主函数的名字为()。
A. mainB. MAINC. MainD. 任意标识符11. 为了提高程序的运行速度,可将不太复杂的功能用函数实现,此函数应选择()。
A. 内联函数B.重载函数C.递归函数D.函数模板12. 将两个字符串连接起来组成一个字符串时,选用()函数。
A. strlen()B. strcap()C. strcat()D. strcmp()13. 用new运算符创建一维整型数组的正确语句是__________。
面向对象程序设计试题及答案
面向对象程序设计试题及答案一、试题1. 请简要解释面向对象(Object-Oriented)程序设计的概念。
2. 列举面向对象程序设计中的四个基本特征,并分别进行简要描述。
3. 请说明封装(Encapsulation)在面向对象程序设计中的作用和优势。
4. 解释继承(Inheritance)在面向对象程序设计中的概念和用途。
5. 什么是多态(Polymorphism)?请解释多态的概念以及其在面向对象程序设计中的重要性。
6. 简要介绍抽象类(Abstract Class)和接口(Interface)的概念,并说明它们之间的区别。
7. 请解释类(Class)与对象(Object)之间的关系。
8. 在面向对象程序设计中,什么是构造函数(Constructor)?请说明构造函数的作用和使用方法。
9. 请示范一个使用面向对象程序设计的简单实例,并说明你所设计的类的结构和功能。
二、答案1. 面向对象程序设计是一种以对象为中心的编程方法,通过定义表示对象属性和行为的类来组织程序结构,以实现代码的重用性、灵活性和可维护性。
2. (1)封装:将数据和对数据的操作封装在一个类中,通过访问权限控制,保护数据的安全性和完整性。
(2)继承:通过建立类之间的继承关系,实现代码的重用,具有层次性和扩展性。
(3)多态:允许不同类的对象对同一消息作出不同的响应,实现代码的灵活性和扩展性。
(4)抽象:通过抽象类和接口的定义,隐藏对象的具体实现细节,提供统一的接口和规范。
3. 封装的作用是将数据和对数据的操作封装在一个类中,外部无法直接访问类的内部实现细节,只能通过类提供的接口访问和操作数据。
封装的优势包括:(1)提高代码的可维护性和可读性,减少代码的重复。
(2)保护数据的安全性和完整性,防止外部直接对数据进行非法操作。
(3)降低模块之间的耦合度,提高代码的灵活性。
4. 继承是面向对象程序设计中的一个重要概念,它通过建立类与类之间的继承关系,实现代码的重用和扩展。
java面向对象程序设计练习题(有答案)
满分:100 分姓名:班级:学号:1. 填空题 ( 5.0 分 )面向对象三大特征______ ______ ______正确答案:封装继承多态2. 填空题 ( 5.0 分 )使用static 修饰的变量称为静态变量,静态变量可以有两种访问方式,分别是对象名.静态变量名和______正确答案:类名.静态变量名3. 单选题 (4.0 分 )下面关于java 中类的说法哪个是不正确的A. 构造函数是类中的特殊方法B. 类一定要声明为public 的,才可以执行C. 在软件设计中,类,就是一个模板,它定义了通用于一个特定种类的所有对象的属性(变量)和行为(方法)D. 一个java 文件中可以有多个class 定义(但只能有一个public 修饰的类)正确答案:B4. 单选题 ( 4.0 分 )关于类中可以包含的内容,如下说法错误的是()A. 类中可以包含属性和方法B. 类中可以直接包含代码块C. 类中可以嵌套定义类D. 类中不能包含其他类正确答案:D5. 单选题 ( 4.0 分 )构造方法是否可被重写和重载()A. 不能重写,可以重载B. 可以重写,不能重载C. 不能重写,不能重载D. 可以重写,可以重载正确答案:A6. 单选题 ( 4.0 分 )关于封装的好处,以下错误的是()A. 隐藏实现的细节B. 方便修改的实现C. 只能通过规定方法访问D. 实现代码复杂化正确答案:D7. 单选题 ( 4.0 分 )在Java 中,下面描述正确的是()A. 一个子类可以有多个父类,一个父类也可以有多个子类B. 一个子类可以有多个父类,但一个父类只可以有一个子类C. 一个子类只可以有一个父类,但一个父类可以有多个子类D. 以上说法都不对正确答案:C8. 单选题 ( 4.0 分 )Java 语言的类间的继承关系是A. 多重的B. 单继承C. 线程的D. 不能继承正确答案:B9. 单选题 ( 4.0 分 )以下关于this 和super 关键字的说法错误的是()A. this 关键字指向当前对象自身,super 关键字指向当前对象的直接父类B. 在main 方法中可以存在this 或者super 关键字,但不能同时存在。
《面向对象程序设计》6章-12章问答题习题答案
面向对象程序设计习题 面向对象程序设计习题
习 题7
(4) 映像模式是什么?它是如何定义的? 映像模式是什么?它是如何定义的?
映像模式定义逻辑坐标系的单位与设备坐标系的度量单位之间的 转换关系以及设备坐标系的X方向和 方向。其优点是, 方向和Y方向 转换关系以及设备坐标系的 方向和 方向。其优点是,程序 员可不必考虑输出设备的具体坐标系, 员可不必考虑输出设备的具体坐标系,而在一个统一的逻辑 坐标系中进行图形的绘制与操作。 坐标系中进行图形的绘制与操作。 设置当前设备环境的映像模式采用SetMapMode()函数,函数中 函数, 设置当前设备环境的映像模式采用 函数 的映像模式选择如下表: 的映像模式选择如下表:
面向对象程序设计习题 面向对象程序设计习题
6-2 简答题 (3) Windows应用程序中的消息传递是如何进行的? 应用程序中的消息传递是如何进行的? 应用程序中的消息传递是如何进行的
由Windows以及由其他应用程序向用户的应用程序发送的全部消息都 以及由其他应用程序向用户的应用程序发送的全部消息都 储存在消息队列中,等待调用。 程序以消息循环调用Windows消 储存在消息队列中,等待调用。SDK程序以消息循环调用 程序以消息循环调用 消 如下代码表示此循环一直运行到程序接受终止执行消息才停止。 息,如下代码表示此循环一直运行到程序接受终止执行消息才停止。 MSG Msg; … while (GetMessage (&Msg,NULL,0,0)) { TranslateMessage(&Msg); DispatchMessage(&Msg); } While循环内部 由循环的每次迭代调用Windows API函数 循环内部, 在While循环内部,由循环的每次迭代调用 函数 GetMessage (&Msg,NULL,0,0)以得到消息队列中的下一个消息,并把 以得到消息队列中的下一个消息, 以得到消息队列中的下一个消息 它存在特定的MSG结构体变量 结构体变量Msg中。TranslateMessage(&Msg)实现 它存在特定的 结构体变量 中 实现 键盘上某个键的翻译。 键盘上某个键的翻译。DispatchMessage(&Msg)函数向窗口的消息处 函数向窗口的消息处 理函数发送消息,调用相应的消息处理函数。 理函数发送消息,调用相应的消息处理函数。完成后进入下一个循环
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
《面向对象程序设计》课程界面设计练习题目Windows NT系统内建了若干个的常用控件,极大地方便了Windows下可视化程序的开发。
对于初学者来说,能够熟练地使用这些控件,是学好C++面向对象编程的关键步骤。
为了指引初学者或者检验学习效果,下面设计了五个练习题目,囊括了大部分的常用控件,以及程序界面开发中常常使用的技术。
练习题目如下:一、播放器配置程序二、消息提示器三、流媒体管理器四、可定制背景的视图五、通讯簿一、播放器配置程序内容:制作一个基于对话框的播放器配置程序,能够从配置文件(*.ini )中读取设置信息;能够将修改后的设置信息保存在配置文件中。
界面如图1所示:图1 播放器设置界面目的:掌握使用VS 建立基于对话框的应用程序;熟悉标签(Static Text )、分组(Group Box )、按钮(Button )、编辑框(Edit Control )、组合框(Combo Box )、单选按钮(Radio Button )、复选框(Check Box )、热键设置控件(Hot Key )等常用控件的属性、事件;掌握配置文件(*.ini )的读写;学习MSDN 文档的查阅等。
要求:1、 控件1(组合框):不可输入文字,只能从下拉列表中选取一项,列表中的内容为:简体中文、繁軆中文、English ;2、 控件2(复选框):默认勾选。
3、 控件3(热键设置控件):当控件2勾选时,控件才3可编辑;当控件2未12 345678912 1314 15 161011勾选时,控件3灰掉(不可编辑);4、控件4~7(复选框):默认勾选控件4和控件5;5、控件8(编辑框):只能输入数字,范围1~60;6、控件9~11(一组单选按钮):默认选中控件9;7、控件12(按钮):当点击按钮时,在13中输出如图1所示的文字;8、控件13(编辑框):能够输入换行符,具有垂直滚动条,当文本框内容不能全部显示时,滚动条自动有效;9、控件14~16(按钮):按钮15初始不可用,当更改设置信息后才激活;接收回车提交命令;点击该按钮,将新的设置信息(控件12和13不触发配置信息改变)写回与程序同目录下,名称为config.ini配置文件中;点击按钮14时,如果设置信息有更改,将设置信息写入配置文件,并关闭对话框;若设置信息未发生改变,直接关闭对话框;点击16直接关闭对话框;10、配置文件读写要求:程序启动时若没有找到配置文件,能够按照默认设置初始化界面(按钮15激活),点击按钮14和15生成配置文件并写入设置信息,点击16则不生成配置文件;若找到配置文件,从文件中加载配置信息并初始化程序界面;11、对话框样式:对话框可以最小化,不能最大化,不可以改变大小;界面布局要工整;对话框初始时控件1取得焦点,按tab键焦点将按图中标注的序号逐一移动到下个控件上。
提示:1、复选框勾选状态的获取:可以将复选框与一个BOOL变量关联,通过BOOL变量得知其勾选与否;也可以获取其控件状态(state)来得到是否被勾选;可以响应复选框的单击事件来处理复选框状态改变时的任务;2、单选按钮组的概念:点选按钮有组的概念,同一组内的单选按钮相互排斥,只能有一个被点选;一个单选按钮A若具有GROUP=true属性,则紧跟其后的GROUP=false属性的单选按钮同A为一组,可以为A关联一个int型变量,改变量反应了该组内那个按钮被点选;3、配置文件的读写:配置文件(*.ini)为文本文件,常用于保存配置信息;系统具有GetPrivateProfileString、WritePrivateProfileString等函数用于操作配置文件,具体可参见MSDN中相关介绍;4、使用Tab键移动焦点:需要控件具有Tabstop属性;焦点移动的顺序与界面控件的排放顺序有关,可以在界面编辑界面按Ctrl+D显示控件的序号,在序号上点击可以修改控件的顺序。
二、消息提示器内容:制作一个基于对话框的消息提示器,能够添加、删除消息,轮流展现消息。
主界面如图2所示;点击“消息管理”,弹出消息管理界面,如图3所示;在消息管理界面点击“+”,弹出新建消息对话框,如图4所示。
图2 消息提示器 目的:进一步了解对话框的设置,如模态和非模态、置顶等;学会界面布局管理;掌握界面逻辑控制;掌握列表(List Box )控件的使用;掌握定时器的使用。
要求:1、控件1-1(复选框):设置属性为按钮样式;点击一次,按钮凹下,文字变为“取消置顶”,对话框置顶(主界面失去焦点,获得焦点的其他程序界面仍不能遮盖住主界面),再次点击按钮,按钮弹出,文字恢复为“置顶”,主界面取消置顶;2、控件1-2、1-3(按钮):点击按钮1-2弹出消息管理界面(模态),主界面不可操作;点击按钮1-3,按钮1-2灰掉(不可操作),按钮1-3文字变为“停止提示”,1-5中开始显示消息;再次点击按钮1-3,按钮1-2激活,按钮1-3文字恢复为“开始提示”;点击1-4,若正在提示消息,停止提示,然后退出程序;3、控件1-5(编辑框):用于显示提示的消息,能够显示多行文字,具有水平、垂直滚动条,只读,无边框;未进行消息提示时,内容为空;4、控件2-1、2-2(列表):项为消息名称;列表2-1显示不进行提示的消息;列1-11-51-2 1-31-4表2-2显示要进行提示的消息;图3 消息管理对话框图4 新建消息对话框5、 控件2-3(按钮):点击弹出新建消息对话框;6、 新建消息:输入名称和消息内容,点击按钮3-3,检查消息名称是否不为空,3-13-23-3 3-42-1 2-22-3 2-4 2-9 2-102-112-122-13 2-52-62-72-8若为空给出修改提示,不为空则创建新的消息,消息列表增加一项;点击“取消”不创建新的消息;7、控件2-4(按钮):点击按钮,若消息列表未选中一项给出提示;已选中一项,将选中项删除;8、控件2-5(按钮):点击按钮,若消息列表未选中一项给出提示;已选中一项,将其移动到提示列表;9、控件2-6(按钮):点击按钮,若提示列表未选中一项给出提示;已选中一项,将其移动到消息列表;10、控件2-7(按钮):点击按钮,将消息列表中的项全部移到提示列表;11、控件2-8(按钮):点击按钮,将提示列表中所有项移到消息列表;12、控件2-9(按钮):点击按钮,若提示列表未选中一项给出提示;已选中一项,将选中项上移一次(已位于最顶端的项不再移动);13、控件2-10(按钮):点击按钮,若提示列表未选中一项给出提示;已选中一项,将选中项下移一次(已位于最底端项不再移动);14、控件2-11(编辑框):用于设定轮流提示消息的时间隔,仅可输入数字,数值范围500~30000;15、界面逻辑:当提示列表中没有要提示的消息时,1-3灰掉;当提示列表中存在消息时,1-3激活;点击1-3,启动消息提示,按设定的时间间隔,依照提示列表中消息的顺序逐一在1-5中显示提示列表中的消息;16、对话框样式:标题栏上动态显示当前时间;主界面可用鼠标动态调整大小;当主界面大小改变时,其中按钮相对窗口边缘的位置不变,只有1-5大小发生变化。
提示:1、定时器的使用:启动定时器采用Cwnd::SetTimer函数,程序退出前应该调用CWnd::KillTimer停止之前启动的定时器;函数的具体使用方法参考MSDN 文档;2、对话框的置顶,界面控件位置、大小修改:可通过Cwnd::SetWindowsPos函数实现;函数的具体使用方法参考MSDN文档;三、流媒体管理器内容:制作一个基于单文档框架的流媒体管理器(视图类的基类为CFormView ),能够添加、删除流媒体,查看流媒体属性等,主界面如图5所示,菜单结构如图6所示,添加流媒体对话框如图7所示:图5 流媒体管理器图6 菜单结构图7 添加流媒体界面目的: 熟悉单文档程序框架;学会菜单、工具栏的编辑以及消息响应;掌握表格控件(List Control )、IP 地址控件(IP Address )、选项卡控件(Tab Control )的使1-1 菜单结构如图6 1-21-32-12-22-32-42-52-6用;了解右击快捷菜单的使用等。
要求:1、程序框架:单文档程序框架,视图类的基类为CFormView;主框架可以用鼠标调节大小;具备菜单栏1-1、工具栏1-2,不要状态栏;将默认主界面标题栏中的“–无标题”去掉;按照图5图6修改默认菜单和工具栏,菜单“视图”和“帮助”项不变,工具栏按钮依次为“添加流媒体”、“删除流媒体”、“属性”;2、控件1-3(表格):具有如图5示的报表样式及表头;填充整个View区域,改变程序窗口大小,1-3也调节大小;右击1-3中一项数据弹出如图5所示的快捷菜单,内容同主菜单“流媒体”项;3、菜单“流媒体”-“添加流媒体”:点击弹出添加流媒体对话框;4、控件2-1(编辑框):限最大字符数16;5、控件2-2(组合框):默认列表数据为“RTSP”、“MMS”、“HTTP”;用户也可以输入文字;6、控件2-3(IP地址控件);7、控件2-4(编辑框):可输入多行文字;限制最大字符数128;8、控件2-5、2-6(按钮):输入完设置信息,点击按钮2-5添加一个流媒体,同时1-3对应添加一项;若设置信息除备注外有空,将不添加流媒体,给出提示;点击按钮2-6放弃添加新的流媒体;9、界面逻辑:若没有1-3中未选中一项,菜单“流媒体”中“删除流媒体”、“属性”不可用,工具栏对应按钮不可用;10、界面逻辑:若1-3中选中一项,点击菜单“流媒体”-“删除流媒体”,弹出删除确认对话框,确认后删除选中的流媒体,点击工具栏“删除流媒体”按钮具有同样响应;11、界面逻辑:若1-3中选中一项,点击菜单“流媒体”-“属性”或工具栏按钮“属性”,弹出下图8所示的“流媒体属性”对话框;对话框具有两个页面,“常规”页面显示选中流媒体的信息(均不可编辑),“网络”页面显示网络状态(为简单起见,固定为图示内容)。
点击“确定”关闭属性对话框。
图8 流媒体属性-常规页面图9 流媒体属性-网络页面提示:1、去掉标题栏的“–无标题”:可以在函数CMainFrame::PreCreateWindow中去掉框架样式FWS_ADDTOTITLE;2、IP 地址控件内容的获取:可通过关联字符串的方式获取输入的IP地址;可通过关联DWORD整数的方式获取输入的IP地址;3、选项卡的使用:图8和图9共使用了三个对话框;通过在TabControl控件的区域内创建嵌入式的子对话框实现图示效果,子对话框具有Border=None、Style=Child的样式,然后通过CDialog::Creat函数创建,再调用ShowWindow 显示出来;在TabControl的切换事件中,根据选中的要显示页面索引,将对应的子对话框显示出来,将其它对话框隐藏起来;4、选项卡的替代者:属性页(CPropertySheet、CPropertyPage)也能实现选项卡的效果,可以在网络上查找使用方法;四、可定制背景的视图内容:制作单文档程序,如图10所示的效果,能够根据设置的“画面属性”在视图中绘制背景:1-1图10 主界面及菜单结构2-12-2 2-32-42-5 2-62-7 2-8图11 画面属性设置界面目的:掌握滑块控件(Slider Control)、提示条(ToolTip Control)的使用;了解自定义控件的方法;掌握文件浏览对话框(CFileDialog)、颜色选择对话框(CColorDialog)等常用对话框的使用;了解使用GDI绘制简单图形图像的方法等。