图书介绍

软件开发基础教程 上2025|PDF|Epub|mobi|kindle电子书版本百度云盘下载

软件开发基础教程 上
  • 程国英,钱晓平编著 著
  • 出版社: 北京交通大学出版社;清华大学出版社
  • ISBN:7810827537
  • 出版时间:2006
  • 标注页数:417页
  • 文件大小:20MB
  • 文件页数:435页
  • 主题词:软件开发-教材

PDF下载


点此进入-本书在线PDF格式电子书下载【推荐-云解压-方便快捷】直接下载PDF格式图书。移动端-PC端通用
种子下载[BT下载速度快]温馨提示:(请使用BT下载软件FDM进行下载)软件下载地址页直链下载[便捷但速度慢]  [在线试读本书]   [在线获取解压码]

下载说明

软件开发基础教程 上PDF格式电子书版下载

下载的文件为RAR压缩包。需要使用解压软件进行解压得到PDF格式图书。

建议使用BT下载工具Free Download Manager进行下载,简称FDM(免费,没有广告,支持多平台)。本站资源全部打包为BT种子。所以需要使用专业的BT下载软件进行下载。如BitComet qBittorrent uTorrent等BT下载工具。迅雷目前由于本站不是热门资源。不推荐使用!后期资源热门了。安装了迅雷也可以迅雷进行下载!

(文件页数 要大于 标注页数,上中下等多册电子书除外)

注意:本站所有压缩包均有解压码: 点击下载压缩包解压工具

图书目录

第1部分 基础准备及入门1

第1章 引言1

1.1 程序与软件1

1.2 软件与软件工程1

1.2.1 软件的特点2

1.2.2 软件危机2

1.2.3 软件工程3

1.2.4 软件工程目标3

1.3 计算机科学、计算机技术、计算机工程3

1.4 软件工程文化4

1.5 如何学好这门课程4

1.5.1 掌握学科形态和核心概念4

1.5.2 实现思维方式数学化5

1.5.3 理解科学、提高科学素养5

1.5.4 掌握本课程的知识内容6

1.5.5 上机实践6

第2章 软件开发的一般过程7

2.1 分析与限定(用户需求分析)7

2.2 分析与抽象、设计8

2.3 编码、求解8

2.4 系统组装、系统集成测试与调试8

2.5 试运行、软件验收9

2.6 软件发布9

第3章 算法与数据结构抽象10

3.1 信息与数据10

3.2 数据、数据类型与数据结构10

3.3 问题、算法与程序10

3.4 算法与数据结构11

3.5 抽象的重要性11

第4章 实例HIS系统的分析与限定12

4.1 问题的提出12

4.2 分析与限定12

4.3 用户需求13

第5章 软件工程方法学与程序设计方法学15

5.1 软件工程方法学和程序设计方法学15

5.2 不同的程序设计方法15

5.3 结构化程序设计方法15

5.3.1 经典的结构化程序设计技术16

5.3.2 扩展的结构化程序设计技术16

5.3.3 结构化程序设计工具:流程图16

5.3.4 实例HIS的结构化设计17

5.4 面向对象程序设计方法17

5.5 结构化程序设计与面向对象程序设计的关系18

第6章 面向对象软件开发的基本概念19

6.1 面向对象思想19

6.2 面向对象的基本概念19

6.2.1 对象与类19

6.2.2 对象的特性20

6.2.3 对象与消息20

6.2.4 面向对象的三大特性20

6.2.5 面向对象术语22

6.3 软件工程管理和文档的重要性22

6.3.1 软件工程管理23

6.3.2 文档23

第7章 C++语言工具和BCB开发环境24

7.1 C++简介24

7.2 Borland C++Builder简介24

7.3 Borland C++编辑、编译、调试环境简介25

7.3.1 Borland C++6应用程序窗口25

7.3.2 建立C++源文件(.cpp)25

7.3.3 程序调试窗口(Debug Windows)27

思考与练习29

第2部分 C++程序设计30

第8章 C++程序简介30

8.1 C++环境基础30

8.2 C++编程简介30

8.3 内存与外存31

8.4 C++程序结构31

8.4.1 C++程序的组成32

8.4.2 C++字符集、保留字与标识符33

思考与练习34

第9章 数据与基本数据类型35

9.1 数据与对象35

9.2 C++的基本数据类型35

9.2.1 常量及其类型35

9.2.2 符号常量、const常量39

9.2.3 变量及变量定义39

9.2.4 基本类型数据的数值范围40

9.3 基本数据类型的输入/输出41

9.3.1 printf()和scanf()函数42

9.3.2 输入、输出流对象cin、cout44

9.4 C++的数据类型48

9.5 sizeof运算符48

9.6 typedef(给类型起“别名”)49

思考与练习49

第10章 运算符、表达式与语句50

10.1 C++运算符及运算符的优先级和结合性50

10.2 表达式51

10.2.1 算术运算符与算术表达式51

10.2.2 赋值运算符与赋值表达式52

10.2.3 自增、自减运算符53

10.2.4 关系运算符与关系表达式54

10.2.5 逻辑运算符与逻辑表达式55

10.2.6 条件运算符与条件表达式56

10.2.7 复合赋值运算符与复合赋值表达式56

10.2.8 逗号运算符与逗号表达式56

10.2.9 位运算符与表达式57

10.3 提高表达式的可读性57

10.4 语句57

10.4.1 空语句58

10.4.2 复合语句58

10.4.3 表达式语句58

10.4.4 函数调用语句58

10.4.5 定义语句59

10.4.6 声明语句59

10.4.7 控制语句59

10.5 基本类型之间的转换59

10.5.1 基本类型数据之间的运算59

10.5.2 隐式类型转换60

10.5.3 显式类型转换(强制类型转换)60

思考与练习61

第11章 控制结构63

11.1 选择结构63

11.1.1 if语句63

11.1.2 switch语句66

11.2 循环结构68

11.2.1 for语句68

11.2.2 while语句69

11.2.3 do-while语句71

11.3 goto语句72

11.4 break语句73

11.5 continue语句74

思考与练习74

第12章 程序功能与函数77

12.1 C++程序组件与函数77

12.2 库函数77

12.2.1 常用库函数78

12.2.2 rand函数79

12.3 函数定义80

12.3.1 函数定义与形参80

12.3.2 无参函数定义80

12.3.3 有参函数定义81

12.4 函数原型81

12.5 函数声明81

12.6 函数重载82

12.7 函数调用84

12.7.1 函数调用与实参84

12.7.2 带参数缺省值的函数84

12.7.3 函数调用机制86

12.7.4 重载函数的调用90

12.8 全局对象与局部对象92

12.8.1 全局对象92

12.8.2 局部对象93

12.9 递归94

12.9.1 函数的递归调用94

12.9.2 递归实例94

12.10 内联函数96

12.11 实例HIS的功能组成97

12.11.1 HIS的“角色”及其操作97

12.11.2 HIS的功能列表97

思考与练习98

第13章 存储类型与作用域101

13.1 函数的存储类型101

13.1.1 外部函数101

13.1.2 静态函数102

13.2 数据对象的存储类型102

13.2.1 自动存储类型(auto)102

13.2.2 寄存器存储类型(register)102

13.2.3 外部存储类型(extern)103

13.2.4 静态存储类型(static)104

13.3 对象标识符的作用域104

13.3.1 块(局部)作用域105

13.3.2 函数原型作用域105

13.3.3 函数作用域106

13.3.4 文件作用域107

13.4 对象的生存期108

13.4.1 静态生存期108

13.4.2 动态生存期108

13.5 标识符的可见性109

13.5.1 可见性109

13.5.2 作用域运算符109

思考与练习109

第14章 数组111

14.1 数组基本概念及定义111

14.1.1 数组的数据抽象111

14.1.2 数组的定义112

14.1.3 数组元素112

14.1.4 数组长度114

14.2 数组初始化114

14.2.1 一维数组的初始化114

14.2.2 二维数组的初始化115

14.2.3 关于数组初始化的说明115

14.3 字符串和字符数组116

14.3.1 字符串结束标志116

14.3.2 字符数组的输入、输出116

14.4 数组应用举例117

14.4.1 递归与迭代117

14.4.2 一维数组应用举例117

14.4.3 二维数组应用举例121

思考与练习122

第15章 指针124

15.1 指针对象的定义与初始化124

15.1.1 指针变量的定义124

15.1.2 指针变量的初始化124

15.2 取址与间接访问125

15.2.1 取址运算符与取址表达式125

15.2.2 间接访问运算符与间接访问表达式125

15.2.3 定义指针和使用指针的区别125

15.3 指针概念126

15.3.1 内存与内存地址126

15.3.2 指针与内存地址127

15.3.3 指针的类型128

15.3.4 值调用与引用调用130

15.3.5 指针的破坏性131

15.3.6 NULL指针132

15.3.7 为什么要用指针132

15.4 const限定符与指针133

15.4.1 指向变量的指针变量133

15.4.2 指向常量的指针变量133

15.4.3 指向变量的指针常量134

15.4.4 指向常量的指针常量134

15.5 指针运算134

15.6 指针与数组135

15.6.1 数组名与指向数组的指针变量135

15.6.2 一维数组与指针135

15.6.3 二维数组与指针136

15.6.4 指针数组137

15.7 指针与函数138

15.7.1 指针参数138

15.7.2 返回指针的函数139

15.8 函数指针140

15.8.1 函数指针的定义140

15.8.2 函数指针的应用141

15.9 堆内存分配与new、delete运算符142

15.9.1 new、delete运算符143

15.9.2 关于动态分配的说明143

15.10 例题:“数数”游戏144

思考与练习145

第16章 引用147

16.1 “引用”与“引用”声明147

16.1.1 声明“引用”147

16.1.2 “引用”与“堆”对象149

16.2 引用与函数149

16.2.1 用“引用”参数按引用调用149

16.2.2 用const限定形参150

16.2.3 函数返回“引用”151

16.2.4 函数调用作为左值152

思考与练习153

第17章 结构154

17.1 构造新类型154

17.1.1 声明结构类型154

17.1.2 定义结构对象155

17.1.3 结构对象的初始化155

17.2 访问结构对象155

17.2.1 同一结构类型的对象之间的赋值运算156

17.2.2 访问结构成员156

17.2.3 结构与数组156

17.2.4 结构与函数157

17.3 共用与枚举158

17.3.1 共用158

17.3.2 枚举159

思考与练习160

第18章 类与封装161

18.1 软件方法发展的必然161

18.1.1 “盲人摸象”与“面向对象”161

18.1.2 数据抽象与信息隐藏162

18.1.3 复合162

18.1.4 接口与实现方法的分离162

18.1.5 面向对象与面向过程162

18.2 从结构到类162

18.3 类的构成与声明162

18.3.1 声明类162

18.3.2 定义类的成员函数163

18.3.3 类作用域164

18.3.4 类的成员及其访问控制165

18.4 定义对象与访问成员166

18.4.1 类与对象166

18.4.2 定义对象166

18.4.3 访问对象成员166

18.4.4 this指针167

18.4.5 指向类成员的指针167

18.5 构造函数与析构函数169

18.5.1 构造函数与初始化对象169

18.5.2 析构函数174

18.5.3 构造函数与析构函数的说明176

18.6 对象的赋值运算与“赋值”成员函数176

18.7 拷贝构造函数177

18.7.1 拷贝构造函数的声明与定义177

18.7.2 缺省的拷贝构造函数177

18.7.3 何时自动调用拷贝构造函数179

18.8 构造函数用于类型转换181

18.9 类的static成员182

18.9.1 静态数据成员、静态成员函数182

18.9.2 静态成员的必要性183

18.10 const对象与const成员函数183

18.10.1 const对象183

18.10.2 const成员函数183

18.11 实例分析184

18.11.1 const对象与const成员函数:判断两直线是否平行184

18.11.2 返回private成员的引用:破坏类的封装性186

18.12 嵌套类与局部类187

18.12.1 嵌套类187

18.12.2 局部类187

18.13 实例HIS的对象与类188

思考与练习188

第19章 继承191

19.1 继承的概念191

19.2 派生类的声明、定义191

19.3 继承类别及其访问控制194

19.3.1 公有继承194

19.3.2 保护继承195

19.3.3 私有继承195

19.3.4 访问控制196

19.4 派生类对象的构造与析构198

19.5 继承关系中的指针200

19.5.1 指针的指向200

19.5.2 强制类型转换201

19.6 在派生类中重定义基类成员函数201

19.7 对象之间的关系202

19.7.1 “是”关系202

19.7.2 “有”关系202

19.7.3 “知道”和“使用”关系202

19.8 多重继承203

19.9 虚拟继承204

19.9.1 多继承的模糊性204

19.9.2 虚基类与虚拟继承204

19.10 复杂继承关系中派生类对象的构造顺序206

19.11 实例HIS的类之间的关系208

19.11.1 “是”(继承)关系209

19.11.2 “有”关系209

19.11.3 “知道”和“使用”关系209

思考与练习209

第20章 多态212

20.1 多态性的工作方式212

20.1.1 静态多态性212

20.1.2 动态多态性213

20.2 虚函数与多态性213

20.2.1 虚函数的引入213

20.2.2 虚函数的声明和定义214

20.2.3 多态编程214

20.2.4 正确使用虚函数218

20.3 虚析构函数221

20.4 纯虚函数与抽象类222

20.4.1 纯虚函数223

20.4.2 抽象类223

20.4.3 关于抽象类的说明223

20.5 实例HIS的多态性224

思考与练习224

第21章 友元225

21.1 友元的声明和使用225

21.1.1 友元函数225

21.1.2 友元类226

21.2 实例HIS中的友元227

思考与练习228

第22章 运算符重载229

22.1 运算符重载的需要性229

22.2 如何重载运算符229

22.2.1 一元操作符重载的一般形式229

22.2.2 二元操作符重载的一般形式231

22.2.3 重载自增、自减运算符232

22.2.4 重载赋值运算符234

22.2.5 重载流插入运算符235

22.3 运算符重载函数的返回236

22.4 类型转换运算符236

22.4.1 基本数据类型间的转换236

22.4.2 构造类型与基本类型之间的转换236

22.5 运算符重载的说明237

22.6 例题:超长位数的整数的加、减运算238

22.7 实例HIS中的操作符重载244

思考与练习245

第23章 输入/输出流与文件处理247

23.1 I/O流类247

23.1.1 iostream类库的头文件247

23.1.2 输入/输出流类和对象247

23.1.3 输入流248

23.1.4 输出流249

23.1.5 无格式输入/输出249

23.2 格式控制250

23.2.1 流操纵算子250

23.2.2 用户自定义的流操纵算子251

23.2.3 流格式状态及其设置251

23.3 文件流252

23.3.1 文件的组织253

23.3.2 文件操作253

23.4 串流类255

23.5 实例HIS中的数据文件256

思考与练习256

第24章 异常处理257

24.1 异常的基本概念257

24.1.1 异常处理机制257

24.1.2 异常指定260

24.2 标准头文件〈exception〉260

24.3 构造函数、析构函数的异常处理263

24.4 new异常处理264

24.5 auto_ptr模板类与动态内存分配265

24.6 具有继承关系的类的异常处理266

24.7 实例HIS中的异常处理267

思考与练习268

第25章 模板技术269

25.1 模板简介269

25.2 函数模板和模板函数269

25.2.1 函数模板的声明和定义270

25.2.2 函数模板的使用举例270

25.2.3 函数模板的重载272

25.3 类模板和模板类273

25.3.1 类模板的声明274

25.3.2 类模板的使用举例274

25.4 类模板与继承275

25.5 类模板的友元275

25.6 类模板的static成员276

25.7 实例HIS中的模板应用276

思考与练习276

第26章 常用数据结构278

26.1 自引用类278

26.2 动态数组278

26.3 链283

26.3.1 链的基本概念283

26.3.2 链的基本操作285

26.3.3 链应用举例287

26.3.4 “链节点”类模板295

26.3.5 “链”类模板296

26.3.6 链模板使用举例305

26.4 堆栈306

26.4.1 栈的基本操作306

26.4.2 从链模板派生栈模板306

26.4.3 利用数组实现栈结构308

26.5 队列310

26.5.1 队列的基本操作310

26.5.2 从链模板派生队列模板310

26.5.3 利用数组实现环形队列311

26.6 树314

26.6.1 树的基本概念314

26.6.2 二叉树315

26.6.3 任何非二叉树转换为二叉树315

26.6.4 二叉树的遍历316

26.6.5 树节点和“树”类模板317

26.6.6 计算算术表达式321

26.7 图321

26.7.1 图的基本概念322

26.7.2 图结构的实现322

26.8 实例HIS中的数据结构323

思考与练习324

第27章 排序与查找基本算法325

27.1 排序325

27.1.1 插入排序325

27.1.2 选择排序326

27.1.3 交换排序327

27.2 查找330

27.2.1 线性查找330

27.2.2 二分查找330

27.3 实例HIS中的排序与查找331

思考与练习332

第28章 标准模板库STL333

28.1 容器简介333

28.1.1 顺序容器334

28.1.2 关联容器338

28.1.3 容器适配器340

28.2 迭代器简介342

28.3 算法简介344

第29章 预处理器、ANSI/ISO C++补充346

29.1 预处理器与预处理指令346

29.1.1 宏定义346

29.1.2 文件包含347

29.1.3 条件编译347

29.1.4 #error和#pragma348

29.1.5 行号348

29.1.6 预定义的符号常量348

29.1.7 断言(宏assert)349

29.2 ANSI/ISO C++补充349

29.2.1 类型转换运算符349

29.2.2 mutable存储类型351

29.2.3 名空间351

29.2.4 explicit构造函数352

29.2.5 运算符关键字352

29.2.6 程序运行时的类型信息(RTTI)353

第30章 C++编码标准354

30.1 注释354

30.1.1 注释的原则354

30.1.2 函数注释355

30.1.3 “战略性”注释、“战术性”注释355

30.2 命名原则356

30.3 函数357

30.3.1 函数声明、定义357

30.3.2 函数参数358

30.3.3 函数返回值358

30.3.4 函数重载358

30.4 表达式和流程控制359

30.4.1 表达式使用原则359

30.4.2 goto语句360

30.4.3 循环控制360

30.5 宏360

30.6 代码格式360

30.7 初始化和清除362

30.7.1 初始化基本原则362

30.7.2 构造函数、拷贝构造函数362

30.7.3 赋值成员函数362

30.7.4 析构函数362

30.7.5 内存分配和释放362

30.8 类型的使用、转换363

30.8.1 类型使用原则363

30.8.2 类型转换原则363

30.8.3 类的设计和使用363

30.9 继承364

30.9.1 继承的基本原则364

30.9.2 多重继承365

30.9.3 继承和模板的区别原则365

30.10 操作符重载365

30.11 友元366

30.12 模板366

30.12.1 模板使用的基本原则366

30.12.2 模板编译的特殊性366

30.13 异常处理366

30.13.1 异常处理的基本原则366

30.13.2 模板类型的异常367

30.14 文件和目录367

30.14.1 文件名367

30.14.2 头文件368

30.14.3 文件、目录的组织368

30.15 编译368

30.15.1 条件编译368

30.15.2 编译原则369

30.16 兼容性和性能369

30.16.1 考虑兼容性369

30.16.2 考虑性能要求370

第31章 实例HIS的实现371

31.1 数据文件371

31.1.1 用户密码文件371

31.1.2 医院“挂号科室”文件371

31.1.3 药品文件372

31.1.4 病人信息文件372

31.1.5 病人就诊病史文件372

31.1.6 病人就诊处方文件372

31.2 源代码文件373

31.2.1 类的声明和定义373

31.2.2 其他程序文件394

31.3 目录组织411

31.4 编译、运行412

31.4.1 组织文件412

31.4.2 编写main函数文件412

31.4.3 编译、运行程序412

31.4.4 程序调试、维护414

31.4.5 改进416

参考文献417

热门推荐