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