新書推薦:
《
UE5虚幻引擎必修课(视频教学版)
》
售價:NT$
505.0
《
真需求
》
售價:NT$
505.0
《
阿勒泰的春天
》
售價:NT$
230.0
《
如见你
》
售價:NT$
234.0
《
人格阴影 全新修订版,更正旧版多处问题。国际分析心理学协会(IAAP)主席力作
》
售價:NT$
305.0
《
560种野菜野果鉴别与食用手册
》
售價:NT$
306.0
《
中国官僚政治研究(一部洞悉中国政治制度演变的经典之作)
》
售價:NT$
286.0
《
锂电储能产品设计及案例详解
》
售價:NT$
505.0
|
內容簡介: |
Visual C++技术是当今使用最为频繁的开发技术之一,一直在开发领域中占据重要的地位。
本书通过12个开发项目的实现过程,详细讲解Visual C++在项目开发中的综合运用过程,这些项目从作者的学生时代写起,到架构师结束,一直贯穿于作者最重要的开发时期。第1章讲解俄罗斯方块游戏的具体实现流程;第2章讲解学校图书馆管理系统的具体实现流程;第3章讲解企业人事管理系统的具体实现流程;第4章讲解安全卫士防火墙系统的具体实现流程;第5章讲解视频播放器的具体实现流程;第6章讲解专业理财系统的具体实现流程;第7章讲解仿QQ聊天系统的具体实现流程;第8章讲解XX中学成绩管理系统的具体实现流程;第9章讲解图像处理系统的具体实现流程;第10章讲解视频监控系统的具体实现流程;第11章讲解网络电话系统的具体实现流程;第12章讲解Foxmail转发系统的具体实现流程。
在具体讲解每个实例时,都遵循项目的进度来展开,从接到项目到具体开发,直到最后的调试和发布,内容循序渐进,并穿插了学习技巧和职场生存法则知识,引领读者全面掌握Visual C++。
本书不但适合Visual C++的初学者阅读,也适合有一定Visual C++基础的读者学习,亦可作为已有一定造诣的程序员的参考书。
|
目錄:
|
目 录
第1章 俄罗斯方块游戏1
1.1 赢在规划2
1.2 第一个项目4
1.3 系统分析5
1.4 编码工作的第一步——单机版10
1.5 编码工作的第二步——对战版24
1.6 编码工作的第三步——配合版29
1.7 编码工作的第四步——网络版34
1.8 项目调试40
第2章 学校图书馆管理系统43
2.1 训练程序员的基本功44
2.2 新的项目45
2.3 系统概述和总体设计46
2.4 数据库设计48
2.5 系统框架设计51
2.6 基本信息管理模块60
2.7 用户管理模块72
2.8 图书借阅和归还模块76
2.9 项目调试80
第3章 企业人事管理系统83
3.1 程序员职场生存必杀技84
3.2 新的项目87
3.3 需求分析88
3.4 功能模块划分88
3.5 搭建开发环境89
3.6 设计数据库90
3.7 编码工作95
3.8 项目测试119
第4章 安全卫士防火墙系统123
4.1 企业的沟通之道124
4.2 第一个盈利项目126
4.3 一个简单的防火墙程序132
4.4 网络防火墙系统137
第5章 视频播放器159
5.1 体验语言之美160
5.2 新的项目161
5.3 项目规划分析162
5.4 搭建开发环境166
5.5 设计FilterGraph结构170
5.6 设计界面174
5.7 具体编码180
5.8 项目调试197
第6章 专业理财系统199
6.1 架构中的可扩展性200
6.2 新的项目201
6.3 系统分析203
6.4 系统设计204
6.5 设计数据库205
6.6 设计系统的主框架207
6.7 具体编码211
6.8 项目调试233
第7章 仿QQ聊天系统237
7.1 模块化编程238
7.1.1 谈模块化设计思想238
7.1.2 赢在模块化思想——实现
高内聚和低耦合的代码239
7.2 系统背景介绍241
7.3 系统分析241
7.4 服务器端编码246
7.5 客户端编码256
7.6 系统调试276
第8章 XX中学成绩管理系统277
8.1 程序的可移植性278
8.2 新的项目279
8.3 系统分析280
8.4 模块规划281
8.5 搭建数据库282
8.6 前期编码——设计公共类286
8.7 设计界面287
8.8 后期编码288
8.9 项目调试316
8.10 将VC++ 6.0项目转换为Visual Studio 2013项目318
第9章 图像处理系统323
9.1 考虑所有可能会发生的情形324
9.2 新的项目326
9.3 系统设计327
9.4 功能模块划分327
9.5 设计界面328
9.6 设计类330
9.7 具体编码336
9.8 项目调试365
第10章 视频监控系统369
10.1 做好项目管理者370
10.2 新的项目373
10.3 系统分析373
10.4 系统设计376
10.5 数据库设计378
10.6 设计公共类380
10.7 设计主窗体385
10.8 具体编码400
10.9 设计窗体布局416
10.10 项目调试423
第11章 网络电话系统425
11.1 算法是程序的灵魂426
11.2 网络电话系统基础430
11.3 设计界面431
11.4 具体编码433
第12章 Foxmail转发系统451
12.1 走向架构师之路452
12.2 背景介绍——邮件是一种全新的通信方式454
12.3 一个Foxmail项目456
12.4 具体编码465
12.5 系统调试479
|
內容試閱:
|
第1章 俄罗斯方块游戏
俄罗斯方块游戏曾经是一款风靡全球的电视游戏机和掌上游戏机游戏产品,曾经造就了非凡的商业价值,影响了一代游戏产业链的发展。
这款游戏最初是由苏联的游戏制作人Alex Pajitnov制作的,它看似简单,但却变化无穷,令人玩起来上瘾。相信很多读者都还记得曾经为它如痴如醉、茶不思饭不想的那个时代。
在本章的内容中,将介绍使用Visual C++ 6.0开发一个俄罗斯方块游戏项目的实现方法,并详细介绍其具体的实现流程。
001C++概述
002理解编译系统
003安装Visual C++ 6.0
004Visual C++6.0集成开发环境介绍
005第一个C++程序
006新语言层出不穷,需要及时与时俱进吗?
007初学者为经常不知道自己该学什么了
008是否值得为C++投入时间
009什么是OOP
010面向对象编程
1.1 赢 在 规 划
光盘:视频\第1章\赢在规划.avi
即便是最著名的系统架构师,其成长也离不开码农、软件工程师、软件架构师等职位的磨砺。国内每年都有成千上万的IT应届毕业生走向社会,他们从步入程序员岗位的那一刻起,都曾经努力过并坚持过,但最后,奋斗在开发一线的会剩余多少呢?
程序员需要向自己的目标努力,从细节上为自己的成功做好准备。在优秀程序员的职业生涯中,最初的成功细节是从起点开始就做好职业规划。好的职业规划,能够为日后的学习和工作起到良好的指引作用。
1.1.1 赢在起点——程序员的职业规划
程序开发人员的职业发展通常有如下所示的几个选择。
1 专注于技术,最后成为技术专家或架构师。在扎实的技术基础上高级软件工程师,如果有比较强的抽象设计能力,又打算专注于技术开发,那么,软件架构师是一个比较好的选择。
2 转型到技术型销售或技术支持等职位。
3 随着技术的积累,如果性格更适合做管理,并且交际能力突出,则技术型管理应该是下一步的方向。
上述三个发展方向十分典型,绝大多数程序员也都在向这些方向的金字塔尖努力,并且,这三个方向都是以技术为基础的。
例如,对于已经工作两年以上的程序员来说,可以有几种基本的职业规划:技术专家、软件架构师、实施顾问或销售。其中,程序员最主要的发展方向是资深技术专家,无论是C语言、C++、C#、Java、.NET还是数据库领域,都要首先成为专家,然后才可能继续发展为架构师。
尽管架构师的职位可以工作一辈子,待遇也非常好,对于科班出身的程序员最为适合,但这种工作职位非常有限,在国内目前的IT行业中,软件架构师需要具备的条件比较复杂,这也是我国软件行业有待成熟的因素之一。
综上所述,通过对主流程序员三种发展方向的了解,读者可以根据自身情况,来规划自己的未来。
1.1.2 赢在项目开发伊始——做好项目分析
很多开发者,特别是一些初级开发者,写程序时,总是看到功能后就立即投入到代码编写工作中,需要什么功能就编写函数去一一实现。但是在后期调试时,总是会出现这样或那样的错误,需要返回,重新修改。幸运的是,初学者接触到的都是小项目,修改的工作量也不是很大。但是,如果在大型项目中,几千行代码的返回修改,将是一件很恐怖的事情。所以,在求学时期,老师们都会反复强调项目提前规划的重要性。
一个软件项目的开发主要分为5个阶段,分别是需求分析阶段、设计阶段、编码阶段、测试阶段和维护阶段。而需求分析阶段得到的是结果,是软件项目开发中其他4个阶段的必备条件。从以往的经验来看,需求分析中的一个小的偏差,就可能导致整个项目无法达到预期的效果,或者说,最终开发出的产品不是用户所需要的。
软件需求分析的任务,不是确定系统应该怎样完成工作,而是确定系统必须完成哪些工作,也就是对目标系统提出完整、准确、清晰、具体的要求。所做的工作是深入描述软件的功能和性能,确定软件设计的限制和软件同其他系统的接口细节,定义软件的其他有效性要求。
可以将软件需求分析的过程分为4个阶段,分别是对问题的识别、分析与综合、制定规格说明、评审。
1. 问题的识别
问题的识别,是指系统分析人员研究可行性分析报告和软件项目实施计划,确定目标系统的综合要求,并提出这些需求的实现条件,以及需求应达到的标准。
1功能需求:列举出所开发软件在职能上应做什么。
2性能需求:给出所开发软件的技术性能指标,如存储容量限制、运行时间限制、安全保密性等。
3环境需求:软件系统运行时所处环境的要求,如硬件方面的机型、外部设备、数据通信接口,软件方面的系统软件,包括操作系统、网络软件、数据库管理系统,使用方面的部门制度、人员的技术水平。
4可靠性需求:对所开发软件在投入运行后不发生故障的概率,按实际的运行环境提出要求。所以,对于重要的软件,或是运行失效会造成严重后果的软件,应提出较高的可靠性要求。
5安全保密要求:应当在这方面恰当地做出规定,对所开发的软件给予特殊的设计,使其在运行中,其安全保密方面的性能可以得到必要的保证。
6用户界面需求:为用户界面细致地规定应达到的要求。
7资源使用需求:开发的软件在运行时和开发时所需要的各种资源。
8软件成本消耗和开发进度需求:在软件项目立项后,要根据合同规定,对软件开发的进度和各步骤的费用提出要求,作为开发管理的依据。
9预先估计以后系统可能达到的目标:这样,可以比较容易地对系统进行必要的补充和修改。
除了这些必需的需求,问题识别的另一个工作是建立分析所需要的通信途径,以保证能顺利地对问题进行分析。
2. 分析与综合
分析与综合的目标,是给出目标系统的详细逻辑模型。在此步骤中,分析和综合工作须反复地进行。
3. 制定规格说明
对于编制的需求分析文档,我们又称其为软件需求规格说明书。除了编写软件需求规格说明书之外,还要制定数据要求说明书,以及编写初步的用户手册。
4. 评审
需求分析评审是指在需求分析的最后一步,对系统功能的正确性、完整性和清晰性,以及其他需求,给予评价。
1.2 第一个项目
光盘:视频\第1章\第一个项目.avi
本项目的客户代表是一家娱乐网的CEO。为了提高其网站的知名度,增加新的盈利渠道,正在向游戏业进军。现在想开发一款简单的俄罗斯方块游戏。
1客户代表提出了如下所示的两点要求。
* 实现基本的俄罗斯方块游戏功能。
* 分为单机版、对战版、配合版和网络版4种模式。
2本项目的开发团队成员如下所示。
* 软件工程师A:负责前期功能分析,模块划分,窗体界面设计。
* 软件工程师B:负责整个项目的具体编码、后期项目调试和发布工作。
3整个团队的职责流程如图1-1所示。
图1-1 团队的职责流程
对于初次开发完整软件项目的程序员来说,开发的第一个项目十分重要。在开发伊始,可能会信心不足,此时,就需要建立充分的自信心。自信心使人勇敢,自信的人总是能够以一种轻松自然的态度来面对生活中复杂的情景或挑战,表现出一种大智大勇的气度;自信心使人果断。自信的人勇于承担责任,不会因为事关重大而优柔寡断,不会因为想着逃避不好的结果而瞻前顾后,因而会保持一贯的果断作风。作为一名程序员,面对项目时,我们要仔细分析,想办法尝试,想办法去实现,这样才能进步,才能找到自己的不足。
另外,在开发第一个完整项目时,还应当充分认识到项目分析和规划的重要性。
很多初学者在编写软件程序时,总是在看到功能后就立即投入到代码编写工作中。这样往往会在开发后期出现很多错误,需要返回,重新修改代码。对于小项目来说,因为修改的工作量也不是很多,所以问题还不算突出。但是,在中、大型项目中,特别是对于职场中的大型商业项目来说,几万行代码的返回修改是一件很恐怖的事情,提前做好规划的重要性是不言而喻的。
1.3 系 统 分 析
光盘:视频\第1章\系统分析.avi
根据俄罗斯方块游戏的游戏规则和要求,可以总结出俄罗斯方块游戏的基本功能模块。要想更好地完成俄罗斯方块游戏的需求分析工作,需要彻底了解这款游戏的具体使用方法和必备的常用功能。几乎所有的程序员都知道这一点,但是,绝大多数开发者都对此不重视,认为太基本、太简单和太理所当然。在此,我们提醒读者,一定要重视市场调研工作。因为市场的发展是瞬息万变的,一夜之间可能会诞生很多新奇好用的应用。
当然,因为俄罗斯方块游戏是一款在市面中流行多年的游戏,所有游戏的基本玩法和功能大家都耳熟能详。而如果要开发一款全新的游戏,就需要花工夫在项目规划伊始进行玩法规划设计了。
1.3.1 功能分析
1游戏方块预览功能
当游戏运行后,并在顶部出现一个游戏方块时,必须在预览界面中出现下一个方块,这样便于玩家提前准备进行控制处理。因为在此游戏中有19种方块,所以要在方块预览区内显示随机生成的游戏方块。
2 游戏方块控制功能
游戏玩家可以对出现的方块进行移动处理,分别实现左移、右移、快速下移、自由下落和行满自动消除等功能的效果。
3更新游戏显示
当游戏进行方块移动处理时,要清除先前的游戏方块,用新坐标重绘游戏方块。
4 游戏速度设置和分数更新
可以设置完成完整的一行为10分。当达到一定分数后,需要给游戏者进行升级。当玩家级别升高后,方块的下落速度将增加,从而游戏的难度就对应地提高了。
5提供游戏帮助
游戏玩家进入游戏系统后,可以通过帮助获得游戏的操作提示。
一个俄罗斯方块游戏的基本功能也就上述5条了,当然,现实中的游戏产品更加复杂,但基本的功能都是大同小异的。
6游戏模式
整个游戏分为单机模式、对战模式、配合模式和网络模式4种,玩家可以根据需要而灵活地选择自己的模式。
1.3.2 结构规划
为了加深印象,做了一个模块结构图,如图1-2所示。
图1-2 游戏模块的结构
1.3.3 核心处理模块分析
1.游戏方块的控制处理
方块的移动控制是整个游戏的重点和难点,具体信息如下。
1左移处理,处理过程如下。
①判断是否能够左移,判断条件有两个:左移一位后,方块不能超越游戏底板的左边线,否则将越界;游戏方块有值位置,游戏底板不能被占用。
②清除左移前的游戏方块。
③在左移一位的位置处,重新显示此游戏方块。
2右移处理,处理过程如下。
①判断是否能够右移,判断条件有两个:右移一位后,方块不能超越游戏底板的右边线,否则将越界;游戏方块有值位置,游戏底板不能被占用。
②清除右移前的游戏方块。
③在右移一位的位置处,重新显示此游戏方块。
3下移处理,处理过程如下。
①判断是否能够下移,判断条件有两个:下移一位后方块不能超越游戏底板的底边线,否则将越界;游戏方块有值位置,游戏底板不能被占用。满足上述两个条件后,可以被下移处理。
②清除下移前的游戏方块。
③在下移一位的位置处,重新显示此游戏方块。
4旋转处理,处理过程如下。
①判断是否能够旋转,判断条件有两个:旋转后方块不能超越游戏底板的底边线、左边线和右边线,否则将越界;游戏方块有值位置,游戏底板不能被占用。
②清除旋转前的游戏方块。
③在游戏方块显示区域的位置,使用当前游戏方块的值作为旋转后形成的新游戏方块的编号,并重新显示这个编号的游戏方块。
2.更新显示
当游戏中的方块进行移动处理时,要清除先前的游戏方块,用新坐标重绘游戏方块。当消除满行后,要重绘游戏底板的当前状态。
3. 游戏速度和分数更新处理
当行满后,积分会增加一个固定的值,然后将等级变量与速度变量相关联,实现等级越高速度越快的效果。
|
|