




已阅读5页,还剩17页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
学生学号 0121210680117实验课成绩学 生 实 验 报 告 书实验课程名称可视化编程(VC)开 课 学 院计算机科学与技术学院指导教师姓名岑 丽学 生 姓 名柏 扬学生专业班级软件1201班2013-2014学年第2学期实验课程名称:_可视化编程(VC) 实验项目名称熟悉VC IDE,创建一个简单的VC界面实验成绩实 验 者柏扬专业班级组 别同 组 者实验日期 年 月 日一部分:实验预习报告(包括实验目的、意义,实验基本原理与方法,主要仪器设备及耗材,实验方案与技术路线等)1.实验目的意义及原理方法目的:用API创建一个基本窗口本实验运用Windows编程的基础知识,包括窗口、事件驱动的基本概念等,进一步了解认识Windows编程中经常用到的“消息”以及对“消息”的响应,及Windows程序的结构框架。通过这些内容的学习及本次实验的练习,加深对这些知识点的理解及在实际编程中的应用。2.主要仪器设备及耗材PC一台、Microsoft Visual C+ 6.0第二部分:实验过程记录(可加页)(包括实验原始数据记录,实验现象记录,实验过程发现的问题等)#includeLRESULT CALLBACK WndProc(HWND hwnd,UINT message,WPARAM wParam,LPARAM lParam); /函数原型说明int WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hPreInstance,LPSTR lpCmdLine,int nCmdShow) /入口函数 HWND hwnd; MSG Msg; WNDCLASS wndclass; wndclass.style=0; wndclass.lpfnWndProc=WndProc; wndclass.cbClsExtra=0; wndclass.cbWndExtra=0; wndclass.hInstance=hInstance; wndclass.hIcon=LoadIcon(NULL,IDI_APPLICATION); wndclass.hCursor=LoadCursor(NULL,IDC_ARROW); wndclass.hbrBackground=(HBRUSH)GetStockObject(WHITE_BRUSH); wndclass.lpszMenuName=NULL; wndclass.lpszClassName=基本窗口; if(!RegisterClass(&wndclass) /窗口的注册 MessageBeep(0); return FALSE; hwnd=CreateWindow /创建窗口 ( 基本窗口, My-Windows, WS_OVERLAPPEDWINDOW, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, NULL, NULL, hInstance, NULL); ShowWindow(hwnd,nCmdShow); /显示窗口 UpdateWindow(hwnd);while(GetMessage(&Msg,NULL,0,0) TranslateMessage(&Msg); DispatchMessage(&Msg); return Msg.wParam;long WINAPI WndProc(HWND hwnd,UINT message,WPARAM wParam,LPARAM lParam) /窗口函数switch(message)case WM_DESTROY:PostQuitMessage(0);break;default:return DefWindowProc(hwnd,message,wParam,lParam);return 0;第三部分 结果与讨论(可加页)1、 实验结果分析(包括数据处理、实验现象分析、影响因素讨论、综合分析和结论等)实验运行结果如下:二、小结、建议及体会通过这次的实验,我学习掌握了如何用API函数来创建一个基本的窗口,在实践中掌握了Windows编程的基础知识和应用,认识了解了很多专业术语,并且对可视化程序设计的学习有了一个大概的概念,但是觉得这些函数还是有些复杂,需要多上机实验才可以更好的掌握。实验课程名称:_可视化编程(VC) 实验项目名称基于API编程(一)实验成绩实 验 者柏扬专业班级组 别同 组 者实验日期 年 月 日一部分:实验预习报告(包括实验目的、意义,实验基本原理与方法,主要仪器设备及耗材,实验方案与技术路线等)1. 实验目的意义及原理方法目的:在窗口中画一个旋转的风车,风车中有三个叶片,颜色分别为红、黄和蓝,叶片外侧有一个外接圆。运用所学的图形设备接口的基本概念以及Windows应用程序中绘图的主要步骤和绘图函数,并查阅相关资料和书籍,完成本实验的要求,掌握Windows应用程序中有关图形的编程技术及其应用。2.主要仪器设备及耗材PC一台、Microsoft Visual C+ 6.0第二部分:实验过程记录(可加页)(包括实验原始数据记录,实验现象记录,实验过程发现的问题等)旋转小风车的源程序代码:#include #include#define PI 3.141592654int n=0;long WINAPI WndProc(HWND hWnd,UINT iMessage,UINT wParam,LONG lParam);/消息处理函数声明.BOOL InitWindowsClass(HINSTANCE hInstance);/初始化窗口类声明BOOL InitWindows(HINSTANCE hInstance, int nCmdShow);/初始化窗口声明.HWND hWndMain;int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow)/主函数HWND hwnd;MSG Msg;WNDCLASS wn;char lpszClassName=窗口;char lpszTitle=My_Windows;wn.style =0;wn.lpfnWndProc=WndProc;wn.cbClsExtra=0;wn.cbWndExtra=0;wn.hInstance=hInstance;wn.hIcon=LoadIcon(NULL,IDI_APPLICATION);wn.hCursor=LoadCursor(NULL,IDC_ARROW);wn.hbrBackground=(HBRUSH)GetStockObject(WHITE_BRUSH);wn.lpszMenuName=NULL;wn.lpszClassName=lpszClassName;RegisterClass(&wn);hwnd=CreateWindow(lpszClassName,lpszTitle,WS_OVERLAPPEDWINDOW,CW_USEDEFAULT,CW_USEDEFAULT,CW_USEDEFAULT,CW_USEDEFAULT,NULL,NULL,hInstance,NULL);ShowWindow(hwnd,nCmdShow);UpdateWindow(hwnd);while(GetMessage(&Msg,0,0,0)TranslateMessage(&Msg);/消息循环.DispatchMessage(&Msg);return Msg.wParam;long WINAPI WndProc(HWND hWnd,UINT message,UINT wParam,LONG lParam)/消息处理函数.switch(message)HDC hdc;PAINTSTRUCT ps;HPEN hp;HBRUSH hb;int x,y;int jiaodu;case WM_PAINT:hdc=BeginPaint(hWnd,&ps);SetMapMode(hdc,MM_ANISOTROPIC);SetWindowExtEx(hdc,400,300,NULL); /设置窗口逻辑单位 ,所谓逻辑单位,即在比例一致情况下选择足够大的区域SetViewportExtEx(hdc,550,450,NULL);SetViewportOrgEx(hdc,300,200,NULL);Ellipse(hdc,-100,100,100,-100);hp=(HPEN)GetStockObject(BLACK_PEN);hb=CreateSolidBrush(RGB(255,0,0);SelectObject(hdc,hb);SelectObject(hdc,hp);jiaodu=int(n*PI/10);x=int(50*cos(jiaodu);y=int(50*sin(jiaodu);Pie(hdc,x-50,y-50,x+50,y+50,0,0,2*x,2*y);hb=CreateSolidBrush(RGB(0,255,0);SelectObject(hdc,hb);x=int(50*cos(jiaodu+2*PI/3);y=int(50*sin(jiaodu+2*PI/3);Pie(hdc,x-50,y-50,x+50,y+50,0,0,2*x,2*y);hb=CreateSolidBrush(RGB(0,0,255);SelectObject(hdc,hb);x=int(50*cos(jiaodu+4*PI/3);y=int(50*sin(jiaodu+4*PI/3);Pie(hdc,x-50,y-50,x+50,y+50,0,0,2*x,2*y);n+;Sleep(100);InvalidateRect(hWnd,NULL,1); EndPaint(hWnd,&ps);return 0 ;case WM_DESTROY:/处理绘图消息.PostQuitMessage(0);default:return(DefWindowProc(hWnd,message,wParam,lParam);return(0);第三部分 结果与讨论(可加页)一、实验结果分析(包括数据处理、实验现象分析、影响因素讨论、综合分析和结论等)程序运行结果如下:2、 小结、建议及体会 通过使用API函数在窗口中对旋转风车的绘制,加深了对Windows应用程序中绘图函数应用的理解,掌握了一些基本的有关图形的编程技术及其应用。 这次实验让我体会到VC+可视化编程功能的强大,同时也体会到它的复杂,方法函数的繁多,而且很多函数的定义及使用课本上没有,需要主动查阅一些有关资料,多参考分析网上现有的一些经典源代码,加深对这些常用方法函数是理解和使用。实验课程名称:_可视化编程(VC) 实验项目名称基于API编程(二)实验成绩实 验 者柏扬专业班级组 别同 组 者实验日期 年 月 日一部分:实验预习报告(包括实验目的、意义,实验基本原理与方法,主要仪器设备及耗材,实验方案与技术路线等)1. 实验目的意义及原理方法目的:设计一个键盘程序,当按Ctrl键时,表明要画椭圆;当按Shift键时,表明要画矩形。然后单击向右箭头键,椭圆或矩形的长度加10;单击向下箭头时,椭圆或矩形的高度加10;单击Home键时,整个圆形或矩形向左移动;单击End键时,整个圆形或矩形向右移动;单击PageUp键时,整个圆形或矩形向上移动;单击PageDown键时,整个圆形或矩形向下移动。通过Windows应用程序中常见的键盘及鼠标的操作及其编程方法和对鼠标操作的响应知识,实现上述实验的目的,在实验中学习掌握在Windows应用程序中有关键盘和鼠标的应用和操作。2. 主要仪器设备及耗材PC一台、VC6.0 第二部分:实验过程记录(可加页)(包括实验原始数据记录,实验现象记录,实验过程发现的问题等)1. 键盘程序源代码#include#include#include#includeBOOL WINPAIWndProc(HWND hWnd,UINT iMessage,UINT wParam,LONG lParam);BOOL InitWindowsClass(HINSTANCE hInstance);BOOL InitWindows(HINSTANCE hInstance,int nCmdShow);/窗口显示int WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,LPSTR lpCmdLine,int nCmdShow) MSG Message; if(!InitWindowsClass(hInstance) return FALSE; if(!InitWindows(hInstance,nCmdShow) return FALSE; while(GetMessage(&Message,0,0,0) TranslateMessage(&Message); DispatchMessage(&Message); return Message.wParam;LRESULT CALLBACK WndProc(HWND hWnd,UINT iMessage,UINT wParam,LONG lParam) HDC hdc; HPEN hp; static int c,s,left,top,right,bottom; HBRUSH hb; PAINTSTRUCT ps; switch(iMessage) case WM_KEYDOWN: if(wParam=VK_CONTROL)c=1;s=0;left=0;right=50;top=0;bottom=50; InvalidateRect(hWnd,NULL,1);else if(wParam=VK_SHIFT)s=1; c=0;left=0;top=0;right=50;bottom=50;InvalidateRect(hWnd,NULL,1);else if(wParam=VK_RIGHT)right=right+10;if(s=1|c=1)InvalidateRect(hWnd,NULL,1);else if(wParam=VK_DOWN)bottom=bottom+10;if(s=1|c=1)InvalidateRect(hWnd,NULL,1);else if(wParam=VK_PRIOR)top=top-10;bottom=bottom-10;if(s=1|c=1)InvalidateRect(hWnd,NULL,1);else if(wParam=VK_NEXT)top=top+10;bottom=bottom+10;if(s=1|c=1)InvalidateRect(hWnd,NULL,1);else if(wParam=VK_HOME)left=left-10;right=right-10;if(s=1|c=1)InvalidateRect(hWnd,NULL,1);else if(wParam=VK_END)left=left+10;right=right+10;if(s=1|c=1)InvalidateRect(hWnd,NULL,1);break;case WM_PAINT:hdc=BeginPaint(hWnd,&ps);SetMapMode(hdc,MM_TEXT); hp=(HPEN)GetStockObject(BLACK_PEN);hb=(HBRUSH)GetStockObject(WHITE_BRUSH); SelectObject(hdc,hb);SelectObject(hdc,hp);if(c=1)Ellipse(hdc,left,top,right,bottom);if(s=1)Rectangle(hdc,left,top,right,bottom); EndPaint(hWnd,&ps); DeleteObject(hp); DeleteObject(hp); break; case WM_DESTROY: PostQuitMessage(0); return 0; default: return(DefWindowProc(hWnd,iMessage,wParam,lParam); return 0;BOOL InitWindows(HINSTANCE hInstance,int nCmdShow) HWND hWnd; hWnd=CreateWindow(键盘响应, 键盘响应, WS_OVERLAPPEDWINDOW, CW_USEDEFAULT, 0, CW_USEDEFAULT, 0, NULL, NULL, hInstance, NULL); if(!hWnd) return FALSE; ShowWindow(hWnd,nCmdShow); UpdateWindow(hWnd); return TRUE;BOOL InitWindowsClass(HINSTANCE hInstance) WNDCLASS WndClass; WndClass.cbClsExtra=0; WndClass.cbWndExtra=0; WndClass.hbrBackground=(HBRUSH)(GetStockObject(WHITE_BRUSH); WndClass.hCursor=LoadCursor(NULL,IDC_ARROW); WndClass.hIcon=LoadIcon(NULL,END); WndClass.hInstance=hInstance; WndClass.lpfnWndProc=WndProc; WndClass.lpszClassName=键盘响应; WndClass.lpszMenuName=NULL; WndClass.style=0; return RegisterClass(&WndClass);第三部分 结果与讨论(可加页)一、实验结果分析(包括数据处理、实验现象分析、影响因素讨论、综合分析和结论等)程序运行结果如下:二、小结、建议及体会 通过这次实验,熟悉了Windows应用程序中常见的键盘及鼠标的操作及其编程方法和对鼠标操作的响应,对API编程的应用有了跟深入广泛的了解,体会到上机多做实验的重要性,很多知识只有在实践中才能真正理解并转化为自己的知识。实验课程名称:_可视化编程(VC) 实验项目名称基于MFC编程(一)实验成绩实 验 者柏扬专业班级组 别同 组 者实验日期 年 月 日一部分:实验预习报告(包括实验目的、意义,实验基本原理与方法,主要仪器设备及耗材,实验方案与技术路线等)1. 实验目的意义及原理方法目的:用MFC的向导创建编辑框,在编辑框中实现算术加、减、乘和除的运算。本实验应用所学的编辑框控件知识,通过编程简易计算器,熟悉使用MFC编程的内容及步骤,加深对MFC应用的理解和认识。2 主要仪器设备及耗材PC一台、VC6.0 第二部分:实验过程记录(可加页)(包括实验原始数据记录,实验现象记录,实验过程发现的问题等)1. 用MFC编程简易计算器的主要源程序代码:void CMyDlg:OnButton6() OnOK();void CMyDlg:OnButton5() 重置 m_e1=0;m_e2=0; i=0;m_result.Format(%d,i);UpdateData(FALSE);void CMyDlg:OnButton4() 除法 UpdateData();if(m_e2=0)AfxMessageBox(分母不能为0!);elsefloat(i)=float(m_e1)/float(m_e2);m_result.Format(%f,i);UpdateData(FALSE);void CMyDlg:OnButton3() 乘法 UpdateData();float(i)=float(m_e1*m_e2); m_result.Format(%f,i);UpdateData(FALSE);void CMyDlg:OnButton2() 减法 UpdateData(); float(i)=float(m_e1-m_e2);m_result.Format(%f,i);UpdateData(FALSE);void CMyDlg:OnButton1() 加法/ TODO: Add your control notification handler code here UpdateData();float(i)=float(m_e1+m_e2);m_result.Format(%f,i);UpdateData(FALSE);第三部分 结果与讨论(可加页)一、实验结果分析(包括数据处理、实验现象分析、影响因素讨论、综合分析和结论等)程序运行结果如下:二、小结、建议及体会 通过本次实验,初次使用MFC编程了一个简易的计算器,对MFC的编程步骤及建工程方法有了深入了解,在MFC中用到很多前面学过的API函数在类库中封装的成员函数,对常用控件的使用及其特点和用法有了更深入的认识,对MFC的使用有了初步的体会。学过API之后,感觉MFC较简单,但也需要多加上机练习。实验课程名称:_可视化编程(VC) 实验项目名称基于MFC编程(二)实验成绩实 验 者柏扬专业班级组 别同 组 者实验日期 年 月 日一部分:实验预习报告(包括实验目的、意义,实验基本原理与方法,主要仪器设备及耗材,实验方案与技术路线等)1.实验目的意义及原理方法目的:建立一个程序进行数据的管理,设有10组数据,每一组数据有5个元素,要求该程序能实现如下功能:(1)从键盘依次输入10组数据;(2)调出任意的一组数据显示出来;(3)修改任意一组数据或一组数据中的任意一个元素;(4)求出任意一组数据中的最大值和最小值。本次实验涉及管理系统的知识,包含检索、查看或者像题中的求最大最小值等功能,通过第九章对Windows编程中常用控件等的学习和使用,在实例实践中熟练掌握MFC的编程。2.主要仪器设备及耗材PC一台、VC6.0 第二部分:实验过程记录(可加页)(包括实验原始数据记录,实验现象记录,实验过程发现的问题等)1. 主要的程序代码:1、增加struct struDatadouble dfData5;数据结构体主要代码:void CMy9_20Dlg:OnButton1() CString cstrGroup,cstrInputData5;/输入数据为字符串int iGroup;/组号为整数m_e1.GetWindowText(cstrGroup);/得到组号字符串m_e2.GetWindowText(cstrInputData0);/得到输入数据m_e3.GetWindowText(cstrInputData1);m_e4.GetWindowText(cstrInputData2);m_e5.GetWindowText(cstrInputData3);m_e6.GetWindowText(cstrInputData4);iGroup=atoi(LPCTSTR)cstrGroup);/将组号转化为整数形式for(int i=0;i5;i+)/将输入数据转化为浮点形式InputDataiGroup-1.dfDatai=atof(LPCTSTR)cstrInputDatai);void CMy9_20Dlg:OnButton2() CString cstrGroup;int iGroup;double Max=0,Min=0;char cBuffer10;m_e1.GetWindowText(cstrGroup);/得到组号iGroup=atoi(LPCTSTR)cstrGroup);Max=InputDataiGroup-1.dfData0;/初始化最大最小值 Min=I
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 跨界投资与颠覆性创新-洞察及研究
- 小学体育课件跳绳教学
- 2025至2030中国静脉采血装置行业项目调研及市场前景预测评估报告
- 供应链年中工作总结
- 物控工作总结报告
- 信息技术产业园区空地租赁与云计算数据中心合作合同
- 高端酒店品牌代理售后服务与客户满意度调查协议
- 子女权益优先离婚协议书:财产分割示范文本
- 物业总经理任期战略规划与执行监督合同
- 离职补偿协议范本(含离职补偿及全球服务)
- 毒品成瘾原因课件
- 金太阳福建省2025-2026学年高三上学期9月开学联考数学试卷
- 2025年公需课《人工智能赋能制造业高质量发展》试题及答案
- 造口凸面底盘临床应用共识
- 2025-2026学年外研版七年级英语上册(全册)教学设计(附目录)
- 2025-2026学年人美版(2024)小学美术三年级上册教学计划及进度表
- 连锁药店考勤管理制度
- 安全防范系统升级和服务协议
- 2025年吉林省教育系统后备干部考试题及答案
- 整合照护课件
- 富士康自动化培训知识课件
评论
0/150
提交评论