ImageVerifierCode 换一换
格式:DOCX , 页数:49 ,大小:478.43KB ,
资源ID:5525512      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bingdoc.com/d-5525512.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(中国石油大学华东VC实验报告doc.docx)为本站会员(b****4)主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(发送邮件至service@bingdoc.com或直接QQ联系客服),我们立即给予删除!

中国石油大学华东VC实验报告doc.docx

1、中国石油大学华东VC实验报告doc实验一 熟悉Visual C+程序调试方法一、实验目的(1) 熟悉Visual C+ 6.0 开发环境;(2) 掌握在Visual C+ 6.0 开发环境调试程序的方法。二、实验内容(1) 创建三个项目,项目类型分别为:Win32 Console Application、Win32Application 和MFC AppWizard(exe),分别编译运行各个程序,观察各种项目类型程序的特点。(2) 创建一个Win32 Console Application 类型的项目,输入下面的代码,按照要求对代码进行调试。说明:下面的程序求1001000 以内的水仙花数,

2、所谓水仙花数就是一个三位的整数,其个位数字、十位数字和百位数字的立方和等于该数本身的值,则这个数称为水仙花数。#include iostream.h#include math.hvoid narcissus(); / 求水仙花数void main()narcissus();void narcissus()int x1; / 百位数字int x20; / 十位数字个位数字int x2; / 十位数字int x3; / 个位数字int count = 0; / 找到的水仙花数的总数for(int x=100; x1000; x+)x1 = x/100;x20 = x%100;x2 = x20/10

3、;x3 = x20%10;if(x1*x1*x1+x2*x2*x2+x3*x3*x3 = x)count+;coutOne narcissus number found:xendl;coutThe total number of narcissus numbers is:countendl;调试要求:􀁺 在程序代码的 main 函数中设置断点,启动程序执行到断点处停止;􀁺 在函数 narcissus 调用处进入函数内部,跟踪函数执行的过程;􀁺 单步执行程序,观察各个变量值的变化情况;􀁺 单步执行若干步后,跳出函数体,回到

4、main 函数。三、运行结果:四、记录调试过程中变量值的变化情况:五、在Visual C+ 6.0 中如何进行程序的跟踪调试;在Visual C+ 6.0 中利用上述调试工具里的按钮以及设置断点,F11按钮进行程序的跟踪调试。六、心得与体会: 本次实验是我严格意义上第一次做的VC+的程序,虽然上课时认真听讲,但还是对它有点陌生感。但是在其他同学的积极帮助下,我最终还是完成率任务。通过本次实验,我熟悉了Visual C+ 6.0 的开发环境,知道了Win32 Console Application、Win32Application 和MFC AppWizard(exe)这三种项目类型对应的程序特

5、点,知道如何调试程序,初步了解了各个项目类型程序的特点。总之,不管以前基础如何,我一定要学好VC,为以后打下基础。实验二 熟悉Windows 源程序基本结构一、实验目的(1) 熟悉Visual C+ 6.0 开发环境;(2) 熟悉Windows 系统事件驱动的运行机制;(3) 熟悉Windows 应用程序源程序基本结构;二、实验内容创建一个空白的 Win32 Application 应用程序,建立相关文件,手工输入下列代码,实现一个Windows 窗口程序。三、源程序#include windows.hLRESULT CALLBACK WndProc(HWND hwnd,UINT messga

6、e,WPARAM wParam,LPARAM lParam);/LRESULT处理消息产生的一个有符号值;/WPARAM消息类型/LPARAM传递参数int WINAPI WinMain (HINSTANCE hThisInst, HINSTANCE hPrevInst,LPSTR lpszCmdLine, int nCmdShow)/WINAPI函数/LPSTR字符串WNDCLASS ws; /WNDCLASS窗口类HWND hWnd;MSG msg;ws.style = 0;ws.lpfnWndProc = WndProc;/WNDCLASSEX 中最重要的成员。前缀lpfn 表示该成员是

7、一个指向函数的长指针ws.cbClsExtra = 0;ws.cbWndExtra = 0;ws.hInstance = hThisInst;ws.hIcon = LoadIcon(NULL, IDI_HAND);/Loadlcon图标 ws.hCursor = LoadCursor(NULL,IDC_CROSS);/hCursor光标句柄/ IDC_CROSS十字光标 ws.hbrBackground = (HBRUSH) GetStockObject(WHITE_BRUSH);/ hbrBackground是主窗口背景色ws.lpszMenuName = NULL;ws.lpszClass

8、Name = DemoClass;if(!RegisterClass(&ws)/RegisterClass注册窗口类return -1;hWnd = CreateWindow(DemoClass,My First Windows Program,WS_OVERLAPPEDWINDOW,100,200,640,480,NULL,NULL,hThisInst,NULL);ShowWindow(hWnd,nCmdShow);UpdateWindow(hWnd);while(GetMessage(&msg,NULL,0,0)TranslateMessage(&msg);/该函数将虚拟键消息转换为字符消

9、息DispatchMessage(&msg);/函数功能该函数分发一个消息给窗口程序。return msg.wParam;LRESULT CALLBACK WndProc(HWND hwnd,UINT messgae,WPARAM wParam,LPARAM lParam)switch(messgae)case WM_DESTROY:/发送WM_QUIT消息PostQuitMessage(0);/让消息循环退出break;default:return DefWindowProc(hwnd,messgae,wParam,lParam);return 0;四、运行结果1、该运行结果为鼠标不在对话框

10、内的情况:2、该图为鼠标在对话框内的情况:五、Windows 源程序的结构特点,及各个主要程序段的作用1、事件驱动的程序设计传统的MS-DOS程序主要采用顺序的、关联的、过程驱动的程序设计方法。而事件驱动程序设计是一种全新的程序设计方法,它不是由事件的顺序来控制,而是由事件的发生来控制,而这种事件的发生是随机的、不确定的,并没有预定的顺序,这样就允许程序的的用户用各种合理的顺序来安排程序的流程。2、消息循环与输入消息类似于DOS下的用户输入,但比DOS的输入来源要广,Windows应用程序的消息来源有以下四种:(1)输入消息;(2)控制消息;(3)系统消息;(4)用户消息。3、图形输出Wind

11、ows程序不仅在输入上与DOS程序不同,而且在程序输出上也与DOS有着很大不同,主要表现为:(1)、DOS程序独占整个显示屏幕,其他程序在后台等待。(2)、Windows程序的所有输出都是图形。(3)、Windows下的输出是设备无关的。4、资源共享对于DOS程序来说,它运行时独占系统的全部资源,包括显示器、内存等,在程序结束时才释放资源。而Windows是一个多任务的操作系统,各个应用程序共享系统提供的资源,常见的资源包括:设备上下文,画刷,画笔,字体,对话框控制,对话框,图标,定时器,插入符号,通信端口,电话线等。5、Windows程序的组成编写一个典型的Windows应用程序,一般需要:

12、(1)、C,CPP源程序文件;(2)、H,HPP头文件;(3)、资源文件。6Windows 源程序的特点为:图形界面,面向对象程序设计,事件驱动,高效的内存管理,设备独立性动态连接。六、实验总结1、心得体会:通过本次上机实验,受益匪浅。虽然本次实验的源程序已给出,但是我们不能仅仅局限于以给定的程序,还应深入了解其所代表的意义,了解其功能,初步掌握其运行机理。通过本次实验课,我又学到了许多新知识,扩展了眼界,并一定程度上对老师上课时所讲的内容进行了巩固。实验三 Windows 图形绘制编程实验一、 实验目的(1) 熟悉Visual C+ 6.0 开发环境;(2) 掌握Windows 图形输出的方

13、法;(3) 理解设备环境、画笔、画刷的概念,掌握常用的绘图函数。二、实验内容请编写程序,要求如下:(1) 定义一支黄色画笔,绘制一条线段;(1) 定义一支紫色画笔,绘制一条多段线;(3) 定义一支红色画笔,绘制一个正方形,并用适当的画刷填充图形内部;(4) 定义一支绿色画笔,绘制一个圆,并用适当的画刷填充图形内部;(5) 定义一支蓝色画笔,绘制一个正六边形,并用适当的画刷填充图形内部。三、源程序/ 314.cpp : Defines the entry point for the application./#include stdafx.h#include resource.h#define

14、MAX_LOADSTRING 100/ Global Variables:HINSTANCE hInst; / current instanceTCHAR szTitleMAX_LOADSTRING; / The title bar textTCHAR szWindowClassMAX_LOADSTRING; / The title bar text/ Foward declarations of functions included in this code module:ATOM MyRegisterClass(HINSTANCE hInstance);BOOL InitInstance(

15、HINSTANCE, int);LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM);LRESULT CALLBACK About(HWND, UINT, WPARAM, LPARAM);int APIENTRY WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow) / TODO: Place code here. MSG msg; HACCEL hAccelTable; / Initialize global strings

16、LoadString(hInstance, IDS_APP_TITLE, szTitle, MAX_LOADSTRING); LoadString(hInstance, IDC_MY314, szWindowClass, MAX_LOADSTRING); MyRegisterClass(hInstance); / Perform application initialization: if (!InitInstance (hInstance, nCmdShow) return FALSE; hAccelTable = LoadAccelerators(hInstance, (LPCTSTR)I

17、DC_MY314); / Main message loop: while (GetMessage(&msg, NULL, 0, 0) if (!TranslateAccelerator(msg.hwnd, hAccelTable, &msg) TranslateMessage(&msg); DispatchMessage(&msg); return msg.wParam;/ FUNCTION: MyRegisterClass()/ PURPOSE: Registers the window class./ COMMENTS:/ This function and its usage is o

18、nly necessary if you want this code/ to be compatible with Win32 systems prior to the RegisterClassEx/ function that was added to Windows 95. It is important to call this function/ so that the application will get well formed small icons associated/ with it./ATOM MyRegisterClass(HINSTANCE hInstance)

19、 WNDCLASSEX wcex; wcex.cbSize = sizeof(WNDCLASSEX); wcex.style = CS_HREDRAW | CS_VREDRAW; wcex.lpfnWndProc = (WNDPROC)WndProc; wcex.cbClsExtra = 0; wcex.cbWndExtra = 0; wcex.hInstance = hInstance; wcex.hIcon = LoadIcon(hInstance, (LPCTSTR)IDI_MY314); wcex.hCursor = LoadCursor(NULL, IDC_ARROW); wcex.

20、hbrBackground = (HBRUSH)(COLOR_WINDOW+1); wcex.lpszMenuName = (LPCSTR)IDC_MY314; wcex.lpszClassName = szWindowClass; wcex.hIconSm = LoadIcon(wcex.hInstance, (LPCTSTR)IDI_SMALL); return RegisterClassEx(&wcex);/ FUNCTION: InitInstance(HANDLE, int)/ PURPOSE: Saves instance handle and creates main windo

21、w/ COMMENTS:/ In this function, we save the instance handle in a global variable and/ create and display the main program window./BOOL InitInstance(HINSTANCE hInstance, int nCmdShow) HWND hWnd; hInst = hInstance; / Store instance handle in our global variable hWnd = CreateWindow(szWindowClass, szTit

22、le, WS_OVERLAPPEDWINDOW, CW_USEDEFAULT, 0, CW_USEDEFAULT, 0, NULL, NULL, hInstance, NULL); if (!hWnd) return FALSE; ShowWindow(hWnd, nCmdShow); UpdateWindow(hWnd); return TRUE;/ FUNCTION: WndProc(HWND, unsigned, WORD, LONG)/ PURPOSE: Processes messages for the main window./ WM_COMMAND - process the

23、application menu/ WM_PAINT - Paint the main window/ WM_DESTROY - post a quit message and return/LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam) int wmId, wmEvent; PAINTSTRUCT ps; HDC hdc;HPEN hP; POINT pt=70,200,20,180,20,100; POINT pm=200,80,300,80,350,156,300,237,20

24、0,237,150,156;HBRUSH hBr; TCHAR szHelloMAX_LOADSTRING; LoadString(hInst, IDS_HELLO, szHello, MAX_LOADSTRING); switch (message) case WM_COMMAND: wmId = LOWORD(wParam); wmEvent = HIWORD(wParam); / Parse the menu selections: switch (wmId) case IDM_ABOUT: DialogBox(hInst, (LPCTSTR)IDD_ABOUTBOX, hWnd, (D

25、LGPROC)About); break; case IDM_EXIT: DestroyWindow(hWnd); break; default: return DefWindowProc(hWnd, message, wParam, lParam); break; case WM_PAINT: hdc = BeginPaint(hWnd, &ps); / TODO: Add any drawing code here. RECT rt;SetMapMode(hdc,MM_ANISOTROPIC); hP=CreatePen(PS_SOLID,9,RGB(255,255,0);/黄色画笔 Se

26、lectObject(hdc,hP); MoveToEx(hdc,15,15,NULL); LineTo(hdc,200,15); /多线段 hP=CreatePen(PS_SOLID,4,RGB(200,0,200); SelectObject(hdc,hP); Polyline(hdc,pt,3);/红色hP=CreatePen(PS_SOLID,2,RGB(255,0,0);SelectObject(hdc,hP);hBr=(HBRUSH)GetStockObject(DKGRAY_BRUSH); SelectObject(hdc,hBr);Rectangle(hdc,300,300,4

27、00,400);/绿色hP=CreatePen(PS_SOLID,2,RGB(0,255,0);SelectObject(hdc,hP);hBr=(HBRUSH)GetStockObject(GRAY_BRUSH); SelectObject(hdc,hBr);Ellipse(hdc, 30,30,100,100);/蓝色hP=CreatePen(PS_SOLID,2,RGB(0,0,255);SelectObject(hdc,hP);hBr=(HBRUSH)GetStockObject(GRAY_BRUSH); SelectObject(hdc,hBr); Polygon(hdc,pm,6)

28、; GetClientRect(hWnd, &rt); DrawText(hdc, szHello, strlen(szHello), &rt, DT_CENTER); EndPaint(hWnd, &ps); break; case WM_DESTROY: PostQuitMessage(0); break; default: return DefWindowProc(hWnd, message, wParam, lParam); return 0;/ Mesage handler for about box.LRESULT CALLBACK About(HWND hDlg, UINT me

29、ssage, WPARAM wParam, LPARAM lParam) switch (message) case WM_INITDIALOG: return TRUE; case WM_COMMAND: if (LOWORD(wParam) = IDOK | LOWORD(wParam) = IDCANCEL) EndDialog(hDlg, LOWORD(wParam); return TRUE; break; return FALSE;四、运行结果:五、在Windows 程序中绘制图形的基本操作步骤1、获取绘图的窗口句柄;2、由绘图句柄得到设备环境句柄HDC;3、图形绘制:(1)、画笔:CreatePen、SelectObject、DeleteObject、CreateSolidBrush、GetStockObject、CreateHatchBrush;(2)、直线:MoveToEx、LineTo、Rectangle、Ellipse。六、实验心得与体会:本次实验是对Windows图形绘制的编程,虽然在课堂上老师仔细讲过该如何编程,但是在轮到自己做实验时还是有点力不从心。仔细思考一下,还是由于自己的基本知

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2