人机交互实验报告

上传人:第*** 文档编号:31775848 上传时间:2018-02-09 格式:DOC 页数:31 大小:787.84KB
返回 下载 相关 举报
人机交互实验报告_第1页
第1页 / 共31页
人机交互实验报告_第2页
第2页 / 共31页
人机交互实验报告_第3页
第3页 / 共31页
人机交互实验报告_第4页
第4页 / 共31页
人机交互实验报告_第5页
第5页 / 共31页
点击查看更多>>
资源描述

《人机交互实验报告》由会员分享,可在线阅读,更多相关《人机交互实验报告(31页珍藏版)》请在金锄头文库上搜索。

1、1数字媒体学院上机实验报告 I课程名称:程序设计 II 班级: 实验日期:姓名: 学号: 指导教师:实验序号:01 实验成绩:一、实验名称:测试创建函数二、实验目的及要求1. 熟悉 Windows 程序设计2. 掌握 VS 的使用3. 了解程序窗口的设计3、实验环境:VS2012四、实验内容编制一个程序,设计一个程序窗口,测试创建函数的风格参数,简单总结窗口有哪些风格。2五、算法描述及实验步骤1. 创建一个基于对话框的项目2. 给对话框加入相应的操作按钮3. 给按钮加上代码,设置属性4. 为实现操作添加必要函数六、调试过程及实验结果我就只是在源代码里面更改了几次风格参数的代码,看了下效果,并将

2、风格参数总结成了一份 word 文档。七、总结本次实验,我掌握了一些具体函数的定义和调用方法。在操作的过程中深刻地体会到函数调用的便捷。通过 vs 使用,我亲自感受并实践了程序设计的思想,同时对 vs 程序设计也有了总体的认识。此外,编写程序的严谨思想也令我深深地感受一丝不苟地工作的重要性。38、附录LRESULT CALLBACK WndProc (HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)HDC hdc ;PAINTSTRUCT ps ;RECT rect ;switch (message)case WM_CREATE:Pl

3、aySound (TEXT (123.wav), NULL, SND_FILENAME | SND_ASYNC) ;return 0 ; case WM_PAINT:hdc = BeginPaint (hwnd, GetClientRect (hwnd, DrawText (hdc, TEXT (Hello, Windows 7!), -1, &rect,DT_SINGLELINE | DT_CENTER | DT_VCENTER) ;EndPaint (hwnd, return 0 ;case WM_DESTROY:PostQuitMessage (0) ;return 0 ;return

4、DefWindowProc (hwnd, message, wParam, lParam) ;运行结果截图:4上机实验报告 II课程名称:程序设计 II 班级: 实验日期:姓名: 学号: 指导教师:实验序号:02 实验成绩:一、实验名称:绘制小船二、实验目的及要求1.掌握 VS 的使用2.了解程序窗口的设计3.熟悉图形设备接口、绘图和文字3、实验环境:VS2012四、实验内容绘制一艘小船,有颜色的帆船,标注船长,有坐标系。五、算法描述及实验步骤1.创建一个基于对话框的项目2.确定船的各点之间的坐标关系2.利用函数将船的坐标关系绘制出来3.填充颜色5六、调试过程及实验结果起初画船身的时候,坐标没

5、算好,船是奇形怪状的,后来经过研究确定了坐标,确定每个坐标点比较繁琐,花了比较多的时间,而且中间因为计算错误更改了很多次。各个图形建的顺序不清楚,也很奇怪,后来解决了。后来颜色也不会填,通过问别人和百度解决了。6七、总结这次实验是图形的绘制,本次实验内容很多,既要打开文件读取数据,又要绘制坐标,轴,坐标刻度,还要对坐标进行转化,比较麻烦,将它们完美地融合在一起却不简单。这已经是第二个实验了,也学了编程的知识,虽然有的函数,代码我知道它是什么功能,我会用,但却不是很理解,将所学进行改编融合这方面我还是很欠缺的。这个程序虽然是写完了,结果也运行出来了,但我知道它是写的很糟糕的,类只是函数的堆砌,完

6、全算不上真正的类,运行也存在很大的问题。刚开始编译时还有好多错误,多编译几次竟然就通过了,但是通过之后有时是弹出两个或多个打开文件的对话框,有时是一个,往往还伴随着黑屏。我想应该是数据读取的函数调用有问题,具体是什么原因还不是很清楚,明天上午再去请教同学吧。7八、附录LRESULT CALLBACK WndProc (HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)static TCHAR szBuffer8=TEXT(船有20米长。);TEXTMETRIC tm;static int cxChar,cyChar;static POI

7、NT BoatFigure4static int cxClient, cyClient ;HDC hdc ;int i,j ;PAINTSTRUCT ps ;POINT Boat4 ;static int CloudFigure124;int Cloud124;static POINT PoleFigure4; POINT Pole4;static POINT FlagFigure3;POINT Flag3;static int BubbleFigure34int Bubble34;static POINT ArrowFigure43;POINT Arrow43;HBRUSH hOrangeB

8、rush,hBlueBrush,hBrownBrush,hRedBrush;switch (message)case WM_SIZE:cxClient = LOWORD (lParam) ;cyClient = HIWORD (lParam) ;return 0 ;/case WM_PAINT:hdc = BeginPaint (hwnd, GetTextMetrics(hdc,cxChar=tm.tmAveCharWidth;cyChar=tm.tmHeight+tm.tmExternalLeading;SetMapMode(hdc,MM_ISOTROPIC);SetWindowExtEx(

9、hdc,cxClient/2,cyClient/2,NULL);SetViewportExtEx(hdc,cxClient/2,-cyClient/2,NULL);SetViewportOrgEx(hdc,cxClient/2,cyClient/2,NULL);for(i=0;i 0)xCaret- ;SendMessage (hwnd, WM_KEYDOWN, VK_DELETE, 1) ;break ;case t: / tabdoSendMessage (hwnd, WM_CHAR, , 1) ;while (xCaret % 8 != 0) ;break ;case n: / line

10、 feedif (+yCaret = cyBuffer)yCaret = 0 ;break ;case r: / carriage return15xCaret = 0 ; if (+yCaret = cyBuffer)yCaret = 0 ;break ;case x1B: / escapefor (y = 0 ; y = 3 & i (cyClient*cxDesktop/cyDesktop)?TRUE:FALSE;modeorginal00=0;modeorginal01=0;modeorginal02=cxClient;modeorginal03=cyClient; modeorgin

11、al10=cxClient;modeorginal11=0;modeorginal12=-cxClient;modeorginal13=cyClient; modeorginal20=0;modeorginal21=cyClient;modeorginal22=cxClient;modeorginal23=-cyClient; modeorginal30=cxClient;modeorginal31=cyClient;modeorginal32=-cxClient;modeorginal33=-cyClient;return 0 ;case WM_PAINT: hdcClient = Begi

12、nPaint (hwnd, hdcWindow = GetWindowDC (GetDesktopWindow() ;if(stretched)for(int i=0;i4;i+)modei=modeorginaliCurrenti;elsefor(int i=0;i4;i+)modei=modeorginaliCurrenti;switch(iCurrent)case 0:if(iscxClientlong)29mode2=mode3*cxDesktop/cyDesktop;elsemode3=mode2*cyDesktop/cxDesktop;break;case 1:if(iscxCli

13、entlong)mode2=-mode3*cxDesktop/cyDesktop;mode0=-mode2;elsemode3=-mode2*cyDesktop/cxDesktop;break;case 2:if(iscxClientlong)mode2=-mode3*cxDesktop/cyDesktop;elsemode3=-mode2*cyDesktop/cxDesktop;mode1=-mode3;break;case 3:if(iscxClientlong)mode2=mode3*cxDesktop/cyDesktop;mode0=-mode2;elsemode3=mode2*cyD

14、esktop/cxDesktop;mode1=-mode3;break;30StretchBlt(hdcClient, mode0, mode1, mode2, mode3,hdcWindow, 0, 0, cxDesktop, cyDesktop, SRCCOPY) ;ReleaseDC (hwnd, hdcWindow) ;EndPaint (hwnd, return 0 ;case WM_DESTROY:PostQuitMessage (0) ;return 0 ;return DefWindowProc (hwnd, message, wParam, lParam) ;运行结果截图:正常截出时:显示方式更改为等比:31

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 行业资料 > 工业设计

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号