- ISBN:9787302613244
- 装帧:一般胶版纸
- 册数:暂无
- 重量:暂无
- 开本:其他
- 页数:474
- 出版时间:2022-09-01
- 条形码:9787302613244 ; 978-7-302-61324-4
本书特色
这是一本按照“先让读者在实践中遇到问题,再通过理论学习来解决问题”思路编写的C语言实践指导书; 全书本着“急用先学,学以致用”的原则,将一个完整项目开发过程分解为65个任务,将C语言的核心知识点按照项目需求的顺序贯穿其中,并注重编程思维和编码习惯的训练; 使用《换个姿势学C语言》,读者可快速进入项目开发状态,锻炼发现问题、分析问题和解决问题的核心能力。
内容简介
这是一本指引零基础读者使用C语言逐步完成一个完整项目的实践指导书。全书以完成“外汇牌价看板”项目为目标,将编程语言基础、程序设计及调试方法、软件工程实践的经验融入其中,帮助初学者度过*艰难的入门阶段。 全书共11课:编程基础(第1~3课)介绍了什么是程序、不同编程语言的特点、C语言程序的结构以及使用Visual Studio 2022编写C语言程序的方法;C语言核心知识(第4~7课)从实际需求出发介绍了C语言程序中常用的数据结构,包括变量、结构体、数组等,这部分还介绍了指针、动态内存分配和文件访问、自定义函数库的知识;图形用户界面实现原理和方法(第8、9课)以在屏幕上绘制“点”为基础,逐步介绍显示图形、位图的方法和原理,并将文本界面的“外汇牌价看板”程序升级到图形用户界面;“外汇牌价看板”程序的完成与交付(第10、11课),在前面已完成内容的基础上对“外汇牌价看板”进行重构,完善细节并使其达到交付标准。此外,在附录A(电子版形式,请扫描第1页的二维码获取)介绍了一些有关计算机的基础知识。 《换个姿势学C语言》不仅适合对学习编程感到困难的读者,也适合那些“看了很多书,听了很多课,但仍然没有编程思路,不会动手写程序”的读者,还适合没有编程经验的读者学习。
目录
第1课??开始之前
1.1??为什么很多人学不会编程 1
1.2??基于应用的学习方式 2
1.3??明确“外汇牌价看板”程序的设计目标 3
1.3.1??什么是“外汇牌价看板” 4
1.3.2??通过需求会议确定软件功能要求 6
1.3.3??编写需求规格说明书 7
1.3.4??设计原型系统 7
1.4??找到程序设计的思路 9
1.4.1??划分功能模块 9
1.4.2??确定程序运行的硬件环境 10
1.4.3??选择程序架构 12
1.4.4??选择程序设计语言 15
1.5??小结 16
第2课??准备开发环境
2.1??软件开发工具的组成和用途 17
2.1.1??源代码编辑器 17
2.1.2??编译器 18
2.1.3??调试器 19
2.1.4??版本管理系统 19
2.2??安装集成开发环境 20
2.2.1??为何需要集成开发环境 20
2.2.2??选择集成开发环境 21
2.2.3??安装Visual Studio Community 2022 22
2.3??编写和运行第1个C语言程序 26
2.3.1??规划项目目录结构 27
2.3.2??创建解决方案和项目 28
2.3.3??在空白项目中增加和运行程序 32
2.4??使用MSC编译器 36
2.4.1??为何使用“cpp文件” 36
2.4.2??设置Visual Studio中的C++项目属性 36
2.5??小结 38
2.6??检查表 39
第3课??分析第1个程序
3.1??程序由多个相互调用的功能(function)组成 40
3.1.1??C语言中*基本的功能模块被称为函数 41
3.1.2??“Hello,World”程序中的函数 41
3.1.3??通过调试工具观察函数的调用过程 43
3.2??定义和调用函数的方法 45
3.2.1??函数从哪里来 45
3.2.2??定义和调用函数 46
3.2.3??调用标准库函数 49
3.3??源程序如何“变成”可执行文件 57
3.3.1??预处理 58
3.3.2??编译 59
3.3.3??链接 60
3.4??重复地sayHello 61
3.4.1??新增sayHelloForFiveTimes函数 62
3.4.2??修改sayHelloForFiveTimes函数 63
3.4.3??如何规范地给函数命名 64
3.4.4??函数的声明和定义的区别 65
3.4.5??注释 67
3.5??小结 68
3.6??检查表 68
第4课??获取和显示外汇实时牌价
4.1??如何获取实时牌价数据 70
4.2??下载和引用外汇牌价接口库 71
4.2.1??下载外汇牌价接口库 71
4.2.2??显示美元的中行折算价 72
4.2.3??分析显示美元中行折算价程序 75
4.3??数据类型与变量 78
4.3.1??数据类型与变量声明 79
4.3.2??找到变量在内存中的地址 81
4.4??给变量赋值 82
4.4.1??变量的初值不是默认为0 83
4.4.2??将常量的值赋值给变量 83
4.4.3??将变量的值赋值给另一个变量 86
4.4.4??将算术计算的结果赋值给变量 87
4.4.5??将函数的返回值赋值给变量 90
4.4.6??交换两个变量的值 91
4.5??选择结构程序 91
4.5.1??关系运算符和关系表达式 92
4.5.2??使用if语句实现选择结构 93
4.6??小结 96
4.7??检查表 96
第5课??获取完整的牌价数据
5.1??使用数组存储数据 99
5.1.1??数组的声明方法 100
5.1.2??将外汇牌价数据存入数组 101
5.1.3??访问数组元素 102
5.1.4??突破数组大小的限制 111
5.2??处理数组中的数据 126
5.2.1??查找数组中的*大值 126
5.2.2??数组排序 132
5.3??字符和字符串 141
5.3.1??计算机中的字符 142
5.3.2??字符编码 143
5.3.3??编码是如何被显示成字符的 145
5.3.4??C语言中的字符 148
5.3.5??从键盘输入字符并显示 149
5.3.6??C语言中的字符串 154
5.3.7??使用scanf函数输入字符串 159
5.4??获取和显示货币名称 160
5.4.1??获取某种货币的全部牌价数据 161
5.4.2??分析GetRatesAndCurrencyNameByCode函数的原型 163
5.5??小结 164
5.6??检查表 164
第6课??创建自己的函数库
6.1??什么是函数库 173
6.1.1??静态链接库 173
6.1.2??动态链接库 173
6.2??自定义字符串处理函数 174
6.2.1??计算字符串长度 175
6.2.2??在字符串中查找特定字符的位置 178
6.2.3??转换字符串中的大写字母为小写字母 181
6.2.4??复制字符串 184
6.2.5??自定义字符串函数的其他要求 191
6.2.6??字符串处理的库函数 195
6.3??处理键盘输入 196
6.3.1??使用scanf函数输入数值 196
6.3.2??自定义数据输入函数 202
6.4??在Visual Studio 2022中创建静态库 209
6.4.1??创建静态库项目 209
6.4.2??函数库中的代码组织 211
6.4.3??分发函数库 214
6.4.4??在项目中引用Mars函数库 215
6.5??小结 216
6.6??检查表 216
第7课??获取全部外币牌价并保存为文件
7.1??使用结构体存储不同类型的多项数据 222
7.1.1??定义结构体 223
7.1.2??声明结构体变量 225
7.1.3??访问结构体变量的成员 225
7.1.4??结构体变量的内存占用和内存对齐 227
7.1.5??使用typedef为结构体创建别名 231
7.1.6??获取货币牌价并填充至结构体 232
7.2??文件访问的基础知识 234
7.2.1??使用fopen函数打开或创建文件 234
7.2.2??使用fwrite函数写入数据到文件 236
7.2.3??文件缓冲区 239
7.2.4??使用fread函数从磁盘文件读入数据 240
7.3??将结构体存入磁盘文件 241
7.3.1??获取牌价数据并写入磁盘文件 242
7.3.2??分析输出文件的内容 243
7.3.3??从磁盘文件读入数据到结构体 247
7.4??获取和保存全部外币牌价数据 248
7.4.1??使用结构体数组存储多种外币牌价 249
7.4.2??取得外币牌价并存入结构体数组 250
7.4.3??将显示外币牌价的代码封装成函数 251
7.4.4??获取全部外币牌价 253
7.4.5??一次获取全部牌价 255
7.4.6??保存和打开数据文件 261
7.5??小结 266
7.6??检查表 267
第8课??图形编程基础
8.1??图像在计算机中的表示 276
8.1.1??来自人工绘制的矢量图形 276
8.1.2??来自数码相机或扫描仪的位图 277
8.2??计算机是如何显示图形的 279
8.2.1??大型发光二极管显示屏 280
8.2.2??OLED显示屏 281
8.2.3??LCD显示屏 281
8.3??使用EasyX图形库 283
8.3.1??下载和安装EasyX图形库 283
8.3.2??初始化图形窗口并绘制一个白色的点 284
8.4??基本的绘图操作 286
8.4.1??绘制线 286
8.4.2??控制绘图颜色 291
8.4.3??绘制和填充矩形框 296
8.5??小结 301
8.6??检查表 302
第9课??显示图形和文本元素
9.1??常见的位图文件格式 306
9.1.1??常见的位图格式 306
9.1.2??BMP文件基本结构 307
9.2??显示24位BMP图像 307
9.2.1??打开BMP文件并读取文件头 308
9.2.2??从文件中获取第1个像素的颜色 317
9.2.3??绘制每个像素 319
9.3??优化BMP图像显示程序 324
9.3.1??重新组织代码结构,减少main函数中的代码 324
9.3.2??displayBMP函数的设计与实现 326
9.4??显示不同字体的文字 340
9.4.1??显示文字的原理 341
9.4.2??使用EasyX的函数显示文字 342
9.4.3??设置文字格式 343
9.5??控制屏幕分辨率和全屏显示窗口 346
9.5.1??通过EnumDisplaySettings函数获得当前屏幕分辨率 346
9.5.2??改变和恢复屏幕分辨率—ChangeDisplaySettings 348
9.5.3??隐藏窗口边框和按钮 349
9.5.4??setFullScreenWindow函数和restoreDisplayMode函数的实现 350
9.6??小结 353
9.7??检查表 353
第10课??完成外汇牌价看板程序
10.1??将程序分为三层 356
10.2??设计和实现外汇牌价看板程序的表现层 357
10.2.1??明确表现层需要完成的功能 358
10.2.2??创建新项目并加入工具函数 359
10.2.3??显示外汇牌价看板的固定部分 365
10.2.4??在1页中显示7行牌价 370
10.2.5??显示实时外汇牌价 386
10.2.6??实现分页循环显示 391
10.2.7??其他细节问题 403
10.2.8??实现按任意键退出 410
10.3??设计和实现外汇牌价看板的数据访问层 414
10.3.1??设计LoadRates函数 415
10.3.2??实现LoadRates函数 417
10.3.3??显示提示信息 423
10.4??消除隐蔽的隐患 427
10.4.1??排除内存泄漏 427
10.4.2??请检查网络连接 432
10.5??切换和恢复屏幕分辨率 440
10.6??小结 441
10.7??检查表 441
第11课??达到交付标准
11.1??使用相对路径 442
11.1.1??修改getFlagFileName函数 444
11.1.2??修改dal.cpp 444
11.2??项目的配置管理 444
11.2.1??Debug和Release的区别 446
11.2.2??生成程序的Release版本 448
11.2.3??生成外汇牌价看板程序的Release版本 450
11.2.4??x86(Win32)和x64的区别 454
11.3??制作安装程序 455
11.3.1??安装Microsoft Visual Studio Installer Projects 455
11.3.2??创建外汇牌价看板的安装程序 457
11.3.3??安装外汇牌价看板程序 467
11.4??后续学习建议 469
11.4.1??重构外汇牌价看板程序 469
11.4.2??后续学习方向及学习建议 470
后记
-
乡村振兴新技术:新时代农村短视频编辑技术基础入门
¥12.8¥32.0 -
AI绘画+AI摄影+AI短视频从入门到精通
¥45.5¥79.8 -
企业AI之旅
¥43.5¥79.0 -
机器学习
¥59.4¥108.0 -
基于知识蒸馏的图像去雾技术
¥61.6¥88.0 -
软件设计的哲学(第2版)
¥51.0¥69.8 -
智能算法优化及其应用
¥52.4¥68.0 -
Photoshop图像处理
¥25.5¥49.0 -
R语言医学数据分析实践
¥72.3¥99.0 -
大模型推荐系统:算法原理、代码实战与案例分析
¥62.3¥89.0 -
剪映 从入门到精通
¥25.7¥59.8 -
游戏造梦师----游戏场景开发与设计
¥67.6¥98.0 -
SAR图像处理与检测
¥35.4¥49.8 -
人工智能
¥29.4¥42.0 -
中文版PHOTOSHOP 2024+AI修图入门教程
¥59.3¥79.0 -
WPS办公软件应用
¥25.2¥36.0 -
格拉斯曼流行学习及其在图像集分类中的应用
¥13.7¥28.0 -
轻松上手AIGC:如何更好地向CHATGPT提问
¥40.3¥62.0 -
元宇宙的理想与现实:数字科技大成的赋能与治理逻辑
¥61.6¥88.0 -
云原生安全:攻防与运营实战
¥66.8¥89.0