《课程简介-Windows编程技术与实验.pdf》由会员分享,可在线阅读,更多相关《课程简介-Windows编程技术与实验.pdf(5页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、1WindowsWindowsWindowsWindows 编程技术与编程技术与WindowsWindowsWindowsWindows 编程编程技术实验课程简介技术实验课程简介 课程性质:专业限选课 学分:3=2(理论)+1(实验)学时数:72=36(理论)+36(实验)开设时间:二年级下学期 先修课程:程序设计基础Windows 编程技术及其实验课程,主要讲解 Windows环境下 Visual C+的 MFC 和.NET编程,也简单介绍标准 C+和 Visual C#编程。采用 Visual Studio 2005 编程平台。1 1 1 1WindowsWindowsWindowsWin
2、dows 与编程与编程Windows(视窗)是 Microsoft 公司为 PC 机开发的具有图形用户界面的多任务操作系统。图形用户界面(GUI=Graphical User Interface)是计算机的一种人机接口,由图形显示设备(屏幕)和指示跟踪设备(鼠标、跟踪球、光笔/手写笔、触摸屏等)组成,用户可通过指示设备来操作图形设备上的界面元素(窗口、菜单、对话框、图标、控件等)以完成各种任务和操作。Windows 的主要特点有:面向对象、消息/事件驱动、多任务、图形设备接口(GDI=Graphics DeviceInterface)与设备无关等。与这些相对应,Windows编程有如下特点:面
3、向对象的编程思想在 Windows 中,窗口、菜单、事件皆是对象,而对话框与各种控件只是一些特殊的窗口,所以对界面元素的操作和消息/事件的处理都涉及到对象。消息/事件驱动的程序结构与基于过程的控制台字符界面编程不同,Windows 编程是基于消息的,由用户和系统事件来驱动。资源共享与数据交换Windows是多任务操作系统,提供了多种手段在应用程序与系统之间、应用程序与应用程序之间进行数据交换与共享,如剪接板、DDE、DLL、OLE、COM、ActiveX、.NET/CLR。与设备无关 GDI 编程Windows 为应用程序提供了丰富的与设备无关应用程序接口,免去了为不同的 I/O 设备编写软件
4、的不同版本之烦恼。如利用与设备无关的 GDI,应用程序使用同一函数,就可在不同的显示器和打印机上输出同样的图形。2 2 2 2.NET.NET.NET.NET 与与 C#C#C#C#为了适应网络(特别是因特网和万维网 Web)和组件编程的需要,并与 Sun 公司的Java/J2EE/EJB 竞争,微软公司于 2000 年提出了跨语言、跨平台的运行环境与编程平台技术.NET,并为此创建了一种新的编程语言 C#。.NET 是 Windows 2000/XP/Server 操作系统的补充,是 Windows Vista/Longhorn 操作系统的核心。2.NET 由.NET 框架(.NET Fra
5、mework)和对应的应用程序开发平台(Visual Studio)这两部分组成。.NET 框架又由 CLR(Common Language Runtime 公共语言运行时)、FCL(Framework Class Library 框架类库)和 ASP.NET 这三个主要部分组成。Visual Studio 中包含多种编程语言工具,主要有 Visual C+、Visual C#和 Visual Basic。C#是源于 C+的一种类似于 Java的 OOP(Object Oriented Programming 面向对象编程)语言,是专门为.NET 设计的,也是.NET 编程的首选语言。C#与
6、C+很相似,还借鉴了 Java的许多特点。但是 C#比 C+更安全、比 Java更有效,特别适合于 Windows 环境下的.NET编程。3 3 3 3MFCMFCMFCMFC 与与 C+/CLIC+/CLIC+/CLIC+/CLI早期的 Windows 编程,是用 C 语言直接调用 Windows SDK(Software Development Kit软件开发工具包)中的 API(Application Program Interface 应用程序接口)来开发 Windows应用程序,由于需要亲自处理很多繁琐的编程细节,加上 WindowsAPI 有两千多个函数、几百个数据结构和变量类型,
7、所以进行 Windows 编程是一件非常困难与痛苦的事。Visual C+采用 OOP 来进行 Windows 编程,将 API 的几千个函数、结构和变量类型封装在 200 个左右的类中(常用的只有十几个类),并且屏蔽掉了许多繁琐的编程细节,使得Windows 编程大大简化。微软公司称这些类所组成的类库为 MFC(Microsoft FoundationClass Library 微软基础类库)。由于在 Visual Studio.NET 和 2005 中,只有 Visual C+可以同时进行 Windows 的 API(MFC)和.NET(混合)编程(Visual C#和 Visual Ba
8、sic 只能进行.NET 编程),所以 VisualC+,特别是 MFC 就成了计算机专业人员进行 Windows 编程的首选。由于 C+的语法和功能与.NET 类库编程的要求不太一致,需要做一些修改才能进行.NET 编程。为此,微软公司推出了 MC+或 C+/CLI。MC+(Managed C+,托管 C+),全称是 Managed Extensions forC+(C+的托管扩展),是用来编写.NET 托管程序的 C+扩展,随 Visual C+.NET 推出。所谓托管(managed)程序是指,程序的代码(元数据、MSIL),特别是程序中的数据和对象所对应内存的分配、指向和释放,全都由.
9、NET 的运行环境 CLR 来代为管理。托管是所有.NET 程序的特点。由于 MC+的语法晦涩难懂,受到了广大 C+程序员抵制与唾骂。作为改进,微软公司随 Visual C+2005,推出了全新的 C+/CLI,来代替 MC+进行.NET 编程。CLI(Common Language Infrastructure 公共语言基础设施)是微软公司提出的一种所谓垮语言(如 C#、VB、C+、J#、Jscript)、跨平台(如 Windows、Unix、Linux、Mac OS)的分布式计算方案和运行平台架构。CLI 是.NET 的核心,CLR 只是 CLI 在 Windows平台上的一个实现,也有人
10、把.NET 和 CLI 移植到了 Linux、Solaris、Mac OS X 和 Unix 上。CLI已经成为 ECMA(European Computer ManufacturersAssociation 欧洲计算机厂商协会)标准(ECMA-335)和 ISO 标准(ISO/IEC 23271)。C+/CLI 也是 ECMA 标准(ECMA-372)本课程的主要内容就是 Visual C+的 MFC 和 C+/CLI 编程。4 4 4 4内容内容本课程的主要内容有:绪论:操作系统与 GUI、Windows 编程的特点与工具、Visual Studio 开发平台与 MFC3 界面:菜单、工具
11、栏和状态栏,对话框和控件,鼠标/键盘与消息 图形:绘图、位图、动画、文本、打印 文档:文档视图体系、文件读写与序列化、多视图、滚动与切分窗口 GDI+:GDI+的特点和优势、绘图与文字、路径与区域、变换与图像、图元文件 标准 C+:宽字符串及字符串类、命名空间的使用、泛型编程与 STL、容器与排序.NET:.NET 框架与 CLR、MC+与 C+/CLI、C#、.NET 的 C+与 C#编程 组件:DLL、COM、ActiveX 控件与 CLR 组件编程 数据库:MFC 的数据库接口与类、ODBC 与 DAO 编程、ADO.NET 编程简介 网络:WinSock 与 WinInet 编程、.N
12、ET 环境下的基本网络编程 多媒体:播放波形音频文件、MCI 与 MMAPI 编程、OpenGL 与 DirectX 编程 高级:上下文相关帮助、多线程、系统编程、窗体编程5 5 5 5课程目的与教学要求课程目的与教学要求通过课堂学习和上机实验,了解 Windows 编程的特点(GUI/消息驱动/OPP)与 VisualStudio 开发平台,掌握 Visual C+的 MFC、标准 C+和.NET 编程。课程的内容主要包括用户界面、文档视图、图形(GDI 和 GDI+)、标准 C+(命名空间与 STL)、.NET 的 C+/CLI 与 C#编程,其它内容有数据库、网络、多媒体等基本程序设计,
13、以及上下文相关帮助、组件(动态链接库/ActiveX 控件/COM)、多线程、窗体等高级程序设计。6 6 6 6课程特色课程特色在教学过程中强调基本性质的了解、具体方法的掌握和实际动手能力的培养。采用课堂讲解与现场演示相结合、平时练习和综合作业相结合、理论课与实验课相结合的方式,使学生掌握 Windows 编程的基本内容和主要方法。特别强调学生自己动手上机实习,要求编程实现课堂示例和课后练习,并按照各部分内容设计若干案例供学生进行实际编程练习。最后由 3 至 5 个学生组成一个小组,自选一个题目作为综合性编程作业。7 7 7 7教材与主要参考书教材与主要参考书教材:本课程主讲老师李才伟自编的电
14、子课件主要参考书:Ivor Horton(李颂华、康会光译).Visual C+2005 入门经典.清华大学出版社,2007.1.(16 开/1046 页/118 元)林俊杰.新一代 Visual C+2005 程序设计.清华大学出版社,2006.11(16 开/479 页/49元)罗斌.Visual C+2005 编程实例精粹.中国水利水电出版社,2007.1(16 开/648 页/68 元)H.M.Deitel 等.Visual C+.NET 大学教程.清华大学出版社,2004.7.(16 开/970 页/99 元)George Shepherd&David Kruglinski.Micr
15、osoft Visual C+.NET 技术内幕.清华大学出版社,2004.7.(16 开/920 页/106 元/1CD)4姚领田.精通 MFC 程序设计.人民邮电出版社,2006.7.(16 开/715 页/78 元/1CD)Eugene Olafsen 等.MFC Visual C+6 编程技术内幕.机械工业出版社,2000.2.(16 开/790 页/89 元/1CD)任哲等.MFC Windows应用程序设计.清华大学出版社,2004.7.(16 开/303 页/27 元)8 8 8 8配套的实验配套的实验实验性质:软件实验实验平台:PC 机/Windows操作系统实验工具:Visu
16、al Studio 2005实验内容:(32 个必做、6 个选做,共 38 个作业)1.(绪论)实现简单的API和MFC程序。2.(菜单)实现并完善 Student 程序,包括添加/设置/修改菜单和菜单项、设置快捷键与提示信息、创建消息响应函数、创建弹出式菜单、动态修改菜单项(选中、禁止/激活、添加/删除、加图标)。3.(控制条)进一步完善 Student 程序,包括添加/设置/修改工具条按钮、创建/装入/显示/隐藏工具条、动态设置按钮状态;定制状态条、动态显示鼠标的当前位置。4.(对话框)再进一步完善 Student 程序,添加输入对话框和文件与颜色公用对话框。5.(控件)实现个人信息对话框
17、程序。6.(选做)(鼠标与键盘及光标)测试各种鼠标与键盘事件及其消息响应,试验各种光标操作。7.(椭圆)画一个与客户区等大,并随客户区改变大小的填充椭圆。(最好可以每次随机确定椭圆边框和填充的颜色)8.(选做)(调色板)编写一个基于对话框的颜色调色板程序。9.(直线)用鼠标交互绘制动态直线。10.(绘图)编写一个交互式绘图程序。(综合型作业)11.(字体/位图)在上面的绘图程序中,添加字体和位图等内容的实现。12.(位图)实现保存屏幕和图形。13.(动画)实行公爵位图动画。14.(动画)实现移动动画。15.(选做)(打印)实现页面设置公用对话框和打印公用对话框,修改各种设置与参数。设置逻辑映射
18、模式,绘图输出到屏幕和打印机。打印绘制多页图形和页眉与页脚。16.(图像)编写一个读显 BMP 文件和其他图象文件的 MDI 程序,要求:实现文件过滤、创建滚动视图类、对小位图使子窗口按适应图大小、对大位图支持子窗口的滚动。17.(选做)(拆分)实现动态和静态拆分窗口例子 DSplit 和 SSplit。18.(Wave)编写一个读显 Wave文件的 SDI 程序,要求:实现文件过滤、播放声音、(按客户区大小)画出(全部)声音数据的波形曲线(对双声道音频,画两条曲线)。19.(正叶曲线)编写一个画填充正叶曲线的通用程序。可以指定叶片数、颜色、圆心和叶长(半径)等。20.(八卦图)编写一个绘制阴
19、阳八卦图的通用程序。可以指定各种颜色、圆心和半径等等。21.(GDI+绘图)编写一个使用 GDI+接口的交互式绘图程序,实现 GDI+的所有基本5功能和各种新增加的功能。(综合型作业)22.(圆周文本)编写一个在圆周上绘制文本串的程序。23.(选做)利用图元文件实现 MFC 和 GDI+交互绘图的重画功能。24.(映射排序)改写单词计数的 map 应用程序 WordCount.cpp,实现按计数的大小顺序输出单词与计数。25.(选做)(字符转换)编写宽字符串(UTF-16)与普通字符串(GB2312)的相互转换函数。26.(C+/CLI)使用 C+/CLI 编写一个简单的.NET 窗体绘图程序
20、。27.(C#)使用 C#编写一个简单的.NET 窗体绘图程序。28.(媒体播放器)实现基于 ActiveX 控件的媒体播放器程序。29.(DBA)实现 DBM 和 DBA,在 DBA 中增加删除、添加、编辑和更新功能。30.(DAO)实现 DAO,并增加排序、查询、添加、编辑、删除和更新,及显示和修改数据库结构(字段)等功能。31.(Winsock)实现套接字程序 Sock。32.(WinInet)实现 InetSession 和 InetFTP 程序。33.(播放音频)试验三种播放波形音频的函数。34.(MCI)使用 MCI 的命令串或命令消息方式,编写 CD 和 WAV 播放器。35.(OpenGL)编制 OpenGL 程序,绘制自定义正方形及其矩阵变换,绘制自定义球面和辅助库中的各种曲面,动态改变观察位置。36.(Direct3D)实现旋转圆筒的 Direct3D 例子。37.(DirectSound)实现战争声效程序 War。38.大作业:三五人自愿组成一个小组,每组自选一个与 Windows编程相关的题目。(设计型作业)