C++项目实战:解释程序的面向对象设计与实现

C++项目实战:解释程序的面向对象设计与实现"

作者:郑晓娟
ISBN:9787302189091
定价:¥20
字数:千字
页数:
出版时间:2009.01.01
开本:
版次:1-1
装帧:
出版社:清华大学出版社
简介

本教材为编译原理及其实践课程的工程化教学课群中的前导课程教学用书。本教材通过全面改革编译原理及其实践课程的内容和教学方法,将软件工程知识由浅入深、循序渐进地贯穿课程中,构成阶梯状上升的教学过程。

本教材以一个简单的过程式语言C0作为教学载体,详细介绍了该语言解释程序的面向对象设计和实现方法,同时对项目开发过程中涉及的软件工程的基本理念以及统一建模语言UML的使用进行了配套讲解。本教材可作为计算机专业本科生C++语言和面向对象程序设计课程的实践项目,是后续编译原理和软件工程

课程理论学习难得的前导实践环节。

本教材还可作为广大计算机软件开发爱好者学习实践和项目开发的参考书。

前言

软件产业作为信息产业的核心和国民经济信息化的基础,日益受到国家的高度重视。权威数据显示,我国软件产业每年的人才需求量近一百万。与此同时,许多软件企业反映招聘不到真正适合的软件人才。信息社会不断增长的软件人才需求与优质计算机专业教育供给不足的矛盾已成为计算机教育发展面临的一个重要问题。解决问题的方法之一就是将计算机科学的核心课程进行工程化改造,从而形成一个融基础理论、实验教学、工程实践为一体的整体化培养机制,使计算机专业教学质量得到不断提升,使计算机专业教育得到健康稳步发展,为社会培养真正满足产业需求的软件人才。

本教材为编译原理及其实践课程的工程化教学课群中的前导课

教学用书。本教材通过全面改革编译原理及其实践课程的内容及教学方法,将软件工程知识由浅入深、循序渐进地贯穿在课程中,构成阶梯状上升的教学过程。

本教材的特色在于通过一个简单的教学实践项目,实现了4个“结合”: 

(1) 结合了C++编程语言的学习。

(2) 结合了面向对象的程序设计方法与技术。

(3) 结合了编译课程的解释程序原理。

(4) 结合了软件工程与UML建模思想。

本教材以一个简单的过程式语言C0作为教学载体,详细介绍了该语言解释程序的面向对象设计和实现方法,同时对本项目开发过程中涉及的软件工程的基本理念以及统一建模语言UML的使用给予了配套讲解。

本教材中的项目可作为本科生C++语言和面向对象程序设计课程的实践项目,同时为编译原理和软件工程课程打下基础,作为难得的前导实践环节,为后续理论学习增加实践体验。

本书内容既不是空洞的理论指导,也不是泛泛的项目介绍,而是真正以一个解释器项目作为实例,进行深入浅出的细致讲解,内容贯穿软件项目开发的全流程,包含了系统分析、设计、编码、测试和部署,使读者获得完整的项目开发体验。

读者只需具备C++语言基础,便可轻松入手,逐步进阶,最终达到: 

(1) 掌握并实践C++程序设计语言,学会面向对象的分析与设计方法,获得使用C++编程语言解决实际问题的能力。

(2) 初步了解和掌握工程化的软件开发方法和统一建模语言UML,为后续编译原理及其实践课程工程化教学课群中的《C语言编译程序的面向对象设计与实现》实践项目的开发打下一定的实践基础。

(3) 理解程序设计语言的解释执行过程,为编译原理及其实践课程的工程化教学课群中的《编译原理及其实现技术》课程的学习打下一定的理论基础。

C++语言是一门广泛用于工业软件研发的大型语言,支持面向对象的程序设计,在产业界有着广泛的应用。C++语言有根本性优势的开发领域包括低级系统程序设计、高级大规模高性能应用设计、嵌入式程序设计、通用程序设计以及数值科学计算等。

C++项目实战: 解释程序的面向对象设计与实现

面向对象软件开发方法与统一建模语言UML是当今软件工程的主流思想。学生应当初步了解和应用面向对象的软件工程方法进行面向对象软件需求分析(OOA)、面向对象系统设计(OOD)、面向对象编程(OOP)和面向对象测试(OOT),并通过项目开发实践灵活地运用面向对象软件开发思想和技术,学会运用面向对象的思想分析问题和解决实际问题,同时学习软件项目管理和团队开发的工作方法。

编译(解释)程序是计算机系统不可缺少的部分,是程序设计者的必备工具。学习并掌握编译程序的构造原理和实现技术,能够增强对程序设计语言的理解,提高程序设计尤其是大型软件设计的能力。然而,编译原理课程理论性较强,在本科教学中尤为困难。近年来的教学实践表明,在讲授编译原理课程之前开发一个小语言的解释程序的方法不但锻炼了学生的实践能力,同时预备了编译的初步知识,部分解决了编译原理教学难的问题,得到了同学们的广泛喜爱和好评。

本教材是一本难得的集C++语言项目开发实例分析、解释程序原理和构造、面向对象软件开发方法和统一建模语言UML于一体的计算机专业教材。本教材还可以作为计算机专业低年级学生以及广大计算机软件开发爱好者的参考用书。

本书分章节系统全面地阐述了基于UML的C0解释程序的面向对象分析、设计与实现: 

第1章详细介绍C0语言及其解释程序的基本概念、基本原理和相关技术,包括表达式的处理技术,并给出了C0语言解释程序的构造方法。

第2章简要介绍面向对象方法的基本概念和原理,以及面向对象的工程化软件开发的不同阶段。结合实例分析传统的开发方法与面向对象的开发方法的不同。

第3章简要介绍统一建模语言UML,介绍面向对象分析与设计各个阶段使用的简单模型及其基本图形表示。

第4章对C0解释程序进行面向对象的分析,将各种概念组织起来,介绍其用例模型和概念模型。

第5章对C0解释程序进行面向对象的设计,包括类及类间关系的确定,抽象出静态结构,设计出交互模型; 同时介绍命名空间的划分和异常处理。

第6章基于C++语言具体构造解释程序各个类,使用规范的注释和风格编写代码。对于软件测试部分,不探讨具体的测试理论,仅展示软件系统测试和集成的基本方法和途径。

第7章提供了C0语言集成开发环境的一套实现方案,从需求分析到系统设计进行了扼要讲解。同时介绍了使用Visual Studio 2008创建WinForm应用程序的方法,特别对Windows应用程序的部署进行了讲解。

本教材定位于介绍C0解释程序项目所涉及的面向对象程序设计方法和UML的初步内容。对于更复杂语言的处理机制、编译原理和更加深入的软件工程知识等,请参考编译原理及其实践课程工程化教学课群的其他教材。愿本教材成为软件开发初学者学习和掌握面向对象程序设计方法的敲门砖,并达到抛砖引玉的效果。时间紧促,书中错误疏漏在所难免,恳请读者批评指正。

编者

2008年10月

目录

第1章项目总体介绍

1.1项目需求

1.2C0语言介绍

1.3基本概念

1.4C0词法分析器

1.4.1Token设计

1.4.2词法分析器

1.4.3算法原理

1.5C0语法分析器

1.5.1语法分析器

1.5.2算法原理

1.6C0解释器

1.6.1虚拟存储器

1.6.2虚拟输入器

1.6.3虚拟输出器

1.6.4运算分量栈

1.6.5运算符号栈

1.6.6算法原理

1.7小结

第2章面向对象方法

2.1面向对象方法概述

2.2面向对象的基本概念

2.2.1对象

2.2.2类

2.2.3消息

2.2.4封装

2.2.5继承

2.2.6多态性

2.2.7结构与连接

2.3面向对象的软件工程方法

2.4面向对象方法与过程式程序设计

2.4.1从面向过程到面向对象程序设计

2.4.2面向对象方法的优势

2.5小结

C++项目实战: 解释程序的面向对象设计与实现

第3章统一建模语言UML

3.1软件建模的原因

3.2UML的发展历程

3.3什么是UML

3.4UML建模工具

3.4.1RationalRose

3.4.2Visio

3.5UML的主要内容

3.5.1UML的视图

3.5.2UML的图

3.5.3UML的基本模型元素

3.6用例图

3.6.1用例图模型

3.6.2角色与用例

3.7类图

3.7.1类图模型

3.7.2类图模型的语法表示

3.8对象图

3.9包图

3.10状态图

3.11活动图

3.12时序图

3.13协作图

3.14组件图

3.15部署图

3.16小结

第4章C0解释程序的面向对象分析

4.1概述

4.2软件开发的一般步骤

4.3软件生命周期模型

4.4分析、设计与编程的关系

4.5面向对象分析、设计与UML建模的关系

4.6面向对象分析的基本过程

4.7建立用例模型

4.7.1角色的识别

4.7.2用例的识别

4.7.3用例之间的关系

4.7.4用例的描述

4.7.5C0解释程序的用例模型

4.8建立概念模型

4.8.1识别类

4.8.2确定类之间的联系

4.8.3C0解释程序的初步概念模型

4.9小结

第5章C0解释程序的面向对象设计

5.1类的设计

5.1.1确定类的服务

5.1.2确定类的属性

5.1.3C0解释程序的类图

5.2面向数据设计

5.2.1映射表类

5.2.2链表类

5.2.3解释环境类Context

5.3面向实体设计

5.3.1词法分析类Lexer

5.3.2语法分析类Parser

5.3.3解释器类Interpreter

5.4面向接口设计

5.4.1文件类File

5.4.2错误记录类ErrorLog

5.5面向关系设计

5.5.1Token类

5.5.2语句类

5.5.3表达式类

5.6命名空间划分

5.6.1命名机制

5.6.2模块化机制

5.6.3使用其他命名空间的元素

5.7异常处理

5.8小结

第6章C0解释程序的面向对象实现

6.1注释、命名与代码规范

6.1.1注释的内容

6.1.2XML文档注释

6.1.3命名和代码规范

6.2类的构造

6.3类和源文件组织

6.4静态类

6.5接口类

6.6单核类

6.7面向对象的测试

6.7.1原型测试

6.7.2单元测试

6.7.3系统测试

6.8使用Microsoft Visual Studio 2008编写C++控制台应用程序

6.8.1Microsoft DreamSpark计划: 学生免费获得正版Visual Studio

 2008 Professional Edition

6.8.2使用Visual Studio 2008编写控制台应用程序

6.8.3使用Visual Studio 2008自动生成类图

6.9C0解释器安装和使用说明

6.9.1安装与卸载

6.9.2使用说明

6.10小结

第7章C0集成开发环境的设计与实现

7.1Windows窗口程序基本运行原理

7.1.1Windows窗口程序的驱动方式

7.1.2Windows消息机制

7.1.3.NET Framework与WinForm应用程序开发模型

7.2需求分析

7.2.1俘获需求

7.2.2从需求出发建立概念模型

7.2.3从需求出发建立用例模型

7.3设计方案

7.3.1用例分析

7.3.2交互设计

7.3.3用户界面设计

7.3.4体系结构设计与实现

7.3.5类模型的建立

7.4使用Visual Studio 2008编写WinForm应用程序

7.4.1WinForm应用程序的创建

7.4.2WinForm应用程序的部署

7.5C0 IDE安装配置和使用说明

7.5.1系统要求

7.5.2安装与卸载

7.5.3配置与使用

7.6小结

附录AC0解释器源代码

A.1命名空间划分

A.2基本类型和行为单元

A.2.1单词语义编码SemanCode

A.2.2单词类型TokenType

A.2.3Token类及其子类

A.2.4Expression类及其子类

A.2.5Statement类及其子类

A.2.6错误类Error

A.3数据结构

A.3.1记号链表TokenList

A.3.2语句链表StatementList

A.3.3栈Stack

A.4词法分析阶段

A.4.1单词与语义编码映射类SemanMapper

A.4.2单词与记号类型的映射类TypeMapper

A.4.3标识符与语义编码映射IDTable

A.4.4文件类File

A.4.5词法分析器类Lexer

A.5语法分析阶段

A.5.1操作符优先级类OperatorPriority

A.5.2自动操作符栈OperatorStack

A.5.3语法分析器类Parser

A.6解释执行阶段

A.6.1解释环境类Context

A.6.2错误记录ErrorLog

A.6.3解释器类Interpreter

A.7主函数

参考文献

作者简介

编辑推荐

作者寄语

电子资料

www.luweidong.cn

下一个