C++程序设计(微课版)

人工智能AI大模型赋能C++编程,配套资源丰富
分享 推荐 0 收藏 3 阅读 524
黄秋波 (作者) 978-7-115-68089-1

关于本书的内容有任何问题,请联系 刘博

1.紧跟编程教育前沿,融合大模型与AI辅助编程。
2.软件测试思想贯穿始终。
3.强调计算思维、弱化语法细节。
4.实战与理论并重。
5.前瞻性与实用性兼具。
¥79.80 ¥67.83 (8.5 折)

内容摘要

本书系统阐释C++编程语言的核心语法与大语言模型实践,构建从过程化编程范式到面向对象编程范式的递进式知识框架。为积极应对生成式人工智能技术给传统编程教育带领的革新与挑战,本书创新性地讲大语言模型融入教学体系,辅助读者进行计算思维能力的构建与问题求解能力的进阶发展,使人工智能技术成为全天候的数字化助教。
基于智能教育时代的人才培养需求,本书对经典C++知识体系进行结构性重构,主要内容包括绪论、开始学习C++、顺序结构程序设计、输入输出和文件、分支结构程序设计、循环结构程序设计、函数、一维数组与向量、二维数组与向量、字符串、递归、类与对象(一)、类与对象(二)、继承与多态、标准模板库STL。
本书既可作为计算机及相关学科本科生程序设计基础课程的教学用书,亦可作为从事C++软件开发的技术人员及科研工作者的技术参考书。通过融入大语言模型技术,本书致力于培养兼具扎实编程功底与探究能力的新工科人才。

目录

第1章 绪论 1
1.1 C++简介 1
1.1.1 机器语言与高级语言 1
1.1.2 编译过程 1
1.1.3 C++语言 2
1.1.4 C++的发展 3
1.1.5 兼容性 3
1.2 面向过程编程与面向对象编程 4
1.3 大语言模型介绍 4
1.3.1 大语言模型 4
1.3.2 AI编程助手 5
1.3.3 可靠性问题 6
1.4 信息的表示与存储 7
1.4.1计算机内存与存储单位基础 7
1.4.2 进制介绍 8
1.4.3 整数进制转换 9
1.4.4 小数进制转换 12
1.5 本章小结 14
第2章 开始学习C++ 15
2.1 进入C++ 15
2.1.1 最简单的程序 15
2.1.2 使用cout输出 16
2.1.3 命名空间的使用 18
2.1.4 C++注释 18
2.2 程序语句 19
2.3 变量及变量定义 20
2.4 数据类型 21
2.4.1 整型 21
2.4.2 浮点型 21
2.5 C++程序 21
2.5.1 输入输出 21
2.5.2 赋值语句 22
2.5.3 应用实例 23
2.6 语法探究* 24
2.6.1 变量命名规则 24
2.6.2 变量定义及初始化 25
2.6.3 原码与补码 25
2.6.4 整数类型的选择与溢出问题 27
2.6.5 浮点类型的选择与精度问题 29
2.7 大模型实践 30
2.7.1 大模型交互问答 30
2.7.2 编程助手生成代码 31
2.8 大模型探究 32
2.9 本章小结 34
第3章 顺序结构程序设计 35
3.1 基本数据类型 35
3.1.1 char类型 35
3.1.2 bool类型 40
3.1.3 指针 40
3.2 算术表达式 42
3.2.1 算术运算符 42
3.2.2 算术表达式 43
3.2.3 除法运算 43
3.2.4 取余运算 44
3.3 赋值表达式 45
3.4 自增自减运算符 46
3.5 复合数据类型 47
3.5.1 数组 47
3.5.2 向量vector 47
3.5.3 字符串string 47
3.5.4 结构体与类 47
3.6 函数 48
3.6.1 库函数及使用示例 48
3.6.2 函数的调用及执行过程 49
3.6.3 用户自定义函数 50
3.7 顺序结构编程 52
3.7.1 顺序结构的计算思维 52
3.7.2 应用实例 53
3.8语法探究* 55
3.8.1 常量 55
3.8.2 算术运算中的类型转换 57
3.8.3 赋值运算中的类型转换 58
3.8.4 强制类型转换 58
3.8.5 变量的auto声明 59
3.9 实践探究 59
3.9.1 立方体体积 59
3.9.2 家庭平均人口数 61
3.10 大模型探究 63
3.11 本章小结 64
第4章 输入输出和文件 65
4.1 引言 65
4.2 输入cin 65
4.2.1 cin>> 65
4.2.2 cin.get() 66
4.3 输出cout 66
4.3.1 cout<< 66
4.3.2 输出n位小数 67
4.3.3 设置输出宽度 69
4.3.4 设置输出对齐方式 69
4.3.5 设置输出填充 70
4.4 文件介绍 70
4.5 文件操作 71
4.6 语法探究* 74
4.6.1 输入缓冲区 74
4.6.2 文件读写位置指针 78
4.6.3 文件打开模式详解 79
4.7 实践探究 83
4.7.1 输入输出日期与BMI 83
4.8 大模型探究 86
4.9 本章小结 87
第5章 分支结构程序设计 88
5.1 引言 88
5.2 if语句 88
5.2.1 单分支if语句 88
5.2.2 双分支if语句 89
5.2.3 多分支if语句 89
5.2.4 if语句嵌套 90
5.3 关系表达式与逻辑表达式 91
5.3.1 关系表达式 91
5.3.2 逻辑表达式 92
5.4 if语句应用 93
5.5 switch语句 95
5.6 switch语句应用 96
5.7 语法探究* 98
5.7.1 布尔值和数值的转换 98
5.7.2 运算符的优先级 99
5.7.3 逻辑表达式的短路运算 100
5.7.4 条件表达式 101
5.7.5 if子句是否需要花括号 102
5.7.6 else与if的匹配原则 103
5.7.7 流程图 105
5.8 实践探究** 106
5.9 大模型实践 108
5.10 程序测试 110
5.10.1 测试的必要性 110
5.10.2 相等比较类测试 111
5.10.3 大小比较类测试 111
5.10.4 逻辑表达式测试 111
5.11 大模型探究 112
5.12 本章小结 113
第6章 循环结构程序设计 114
6.1 循环的引入 114
6.2 基于条件的循环 114
6.2.1 while语句 114
6.2.2 do-while语句 116
6.3 for语句 118
6.3.1 基于计数的循环 118
6.3.2 基于范围的循环 119
6.4 break和continue 119
6.5 循环嵌套 122
6.6 应用实例 124
6.6.1 循环的计算思维 124
6.6.2 迭代法 126
6.6.3 枚举法 130
6.7 语法探究* 133
6.7.1 for语句的表达式 133
6.7.2 循环语句的执行流程 134
6.8 实践探究 137
6.9 大模型实践 140
6.10 大模型探究 142
6.11 本章小结 144
第7章 函数 145
7.1 函数定义 145
7.1.1 函数定义解析 145
7.1.2 函数定义示例 145
7.2 函数使用 148
7.2.1 函数调用方式 148
7.2.2 函数返回值的使用 149
7.2.3 函数的嵌套调用 149
7.3 语法探究* 151
7.3.1 多个return语句 151
7.3.2 函数调用时的类型转换 151
7.3.3 函数原型 152
7.4 变量的作用域与生存期 154
7.4.1 局部变量 154
7.4.2 全局变量 158
7.4.3 extern与static 159
7.5 函数参数传递方式 161
7.5.1 传值 161
7.5.2 传指针 161
7.5.3 传引用 163
7.5.4 应用实例:交换变量 165
7.6 默认形参 167
7.7 函数重载 169
7.8 函数模板 171
7.9 内联函数 173
7.10 实践探究* 173
7.10.1 头文件 174
7.11 大模型实践 175
7.12 大模型探究 178
7.13 本章小结 179
第8章 一维数组与vector 180
8.1 引言 180
8.2 数组的定义与使用 180
8.2.1 定义数组 180
8.2.2 使用数组 181
8.3 一维数组应用 182
8.4 一维数组的指针 185
8.4.1 指向数组的指针 185
8.4.2 指针的运算 186
8.4.3 通过指针访问数组元素 186
8.4.4 使用指针访问数组实例 187
8.5 数组作函数参数 188
8.5.1 函数定义与调用 188
8.5.2 参数的内存共享 189
8.5.3 应用举例 190
8.6 语法探究* 194
8.6.1 数组的初始化 194
8.6.2 下标越界 195
8.6.3 基于范围的for循环 196
8.6.4 循环数组 197
8.6.5 数组名与指针的区别 198
8.6.6 指针指向数组任意元素 198
8.6.7 指针形式的函数形参 199
8.6.8 动态分配内存 201
8.7 动态数组vector 202
8.7.1 基本用法 202
8.7.2 添加和删除元素 203
8.7.3 遍历操作 203
8.7.4 应用举例 205
8.8 迭代器* 207
8.9 vector常用操作** 208
8.9.1 赋值操作 208
8.9.2 插入操作 209
8.9.3 删除操作 209
8.9.4 其它操作 210
8.9.5 插入删除导致迭代器失效 210
8.10 实践探究** 210
8.10.1 二分查找 210
8.10.2 选择排序 212
8.11 大模型实践 213
8.12 大模型探究 215
8.13 本章小结 218
第9章 二维数组 219
9.1 引言 219
9.2 数组的定义与使用 219
9.2.1 定义数组 219
9.2.2 使用数组 220
9.3 二维数组作函数参数 221
9.4 二维数组应用 222
9.5 语法探究* 226
9.5.1 二维数组的初始化 226
9.6 二维vector* 228
9.6.1 定义与初始化 228
9.6.2 遍历 229
9.6.3 插入与删除 231
9.7 实践探究** 232
9.7.1 蛇形数组 232
9.7.2 魔方阵 234
9.7.3 杨辉三角 236
9.8 大模型实践 237
9.9 大模型探究 240
9.10 本章小结 242
第10章 字符串 243
10.1 引言 243
10.2 使用字符数组存储字符串 243
10.2.1 字符数组定义与初始化 243
10.2.2 使用字符数组 244
10.3 字符串处理函数 246
10.3.1 字符串输入 246
10.3.2 字符串处理函数 247
10.4 字符串指针 251
10.4.1 字符数组的指针 251
10.4.2 字符串常量的指针 252
10.5 字符串应用 253
10.5.1 单词计数 253
10.5.2 国家名称排序 254
10.5.3 字符串复制 255
10.5.4 字符串拼接 256
10.6 语法探究* 257
10.6.1 字符串的终止符'\0' 257
10.6.2 指针变量和数组名辨析 259
10.6.3 指针数组 262
10.7 string字符串类 264
10.7.1 介绍 264
10.7.2 创建对象 265
10.7.3 字符串输入 265
10.7.4 遍历操作 266
10.7.5 string的运算符 267
10.7.6 增删改查操作 268
10.7.7 其它操作 270
10.7.8 C风格字符串 271
10.8 文件读写字符串 271
10.8.1 字符数组字符串 271
10.8.2 string字符串 273
10.9 实践探究** 274
10.9.1 查找单词次数(字符数组) 275
10.9.2 查找单词次数(string) 276
10.10 大模型实践 277
10.11 大模型探究 281
10.12 本章小结 283
第11章 递归 284
11.1 引言 284
11.2 计算n! 284
11.2.1 设计递归程序 284
11.2.2 理解递归执行流程 285
11.2.3 递归与迭代的对比 286
11.3 斐波那契数列 287
11.3.1 设计递归程序 287
11.3.2 理解递归执行流程 288
11.4 汉诺塔 289
11.4.1 汉诺塔问题描述 289
11.4.2 设计递归程序 290
11.4.3 理解递归执行流程 291
11.4.4 递归中的参数传递 293
11.5 理解递归流程 295
11.6 递归算法:回溯法* 296
11.6.1 回溯法介绍 296
11.6.2 寻找纯素数 296
11.6.3 全排列 299
11.6.4 N皇后问题 301
11.7 递归算法:分治法* 303
11.7.1 分治法介绍 303
11.7.2 二分查找 304
11.7.3 归并排序 305
11.8 大模型探究 307
11.9 本章小结 308
第12章 类与对象(一) 310
12.1 引言 310
12.2 从面向过程到面向对象 310
12.3类的定义 311
12.3.1 类声明 311
12.3.2 类实现 312
12.4 对象的创建与使用 313
12.5 成员的访问控制 314
12.6 类的组合 315
12.7 对象数组 317
12.8 对象指针 317
12.8.1 对象指针定义与使用 317
12.8.2 对象数组的指针 318
12.8.3 this指针 319
12.9 对象与函数 319
12.9.1 对象作为函数参数 319
12.9.2 对象作为函数的返回值 321
12.10 构造函数 321
12.10.1 构造函数的概念 321
12.10.2 构造函数的重载 323
12.10.3 构造函数的初始化列表 324
12.11 析构函数 325
12.12 组合类的构造函数与析构函数 326
12.12.1 组合类的构造函数 326
12.12.2 组合类的析构函数 328
12.13 语法探究* 329
12.13.1 无参构造函数 329
12.13.2 单参构造函数的类型转换功能 331
12.13.3 动态对象 332
12.14 应用实例 334
12.15 大模型探究** 335
第13章 类与对象(二) 339
13.1 引言 339
13.2 静态成员 339
13.2.1 静态数据成员 339
13.2.2 静态成员函数 340
13.3 友元 342
13.3.1 友元函数 342
13.3.2 友元类 344
13.4 常成员与常对象 345
13.4.1 常数据成员 345
13.4.2 常成员函数 346
13.4.3 常对象 347
13.4.4 常对象与常成员的结合 347
13.5 拷贝构造函数 348
13.5.1 定义及调用时机 348
13.5.2 浅拷贝与深拷贝 350
13.6 运算符重载 351
13.6.1 运算符重载概念 351
13.6.2 重载为成员函数 353
13.6.3 重载为友元函数 354
13.7 类模板 357
13.7.1 类模板的定义 357
13.7.2 类模板的实例化 359
13.8 应用实例 360
13.8.1 静态成员:存活数 360
13.8.2 运算符重载:MyString类 362
13.8.3 模板类:MyVector类 365
13.9 大模型探究** 368
第14章 继承与多态 372
14.1 继承 372
14.1.1 继承的概念 372
14.1.2 派生类的定义 372
14.1.3 继承方式 374
14.1.4 派生类的构造和析构 376
14.1.5 应用实例 377
14.2 多态 380
14.2.1 类型兼容规则 380
14.2.2 多态性 381
14.2.3 虚函数 384
14.2.4 纯虚函数 386
14.2.5 抽象类 387
14.3 语法探究* 389
14.3.1 单继承的构造与析构顺序 389
14.3.2 多层继承的构造与析构顺序 390
14.3.3 多继承 392
14.3.4 虚析构函数 393
第15章 标准模板库STL 395
15.1 STL简介 395
15.2 算法 396
15.2.1 算法介绍 396
15.2.2 与函数对象无关的算法 398
15.3 一元函数对象与一元谓词 400
15.3.1 形参包含一元函数的算法 400
15.3.2 函数对象 402
15.3.3 谓词 403
15.4 二元函数对象与二元谓词 404
15.4.1 形参包含二元函数的算法 404
15.4.2 形参包含二元谓词的算法 406
15.5 预定义函数对象与函数适配器 407
15.5.1 预定义函数对象 407
15.5.2 函数适配器 409
15.5.3 使用函数适配器 409
15.6 本章小结 412
附录1 ASCII码表 413
附录2 运算符优先级 414

读者评论

赶紧抢沙发哦!

我要评论

作者介绍

黄秋波,东华大学副教授。 一、近三年主要成果: 主要负责《程序设计基础(C++)》、《数据结构》、《高级程序设计》等计算机专业课程,以及《C语言程序设计》公共选修课程的教学等相关工作。所讲授课程多次学生评教名列学院第一,2023年被评学生“心目中的好老师”(全校每年学生票选10人)、还获得广富林街道最美党员、校级优秀育才奖、第四届全国高校混合式教学设计创新大赛优胜奖。正在建设教学示范岗以及思政名师工作室。 长期致力于课程建设和教学研究,主要有:1)主持程序设计基础(C++)上海市一流本科课程;2)主持C语言、计算机网络、程序设计基础上海市重点课程;3)主持“纺织之光”教改项目;4)参与数据结构上海市一流本科课程。 建设成果主要有: 1)编写上机实践教材VC、CB、VS三个版本,其中VS新版集成大模型使用技巧,由清华大学出版社出版; 2)编写教辅教材; 3)研发了“在线评测OJ系统”,集成人工智能和大模型技术,授权1项发明专利、3项软件著作权、发表5篇EI教改论文。 指导学生竞赛,近3年获得计算机应用能力大赛上海市奖项6项、蓝桥杯程序设计大赛国家级及上海市奖项33项,虚拟现实大赛国家一等奖1项。 二、作为主持人承担科研项目情况 1、2024年,农药包装信息识别及结构化,上海劲牛股份有限公司 2、2024年,AR远程运维系统,上海音锋机器人股份有限公司 3、2023年,基于AI的智能运维平台构建及应用示范项目,上海英拿信息技术有限公司 4、2022年,音锋密集库入库库位分配,上海音锋机器人股份有限公司

相关图书

人邮微信
本地服务
人邮微信
教师服务
二维码
读者服务
读者服务
返回顶部
返回顶部