visual c++可视化程序设计.docx

上传人:小飞机 文档编号:4925865 上传时间:2023-05-23 格式:DOCX 页数:46 大小:426.28KB
返回 下载 相关 举报
visual c++可视化程序设计.docx_第1页
第1页 / 共46页
visual c++可视化程序设计.docx_第2页
第2页 / 共46页
visual c++可视化程序设计.docx_第3页
第3页 / 共46页
visual c++可视化程序设计.docx_第4页
第4页 / 共46页
visual c++可视化程序设计.docx_第5页
第5页 / 共46页
亲,该文档总共46页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《visual c++可视化程序设计.docx》由会员分享,可在线阅读,更多相关《visual c++可视化程序设计.docx(46页珍藏版)》请在三一办公上搜索。

1、Visual c+实验汇总报告(8个)班级:电气1004班 姓名:郑邦猛 学号:100534302012.11.10实验一 Visual C+程序调试实验一、实验目的 熟悉Visual C+ 6.0开发环境; 掌握在Visual C+ 6.0开发环境调试程序的方法。二、实验内容 创建三个项目,项目类型分别为:Win32 ConsoleApplication、Win32Application 和 MFC AppWizard(exe),分别编译运行各个程序,观察各种项目类型程序的特点。 创建一个Win32 Console Application类型的项目,输入下面 的代码,按照要求对代码进行调试。

2、(1) 三种项目类型程序特点的简要说明Win32 Console Application:控制台应用程序,入口函数为main函数,用来编写一般的应用 程序,只能使用c+语言提供的函数,可以随时使用cin、cout 等输入输出函数,结果以命令行的形式输出。Win32 Application:Window应用程序,入口函数为WinMain,用来编写windows应用程 序,可以调用windows提供的一些库函数,亦可以使用c+语言提 供的函数,但不能使用cin、cout等输出输出函数。MFC AppWizard(exe):微软基础类,通过对类的继承,尽可能的实现了代码重用,程序 员需要自己写的东西

3、非常少,编程方便。(2)实验内容第二部分程序清单:调试要求:1. 在程序代码的main函数中设置断点,启动程序执行到断点处 停止;2. 在函数narcissus调用处进入函数内部,跟踪函数执行的过 程;3. 单步执行程序,观察各个变量值的变化情况;4. 单步执行若干步后,跳出函数体,回到main函数。#include iostream.h”#include math.h”void narcissus();void main()narcissus();void narcissus()int x1;/百位数字int x20;/十位数字+个位数字int x2;/十位数字int x3;/个位数字int

4、 count =0;/找到的水仙花数总数for(int x=100;x1000;x+)x1=x/100;x20=x%100;x2=x20/10;x3=x20%10;if(x1*x1*x1+x2*x2*x2+x3*x3*x3=x)count+;coutOne narcissus number found:xendl;coutThe total numbet of narcissus numbers is:countendl; 运行结果:One One One One Thenarcissusnarcissusnarcissusnarcissusnumber number number numbe

5、rfonnd:153 found:370 found:371 found:407total numbet of napeissus numbers is:4Press any key to continue(3)调试过程记录(4)在Visual C+ 6.0中跟踪调试程序第一步:设置断点(F9);第二步:运行当前项目(F5);第三步:通过F11进入narcissus函数内部;第四步:在narcissus内部用F10进行单步调试,观测记录变量 值;第五步:按住Shift+F11从narcissus函数体内跳出,返回主函数。(5)实验小结: 本次实验,我们主要熟悉了Visual C+ 6.0的开发

6、环境,掌握了基 本的在Visual C+ 6.0开发环境调试程序的方法。其实也是在复 习以前所学的知识。实验二C+类基本语法实验一、实验目的(1) 熟悉Visual C+ 6.0开发环境;(2) 熟悉C+类设计的基本方法;(3) 掌握C+类的几个重要成员函数的定义和使用方法;二、实验内容创建一个Employee类,该类中有字符数组,表示姓名、街道 地址、市、省和邮政编码。其功能有修改姓名、显示数据信息。要求其功能函数的原型放在类定义中,构造函数初始化每个成 员,显示信息函数要求把对象中的完整信息打印出来。其中数据 成员为保护的,函数为公有的。三、实验报告(1)程序清单及运行结果程序清单:emp

7、loyee.h 部分class employeeprotected:char name20;char add20;char city20;char pro20;char post20;public:employee(char *n,char *a,char *c,char *p,char *o);employee();void Setname(char *);void show();employee.cpp部分#include #include #include employee.h”using namespace std;employee:employee(char *n,char *a,c

8、har *c,char *p,char *o)(strcpy(name,n);strcpy(add,a);strcpy(city,c);strcpy(pro,p);strcpy(post,o);employee:employee()(void employee:Setname(char *names)(strcpy(name,names);void employee:show()(cout姓名:nameendl;cout住址:addendl;cout城市:cityendl;cout省份:proendl;cout邮编:postendl;main.cpp部分#include #include #i

9、nclude employee.h”using namespace std;void main()(char *n=郑邦猛;char *a=学 4;char *c=青岛;char *p=山东;char *po=622555;employee t(n,a,c,p,po);t.show();运行结果:r 1 F:VC Debu9101.exe猛邦恩岛东 s= l= LbWy n a s s :eMr55 52tocontinue总结:本次实验主要是重温了以前所学的知识,掌握C+类的 几个重要成员函数的定义和使用方法,加强了理解。实验三Windows图形绘制编程实验一、实验目的(1) 熟悉Visua

10、l C+ 6.0开发环境;(2) 掌握Windows图形输出的方法;理解设备环境、画笔、画刷的概念,掌握常用的绘图函数。二、实验内容(1) 定义一支红色画笔,绘制一个正方形;(2) 用不同颜色的线条连接互不相邻的两个顶点;(3) 用不同颜色的画刷填充用上述方法所形成的图形中的每一 个区域。三、实验报告(1)图形绘制程序代码清单LRESULT CALLBACK WndProc(HWND hWnd,UINT message,WPARAM wParam,LPARAM IParam)(PAINTSTRUCT PtStr; 定义指向包含绘图信息的结构变量HDC hDC;定义环境句柄HBRUSH hBru

11、sh;定义画刷句柄HPEN hPen;定义画笔句柄switch(message)(case WM_PAINT:绘图响应hDC=BeginPaint(hWnd,&PtStr);SetMapMode(hDC,MM_ANISOTROPIC);/定 义映像模式POINT p3;hPen=(HPEN)CreatePen(PS_INSIDEFRAME,1,RGB(255,0,0);/画矩形SelectObject(hDC,hPen);Rectangle(hDC,40,40,200,200);DeleteObject(hPen);hBrush=(HBRUSH)GetStockObject(DKGRJY_BR

12、USH);/ 深灰色画刷填充SelectObject(hDC,hBrush);枳wflla旧 抵黛 w(HsmiqAVNDIImgqcpp2sD(HsniqHTqsmqq-(qsmqq)so500苛勺 d-cduaeUOXAodO彳 A.sdoOZE.sdoZIHA.sdoZIE.sdoOZHA.odoOZE.odxqsmqquaqmgqQ 密勺 S 枳wftla旧:I(2zolx=40&x=40&y=200)hCursor二LoadCursor(NULL,IDC_SIZEALL);SetCursor(hCursor);elsehCursor二LoadCursor(NULL,IDC_ARROW

13、);SetCursor(hCursor);sprintf(buffer,%d,%d”,x,y);/显示光标TextOut(hDC,10,10,buffer,strlen(buffer);break;case WM_LBUTTONDOWN: /鼠标左键响应if(wParam & MK_CONTROL)&(wParam & MK_SHIFT)/control和shift 同时按下MessageBox(hWnd,电气 10_4 明磊,NULL,MB_OK);/调用系统消息 盒子break;case WM_DESTROY:PostQuitMessage(0);break;default:return

14、DefWindowProc(hWnd,message,wParam,lParam);return 0;(2)实验小结通过此次实验我们学到了很多。绘制矩形并分区很容易实现,但在不同区域显示不同光标并打印 实现的有点儿困难。我们要做的是随时捕捉光标位置,并在左上角显 示。对于shift和control键的监测,用的是预备知识中的格式,即 只有当鼠标左键和shift、control键同时按下时,才有触发响应并 弹出系统消息盒子。在做实验过程中很容易出现错误。我们要细心地 编写并及时发现解决问题。实验五定时器编程实验一、实验目的 熟悉Visual C+ 6.0开发环境;(2)掌握API编程模式中定时器

15、的使用方法 熟练掌握在Visual C+ 6.0开发环境调试程序的方法。二、实验内容设计一个窗口,在窗口中间位置绘制一个圆角矩形,并用交替用 红、绿、蓝三种颜色的画笔填充矩形的内部,每次改变颜色的时 间间隔为1.0秒。三、实验数据(1)定时器操作相关的程序清单回调函数LRESULT CALLBACK WndProc(HWND hWnd,UINT message,WPARAM wParam,LPARAM lParam)(PAINTSTRUCT ps;HDC hdc;HBRUSH hb1,hb2,hb3;/定义指向包含绘图信息的结构变量/定义指向设备的句柄定义画刷句柄static int i;/定

16、义静态变量switch(message)(case WM_CREATE:SetTimer(hWnd,1,1000,NULL);/设置定时器 break;case WM_TIMER:InvalidateRect(hWnd,NULL,1);/刷新客户区 break;case WM_PAINT:绘图响应hdc二BeginPaint(hWnd,&ps);SetMapMode(hdc,MM_ANISOTROPIC);/设置映像模式hb1二CreateSolidBrush(RGB(0,0,255);/定义三种画刷hb2二CreateSolidBrush(RGB(0,255,0);hb3二CreateSol

17、idBrush(RGB(255,0,0);if(i%3=0)/颜色变换条件(SelectObject(hdc,hb1);RoundRect(hdc,40,40,400,400,10,10);if(i%3=1)(SelectObject(hdc,hb2);RoundRect(hdc,40,40,400,400,10,10);if(i%3=2)(SelectObject(hdc,hb3);RoundRect(hdc,40,40,400,400,10,10);i+;EndPaint(hWnd,&ps);break;case WM_DESTROY:PostQuitMessage(0);break;de

18、fault:return DefWindowProc(hWnd,message,wParam,lParam);return 0;(2)实验小结通过本次实验我们掌握了基本的API编程模式中定时器的使 用方法,基本掌握在Visual C+ 6.0开发环境调试程序的方 法。本次实验共分为两个部分:第一部分,通过自己创建三种 项目类型的应用程序,体会各种类型程序的特点。第二部分为应 用程序的调试。实验六MFC消息映射编程实验、实验目的(1) 熟悉Visual C+ 6.0开发环境;(2) 掌握消息映射机制的基本原理和手工添加消息映射的方法; 熟练掌握在Visual C+ 6.0开发环境调试程序的方法。

19、二、实验记录(1)手工添加消息映射的基本步骤1. 定义消息2. 实现消息处理函数3. 在类头文件的AFX_MSG块中说明消息处理函数4. 在用户类的消息块中,使用ON_MESSAGE宏指令将消息映射到消息处理函数中(2)列出鼠标绘图功能的实现代码#include class CDemoApp: public CWinApp/应用程序派生类 public:BOOL InitInstance();;CDemoApp ThisApp; /全局应用程序对象class CDemoWnd: public CFrameWnd/ 口派生类public:CDemoWnd()( ;int m_X0;int m_Y

20、0;int m_X1;int m_Y1;protected:LRESULT OnLButtonDown(WPARAM wParam, LPARAM lParam);LRESULT OnMouseMove(WPARAM wParam, LPARAM lParam);LRESULT OnLButtonUp(WPARAM wParam, LPARAM lParam);DECLARE_MESSAGE_MAP();BEGIN_MESSAGE_MAP(CDemoWnd, CFrameWnd) /消息映射宏ON_MESSAGE(WM_LBUTTONDOWN,OnLButtonDown)ON_MESSAGE(

21、WM_MOUSEMOVE,OnMouseMove)邕兽裕套膜 二(岳 JWMVcH C3 话 dMJWMVdM) MolFsrLOWUO 二 PUMOIUMO留 5(oUJmAoJ-(3 话 dDQMOMIH H IAm H OAIU套翊咂K空 - (3 话 dloMOMCH H IXB n oxm邕兽套膜K空/7 (3话diPWMVcH CUIWrdM !WMVdM)UMOQuo 二 TI0 二 PUMOUI QoJ/MS 目二()dv号 VS 留一tqnh(suoammuo cdnNOMnM套)号 vs 留一Tno-(IAB 工 xmcrAmcrxm) wmm.up (UHIHS里书 33

22、dM)器(NOLmTr 里书 33dM)JI( -(IAB 工 xmCTABcrxmoISUu .up (30MNCO里 书 33dM)器(NOLLngr里 书 33dM)JI -(HsnwmJJHMMUqcppoAstEes .up -(备挡1目)4徂3。岩0明七迫:w-(swopOQ与 mom_X1 = LOWORD(lParam);/获取当前坐标并绘图m_Y1 = HIWORD(lParam);dc.SelectStockObject(BLACK_PEN);dc.SelectStockObject(WHITE_BRUSH);if(wParam & MK_LBUTTON) & (wPara

23、m & MK_CONTROL)dc.Rectangle(m_X0,m_Y0,m_X1,m_Y1);if(wParam & MK_LBUTTON) & (wParam & MK_SHIFT)dc.Ellipse(m_X0,m_Y0,m_X1,m_Y1);return 0;LRESULT CDemoWnd:OnLButtonUp(WPARAMwParam, LPARAM lParam)/按键弹起响应CClientDC dc(this);m_X1 = LOWORD(lParam);/获取当前坐标并绘图m_Y1 = HIWORD(lParam);dc.SelectStockObject(BLACK_P

24、EN);dc.SelectStockObject(WHITE_BRUSH);if(wParam & MK_CONTROL)dc.Rectangle(m_X0,m_Y0,m_X1,m_Y1);if(wParam & MK_SHIFT)dc.Ellipse(m_X0,m_Y0,m_X1,m_Y1);return 0;BOOL CDemoApp:InitInstance()/入 口函数重载CDemoWnd *pFrame = new CDemoWnd();pFrame-Create(0,_T( 电气 1004郑邦猛);pFrame-ShowWindow(m_nCmdShow);this-m_pMai

25、nWnd = pFrame;/应用程序与窗口关联 return TRUE;(1)按下CTRL键,拖动鼠标绘制矩形(2)按下SHIFT键,拖动鼠标绘制椭圆 三.实验小结:通过此次试验,我们基本掌握了消息映射机制的基本原理和 手工添加消息映射的方法;掌握了在Visual C+ 6.0开发环 境调试程序的方法。MFC程序是在Win32应用程序的基础上 通过对工程属性设置,使其使用MFC作为动态的DLL相关联。 在实验过程中,有各种各样的问题,我们要耐心地解决。实验七MFC控件编程实验一、实验目的 熟悉Visual C+ 6.0开发环境;(2) 掌握MFC环境下标准控件的使用方法;(3) 熟练掌握在V

26、isual C+ 6.0开发环境调试程序的方法。二、实验内容创建如图所示的应用程序,在“形状”列表框中选择要绘制的图 形,在“笔颜色”下拉列表框中选择画笔的颜色,在“刷子颜色” 下拉列表框中选择画刷的颜色,在“线型”组框中选择画笔的线 型,在“填充类型”中选择画刷填充类型,单击“绘图”按钮在 “绘图设置”编辑框中显示选择的绘图设置选项,单击“退出” 按钮退出程序。三、实验报告(1)列表说明各个控件的属性设置;a列表框:b组合框:c.编辑框:d成员变量:(2)列出控件功能的实现代码/zbmDlg.h#if !defined(AFX_DE7_DLG_H_C7C42287_0904_433E_B4E

27、C_50389268A77F_INCLUDED_)#define AFX_DE7_DLG_H_C7C42287_0904_433E_B4EC_50389268A77F_INCLUDED_#if _MSC_VER 1000#pragma once#endifclass CDe7_Dlg : public CDialogpublic:CDe7_Dlg(CWnd* pParent = NULL);enum IDD = IDD_DE7_DIALOG ;CComboBox m_Combo2;CComboBox m_Combo1;CListBox m_List;CString m_Edit1;intm_n

28、LineStyle;intm_nBrushStyle;protected:virtual void DoDataExchange(CDataExchange* pDX);protected:HICON m_hIcon;virtual BOOL OnInitDialog();afx_msg void OnSysCommand(UINT nID, LPARAM lParam);afx_msg void OnPaint();afx_msg HCURSOR OnQueryDragIcon();afx_msg void OnButton1();afx_msg void OnButton2();DECLA

29、RE_MESSAGE_MAP();#endif/resource.h#define IDM_ABOUTBOX0x0010#define IDD_ABOUTBOX100#define IDS_ABOUTBOX101#define IDD_DE7_DIALOG102#define IDR_MAINFRAME128#define IDC_LIST11000#define IDC_COMBO11001#define IDC_COMBO21002#define IDC_RADIO11003#define IDC_RADIO21004#define IDC_RADIO31005#define IDC_RA

30、DIO41006#define IDC_RADIO51007#define IDC_RADIO61008#define IDC_RADIO71009#define IDC_RADIO81010#define IDC_EDIT11011#define IDC_BUTTON11012#define IDC_BUTTON21013#ifdef APSTUDIO_INVOKED#ifndef APSTUDIO_READONLY_SYMBOLS#define _APS_NEXT_RESOURCE_VALUE130#define _APS_NEXT_COMMAND_VALUE32771#define _A

31、PS_NEXT_CONTROL_VALUE1014#define _APS_NEXT_SYMED_VALUE101#endif#endif/zbm.h#if !defined(AFX_DE7_H_7FB9C959_320E_474D_BABB_5EE3DCB00DC6_INCLUDED )#define AFX_DE7_H_7FB9C959_320E_474D_BABB_5EE3DCB00DC6_INCLUDED_#if _MSC_VER 1000#pragma once#endif / _MSC_VER 1000#ifndef _AFXWIN_H_#error include stdafx.

32、h before including this file for PCH#endif#include resource.h class CDe7_App : public CWinApp public:CDe7_App();#endif /zbm.cpp#include stdafx.h#include zbm.h#include zbmDlg.h#ifdef _DEBUG#define new DEBUG_NEW#undef THIS_FILEstatic char THIS_FILE = _FILE.#endif /zbmDlg.cpp#include stdafx.h#include z

33、bm.h#include zbmDlg.h#ifdef _DEBUG#define new DEBUG_NEW#undef THIS_FILEstatic char THIS_FILE = _FILE.#endif(3) 实验小结:通过本次实验,我们基本掌握了消息映射机制的基本原理和 手工添加消息映射的方法;掌握了在Visual C+ 6.0开发环境 调试程序的方法,练习了 MFC环境下各种空间的使用,通过这种 所见即所得的形式,方便了应用程序的界面设计。同时,通过对 各种控件添加变量和消息映射,实现了真正意义上的面向对象编 程理念。在实验中,很容易出现各种各样的错误,要及时地向同 学老师们请

34、教,及时解决问题。实验八MFC鼠标做图编程实验一、实验目的 熟悉Visual C+ 6.0开发环境;(2) 掌握应用MFC类库编写鼠标绘图程序的方法;(3) 掌握MFC环境中绘图函数的使用方法。二、实验内容创建一个单文档应用程序,实现鼠标的绘图功能。要求:(1) 创建一个工具栏,有线段、矩形、椭圆三个按钮;(2) 绘图前,选择工具栏上的按钮,确定图形的形状。按下鼠标 左键,开始绘图,结合鼠标的光标坐标值,来确定图形的形状和 大小,并随着鼠标的移动在屏幕上实时绘制图形,放开鼠标左键, 确定最后的图形,绘制在屏幕上。三、实验报告(1)列表实现绘图功能的代码清单;resource.h#define

35、IDD_ABOUTBOX100#define IDR_MAINFRAME128#define IDR_DE8_TYPE129#define ID_MENUITEM3277132771#define ID_MENUITEM3277232772#define ID_MENUITEM3277332773#ifdef APSTUDIO_INVOKED#ifndef APSTUDIO_READONLY_SYMBOLS#define _APS_3D_CONTROLS1#define _APS_NEXT_RESOURCE_VALUE130#define _APS_NEXT_COMMAND_VALUE3277

36、4#define _APS_NEXT_CONTROL_VALUE1000#define _APS_NEXT_SYMED_VALUE101 #endif#endif/StdAfx.h#if !defined(AFX_STDAFX_H_19229470_D46E_40EF_B2C9_601AC9A3D23B_INCLUDED_)#defineAFX_STDAFX_H_19229470_D46E_40EF_B2C9_601AC9A3D23B_INCLUDED_#if _MSC_VER 1000#pragma once#endf / _MSC_VER 1000#define VC_EXTRALEAN#include #include #include #include #ifndef _AFX_NO_AFXCMN_SUPPORT#include #endif /MainFrm.h#if !defined(AFX_MAINFRM_H_70055295_CB2C_41C4_BC3A_7B442A9DA202_INCLUDED_)#defineAFX_MAINFRM_H_70055295_CB2C_41C4_BC3A_7B442A9DA202_IN

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号