《面向对象程序设计》课程界面设计练习题目.docx
- 文档编号:29587554
- 上传时间:2023-07-24
- 格式:DOCX
- 页数:35
- 大小:268.59KB
《面向对象程序设计》课程界面设计练习题目.docx
《《面向对象程序设计》课程界面设计练习题目.docx》由会员分享,可在线阅读,更多相关《《面向对象程序设计》课程界面设计练习题目.docx(35页珍藏版)》请在冰豆网上搜索。
《面向对象程序设计》课程界面设计练习题目
《面向对象程序设计》课程界面设计练习题目
WindowsNT系统内建了若干个的常用控件,极大地方便了Windows下可视化程序的开发。
对于初学者来说,能够熟练地使用这些控件,是学好C++面向对象编程的关键步骤。
为了指引初学者或者检验学习效果,下面设计了五个练习题目,囊括了大部分的常用控件,以及程序界面开发中常常使用的技术。
练习题目如下:
一、播放器配置程序
二、消息提示器
三、流媒体管理器
四、可定制背景的视图
五、通讯簿
一、播放器配置程序
内容:
制作一个基于对话框的播放器配置程序,能够从配置文件(*.ini)中读取设置信息;能够将修改后的设置信息保存在配置文件中。
界面如图1所示:
16
14
15
12
11
10
9
8
6
7
5
3
2
13
4
1
图1播放器设置界面
目的:
掌握使用VS建立基于对话框的应用程序;熟悉标签(StaticText)、分组(GroupBox)、按钮(Button)、编辑框(EditControl)、组合框(ComboBox)、单选按钮(RadioButton)、复选框(CheckBox)、热键设置控件(HotKey)等常用控件的属性、事件;掌握配置文件(*.ini)的读写;学习MSDN文档的查阅等。
要求:
1、控件1(组合框):
不可输入文字,只能从下拉列表中选取一项,列表中的内容为:
简体中文、繁軆中文、English;
2、控件2(复选框):
默认勾选。
3、控件3(热键设置控件):
当控件2勾选时,控件才3可编辑;当控件2未勾选时,控件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所示。
1-3
1-5
1-4
1-2
1-1
图2消息提示器
目的:
进一步了解对话框的设置,如模态和非模态、置顶等;学会界面布局管理;掌握界面逻辑控制;掌握列表(ListBox)控件的使用;掌握定时器的使用。
要求:
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显示不进行提示的消息;列表2-2显示要进行提示的消息;
2-2
2-1
2-13
2-12
2-11
2-3
2-4
2-9
2-10
2-8
2-7
2-64
2-5
图3消息管理对话框
3-4
3-3
3-2
3-1
图4新建消息对话框
5、控件2-3(按钮):
点击弹出新建消息对话框;
6、新建消息:
输入名称和消息内容,点击按钮3-3,检查消息名称是否不为空,若为空给出修改提示,不为空则创建新的消息,消息列表增加一项;点击“取消”不创建新的消息;
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所示:
1-1菜单结构如图6
1-3
1-2
图5流媒体管理器
2-6
2-5
2-4
2-3
2-1
2-2
图6菜单结构图7添加流媒体界面
目的:
熟悉单文档程序框架;学会菜单、工具栏的编辑以及消息响应;掌握表格控件(ListControl)、IP地址控件(IPAddress)、选项卡控件(TabControl)的使用;了解右击快捷菜单的使用等。
要求:
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”;用户也可以输入文字;
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-7
2-8
2-5
2-6
2-4
2-2
2-3
2-1
图11画面属性设置界面
目的:
掌握滑块控件(SliderControl)、提示条(ToolTipControl)的使用;了解自定义控件的方法;掌握文件浏览对话框(CFileDialog)、颜色选择对话框(CColorDialog)等常用对话框的使用;了解使用GDI绘制简单图形图像的方法等。
要求:
1、主界面样式:
主窗口采用视图基类继承自CView的单文档程序框架;可用鼠标调节窗口大小,同时视图内容也改变大小并保持填充整个区域;标题文字顶部居中;在默认菜单中添加“设置”-“画面设置”;工具栏只有一个按钮“画面设置”;点击“画面设置”,弹出画面属性对话框;状态栏中显示鼠标相对于视图左上角的位置;
2、控件2-1(编辑框):
最大字符数限制为1-16;内容默认为“画面1”;
3、控件2-2(滑块):
调节范围(1-30),2-3为编辑框,只能输入数字,范围(1-30);调节Slider,编辑框同步显示当前设置值;改变编辑框中的数值,Slider同步改变滑块位置;默认值8;
4、控件2-4(自定义按钮):
点击按钮弹出颜色选择对话框;选择颜色后,在按钮上显示选择的颜色;默认颜色值为RGB(0,0,255);
5、控件2-5(编辑框):
只读;
6、控件2-6(按钮):
点击按钮,弹出文件选择对话框,文件类型过滤类型为.bmp、.jpg、.png,选中文件后,编辑框2-5中显示文件路径;
7、控件2-7(按钮):
点击按钮,完成“画面属性”设置,主窗口视图中按设置绘制出背景图像;
8、控件2-8(按钮):
点击按钮,放弃“画面属性”设置的修改,视图背景不变;
9、“画面属性”界面初始化:
程序启动后,初次弹出“画面属性”对话框,加载默认设置;之后弹出“画面属性”对话框加载当前设置;
10、提示条:
鼠标放置到控件2-1、2-4、2-6上,会弹出对应的提示条,如图11所示。
(图中为了表示各控件的提示内容,而全部显示出来);
提示:
1、滑块控件的使用:
同滚动条相似,滑块位置改变后会向窗体发送WM_HSCROLL(水平Slider)或WM_VSCROLL(垂直Slider)消息;对话框中响应该消息的函数具有三个参数,其中一个为CScrollBar*pScrollBar,用于指定发送消息的控件,需转换为CSliderCtrl*类型的指针获取位置;
2、自定义按钮:
需要从CButton派生一个子类,姑且叫做CColorBtn,然后再CColorBtn类中响应鼠标点击事件弹出颜色对话框,选择颜色后在DrawItem函数中以选中的颜色绘制控件外观;使用自定义控件时,在对话框中放置一个按钮将其与CColorBtn类型的变量关联,就可以将放置的按钮样式展现为自定义样式;
3、提示条控件的使用:
提示条在界面设计工具箱中找不到,需要完全由代码创建显示等,可通过网络查找使用方法;
五、通讯簿
内容:
制作一个通讯录程序,程序主界面如图12所示:
1-14
1-13
1-10
1-5
1-4
1-2
1-1
1-15
1-16
1-12
1-11
1-9
1-8
1-7
1-6
1-3
图12通讯簿主界面
释放鼠标后完成节点移动
2-2
2-3
2-1
图13完成拖动联系人的效果图14添加分组界面
目的:
掌握树形控件(TreeControl)、时间日期控件(DateTimePicker)、分割线(PictureControl)的使用;掌握拖拽、移动、释放左键等鼠标事件的使用。
要求:
1、控件1-1(树形控件):
用于显示分组和联系人;节点具备图标;具有HasButton、HasLines、LinesAtRoot属性;默认具有“未分组”节点;点击树中的分组,右侧“联系人信息”各内容为空;点击选中一个联系人,右侧“联系人信息”显示该人的各项信息;
2、控件1-2、1-3、1-5~1-9(编辑框):
1-2、1-3最大字符树限制为16个;1-5、1-6分别用于显示电话1、电话2,只能输入数字,最大字符个数限制为16个;1-7、1-8最大字符个数限制为128个;1-9可输入换行符,具有水平、垂直滚动条,最大字符数限制为256个;
3、控件1-4(日期时间控件):
用于显示和设置联系人的生日;为日期模式;
4、界面逻辑:
点击按钮1-10,若姓名不为空,则以“联系人信息”中的内容生成一个新的联系人并加入到“未分组”中;若姓名空给出补全提示;
5、界面逻辑:
拖树中未选中联系人,按钮1-11灰掉;若树中选中一个联系人,安妮1-11激活;点击按钮1-11,若姓名不为空,则以“联系人信息”中的内容修改树中选中的联系人信息;若姓名为空给出补全提示;
6、界面逻辑:
若树中未选中联系人,按钮1-12灰掉;若树中选中一个联系人,按钮1-12激活;点击按钮1-12,弹出删除联系人确认提示,若确认删除,将树中选中的联系人删除;若取消删除,不进行任何操作;
7、界面逻辑:
点击按钮1-13,弹出添加分组对话框,输入分组名称(字符数限8个),点击按钮2-2添加一个联系人分组;若分组名称为空给出补全提示;点击按钮2-3放弃添加分组;
8、界面逻辑:
若树中未选中一个分组,按钮1-14灰掉;若树中选中一个分组,按钮1-14激活;点击按钮1-14,若选中“未分组”,弹出不能删除提示,否则弹出删除分组确认提示,若确认删除将树中选中分组内的联系人移至“未分组中”,然后将选中分组删除;若取消删除,不进行任何操作;
9、控件1-15(水平划分线):
旁边的为垂直划分线,常用于界面功能区划分;划分线是静态类控件的一种,在界面编辑器中可先放置PictureControl之后修改Type属性为EtchedHorz(水平)或EtchedVert(垂直)来实现;
10、操作性要求:
可以拖动联系人节点进行分组(如图箭头示意),分组节点不可拖动;拖拽时具有拖拽图像,当鼠标落至某个分组时,该分组自动打开,并将分组节点选中;释放鼠标结束拖拽并完成节点移动及选中,如图13所示;
提示:
1、树形控件节点拖动的实现:
需要响应4个消息,分别是TVN_BEGINDRAG、WM_MOUSEMOVE、WM_LBUTTONUP、WM_KILLFOCUS:
消息TVN_BEGINDRAG标志着开始拖拽;消息WM_MOUSEMOVE标志着正在拖拽;消息WM_LBUTTONUP标志着拖拽结束;消息4是为了实现当程序失去焦点时自动结束拖拽。
2013C类安全员复习判断单选多选案例——案例题
1.C类对负责人处罚
1、企业是安全生产管理的主体。
企业负责人或项目经理违反安全生产法有关规定将受到处罚。
作为一名企业负责人或项目负责人应熟悉和了解《安全生产法》有关安全生产法处罚规定,更自觉地遵守有关法律法规。
(1)不依照安全生产法规定保证安全生产所必需的资金投入,致使生产经营单位不具备安全生产条件的,责令限期改正,提供必需的资金;逾期未改正的,责令生产经营单位停产停业整顿。
(多选题)A、生产经营单位的决策机构B、生产经营单位的主要负责人C、个人经营的投资人D、不含个体经营的投资人E、施工项目负责人答案:
ABCE-P65
(2)生产经营单位未按照规定设立安全生产管理机构或者配备安全生产管理人员,责令限期改正;逾期未改正的,责令停产停业整顿,可以并处的罚款。
(单选题)A、2万元以下B、10万元以下C、2万元以上10万元以下D、2万元以上20万元以下案例题1.C类对负责人处罚答案:
A-P52八十二条
(3)生产经营单位的主要负责人有违法行为,导致发生生产安全事故,尚不够刑事处罚的,给予撤职处分或者处的罚款。
(单选题)A、2万元以下B、10万元以下C、2万元以上10万元以下D、2万元以上20万元以下—答案:
D-P65八十一条
案例题1.C类对负责人处罚
(4)生产经营单位的主要负责人有违法行为,导致发生生产安全事故,构成犯罪的,依照刑法有关规定追究刑事责任。
(判断题)A、正确B、错误答案:
A-P52八十一条
(5)生产经营单位的主要负责人受刑事处罚或者撤职处分的,自刑罚执行完毕或者受处分之曰起,不得担任任何生产经营单位的主要负责人。
(单选题)A、2年内B、3年内C、5年内D、10年内答案:
C-P65八十一条
2、国家建设主管部门提出了加强企业安全生产条件动态监管的有关文件精神。
取得安全生产许可证的企业应当继续完善安全生产条件,遵守有关法律法规,自觉接受有关部门及社会的监督。
否则,企业将受到相应的处罚。
所以,企业主要负责人应当熟悉和掌握有关企业安全生产条件动态监管的有关文件精神。
试回答如下问题:
(1)、企业转让安全生产许可证的,没收违法所得,处10万元以上50万元以下的罚款,并暂扣其安全生产许可证。
(判断题)A、正确B、错误案例题2C类安全生产许可证动态监管答案:
B-P62二十一条
(2)、有关部门将提出暂扣企业安全生产许可证的建议,并附具企业及有关工程项目违法违规事实和证明安全生产条件降低的相关询问笔录或其它证据材料。
(多选题)A、在12个月内,同一企业同一项目被两次责令停止施工的B、对在12个月内,同一企业同一个项目被三次责令停止施工的C、对在12个月内,同一企业在同一市、县内二个项目被责令停止施工的D、在12个月内,同一企业在同一市、县内三个项目被责令停止施工的E、施工企业承建工程经责令停止施工后,整改仍达不到要求或拒不停工整改的案例题2C类安全生产许可证动态监管答案:
ADE-P63第十条
(3)建筑施工企业瞒报、谎报、迟报或漏报事故的,在有关处罚时限规定的基础上,再处延长暂扣期30日至60日的处罚;其暂扣时限超过120日的,吊销安全生产许可证。
(判断题)A、正确B、错误
(4)建筑施工企业在12个月内第二次发生生产安全事故的,视事故级别和安全生产条件降低情况,按处罚。
(多选题)A、发生一般事故的,暂扣时限为在上一次暂扣时限的基础上再增加30日B、发生较大事故的,暂扣时限为在上一次暂扣时限的基础上再增加60日C、事故等级为一般事故的,累计处罚暂扣时限超过120日的,吊销安全生产许可证D、事故等级为较大事故的,累计处罚暂扣时限超过120日的,吊销安全生产许可证E、事故等级为重大事故的,吊销安全生产许可证案例题2C类安全生产许可证动态监管答案:
A-P63第十六条答案:
ABCDE-P63第15条
案例题2C类安全生产许可证动态监管
(5)建筑施工企业安全生产许可证暂扣期满前10个工作日,企业需向颁发管理机关提出发还安全生产许可证申请。
颁发管理机关接到申请后,应当对被暂扣企业进行复查,复查合格的,应当在暂扣期满时发还安全生产许可证;复查不合格的,增加暂扣期限直至吊销安全生产许可证。
(单选题)A、安全生产设施B、安全生产条件C、安全生产机构D、安全生产制度答案:
B-P64第二十条
案例题3C类临时用电
3、某工地为了防止发生触电事故,购买了漏电保护器,并安排专人进行了安装,但不久却发生了一起触电事故,导致触电者死亡,后分析发现,事故原因是漏电保护器安装使用不当所致。
请回答下列问题:
(1)按《施工现场临时用电技术规范》(JGJ46-2005)规定,下列必须编制《用电组织设计》的情况有。
(多选题)A、用电设备在5台及以上时B、设备总容量在50KW及以上时C、用电设备在10台及以上时D、设备总容量在100KW及以上时E、以上都不是答
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 面向对象程序设计 面向 对象 程序设计 课程 界面设计 练习 题目