《Windows编程》实验报告格式

合集下载

Windows编程实验二实验报告

Windows编程实验二实验报告

Windows编程实验二实验报告一、实验目的本次 Windows 编程实验的目的在于深入了解和掌握 Windows 应用程序的开发流程,通过实际编程操作,提高对 Windows 消息机制、窗口处理、图形绘制等方面的理解和应用能力。

二、实验环境操作系统:Windows 10开发工具:Visual Studio 2019编程语言:C++三、实验内容1、窗口创建与消息处理创建一个基本的 Windows 窗口,并实现对窗口消息(如WM_CREATE、WM_PAINT、WM_DESTROY 等)的处理。

通过响应这些消息,完成窗口的初始化、绘制和关闭操作。

2、图形绘制在窗口客户区进行简单的图形绘制,如直线、矩形、圆形等。

掌握GDI(图形设备接口)的基本绘图函数和操作方法。

3、菜单与控件添加菜单到窗口,并处理菜单命令消息。

同时,尝试在窗口中添加一些基本的控件,如按钮、编辑框等,并实现相应的交互功能。

四、实验步骤1、创建项目打开 Visual Studio 2019,创建一个新的 Windows 桌面应用程序项目。

选择 C++作为编程语言,并按照向导进行设置,包括项目名称、存储位置等。

2、窗口类定义定义一个窗口类(WNDCLASS),设置窗口的样式、窗口过程函数指针等属性。

```cppWNDCLASS wndClass ={ 0 };wndClasslpfnWndProc = WndProc;wndClasshInstance = hInstance;wndClasslpszClassName = L"MainWindowClass";RegisterClass(&wndClass);```3、窗口创建与显示使用`CreateWindow` 函数创建窗口,并通过`ShowWindow` 和`UpdateWindow` 函数显示窗口。

```cppHWND hWnd = CreateWindow(L"MainWindowClass",L"Windows Programming Experiment",WS_OVERLAPPEDWINDOW,CW_USEDEFAULT, CW_USEDEFAULT,CW_USEDEFAULT, CW_USEDEFAULT,NULL, NULL, hInstance, NULL);ShowWindow(hWnd, nCmdShow);UpdateWindow(hWnd);```4、消息循环在主函数中,通过一个无限循环来获取和分发窗口消息。

window编程实验报告

window编程实验报告

实验课程:window编程专业班级:计科1001班学号:2010310200517 姓名:何仕昌实验三多种资源在Windows编程中的应用一实验目的:熟练掌握在Visual C++ 6.0 IDE中编辑、编译、调试和运行一个MFC应用程序的一般步骤和过程;理解利用MFC开发Windows应用程序的基本思想和方法;把握包含多种资源的Windows应用程序的整体构架,提高综合应用知识的能力和技巧,提高分析问题、解决问题和实际动手编制WinApp的能力。

二实验内容:综合应用1:实验内容步骤:(1)建一个工程名为“huatu”的MFC的对话框应用程序。

(2)为对话框添加控件如图:(3)为控件添加ID标识和变量:为红色滚动条添加IDC_RED_SCROLLBAR,为绿色滚动条添加IDC_GREEN_SCROLLBAR为蓝色滚动条添加IDC_BLUE_SCROLLBAR为矩形单选框添加IDC_RECTANGLE,并勾上group选项,为椭圆单选框添加IDC_ELLIPSE。

控件变量绑定:如图:(4)在“CHuatuDlg”的对话框函数添加滚动条响应函数,void CHuatuDlg::OnVScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar) ;void CHuatuDlg::OnVScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar){// TODO: Add your message handler code here and/or call default//char sPos[10]; //记录滚动条位置的字符数组.int iRedNowPos,iBlueNowPos,iGreenNowPos;//记录滚动条的整形数.///int tuxing=1003; ////iRedNowPos=m_Red_ScrollBar.GetScrollPos();//获得滚动条当前位置.iGreenNowPos=m_Green_ScrollBar.GetScrollPos();iBlueNowPos=m_Blue_ScrollBar.GetScrollPos();if(pScrollBar==&m_Red_ScrollBar) //对红滚动条进行操作.{switch(nSBCode){case SB_THUMBTRACK: //拖动滚动条m_Red_ScrollBar.SetScrollPos(nPos);//设定滚动条位置.iRedNowPos=nPos;break;case SB_LINEDOWN: //按向下按钮.iRedNowPos=m_Red_ScrollBar.GetScrollPos();//得到当前滚动条位置.iRedNowPos=iRedNowPos+1; //位置量+1if(iRedNowPos>255)iRedNowPos=255;break;case SB_LINEUP: //按向上按钮.iRedNowPos=m_Red_ScrollBar.GetScrollPos();//得到当前滚动条位置.iRedNowPos=iRedNowPos-1; //位置量-1if(iRedNowPos<0)iRedNowPos=0;break;case SB_PAGEDOWN://点击向上按钮和滑动块之间的区域.iRedNowPos=m_Red_ScrollBar.GetScrollPos();//得到当前滚动条位置.iRedNowPos=iRedNowPos+10; //位置量+10if(iRedNowPos>255)iRedNowPos=255;break;case SB_PAGEUP://点击向下按钮和滑动块之间的区域.iRedNowPos=m_Red_ScrollBar.GetScrollPos();//得到当前滚动条位置.iRedNowPos=iRedNowPos-10; //位置量-10if(iRedNowPos<0)iRedNowPos=0;break;}}if(pScrollBar==&m_Green_ScrollBar)//对绿滚动条进行操作. {switch(nSBCode){case SB_THUMBTRACK: //拖动滚动条m_Green_ScrollBar.SetScrollPos(nPos);//设定滚动条位置.iGreenNowPos=nPos;break;case SB_LINEDOWN: //按向下按钮.iGreenNowPos=m_Green_ScrollBar.GetScrollPos();//得到当前滚动条位置.iGreenNowPos=iGreenNowPos+1; //位置量+1if(iGreenNowPos>255)iGreenNowPos=255;break;case SB_LINEUP: //按向上按钮.iGreenNowPos=m_Green_ScrollBar.GetScrollPos();//得到当前滚动条位置.iGreenNowPos=iGreenNowPos-1; //位置量-1/////m_Green_ScrollBar.SetScrollPos(iGreenNowPos);//itoa(m_Green_ScrollBar.GetScrollPos(),sPos,10);//iGreenNowPos.SetSel(0,-1);//iGreenNowPos.ReplaceSel(sPos);///if(iGreenNowPos<0)iGreenNowPos=0;break;case SB_PAGEDOWN://点击向上按钮和滑动块之间的区域.iGreenNowPos=m_Green_ScrollBar.GetScrollPos();//得到当前滚动条位置.iGreenNowPos=iGreenNowPos+10; //位置量+10if(iGreenNowPos>255)iGreenNowPos=255;break;case SB_PAGEUP://点击向下按钮和滑动块之间的区域.iGreenNowPos=m_Green_ScrollBar.GetScrollPos();//得到当前滚动条位置.iGreenNowPos=iGreenNowPos-10; //位置量-10if(iGreenNowPos<0)iGreenNowPos=0;break;}}if(pScrollBar==&m_Blue_ScrollBar)//对蓝色滚动条进行操作.{switch(nSBCode){case SB_THUMBTRACK: //拖动滚动条m_Blue_ScrollBar.SetScrollPos(nPos);//设定滚动条位置.iBlueNowPos=nPos;break;case SB_LINEDOWN: //按向下按钮.iBlueNowPos=m_Blue_ScrollBar.GetScrollPos();//得到当前滚动条位置.iBlueNowPos=iBlueNowPos+1; //位置量+1if(iBlueNowPos>255)iBlueNowPos=255;break;case SB_LINEUP: //按向上按钮.iBlueNowPos=m_Blue_ScrollBar.GetScrollPos();//得到当前滚动条位置.iBlueNowPos=iBlueNowPos-1; //位置量-1if(iBlueNowPos<0)iBlueNowPos=0;break;case SB_PAGEDOWN://点击向上按钮和滑动块之间的区域.iBlueNowPos=m_Blue_ScrollBar.GetScrollPos();//得到当前滚动条位置.iBlueNowPos=iBlueNowPos+10; //位置量+10if(iBlueNowPos>255)iBlueNowPos=255;break;case SB_PAGEUP://点击向下按钮和滑动块之间的区域.iBlueNowPos=m_Blue_ScrollBar.GetScrollPos();//得到当前滚动条位置.iBlueNowPos=iBlueNowPos-10; //位置量-10if(iBlueNowPos<0)iBlueNowPos=0;break;}}//图像输出.CDC *pDC=GetDC(); //得到设备环境指针.CBrush newBrush; //定义新画刷.CPen newPen; //定义新画笔.newBrush.CreateSolidBrush(RGB(iRedNowPos,iGreenNowPos,iBlueNowPos));newPen.CreatePen(PS_SOLID,1,RGB(iRedNowPos,iGreenNowPos,iBlueNowPos));pDC->SelectObject(&newPen); //选入新画笔.pDC->SelectObject(&newBrush); //选入新画刷.pDC->Rectangle(330,80,520,40); //用矩形来画长方体来看调色变化。

编程的实验报告样板

编程的实验报告样板

一、实验目的1. 掌握编程基本概念和语法结构。

2. 熟悉编程开发环境的使用。

3. 提高程序设计能力和问题解决能力。

二、实验环境1. 操作系统:Windows 102. 编程语言:Python3.83. 开发环境:PyCharm Community Edition三、实验内容本次实验主要完成以下任务:1. 编写一个简单的计算器程序,实现加减乘除运算。

2. 编写一个学生信息管理系统,实现信息的增删改查功能。

3. 编写一个班级成绩分析程序,计算班级平均分、最高分、最低分等。

四、实验步骤1. 计算器程序(1)分析需求:计算器需要实现加减乘除运算,包括整数和浮点数运算。

(2)设计算法:根据需求,设计相应的算法,实现加减乘除运算。

(3)编写代码:```pythondef calculate(a, b, op):if op == '+':return a + belif op == '-':return a - belif op == '':return a belif op == '/':if b == 0:return "Error: Division by zero"else:return a / belse:return "Error: Invalid operator"# 测试print(calculate(10, 5, '+')) # 输出:15print(calculate(10, 5, '-')) # 输出:5print(calculate(10, 5, '')) # 输出:50print(calculate(10, 5, '/')) # 输出:2.0print(calculate(10, 0, '/')) # 输出:Error: Division by zeroprint(calculate(10, 5, '^')) # 输出:Error: Invalid operator```2. 学生信息管理系统(1)分析需求:学生信息管理系统需要实现信息的增删改查功能,包括学生姓名、学号、性别、年龄、成绩等。

windows编程实验报告

windows编程实验报告

windows编程实验报告《Windows编程实验报告》摘要:本实验报告主要介绍了在Windows操作系统下进行编程实验的过程和结果。

通过对Windows编程环境的搭建和基本编程语言的应用,我们实现了一些简单的程序,并对程序的运行结果进行了分析和总结。

一、实验目的本实验的主要目的是通过在Windows操作系统下进行编程实验,掌握Windows编程环境的搭建和基本编程语言的应用,加深对计算机编程原理的理解,并提高编程能力。

二、实验环境1. 操作系统:Windows 102. 编程语言:C++、C#3. 开发工具:Visual Studio 2019三、实验过程1. 环境搭建:首先在Windows 10操作系统下安装Visual Studio 2019开发工具,选择合适的编程语言进行编程实验。

2. 编程实验:根据实验要求,编写了一些简单的程序,包括控制台应用程序和Windows窗体应用程序。

通过编写程序实现了一些基本功能,如计算器、文本处理、图形界面设计等。

3. 调试运行:在编写程序的过程中,及时进行调试和运行,查找并解决程序中的错误和bug,确保程序能够正常运行。

4. 实验总结:对编写的程序进行分析和总结,总结出程序的特点和运行结果,提出改进和优化的建议。

四、实验结果通过实验,我们成功搭建了Windows编程环境,掌握了C++和C#等编程语言的应用,编写了一些简单的程序,并成功运行并得到了相应的结果。

同时,我们也发现了一些问题和不足之处,对程序进行了改进和优化,提高了程序的性能和稳定性。

五、结论本实验通过在Windows操作系统下进行编程实验,加深了对Windows编程环境的理解和掌握,提高了编程能力和实践能力。

同时也发现了一些问题和挑战,需要不断学习和提高,以适应日益复杂的编程需求。

希望通过本实验,能够为今后的编程学习和实践打下坚实的基础。

综上所述,本实验取得了一定的成果,对Windows编程环境的掌握和应用有了一定的提高,为今后的学习和发展奠定了良好的基础。

windows编程实验二

windows编程实验二
{
return3.14 * r * r;
}
}
}
(3)、实验代码:
usingSystem;
usingSystem.Collections.Generic;
usingSystem.Linq;
usingSystem.Text;
namespaceConsoleApplicationduilei
{
classProgram
《Windows编程》实验报告
实验序号:2实验项目名称:类设计
学号
0909030336
姓名
易盈盈
专业、班
信管0903
实验地点
文波301
指导教师
周晓华
时间
2010-
一、实验目的及要求
1、掌握面Leabharlann 对象的概念,熟悉C#语言中类的定义和构成;
2、以类为基本单位进行编程,包含字段、属性、方法、构造函数,类之间的访问;
Console.WriteLine("元素出队成功!");
number--;
}
publicvoidprint()
{
for(inti = 0; i < number; i++)
{
Console.WriteLine("现在队列中的元素是:");
Console.WriteLine(a[number] +"\t");
}
}
}
}
五、分析与讨论
第一题就是用到了一个只读只写功能的方法,设置了更改权限,可以加强安全性;第二题用virtual和override重写函数名相同的函数,实现同名函数重载;第三题就是要在队列长度不够的时候重新分配空间,实现元素进队出队。

Windows编程实验二实验报告

Windows编程实验二实验报告

武汉轻工大学Windows编程实验报告(实验二)姓名:刘文斌院系:数学与计算机学院班级:软件工程13 03班学号:老师:刘文涛一、实验目的和要求1、了解CDC类的使用2、掌握常用绘图函数的使用3、学会设置字体4、掌握画笔和画刷的使用5、了解不同文本输出函数的用法二、实验内容【程序1:】编写一个单文档的应用程序,在视图窗口中显示一行文本,要求文本颜色为红色,背景色为黄色。

【程序2:】编写一个单文档的应用程序,在客户区使用不同的画笔和画刷绘制点、折线、曲线、圆角矩形、弧、扇形和多边形等几何图形。

【程序3:】编写一个单文档的应用程序,在视图窗口中显示3个圆,通过使用不同颜色的画笔以及画刷来模拟交通红绿灯。

【程序4:】编写一个单文档的应用程序,在视图窗口实现一行文本的水平滚动显示,要求每个周期文本为红、黄两种颜色,字体为宋、楷两种字体。

三、实验过程1、void CTestView::OnDraw(CDC* pDC){CTestDoc* pDoc = GetDocument();ASSERT_VALID(pDoc);写单文档应用程序test,在视图中显示三个圆,通过使用不同颜色的画笔及画刷来模拟交通红绿灯。

在MFC单文档 onDraw函数中编写如下代码void CTestView::OnDraw(CDC* pDC){CTestDoc* pDoc = GetDocument();ASSERT_VALID(pDoc);写程序test,实现一行文本水平滚动显示,要求每个周期文本为红、黄两种颜色,字体为宋、楷两种字体。

void CTestView::OnDraw(CDC* pDC){CTestDoc* pDoc = GetDocument();ASSERT_VALID(pDoc);// TODO: add draw code for native data here CFont *OldFont,NewFont;if(flag%2==0){pDC->SetTextColor(RGB(255,0,0));(200,"宋体",NULL);}if(flag%2==1){pDC->SetTextColor(RGB(255,255,0));(200,"楷体",NULL);}OldFont=pDC->SelectObject(&NewFont);pDC->TextOut(x,50,"漂移");pDC->SelectObject (OldFont);SetTimer(1,10,NULL);();}void CTestView::OnTimer(UINT nIDEvent){// TODO: Add your message handler code here and/or call defaultx++;CClientDC dc(this);CRect rect;GetClientRect(&rect);if(x>={x=0;flag++;}Invalidate();CView::OnTimer(nIDEvent);}四、实验总结这次的实验做的时间有点长,不过收获还是蛮多的,比如如何设置文本的字体、颜色等属性。

windows编程实验四——刘文斌

windows编程实验四——刘文斌

武汉轻工大学Windows编程实验报告(实验四)姓名:刘文斌院系:数学与计算机学院班级:软件工程13 03班学号: 13051100 50老师:刘文涛2015.12.11实验四对话框[程序1:Ex_DlgDemo] 使用向导创建对话框应用程序(1)选择“文件” “新建”菜单,在弹出的“新建”对话框中选择“工程”页面,选择MFC AppWizard(exe),在工程框中输入项目名Ex_DlgDemo。

(2) 单击[确定]按钮,在出现的“Step 1”对话框中选择“基本对话(框)”应用程序类型,如图所示。

(3) 单击[下一个]按钮,出现如图(右)所示的对话框,允许用户设置对话框的风格及ActiveX 控件等特点的支持。

(4) 单击[下一个]按钮出现如图(左)所示的对话框,两个方面的选项可供用户选择:一是在源文件中是否加入注释用来引导用户编写程序代码,另一是使用动态链接库还是静态链接库。

(5) 保留默认选项,单击[下一个]按钮出现如图(右)所示的对话框。

(6) 单击[完成]按钮出现一个对话框,显示出用户在前面几个步骤中作出的选择内容,单击[确定]按钮系统开始创建。

应用程序可执行文件Ex_DlgDemo.exe,结果如图所示[程序2:Ex_SDI] 在单文档程序中添加对话框资源创建一个默认的单文档应用程序项目Ex_SDI。

(1) 选择“插入” “资源”菜单,或按快捷键Ctrl+R打开“插入资源”对话框中看到资源列表中存在Dialog项,若单击Dialog项左边的“+”号,将展开对话框资源的不同类型选项,表列出各种类型的对话框资源的不同用途。

“插入资源”对话框:(2) 对展开的不同类型的对话框资源不作任何选择,选中“Dialog”,单击[新建]按钮,系统就会自动为当前应用程序添加了一个对话框资源。

系统为对话框资源自动赋给它一个默认标识符名称使用通用的对话框模板创建新的对话框资源。

对话框的默认标题为Dialog,有[OK]和[Cancel]两个按钮,这两个按钮的标识符分别为IDOK和IDCANCEL。

Windows体系编程实验报告

Windows体系编程实验报告

课程设计报告( 2011——2012年度第 2 学期)名称:Windows体系编程题目:课内综合实验院系:科技学院信息工程系班级:软件09K2学号:0919********学生姓名:何少华指导教师:王新颖实验学时:12学时成绩:日期:2012 年 5 月28 日实验一类windows进程任务管理器实验一、课程设计的目的与要求目的:理解Windows编程环境下的进程管理机制,能创建一个完成特定功能的进程,并能对进程进行信息的获取、终止和保护,实现一个类Windows的进程任务管理器。

要求:1.编写一段程序,能够完成创建进程的功能,要求启动windows记事本程序(notepad.exe),同时打开一个文本文件,路径为:c:\system\user.log 。

并打印出新建进程ID。

2.获取当前系统进程信息,打印输出进程名称和ID号。

3.终止任意进程并获取退出代码。

二、设计正文#include "stdafx.h"#include <windows.h>#include <stdio.h>#include <tlhelp32.h> // 声明快照函数的头文件BOOL TerminateProcessFromId(DWORD dwId){BOOL bRet = FALSE;// 打开目标进程,取得进程句柄HANDLE hProcess = ::OpenProcess (PROCESS_ALL_ACCESS, FALSE, dwId);//PROCESS_ALL_ACCESS:所有权限,包括创建、读、写等。

//OpenProcess如果成功,则该进程内核对象引用计数+1if(hProcess != NULL){bRet = ::TerminateProcess(hProcess, 0);CloseHandle(hProcess);//结束了进程,还要使该进程内核对象引用计数-1 }return bRet;}int main(int argc, char* argv[]){char szCommandLine[] = "notepad ";STARTUPINFO si = { sizeof(si) };PROCESS_INFORMATION pi;si.dwFlags = STARTF_USESHOWWINDOW; // 指定wShowWindow成员有效si.wShowWindow = TRUE; // 此成员设为TRUE的话则显示新建进程的主口,// 为FALSE的话则不显示BOOL bRet = ::CreateProcess (NULL, // 不在此指定可执行文件的文件名szCommandLine, // 命令行参数NULL, // 默认进程安全性NULL, // 默认线程安全性FALSE, // 指定当前进程内的句柄不可以被子进程继承CREATE_NEW_CONSOLE, // 为新进程创建一个新的控制台窗口NULL, // 使用本进程的环境变量NULL, // 使用本进程的驱动器和目录&si,&pi);if(bRet){// 既然我们不使用两个句柄,最好是立刻将它们关闭::CloseHandle (pi.hThread);::CloseHandle (pi.hProcess);printf(" 新进程的进程ID号:%d \n", pi.dwProcessId);printf(" 新进程的主线程ID号:%d \n", pi.dwThreadId);}PROCESSENTRY32 pe32; // 在使用这个结构之前,先设置它的大小pe32.dwSize = sizeof(pe32); // 给系统内的所有进程拍一个快照HANDLE hProcessSnap = ::CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);if(hProcessSnap == INVALID_HANDLE_VALUE){ printf(" CreateToolhelp32Snapshot调用失败! \n");return -1;}BOOL bMore = ::Process32First(hProcessSnap, &pe32);// 遍历快照,轮流显示每个进程的信息while(bMore){ printf(" 进程名称:%s \n", pe32.szExeFile);printf(" 进程ID号:%u \n\n", pe32.th32ProcessID);bMore = ::Process32Next(hProcessSnap, &pe32);}// 不要忘记清除掉snapshot对象::CloseHandle(hProcessSnap);DWORD dwId;printf(" 请输入您要终止的进程的ID号: \n");scanf("%u", &dwId);if(TerminateProcessFromId(dwId)){printf(" 终止进程成功! \n");}else{printf(" 终止进程失败! \n");}return 0;}实验结果:实验二窗口与DLL实验一、实验目的与要求:目的:了解windows窗口程序的结构与特点,了解windows程序中至关重要的消息机制,包括消息的定义、消息循环以及消息相应函数。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
相关文档
最新文档