实战突击:Visual C++项目开发案例整合(含DVD光盘1张)(txt+pdf+epub+mobi电子书下载)


发布时间:2020-05-28 01:31:30

点击下载

作者:明日科技,孙秀梅,等

出版社:电子工业出版社

格式: AZW3, DOCX, EPUB, MOBI, PDF, TXT

实战突击:Visual C++项目开发案例整合(含DVD光盘1张)

实战突击:Visual C++项目开发案例整合(含DVD光盘1张)试读:

前言

不积跬步,无以至千里;不积小流,无以成江海。荀子Visual C++是微软公司开发的C++集成开发环境,它集源程序的编写、编译、连接、调试、运行,以及应用程序的文件管理于一体,是当前PC上十分流行的C++程序开发环境。Visual C++功能非常强大,自1993年Microsoft公司推出Visual C++1.0后,随着其新版本的不断更新,Visual C++已成为专业程序员进行软件开发的首选工具。『成书缘由』熟话说“巧妇难为无米之炊”,作为一名有经验的程序开发人员,都有自己积累的编程资源。在软件开发过程中,他们可以借助编程资源每天写出上万行代码,还可以利用已有的项目资源,迅速完成一个新产品的开发。可以说,编程资源是开发高手的左膀右臂。离开了这些编程资源,开发高手的功力将大大降低。目前初学编程者普遍缺乏编程资源,尤其是项目开发资源和项目开发经验。为此,我们编写了本书。本书精选了21个实用软件项目,涵盖了MFC各方面的实战开发项目,是进行Visual C++项目开发必备的参考书。通过本书,读者不但可以快速提升开发能力和经验,更可以快速组建自己的项目资源库。『本书内容』本书分为6篇21章内容,共计21个软件项目。所选项目均来源于开发一线,具有很好的实践价值。本书具体内容如图1所示。第一篇:多媒体娱乐篇。这一篇介绍了屏幕监控系统、快乐五子棋、图像处理系统等3个多媒体娱乐项目。第二篇:酒店管理篇。这一篇介绍了餐饮管理系统和客房管理系统两个酒店管理项目。第三篇:人事管理篇。这一篇介绍了工资管理系统、指纹考勤管理系统、合同管理系统、客户资源管理系统、资产设备管理系统等5个人事管理项目。第四篇:进销存管理篇。这一篇介绍了仓库管理系统、商品采购管理系统、商品销售管理系统、超市进销存管理系统、物流综合管理系统、汽配管理系统等6个进销存管理项目。第五篇:办公教育篇。这一篇介绍了学生管理系统、图书管理系统、文档管理系统等3个办公教育项目。第六篇:智能通信篇。这一篇介绍了智能大厦自动报警系统和企业QQ通信系统两个智能通信项目。图1 本书内容结构图『本书特色』●  项目丰富,实用超值。本书精选了21个项目,涵盖了项目开发中应用的各方面技术,将这些项目稍加修改,即可形成一个完整的商业系统项目。●  易学、易用。本书中的每个项目都提供了关键代码解析(对代码中重要的对象、方法、语句等进行重点介绍),读者在阅读时可以透彻理解相关代码,活学活用。●  编码规范,注释详尽。本书程序编码规范,几乎所有代码都提供了详细注释。●  提供15小时视频录像。本书提供了15小时的项目开发视频录像,读者可以边看边学,快速提高。『超值DVD光盘』为了帮助读者学习和使用书中的实例,本书附赠有DVD光盘,光盘中不但提供了书中所有项目的源代码、素材,还提供多个项目的视频开发录像。光盘具体目录如图2所示。为帮助零基础者使用本书,我们精心录制了15小时的基础知识学习视频和项目开发过程视频,读者可以根据自身需要选择学习。基础入门学习视频和项目开发视频效果如图3所示。图2 光盘目录结构图图3 基础入门学习视频和项目开发过程视频为方便读者使用,光盘中不但提供了光盘使用说明书,指导读者配置和使用光盘中的源程序,还在每个项目的源程序路径下提供了相应程序的程序使用说明书,读者可以轻松配置,快速使用。『本书适用人群』本书非常适合以下人员阅读:『学习答疑』如果您在学习或使用本书的过程中遇到问题或疑惑,可以通过如下方式与我们联系:我们承诺将在5个工作日内给您提供解答。『本书作者』本书由明日科技组织编写,参加编写的有孙秀梅、李鑫、宋坤、王小科、赵会东、范文龙、张英豪、白伟明、李伟、张振坤、高春艳、李继业、赛奎春、王国辉、陈丹丹、潘凯华、刘欣、李慧、杨丽、刘龄龄、陈英、朱晓、肖鑫等。由于作者水平有限,疏漏和不足之处在所难免,请广大读者朋友批评指正。软件开发工作是相当复杂的,对于已经做完或者正在做着的开发工作,永远都有一种更好、更聪明或更快的方法来完成它。我们虽然提供了这些项目的开发思路、方法和完整开发过程,但希望读者不要拘泥于这些已提供的方法中,要不断演进并寻找更好的方法,学会享受挑战,并将之看做臻于精熟、成为高手的通道。编者2011年6月第一篇多媒体娱乐篇本篇主要内容:第1章 屏幕监控系统第2章 快乐五子棋第3章 图像处理系统第1章屏幕监控系统(Visual C++ 6.0 + Microsoft Access 2000实现)随着多媒体和网络技术的不断发展,网络监控领域有了长足的发展,监控的范围、规模多种多样。有的监控系统是利用摄像头和视频采集卡对某一区域进行监控,有的监控系统是纯粹地利用软件进行屏幕监控。本章的案例属于后者,通过阅读本章,可以学习到:● 如何抓取屏幕信息。● 如何将屏幕信息存储为位图数据。● 如何发送和接收UDP数据报。● 如何将位图数据显示在窗口中。● 如何连接Access数据库。● 如何抓取屏幕。● 如何自定义控件。1.1 开发背景Internet在我国刚刚起步时,上网人群主要是从事IT技术的专业人员,多数是中年人。但是,随着Internet技术的快速发展,我国的上网人群逐年增多,不仅包括中年人,青少年及老年人在上网人群中也占有很大比率。Internet上丰富多彩的资源给人们带来了很多便利,但是也存在许多不良信息危害青少年的身心健康,一些家长担心青少年上网会影响其学习。屏幕监控系统能够将局域网中的某一台计算机屏幕信息发送到服务器端,这样,家长可以随时了解青少年浏览的网页信息,对青少年上网起到监督作用。1.2 需求分析屏幕监控系统主要是对计算机屏幕进行监控,因此屏幕监控系统需要实现屏幕信息的实时发送和接收。由于屏幕信息需要实时显示,因此信息的传输速度要快。为此,选择UDP协议进行传输。为了防止服务器端随意地接收客户端发来的数据报,服务器端需要对发来的数据报进行过滤,只有指定的客户端才接收数据。1.3 系统设计1.3.1 系统目标本系统属于小型的局域网屏幕监控系统,可以对某一台计算机进行屏幕监控。本系统主要实现以下目标:● 系统采用人机交互的方式,界面美观、友好。● 屏幕信息需要实时显示,网络延时不能大于1秒。● 服务器端可以随时运行,只要客户端运行,就能够显示屏幕信息。● 系统运行时占用内存不能大于10MB,以免影响系统性能。● 客户端运行时需要隐藏显示窗口,其感觉不到在运行。1.3.2 系统功能结构屏幕监控系统功能结构图如图1.1所示。图1.1 系统功能结构图1.3.3 系统预览屏幕监控系统分为客户端和服务器端两部分,其中,客户端运行时将隐藏窗体,服务器端主要由4个窗体组成,分别为主窗体、操作员管理窗体、系统登录窗体、系统设置窗体。其中,主窗体用于接收并显示屏幕信息,如图1.2所示。“操作员管理”窗体用于添加、修改、删除操作员信息,如图1.3所示。“系统登录”窗体用于系统在启动时验证用户身份,如图1.4所示。“系统设置”窗体用于设置客户端IP地址,如图1.5所示。图1.2 主窗体图1.3 “操作员管理”窗体图1.4 “系统登录”窗体图1.5 “系统设置”窗体1.3.4 业务流程图屏幕监控系统的业务流程图如图1.6所示。图1.6 屏幕监控系统业务流程图1.3.5 程序运行环境本系统运行中对其运行环境有一定的要求,具体如下。● 系统开发平台:Microsoft Visual C++ 6.0。● 系统开发语言:C++。● 数据库管理系统软件:Microsoft Access 2000。● 运行平台:Windows XP(SP2)/Windows 2000(SP4)/Windows Server 2003(SP1)/ Windows 7。● 分辨率:最佳效果1024×1280像素。1.3.6 数据库设计如今的信息管理系统都是通过数据库来存储信息的,因此,在开发信息管理系统之前首先需要设计数据库。合理的数据库设计不仅能够提高系统执行效率,还能够增加系统的灵活性。1.数据库分析在开发屏幕监控系统时,使用数据库主要用于记录操作员信息及客户端信息,系统涉及的数据量比较小,因此,本系统采用Microsoft Access 2000作为后台数据库,数据库命名为db_Video,其中包含两张数据表,如图1.7所示。图1.7 db_Video中的所有表2.数据库概念设计数据库概念设计是根据各个模块的需求“抽象”出数据实体的过程,也就是宏观上用文字、图表描述数据表的过程。为了增强系统的安全性,服务器端设置了登录窗口,在系统启动时弹出该窗口,要求用户输入操作员名称和密码。其中,用户的操作员名称和密码信息存储在数据表中。这样,在系统登录模块就需要一个操作员信息实体,如图1.8所示。图1.8操作员信息实体E-R图为了过滤服务器端接收的数据报,使其只接收指定客户端发来的数据,需要存储客户端IP。为此,需要单独设计一个客户端信息实体对象,如图1.9所示。图1.9客户端信息实体E-R图分析完系统的实体需求后,根据每个实体的E-R图创建系统所需的各个表,系统数据库中的所有表及其用途描述如表1.1所示。表1.1 系统数据库中的所有数据表及其用途3.数据库逻辑结构设计根据设计好的E-R图创建数据库的逻辑结构,数据库中各表的结构如下。● tb_UserInfo(操作员信息表):表tb_UserInfo用于存储操作员的名称和密码,该表结构如图1.10所示。图1.10 操作员信息表● tb_ClientInfo(客户端信息表):表tb_ClientInfo用于存储客户端IP,该表的结构如图1.11所示。图1.11 客户端信息表4.数据库创建数据库db_Video的具体创建步骤如下:(1)选择“开始”/“程序”/“Office 2000”/“Microsoft Access”命令,打开创建Microsoft Access数据库窗体,此时数据库会提示选择创建数据库的方式,选中“空Access数据库”单选按钮,如图1.12所示。图1.12选择创建数据库的方式(2)单击“确定”按钮,弹出“文件新建数据库”对话框,如图1.13所示。图1.13“文件新建数据库”对话框(3)输入数据库名称并设置保存路径之后,单击“创建”按钮,完成数据库的创建,如图1.14所示。图1.14 数据库创建完成1.4 客户端设计1.4.1 客户端模块概述屏幕监控系统分为客户端和服务器端两大模块,其中,客户端的主要作用是实时抓取本机的屏幕信息,将其分成多个数据报,发送到服务器。为了保证屏幕信息能够完整地发送到服务器,客户端在发送一个数据报后,需要等待服务器发来的确认信息,然后才能继续发送下一个数据报。1.4.2 客户端技术分析客户端要实现屏幕信息的发送,需要解决两个关键的问题:一是获取屏幕信息,将其转换为位图格式;二是通过UDP将位图信息发送到服务器。下面分别进行介绍。1.将屏幕信息转换为位图格式首先需要获取屏幕信息,可以使用GetDesktopWindow方法获取一个屏幕窗口指针,通过该指针获取屏幕窗口的设备上下文。然后通过定义一个内存画布对象,将屏幕窗口的设备上下文输出到位图中。关键代码解析① CreateCompatibleDC:该方法用于根据已有的设备上下文创建一个与其兼容的设备上下文对象。② CreateCompatibleBitmap:该方法用于创建一个与指定设备上下文兼容的位图。③ BitBlt:该方法用于将某一设备上下文的内容绘制在新的设备上下文内。接着将根据位图对象获取位图信息。一个位图文件通常由“位图文件头”、“位图信息头”、“调色板”和“实际位图数据”4个部分组成。其中,位图文件头主要包含位图标记、位图大小等信息,在程序中使用BITMAPFILEHEADER结构来描述。“位图信息头”和“调色板”2个部分描述了位图的宽度、高度、是否压缩、位图颜色等信息,在程序中可以使用BITMAPINFO结构描述。由于程序中发送的数据不是以位图文件的形式发送的,只发送位图信息头、调色板和实际位图数据,因此,不需要位图信息头。因为通过位图信息头、调色板和实际位图数据3个部分就可以绘制位图了,没有必要发送位图信息头。下面的代码演示了如何通过位图对象获取位图信息。关键代码解析① GetDIBits:该方法用于根据设备上下文、位图信息获取位图的实际数据。2.通过UDP将位图信息发送到服务器为了将本地数据传输到服务器,需要利用套接字函数发送数据。在Visual C++中,为了使用套接字函数,首先,需要引用相应的头文件和库文件。代码如下:然后,在应用程序初始化时调用WSAStartup函数初始化套接字。在上述准备工作完成之后,即可调用套接字函数创建UDP套接字。代码如下:在套接字创建成功后,可以调用sendto方法发送数据。例如:1.4.3 客户端实现过程客户端的主要功能是抓取屏幕信息,将其发送到服务器。具体实现过程如下:(1)创建一个基于对话框的工程,工程名称为Client。(2)在StdAfx.h头文件中引用套接字库和头文件。(3)在应用程序类的InitInstance方法中初始化套接字。(4)改写应用程序的虚方法ExitInstance,清理套接字资源。(5)在对话框类中添加如下成员变量。(6)自定义一个消息,在套接字接收到数据时发送到主窗口中。定义每个数据报中包含位图数据的大小。

试读结束[说明:试读内容隐藏了图片]

下载完整电子书


相关推荐

最新文章


© 2020 txtepub下载