windows程序设计实验报告_第1页
windows程序设计实验报告_第2页
windows程序设计实验报告_第3页
windows程序设计实验报告_第4页
windows程序设计实验报告_第5页
已阅读5页,还剩6页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

《Windows程序设计》实验报告实验室:S306(308)学院:计算机科学与技术专业:计算机科学与技术目录实验一、熟悉visualc++的编程环境 3一、实验目的和要求: 3二、实验内容、程序清单及运行结果: 31.编辑第一个C++程序 32.用AppWizard建立一个MFCWindows应用 33.编写简单的计算程序 4运行结果: 4三、心得体会: 4实验二、对话框的使用 5一、实验目的和要求: 5二、实验内容、程序清单及运行结果 5实验步骤: 5实验结果: 7三、心得体会: 7实验三、创建一个进程来运行一个应用程序 8一、实验要求和目的 8二、实验内容、程序清单及运行结果 8实验步骤: 8实验结果: 9三、实验心得 9实验四、调整线程优先级 10一、实验要求和目的 10二、实验内容、程序清单及运行结果 10实验步骤: 10实验结果: 11三、实验心得 11实验一、熟悉visualc++的编程环境一、实验目的和要求:1.了解和使用VC集成开发环境2.熟悉VC环境的基本命令和功能键,3.熟悉常用的功能菜单命令4.学习使用VC++环境的帮助5.学习完整的C++程序开发过程6.理解简单的C++程序结构7.了解用VisualC++开发WindowsMFC应用程序的过程二、实验内容、程序清单及运行结果:1.编辑第一个C++程序源程序代码://helloworldexample#include<iostream.h>intmain(){cout<<"hello!"<<endl;return0;//正常返回}运行结果:2.用AppWizard建立一个MFCWindows应用在窗口中输出"Hello,World!",修改OnDraw函数的定义,在最后一行加一句:pDC->TextOut(50,50,"Hello,World");运行结果:3.编写简单的计算程序输入圆的半径,计算圆的周长和面积并输出。源程序代码://该程序让用户输入圆的半径Radius,输出圆的周长Perimeter和面积Area#include<iostream.h>#include<math.h>constdoublePI=3.14159;//定义一个常量PIintmain(){intradius;doubleperimeter,area;cout<<"Pleaseinputtheradius:";cin>>radius;perimeter=2*PI*radius;//周长=2πRarea=PI*radius*radius;//面积=πR2cout<<"Theperimeterofthecircle:"<<perimeter<<endl;cout<<"Theareaofthecircle:"<<area<<endl;return0;}运行结果:三、心得体会:通过本次实验我了解了VC集成开发环境及基本命令、功能键和功能菜单命令,学会了使用VC++环境的帮助,理解了完整的C++程序开发过程及简单的C++程序结构,了解用VisualC++开发WindowsMFC应用程序的过程.实验二、对话框的使用一、实验目的和要求:掌握Visualc++中对话框的使用二、实验内容、程序清单及运行结果使用资源编辑器编辑对话框在Windows开发中弹出对话框是一种常用的输入/输出手段,同时编辑好的对话框可以保存在资源文件中。VisualC++提供了对话框编辑工具,利用编辑工具可以方便的添加各种控件到对话框中,而且利用ClassWizard可以方便的生成新的对话框类和映射消息。实验步骤:使用AppWizard生成一个基于对话框的工程,工程名为DlgDemo,其他均选择VC的默认摄制。在对话框资源编辑器中删除VC自动生成的[确定][取消]按钮以及Static控件.给对话框添加按钮[显示模态对话框],ID更改IDC_MODAL,用来显示一个模态对话框;给对话框添加按钮[显示非模态对话框],ID更改IDC_MODALESS,用来显示一个非模态对话框;给对话框添加一个编辑控件和Static控件。在资源编辑器中添加两个对话框资源IDD_MODAL和IDD_MODALESS.用ClassWizard为对话框IDD_MODAL添加一个对话框类CmodalDlg。为CdlgDemoDlg类的[显示模态对话框]按钮添加消息处理函数如下:voidCDlgDemoDlg::OnModal(){ CModalDlgdlg; dlg.DoModal();}在DlgDemoDlg.cpp文件中加入如下CmodalDlg类的定义文件:#include"ModalDlg.h"使用ClassWizard给对话框IDD_MODALESS添加一个对话框类CmodalessDlg.给CdlgDemoDlg类添加一个成员变量m_pModalessDlg.private: CModalessDlg*m_pModalessDlg;在CdlgDemoDlg类的构造函数中加入如下代码:CDlgDemoDlg::CDlgDemoDlg(CWnd*pParent/*=NULL*/) :CDialog(CDlgDemoDlg::IDD,pParent){ //{{AFX_DATA_INIT(CDlgDemoDlg) //NOTE:theClassWizardwilladdmemberinitializationhere //}}AFX_DATA_INIT //NotethatLoadIcondoesnotrequireasubsequentDestroyIconinWin32 m_hIcon=AfxGetApp()->LoadIcon(IDR_MAINFRAME); m_pModalessDlg=NULL;}在DlgDemoDlg.h文件中加上如下语句:#include"ModalessDlg.h"在CdlgDemoDlg类中给[显示非模态对话框]按钮添加消息映射函数如下:voidCDlgDemoDlg::OnModaless(){ m_pModalessDlg=newCModalessDlg();//检查指针是否有效if(m_pModalessDlg!=NULL){BOOLret=m_pModalessDlg->Create(IDD_MODALESS,this);if(!ret)AfxMessageBox("创建非模态对话框失败");m_pModalessDlg->ShowWindow(SW_SHOW);}elseAfxMessageBox("创建非模态对话框失败");} 给CdlgDemoDlg类映射WM_DESTROY消息,在WM_DESTROY消息的处理函数OnDestroy中小毁非模态对话框指针。voidCDlgDemoDlg::OnDestroy(){ CDialog::OnDestroy(); if(m_pModalessDlg) { m_pModalessDlg->DestroyWindow(); m_pModalessDlg=NULL; } }编译运行程序。实验结果:三、心得体会:通过此次实验掌握了在掌握了Visualc++中对话框的使用,在VisualC++利用对话框编辑工具,学会了添加各种控件到对话框中。学会利用ClassWizard可以方便的生成新的对话框类和映射消息。实验三、创建一个进程来运行一个应用程序一、实验要求和目的掌握CreateProcess函数各个参数的使用方法.二、实验内容、程序清单及运行结果使用该CreateProcess函数创建一个进程(通过调用Windows配备的应用程序附件如calc.exe等体现)实验步骤:1)使用VisualC++创建一个单文档GUI应用程序项目;可以在New–Projects选项卡上,选Win32Application。在接下来的对话框中,选“Atypical“HelloWorld!”application”。2)在应用程序菜单中添加“运行”→“计算器”菜单(设“计算器”子菜单名为ID_RUN_CALC);添加鼠标点击ID_RUN_CALC菜单的事件处理代码。然后在相应的函数中写入相应代码,如: STARTUPINFOsi={sizeof(si)}; TCHARszPath[MAX_PATH]=TEXT("C:\\WINNT\\system32\\calc.exe"); //计算器程序文件也可能在Windows目录下。 SECURITY_ATTRIBUTESsaProcess,saThread;//定义进程对象和线程对象的安全性属性 PROCESS_INFORMATIONpiProcessB;//定义创建进程的信息 saProcess.nLength=sizeof(saProcess); saProcess.lpSecurityDescriptor=NULL; saProcess.bInheritHandle=TRUE;//设置进程安全属性 saThread.nLength=sizeof(saThread); saThread.lpSecurityDescriptor=NULL; saThread.bInheritHandle=FALSE;//设置线程安全属性 CreateProcess(NULL,szPath,&saProcess,&saThread,FALSE,0,NULL,NULL,&si,&piProcessB);//上述代码可以简化,可将saProcess和saThread参数均设置为NULL。书写完毕,进行build,然后execute点击“运行”→“计算器”菜单,将创建一个进程来运行计算器应用程序。实验结果:三、实验心得通过本次实验,我学会了使用CreateProcess函数创建一个进程,并且掌握了CreateProcess函数各个参数的使用方法。在实验的过程中,由于在修改文件的时候忘了修改路径,导致运行不出最终结果,最后在同学的帮助下才找到原因所在,得到了实验的最终结果。实验四、调整线程优先级一、实验要求和目的掌握线程优先级的处理。二、实验内容、程序清单及运行结果对于一个多线程应用程序,通过调用SetProcessPriorityBoost函数来禁止系统动态调整该进程中所有线程的优先级;通过调用SetThreadPriority函数(也可以结合使用SetPriorityClass函数),来调整各线程的优先级;然后通过一个进度条来显示各线程的运行进度;或者通过调用GetThreadTimes函数来显示各线程获得的CPU时间。实验步骤:使用VisualC++创建一个支持多线程的单文档GUI应用程序项目;可以在New–Projects选项卡上,选Win32Application。在接下来的对话框中,选“Atypical“HelloWorld!”application”。在ProjectSettings对话框,C/C++选项卡上,CodeGeneration类别,从Userun-timelibrary组合框中选定“MultithreadedDLL”。创建线程函数,来完成一些工作。如:unsigned__stdcallThreadFunc(PVOIDpvParam){ DWORDi=0; while(i<100000000) i++; _endthreadex(0); return(0);}禁止系统动态调整该进程中所有线程的优先级。如:SetProcessPriorityBoost(GetCurrentProcess(),FALSE);创建多个新线程。如:HANDLEthread1,thread2,thread3;unsignedthreadID;thread1=(HANDLE)_beginthreadex(NULL,0,&ThreadFunc,NULL,0,&threadID);thread2=(HANDLE)_beginthreadex(NULL,0,&ThreadFunc,NULL,0,&threadID);thread3=(HANDLE)_beginthreadex(NULL,0,&ThreadFunc,NULL,0,&threadID);注意:要先#include<process.h>。调整各线程的优先级。如:SetThreadPriority(thread1,THREAD_PRIORITY_LOWEST);SetThreadPriority(thread2,THREAD_PRIORITY_NORMAL);SetThreadPriority(thread3,THREAD_PRIORITY_HIGHEST);通过进度条来显示各线程的运行进度;或者通过调用GetThreadTimes函数来显示各线程获得的CPU时间。如:首先:FILETIMEftCreationTime,ftE

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论