收藏 分销(赏)

VC程序设计试验参考指导书.doc

上传人:天**** 文档编号:2990799 上传时间:2024-06-12 格式:DOC 页数:30 大小:4.69MB 下载积分:12 金币
下载 相关 举报
VC程序设计试验参考指导书.doc_第1页
第1页 / 共30页
VC程序设计试验参考指导书.doc_第2页
第2页 / 共30页


点击查看更多>>
资源描述
《VC++ 程序设计》 实 验 指 导 书 方江雄 编写 核工程和地球物理学院 前 言 VC程序设计时一门实践性很强课程,所以课时过程中仅仅经过阅读教科书或听课时补可能完全掌握,学习程序设计作关键步骤就是多上机实践。 通常学过程序设计人,往往全部有类似感觉:教科书上例题能看懂,上课时老师例题能听懂,可到了自己编程时却又无从下手。而老师上课再三强调问题,学生上机时还是照样会错误百出。同时,因为学生实践经验有限,调试程序时找错、改错过程很艰苦,有时甚至花多个小时全部调不一样一个程序,不仅效率低下,而且轻易失去学习爱好。 本试验指导书目标就在于给学生编程学习提供部分指导,帮助学生快速完成程序调试,使学生在实践过程中少部分曲折,多一点成功乐趣。 为了满足不一样层次学生需要,每一部分试验内容全部按由易到难次序编排,前面题目通常全部有较具体指导,后面提升部分(或选作部分)通常指给出提醒,供学习基础很好学生使用,充足挖掘每个人潜力。 为了提升试验课效率,学生需要做到: 每次试验之前全部要准备好试验内容,包含:明确试验步骤,编写出试验中要调试程序,编写调时程序时需要测试数据和程序应有运行结果。 试验过程中做好调试统计,包含关键试验步骤、关键代码、测试结果、出现错误及其原因分析和处理方法。 试验结束后要整理试验内容,编写试验汇报,回复试验内容中提出思索题,并总结试验中用到关键知识点。 本书中全部程序全部在Windows环境下Visual C++6.0系统中调试经过。 目 录 预习知识 Visual C++开发环境熟悉 4 试验一 Windows GUI编程 7 试验二 对话框应用程序设计 9 试验三 基础控件应用(第一组) 12 试验三 基础控件应用(第二组) 14 试验四 组合控件应用(第一组) 16 试验四 组合控件应用(第二组) 19 预习知识 Visual C++开发环境熟悉 试验目标: 1) 熟悉VC++集成开发平台基础操作 2)了解常见实用工具使用 3)学会部分简单程序调试手段 试验内容: 1)经过应用程序向导AppWizard,建立一个MFC单文档应用程序,并以此为例熟悉VC++环境,并了解常见实用工具使用。 2) 计算10个数平均值并在消息框中显示结果,以此为例学习对断点设置和使用。 试验步骤: 1) 在集成开发平台,打开File菜单,单击New菜单项。 2) 在New对话框中,选择Projects标签,进行以下操作:项目类型选择MFC AppWizard(exe);项目名称aa1(任意);设置项目保留位置;确定。选择应用程序类型为“Single document”完成即可。图1-1所表示,窗口界面包含标题栏、菜单栏、工具栏、项目工作区、编辑区和输出区。 标题栏 菜单栏 工具栏 项目工作区 编辑区 输出区 图1-1 Microsoft Visual C++6.0 开发环境 3) 在项目工作区中,点击Caa1View前面+号,双击下面OnDraw()函数,就能够在右边编辑区进行任务中要求程序编写了。 4) 使用Build菜单下Compile(Ctrl+F7)、Build(F7)、Rebuild All(Ctrl+F5)三个菜单项可进行编译程序。 5) 能够在“sum=sum+num[i];”和“message.Format("%d",average);”语句处设置二个断点(光标移到该行,按下F9即可),接下来能够单步实施(F10)或快速运动到下一个断点位置(F5),程序在第二个断点处停下,图1-2所表示。 图1-2 程序在第二个断点暂停时显示 6) 程序运行结果显示,图1-3所表示。 图1-3 程序运行结果 参考代码: //求均值 void CAa7View::OnDraw(CDC* pDC) { CAa7Doc* pDoc = GetDocument(); ASSERT_VALID(pDoc); // TODO: add draw code for native data here int num[10]; int sum=0; int average; for(int i=0;i<=9;i++) num[i]=2*(i+1); for(i=0;i<10;i++) sum=sum+num[i]; average=sum/10; CString message; message.Format("%d",average);//将int型数据转换为Cstring型 MessageBox(message); //在对话框中显示结果 } 试验一 Windows GUI编程 一、试验目标和要求 1、掌握 MFC AppWizard[exe]向导使用、MFC 消息映射及消息处理。 2、本试验分两组进行,各组完成不一样试验。 二、试验内容 第一组:编写一个单文档应用程序。程序开启后在用户区显示一个方形,当用鼠标左键单击用户区后,该方形会变为圆形,假如再单击则又变回方形。 试验步骤: 设置一个开关变量m_bKey当其值为FALSE时,在OnDraw函数中使用函数Rectangle绘制方形;而当值为TRUE时使用函数Ellipse绘制圆形。 再定义一个组员变量m_rectRec存放方形和圆形尺寸。 程序代码以下: //在视图类申明中定义组员变量 Private: BOOL m_bKey; CRect m_rectRec; //在视图类结构函数中对组员变量进行初始化 CRec_CrlView::CRec_CrlView():m_rectRec(100,100,400,400) { //TODO:add construction code here m_bKey=FALSE; } //在视图类鼠标左键按下消息中添加以下代码 void CRec_CrlView::OnLButtonDown(UINT nFlags,CPoint point) { if(m_bKey) m_bKey=FALSE; else m_bKey=TRUE; InvalidateRect(m_rectRec); CView::OnLButtonDown(nFlags,point); } //在视图类OnDraw函数中添加以下代码 void CRec_CrlView::OnDraw(CDC*pDC) { CRec_CrlDoc*pDoc=GetDocument(); ASSERT_VALID(pDoc); if(m_bKey) pDC->Ellipse(m_rectRec); else pDC->Rectangle(m_rectRec); } 运行结果: 第二组:编写一个应用程序,该程序运行后在用户区绘制一个圆形,每单击鼠标左键一次,则圆颜色会改变一次。 试验步骤: (1)在视图类申明中定义三个数据组员以描述颜色。 int m_clr1,m_clr2,m_clr3; (2)在视图类鼠标按下消息响应函数中用下面代码改变颜色。 void CColorView::OnLButtonDown(UINT nFlags,CPoint point) { m_clr1-=10; InvalidateRect(NULL); CView:: OnLButtonDown(nFlags, point); } (3)在视图类OnDraw函数中定义画刷和绘制圆形。 Void CColorView:: OnDraw(CDC*pDC) { int clr=RGB(m_clr1,m_clr2,m_clr3); CBrush newBrush(clr); CBrush *oldBrush=pDC->SelectObject(&newBrush); pDC->Ellipse(20,20,220,220); pDC->SelectObject(oldBrush); } 运行结果: 运行结果分析: 点击鼠标,圆颜色逐步加深 试验二 对话框应用程序设计 一、试验目标: 1、 了解对话框概念。 2、 了解对话框应用程序结构和对话框数据交换机制。 3、 学会创建简单对话框应用程序。 4、 二、试验内容: 程序运行界面图2-1:左边为编辑框,右边为按钮。左边数据能够是任意输入整数(默认值0),每单击一次“增1”按钮,编辑框中数据就增1。 图2-1 运行界面 三、试验步骤: 1、 打开VC++应用程序,进入集成开发环境。 2、 新建对话框应用程序:File->New->Projects,选择“MFC AppEizard(ex)”选项,输入工程明并选择路径后,单击“确定”。在弹出对话框中选择“Dialog based”基础对话框选项,表示建立对话框应用程序。单击“Finished”完成。图8-2: 图8-2 对话框可视化程序设计界面 3、 删除原有“确定”“取消”按钮和中间文本框:先选定、再按Delete键。 4、 添加控件:参考教材中2.2节控件添加方法,添加1个编辑框1个按钮。右击按钮控件,选择“properties”,在Caption项中修改控件名称为“增1”。 5、 对话框界面设计完成,下面用ClassWizard向导为应用程序添加消息映射函数和变量和代码了。实施菜单命令View,选择ClassWizard….,单击选项卡Member Variables,能够为各个控件添加对应变量了。图8-3: 图8-3 类向导对话框 6、 选择IDC_EDIT1,单击右边Add Variables,为编辑框1添加变量,变量名为m_var1,类型选择整型。如 图8-4: 图8-4 添加变量界面 7、 单击类向导对话框中Message Map选项卡,选择IDC_BUTTON1、BN_CLICKED,单击右边Add Function,为按钮添加单击消息映射函数OnButton1()。图8-5: 图8-5 添加消息映射界面 8、 选择组员函数OnButton1,单击右边Edit Code 按钮,进入源文件编辑环境,为函数OnButton1()添加代码: void CDialog_1Dlg::OnButton1() { // TODO: Add your control notification handler code here UpdateData(TRUE); m_var1++; UpdateData(FALSE); } 10、编译、连接、运行以下:左边编辑框初始值为0,每次单击按钮“增1”,右边数据便增1。也能够任意输入一个整数,然后点击增1。 四、试验汇报 1、 结合试验题目,总结创建对话框应用程序通常过程,写出测试结果。 2、 分析对话框应用程序结构,找出各个关键组成部分。 3、 结合试验题目说明对话框数据交换机制。 试验三 基础控件应用(第一组) 一、试验目标: 1、 掌握对话框应用程序设计方法。 2、 掌握文本框、按钮、编辑框控件使用。 3、 了解对话框应用程序消息映射机制和数据交换机制。 二、试验内容: 1、设计一个对话框应用程序,用于输入学生学号、姓名、三门课成绩。并当单击“输入”后数据才读入,单击“显示”按钮则显示已输入内容。对话框界面图1: 图1 程序运行结果 2、[选作]添加计算一个学生平均成绩按钮,并将平均成绩显示在三门课成绩以后。 三、试验步骤: 1、 创建对话框应用程序。 2、 对话框模板设计:添加5个静态文本框、6个编辑框、2个按钮控件。并逐一右击控件,选择properties选项,修改控件ID号和标题名称。图9-2。 其中,编辑框ID号分别为:IDC_NAME, IDC_STU_NO, IDC_EDIT1, IDC_EDIT2, IDC_EDIT3,IDC_DISP_LIST;按钮ID号分别为:IDC_INPUT, IDC_DISP。 尤其提醒:编辑框IDC_DISP_LIST属性选择Multiline, Horizontal scroll(即多行、水平滚动)。 图2 对话框界面设计 3、 创建对话框类:添加组员变量。 实施菜单命令VIEW/ClassWizard….,进入类向导对话框。 首先添加数据组员:切换到Member Variables 页面,为每个编辑框添加对应组员变量,方法同试验六。各个控件数据组员列表如表1: 表1 添加变量列表 控件ID号 变量类型 变量名 范围和大小 IDC_NAME CString m_Name IDC_STU_NO CString m_No IDC_EDIT1 int m_Score1 0~100 IDC_EDIT2 int m_Score2 0~100 IDC_EDIT3 int m_Score3 0~100 IDC_DISP_LIST CString m_DataList 4、 添加消息映射函数:切换到Class Wizard Message Maps页面,为按钮添加“单击”消息映射函数。 “输入”按钮单击消息映射函数代码: { UpdateData(TRUE); } “显示”按钮单击函数: OnDisp() { m_DataList.Format(“%s\t%s\t%d\t%d\t%d\n”, m_No, m_Name, m_Score1,m_Score2, m_Score3); UpdateData(FALSE); } 5、 编译、连接、运行。 四、思索题: 1、对话框应用程序是怎样运行? 2、控件和变量之间数据是怎样实现交换? 五、试验汇报 1、 具体整例程序开发过程,和测试结果。 2、 总结静态文本控件、编辑框使用方法和使用特点。 试验三 基础控件应用(第二组) 一、试验目标: 1、 熟练掌握对话框应用程序设计方法。 2、掌握单选按钮、复选按钮控件使用方法。 3、深入了解对话框应用程序消息映射机制和数据交换机制。 二、试验内容: 1.在第一组试验基础上,增加性别和求平均两项,其中性别输入采取单选按钮,是否计算平均成绩采取复选框。当选中该复选框时,计算平均成绩并显示。运行效果图1。 图1 运行结果 2.设置单选按钮和复选按钮初值:复选按钮未选中,单选按钮默认选中“男”。 3.添加一个分组框,将两个单选按钮放置在分组框内,分组框标题为“性别”。 三、试验步骤: 1、 在对话框模板中添加一个静态文本框(性别)、两个单选按钮(男、女)和一个复选按钮(求平均成绩),并修改控件属性。注意,一组单选按钮第一个控件group属性要选中。 其中,两个单选按钮ID号分别为:IDC_MAN,IDC_WOMAN,复选框ID号为:IDC_AVERAGE。 2、 添加数据组员:进入类向导对话框,切换到Member Variables 页面,为控件添加对应数据组员,如表1: 表1 添加变量表 控件ID号 变量类型 变量名 范围和大小 IDC_AVERAGE BOOL m_Average IDC_MAN int m_Man 其中,一组单选按钮只需要为第一个按钮设置对应组员变量,程序中依据该变量值(0,1,2,……)确定哪个被选中。 3、 添加消息映射函数:切换到Message Maps页面,为复选框IDC_AVERAGE添加BN_CLICKED消息处理函数,并添加以下代码: { UpdateData(TRUE); double average; if(m_Average) average=(m_Score1+m_Score2+m_Score3)/3; Cstring steSex; int n=GetCheckRadioButton(IDC_MAN,IDC_WOMAN); if(n==IDC_MAN) strSex=”男”; else strSex=’’女”; m_DataList.Format(“%s\t%s\t%s\t%f\n”, m_No, m_Name, ,strSex, m_Average); UpdateData(FALSE); } 4、 编译、连接、运行。 四、思索题: 1、当利用类向导为控件添加一个对应变量时,向导在应用程序哪多个地方、添加了哪些代码、作用分别是什么?以试验内容某个变量为例说明。 2、当利用类向导为按钮添加消息映射和映射函数时,向导在应用程序哪及各地方、添加了哪些代码?举例说明。 五、试验汇报: 1、整理程序开发过程,和测试结果。 2、总结单选按钮、复选框控件使用方法和使用特点。 3、总结使用分组框使用多组单选按钮方法。 试验四 组合控件应用(第一组) 一、试验目标: 1、 掌握列表框和组合框控件使用方法。 2、区分列表框和组合框不一样特点。 二、试验内容: 1、 列表框控件使用:利用编辑框输入信息,点击“增加选项”可添加到列表框中;选中列表框中某一项信息,点击“删除选项”能够删除一项信息;双击某一选项,被选中选项显示在编辑框中。图1: 图1 程序运行结果 2、 组合框控件使用:利用组合框完成上题编辑框和列表框功效。当选择组合框中某一项后,若按“删除选项”则从组合框中删除该项;若在组合框编辑框中输入某项后按“增加选项”,则将新输入项加入组合框。 3、[附加功效]分别对列表框和组合框进行初始化,并查看运行结果。 3、 三、试验步骤: 1、第1题试验步骤: (1)创建对话框应用程序。方法同前。 (2)修改对话框标题:右击对话框设计视图中空白处,打开对话框属性(Properties)对话框,将标题(Caption)改为“列表框使用”。 (3)向对话框添加控件: 单击控件布局工具栏上网格按钮(左下角),使对话框中显示出网格点,便于控件对齐。 根据题目要求在对话框中添加一个编辑框、一个列表框、两个按钮控件。 修改按钮标题,其它控件属性取默认值。 (4)添加控件对应组员变量:如表1。 表1 添加变量表 控件ID号 变量类型 变量名 范围和大小 IDC_EDIT1 CString m_strEditBox IDC_LIST1 Control m_oListBox (5)初始化列表框控件: 对话框中初始化工作通常是在对话框OnInitDialog()函数中完成。列表框初始化是经过AddString()函数项列表框中添加部分字符串完成。 打开OnInitDialog()函数,找到后面“//TODO:Add extra initialization here”,开始添加以下代码: m_oListBox.AddString(“数据结构”); m_oListBox.AddString(“操作系统”); m_oListBox.AddString(“数据库原理”); m_oListBox.AddString(“计算机组成原理”); (6)添加消息映射函数: A.添加选中列表框中选项处理函数:打开MFC ClassWizard 对话框,选择Message Maps选项卡,在 Object Ids列表框中选择ID_LIST1,在Messages列表框中选择DBLCLK,单击右边按钮”Add Function…..”,使用默认函数名OnDblclkList1即可。函数关键代码: m_oListBox.GetText(m_oListBox.GetCurSel(), m_strEditBox); UpdateData(FALSE); // GetCurSel()用于返回列表框目前选项索引值。 // GetText()获取用户在列表框中选中文本。 B.添加“增加选项”按钮函数OnButton1():[方法同试验十] UpdateData(TRUE); //读入编辑框中信息 if(!m_strEditBox.IsEmpty()) { m_oListBox.AddString(m_strEditBox); } C.添加“删除选项”按钮函数OnButton2(): m_oListBox.DeleteString(m_oListBox.GetCurSel()); (7)编译、连接、运行。 分析程序运行过程。 2、第2题试验步骤及提醒: 和第1题基础相同,不一样是: (1)将上题编辑框和列表框改为一个组合框。 (2)为组合框添加对应组员变量m_comobox(control类)、m_string(CString类)。 (3)组合框初始化和列表框相同。 (4)“增加选项”按钮消息映射函数代码: UpdateData(); m_combox.AddString(m_string); m_string=""; UpdateData(FALSE); (5)“删除选项”函数代码: void CComboBoxDlg::OnDel() { // TODO: Add your control notification handler code here int no; no=m_combox.GetCurSel(); m_combox.DeleteString(no); } (1) 改变组合框属性,实现不一样风格组合框。 (2) 为了避免添加相同列表项,修改程序:增加列表项之前,首先查询是否有相同项,若没有则插入。 四、试验汇报 1、 整理具体程序开发过程和测试结果。 2、 总结列表框、组合框使用方法。 试验四 组合控件应用(第二组) n 一、试验目标: 1、 掌握列表控件使用方法。 2、 熟悉树型控件使用方法。 n 二、试验内容: 1、 将输入职员信息以报表形式显示在列表控件中。运行效果图1。在登记职员信息栏中输入职员各项信息,点击“添加”后,输入信息被添加到上面列表框中。 图1 运行效果 2、 在,完成职员信息“删除”操作:当选中列表框中一条职员信息后,按“删除”按钮,则删掉该条信息。同时,增加职员信息其它项,比如性别、年纪等。 3、 利用树型控件,遍历当地磁盘全部目录。 n 三、试验步骤: 1、 创建对话框应用程序list_ctrl。 2、 在对话框模板中添加控件,并设置控件属性: 控件 ID号 属性 列表控件 IDC_LIST1 Styles/View/Report “添加”按钮 IDC_ADDEMP 默认 3个编辑框ID号(IDC_EDIT1~IDC_EDIT3)和属性取默认值,3个静态文本框ID号和属性也取默认值。 3、 利用向导添加控件对应组员变量: 控件 变量名 变量类型 列表框 m_EmpList CListCtrl 编辑框1 m_EmpNO CString 编辑框2 m_EmpName CString 编辑框3 m_EmpTel CString 4、 在对话框初始化函数中添加对列表初始化代码: BOOL CList_ctrlDlg::OnInitDialog() { …… // TODO: Add extra initialization here m_EmpList.SetTextColor(RGB(0,0,0)); //字符颜色 m_EmpList.SetBkColor(RGB(255,255,255));//背景色 m_EmpList.InsertColumn(0,"职员ID", LVCFMT_CENTER,70); m_EmpList.InsertColumn(1,"姓名", LVCFMT_CENTER,80); m_EmpList.InsertColumn(2,"电话", LVCFMT_CENTER,100); …… } 5、 利用向导添加“添加”按钮消息映射函数: void CList_ctrlDlg::OnAddemp() { // TODO: Add your control notification handler code here UpdateData(TRUE); //取得职员登记信息 m_EmpList.InsertItem(0,m_EmpNo); //添加一行 m_EmpList.SetItemText(0,1,m_EmpName); //添加一个数据项 m_EmpList.SetItemText(0,2,m_EmpTel); } 6、 编译、连接、运行。 n 试验汇报 1、 整理第1题和第3题具体实现过程和测试结果。 2、 总结列表控件和属性控件使用方法。 试验五 综合使用 一、试验目标 1、 掌握进度条、滑杆、标签、微调控件使用。 2、 熟悉标签控件、动画控件等控件使用。 3、 利用MFC做一个主窗口,将试验2-试验5中窗口部分制作一个软件,提交最终版本。 二、试验内容 1、综合使用滚动条、滑杆、微调控件实现:根据调整后三色组成颜色显示在左边文本框中。运行效果图1。 图13-1 运行效果 2、用垂直方向进度条,模拟“温度计”。用户从编辑框输入一个温度值,单击“开始”,则进度条“温度”指示以每隔0.1s速度递增,当递增到输入温度值时停止。 3、将试验2至试验5中窗口函数,添加一个主窗口。 三、试验提醒: 1、 添加控件时注意: 编辑框和其对应滚动条/滑杆控件tab键值要连续,比如,红色编辑框TAB值为2,则滚动条tab值为3。而微调按钮和左边编辑框要紧靠在一起。 微调按钮属性设置中必需选中“Auto buddy”和“Set buddy integer”。 2、 必需初始化各控件: 在对话框初始化函数OnInitDialog()中初始化三种颜色值、各控件数值范围。 BOOL CScroll_spin_sliderDlg::OnInitDialog() { CDialog::OnInitDialog(); m_RValue=m_BValue=m_GValue=0; //三种颜色值初始为0 m_Scroll.SetScrollRange(0,255); //设置滚动条范围 m_Scroll.SetScrollPos(m_RValue); //设置滚动条目前位置 m_Slider.SetRange(0,255); //设置滑杆范围 m_Slider.SetPos(m_GValue); //设置滑杆目前位置 m_Spin.SetRange(0,255); //设置微调按钮范围 UpdateData(FALSE); return TRUE; // return TRUE unless you set the focus to a control } 3、为对话框类添加在文本框中画图函数,具体方法:在Class View视图中,右击CScroll_spin_sliderDlg类,选择“Add Member Function…”,在弹出添加函数对话框中输入函数类型void、函数名Draw。代码以下: void CScroll_spin_sliderDlg::Draw() { CWnd *pWnd =GetDlgItem(IDC_DRAW); CDC * PDC =pWnd->GetDC(); CBrush drawBrush; drawBrush.CreateSolidBrush(RGB(m_RValue,m_GValue,m_BValue)); CBrush *pOldBrush =PDC->SelectObject(&drawBrush); CRect rc; pWnd->GetClientRect(rc); PDC->Rectangle(rc); PDC->SelectObject(pOldBrush); } 4、添加对话框类WM_HSCROLL消息映射,并在消息映射函数中判定是滑动条产生消息还是滚动条产生消息,然后分别处理。 四、试验汇报 1、 整理试验过程具体开发步骤,包含添加源代码及其注释。 2、 总结微调按钮、滑杆、滚动条使用方法。
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 应用文书 > 技术指导

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服