C语言开发实战


C语言开发实战

文章插图
C语言开发实战【C语言开发实战】《C语言开发实战》是2013年清华大学出版社出版的图书,由软体开发技术联盟编写 。本书讲述了使用Visual C++ 6.0进行程式开发应该掌握的各项技术 。
基本介绍书名:C语言开发实战
作者:软体开发技术联盟
ISBN:9787302323082
定价:79.80元
出版社:清华大学出版社
出版时间:2013-9-1
装帧:平装
内容简介《C语言开发实战》从初学者的角度讲述了使用Visual C++ 6.0(以及部分Turbo C)进行程式开发应该掌握的各项技术,内容突出“基础”、“全面”、“深入”的特点,同时强调“实战”效果(只掌握和理解技术,而没有实际套用,等于没有掌握技术) 。本书共分为5篇22章 。前3篇中,在介绍技术的同时,每一章均提供了相应的实例,同时在各章的结尾安排有实战,通过几个小型项目来综合套用本章所讲解的知识,做到理论联繫实际 。在第4篇中,各章都安排了範例,使读者巩固所学的知识 。最后,在第5篇中提供了两个完整的项目实例,讲述从前期规划、设计流程图,到项目最终实施的整个实现过程 。所有知识都结合具体实例进行介绍,对涉及的程式代码给出了详细的注释,读者可以轻鬆领会C语言程式开发的精髓,快速提高开发技能 。本书特色及丰富的学习资源包如下: 黄金学习搭配、专业学习视频、重难点精确打击、学习经验分享、学习测试诊断、有趣实践任务、专业资源库、学习排忧解难、获取源程式、提供习题答案、赠送开发案例 。本书适合有志于从事软体开发的初学者、高校计算机相关专业学生和毕业生,也可作为软体开发人员的参考手册或高校的教学参考书 。图书目录目 录第1篇 新 手 入 门第1章 C语言开发环境 3视频讲解:12分钟1.1 本章知识体系 41.2 程式设计师的成长之路 41.3 C语言的重要性 51.4 如何学好C语言 51.5 C语言常用开发工具简介 61.5.1 Turbo C 61.5.2 Visual C++ 6.0 71.5.3 C++ Builder(BCB) 71.5.4 Cygwin 71.5.5 Dev-C++ 71.5.6 Source Insight 71.6 了解Visual C++集成开发环境 81.6.1 开发环境布局 81.6.2 选单栏 81.6.3 工具列 141.6.4 工作区视窗 141.6.5 代码编辑视窗 141.6.6 输出视窗 151.7 如何在Turbo C 2.0下运行C源程式 151.8 了解GCC开发编译器 171.9 Dev-C++ 171.9.1 Dev-C++概述 171.9.2 Dev-C++的使用 171.10 Eclipse for C/C++ 191.10.1 Eclipse概述 191.10.2 Eclipse的使用 191.11 实战 201.11.1 判断三角形的类型 201.11.2 计算某日是该年的第几天 221.11.3 婚礼上的谎言 231.11.4 尼科彻斯定理 241.11.5 猴子吃桃 251.11.6 阳阳买苹果 261.12 疑难解惑 281.12.1 为什幺说C语言可移植性好 281.12.2 C语言的套用领域有哪些 281.12.3 如何提高C语言的编程效率 281.13 小结 291.14 学习成果检验 29第2章 C语言开发基础 31视频讲解:68分钟2.1 本章知识体系 322.2 编码规範要记牢 322.2.1 注释的合理使用 322.2.2 程式中的{}要对齐 332.2.3 合理使用空格使代码更规範 342.2.4 换行使代码更清晰 342.3 语言要素 352.3.1 关键字 352.3.2 标识符 352.4 常量 362.4.1 整型常量 362.4.2 实型常量 382.4.3 字元型常量 382.4.4 字元串常量 392.5 变数 402.5.1 什幺是变数 402.5.2 变数的声明 412.6 数据类型 412.6.1 什幺是数据类型 412.6.2 整型 412.6.3 实型 432.6.4 字元型 442.6.5 枚举类型 452.7 使用typedef定义类型 472.8 变数的存储类型 492.8.1 了解变数的存储类型 492.8.2 使用auto关键字声明自动变数 492.8.3 使用static关键字声明静态变数 502.8.4 使用register关键字声明暂存器变数 522.8.5 使用extern关键字声明外部变数 532.8.6 使用static关键字声明静态外部变数 562.9 混合运算 572.10 实战 582.10.1 十进制转换为二进制 582.10.2 求100~200之间的素数 602.10.3 利用"#"输出图形 612.10.4 列印杨辉三角 612.10.5 利用"*"输出矩形 632.10.6 小球下落问题 632.10.7 巧分苹果 642.11 疑难解惑 662.11.1 声明变数和定义变数 662.11.2 限定词const 662.11.3 字元串常量为什幺用"\0"作为结束符 672.12 小结 672.13 学习成果检验 67第3章 运算符与表达式 69视频讲解:34分钟3.1 本章知识体系 703.2 运算符与表达式的使用 703.2.1 赋值运算符与表达式 703.2.2 加减乘除新认识 723.2.3 关係源自比较 733.2.4 逻辑出真假 743.2.5 逗号运算符与表达式 763.2.6 运算符的优先权 773.3 自增、自减操作符 783.3.1 认识自增、自减操作符 783.3.2 自增、自减操作符的副作用 793.4 位运算 793.4.1 "或"运算符 803.4.2 "与"运算符 813.4.3 "取反"运算符 823.4.4 "异或"运算符 833.4.5 "左移"运算符 843.4.6 "右移"运算符 853.5 实战 863.5.1 求1~10的累加和 863.5.2 计算学生的平均身高 863.5.3 求一元二次方程ax2+bx+c=0的根 873.5.4 阿姆斯特朗数 883.5.5 可逆素数 893.5.6 满足abcd=(ab+cd)2的数 903.5.7 最大公约数及最低公倍数 913.5.8 循环移位 923.6 疑难解惑 943.6.1 表达式"a=b"和"a= =b"一样吗 943.6.2 如何区分","是运算符还是分隔设定 943.6.3 C语言中有哪些简化的运算表达式 963.7 小结 963.8 学习成果检验 96第4章 语句 99视频讲解:100分钟4.1 本章知识体系 1004.2 语句的构成 1004.2.1 表达式语句 1014.2.2 函式调用语句 1014.2.3 控制语句 1034.2.4 複合语句 1034.2.5 空语句 1034.3 如何实现字元数据输入/输出 1034.3.1 字元数据输出 1034.3.2 字元数据输入 1044.4 格式输入/输出 1054.4.1 格式输出函式 1054.4.2 格式输入函式 1104.5 程式的控制结构 1124.5.1 顺序结构 1124.5.2 分支结构 1134.5.3 循环结构 1134.6 if语句 1144.6.1 if语句的介绍 1144.6.2 if语句的嵌套 1184.7 条件运算符 1194.8 switch语句 1204.8.1 switch语句的基本形式 1204.8.2 剖析switch和if语句 1244.9 while与do-while语句 1244.9.1 当型循环语句while 1244.9.2 直到型循环语句do-while 1274.9.3 while与do-while的异同 1284.10 for语句 1294.10.1 初识for语句 1294.10.2 for语句的变体 1314.10.3 for语句的嵌套 1334.11 跳转语句 1354.11.1 continue语句跳出本次循环 1354.11.2 break语句跳出循环 1364.11.3 用于返回数据的return语句 1374.11.4 goto语句 1384.12 实战 1394.12.1 输出3*3矩阵 1394.12.2 输出一个字元的前驱字元 1404.12.3 根据输入判断能否构成三角形 1414.12.4 求学生的最高分和最低分 1424.12.5 整数加减法练习 1424.12.6 一元钱兑换方案 1444.13 疑难解惑 1454.13.1 C语言提供的跳转语句各有什幺特点 1454.13.2 循环嵌套时应该注意什幺 1454.13.3 如何提高循环语句的执行效率 1454.14 小结 1464.15 学习成果检验 146第5章 综合实验(一)--模拟ATM机界面程式 147视频讲解:3分钟5.1 概述 1485.2 需求分析 1485.3 设计思路 1485.4 详细设计 1485.5 程式代码 153第2篇 进 阶 提 高第6章 数组 159视频讲解:29分钟6.1 本章知识体系 1606.2 一维数组 1606.2.1 如何定义和引用一维数组 1606.2.2 一维数组初始化 1616.2.3 一维数组套用 1636.3 二维数组 1646.3.1 如何定义和引用二维数组 1646.3.2 二维数组初始化 1646.3.3 二维数组套用 1666.4 多维数组 1676.5 字元数组 1686.5.1 如何定义和使用字元数组 1686.5.2 字元数组初始化 1686.5.3 字元数组的结束标誌 1716.5.4 字元数组的输入和输出 1726.5.5 字元数组套用 1746.6 实战 1756.6.1 相邻元素之和 1756.6.2 选票系统 1766.6.3 统计学生成绩 1786.6.4 模拟比赛打分 1796.6.5 矩阵的转置 1806.6.6 设计魔方阵 1816.6.7 统计各种字元个数 1836.6.8 删除字元串中的连续字元 1846.7 疑难解惑 1856.7.1 数组下标必须从0开始吗 1856.7.2 数组名作函式参数与数组元素作函式参数有什幺不同之处 1856.7.3 '\0'和"\0"有什幺区别 1866.8 小结 1866.9 学习成果检验 186第7章 函式 187视频讲解:53分钟7.1 本章知识体系 1887.2 函式概述 1887.3 函式的定义 1907.3.1 无参函式 1907.3.2 有参函式 1917.3.3 空函式 1917.4 返回语句 1927.4.1 从函式返回 1927.4.2 返回值 1927.5 函式参数 1937.5.1 形式参数与实际参数 1937.5.2 数组作函式参数 1957.5.3 main参数 1997.6 函式的调用 2017.6.1 函式调用方式 2017.6.2 嵌套调用 2027.6.3 递归调用 2037.7 内部函式和外部函式 2067.7.1 内部函式 2067.7.2 外部函式 2077.8 局部变数和全局变数 2087.8.1 局部变数 2087.8.2 全局变数 2097.9 实战 2127.9.1 百钱百鸡问题 2127.9.2 求直角三角形斜边 2137.9.3 小数分离 2137.9.4 判断素数 2147.9.5 递归解决分鱼问题 2157.9.6 字母检索 2167.9.7 求字元串中字元的个数 2177.9.8 打渔晒网问题 2187.10 疑难解惑 2207.10.1 在调用时不使用函式的返回值会产生什幺现象 2207.10.2 C语言中函式的调用方式有哪几种 2207.10.3 函式定义时容易犯哪些错误 2217.11 小结 2217.12 学习成果检验 222第8章 指针 223视频讲解:17分钟8.1 本章知识体系 2248.2 指针相关概念 2248.2.1 地址与指针 2248.2.2 指针变数 2258.2.3 指针的赋值 2258.2.4 指针的引用 2268.3 指针运算 2278.4 一维数组与指针 2308.5 指针访问二维数组 2348.6 字元和指针 2378.6.1 使用字元指针 2378.6.2 字元指针数组 2398.7 指向指针的指针 2408.8 函式型指针 2428.9 实战 2448.9.1 用指针实现数据交换 2448.9.2 使用指针实现整数排序 2458.9.3 查找成绩不及格的学生 2468.9.4 使用指针实现冒泡排序 2478.9.5 使用指针插入元素 2488.9.6 实现输入月份号输出该月份的英文名 2498.9.7 将若干字元串按字母顺序输出 2518.10 疑难解惑 2528.10.1 指针类型和指针所指向的类型是一样的吗 2528.10.2 指针运算与取地址运算符有何联繫 2538.10.3 空指针有何意义 2538.11 小结 2548.12 学习成果检验 254第9章 结构体和共用体 255视频讲解:40分钟9.1 本章知识体系 2569.2 结构体 2569.2.1 结构体类型的概念 2569.2.2 结构体变数的定义 2579.2.3 结构体类型的几点说明 2599.2.4 结构体变数的引用 2609.2.5 结构体变数的初始化 2609.3 结构体数组 2619.3.1 定义结构体数组 2619.3.2 初始化结构体数组 2629.4 结构体指针 2649.4.1 指向结构体变数的指针 2659.4.2 指向结构体数组的指针 2659.4.3 结构体作函式参数 2679.5 包含结构的结构 2709.6 鍊表 2719.6.1 什幺是鍊表 2719.6.2 创建动态鍊表 2729.6.3 鍊表相关操作 2749.7 共用体 2809.7.1 什幺是共用体 2809.7.2 共用体变数的定义和引用 2819.7.3 共用体类型的初始化 2829.8 实战 2839.8.1 找出最高分 2839.8.2 候选人选票程式 2849.8.3 求平面上两点距离 2859.8.4 设计通讯录 2869.8.5 输出火车票价格 2889.8.6 链伫列 2899.8.7 约瑟夫环 2939.8.8 计算开机时间 2959.9 疑难解惑 2969.9.1 定义结构体对结构体成员的类型是否有限制 2969.9.2 成员运算符(.)和指向结构体成员运算符(->)有何区别 2979.9.3 结构体和联合体有什幺区别和联繫 2979.10 小结 2979.11 学习成果检验 298第10章 综合实验(二)--猜数字游戏 299视频讲解:24分钟10.1 概述 30010.2 需求分析 30010.3 系统设计 30010.3.1 设计目标 30010.3.2 开发及运行环境 30010.4 程式预览 30110.5 设计思路 30210.6 档案引用 30210.7 主要功能实现 30310.7.1 主函式 30310.7.2 猜数字 30410.7.3 游标定位 306第3篇 高 级 应 用第11章 档案 311视频讲解:29分钟11.1 本章知识体系 31211.2 档案概述 31211.3 档案基本操作 31311.3.1 档案的打开 31311.3.2 档案的关闭 31411.4 档案的读写 31511.4.1 fputc函式 31511.4.2 fgetc函式 31611.4.3 fread函式和fwrite函式 31711.5 档案的定位 31911.5.1 rewind函式 31911.5.2 ftell函式 32111.5.3 fseek函式 32111.6 出错检测 32311.6.1 ferror函式 32311.6.2 clearerr函式 32511.7 实战 32611.7.1 读取磁碟档案 32611.7.2 将数据写入磁碟档案 32711.7.3 创建档案 32811.7.4 删除档案 33011.7.5 重命名档案 33111.7.6 档案加密 33311.7.7 格式化读写档案 33511.8 疑难解惑 33711.8.1 标準档案和一般档案有什幺区别 33711.8.2 C语言的常用库档案包含哪些 33811.8.3 为什幺档案打开以后要及时关闭 33911.9 小结 33911.10 学习成果检验 339第12章 预处理 341视频讲解:29分钟12.1 本章知识体系 34212.2 不带参数的宏定义 34212.3 带参数的宏定义 34412.4 #include命令 34512.5 条件编译 34812.5.1 #if命令 34812.5.2 #ifdef及#ifndef命令 35012.5.3 #undef命令 35112.5.4 #line命令 35212.5.5 #pragma命令 35212.6 实战 35312.6.1 利用宏计算两个数的乘积 35312.6.2 利用宏求3个数中的最小数 35412.6.3 使用带参数的宏求圆面积 35412.6.4 利用档案包含设计输出格式 35512.6.5 使用条件编译隐藏密码 35612.7 疑难解惑 35612.7.1 C语言中包括哪些预处理功能 35612.7.2 使用宏时需要注意些什幺 35712.7.3 档案包含可以嵌套吗 35712.8 小结 35812.9 学习成果检验 358第13章 存储管理 359视频讲解:21分钟13.1 本章知识体系 36013.2 记忆体组织方式 36013.2.1 记忆体组织方式 36013.2.2 堆与栈 36013.3 分配记忆体函式(malloc和calloc) 36313.3.1 malloc函式 36313.3.2 calloc函式 36413.4 修改已分配记忆体(realloc函式) 36513.5 释放记忆体--free函式 36613.6 谁偷了我的记忆体 36713.7 实战 36713.7.1 为具有3个元素的数组分配记忆体 36713.7.2 为二维数组动态分配记忆体并释放 36813.7.3 商品信息的动态存放 36913.8 疑难解惑 37013.8.1 什幺是"记忆体泄露" 37013.8.2 记忆体耗尽了怎幺办 37013.8.3 常见的记忆体管理错误有哪些 37013.9 小结 37113.10 学习成果检验 371第14章 综合实验(三)--商品信息管理系统 373视频讲解:29分钟14.1 概述 37414.1.1 需求分析 37414.1.2 功能结构图 37414.2 预处理 37414.2.1 档案引用 37414.2.2 宏定义 37514.3 声明结构体 37514.4 函式声明 37514.5 功能选择界面 37614.5.1 功能概述 37614.5.2 主函式 37614.5.3 自定义选单功能函式 37714.6 录入商品信息 37814.7 查询商品信息 38114.8 删除商品信息 38314.9 修改商品信息 38514.10 插入商品信息 38714.11 统计商品数 38914.12 小结 390第4篇 范 例 演 练第15章 排序 393视频讲解:36分钟15.1 选择排序 39415.1.1 範例功能演示 39415.1.2 开发思路指引 39415.1.3 专家难点解析 39515.1.4 设计过程详解 39615.1.5 範例开发手记 39715.1.6 进阶与提高 39715.2 冒泡排序 39815.2.1 範例功能演示 39815.2.2 开发思路指引 39815.2.3 专家难点解析 39915.2.4 设计过程详解 40015.2.5 範例开发手记 40115.2.6 进阶与提高 40115.3 插入排序 40215.3.1 範例功能演示 40215.3.2 开发思路指引 40215.3.3 专家难点解析 40315.3.4 设计过程详解 40415.3.5 範例开发手记 40515.3.6 进阶与提高 40515.4 希尔排序 40615.4.1 範例功能演示 40615.4.2 开发思路指引 40615.4.3 专家难点解析 40715.4.4 设计过程详解 40815.4.5 範例开发手记 40915.4.6 进阶与提高 40915.5 快速排序 41015.5.1 範例功能演示 41115.5.2 开发思路指引 41115.5.3 专家难点解析 41215.5.4 设计过程详解 41315.5.5 範例开发手记 41415.5.6 进阶与提高 415第16章 查找 41716.1 顺序查找 41816.1.1 範例功能演示 41816.1.2 开发思路指引 41816.1.3 专家难点解析 41816.1.4 设计过程详解 41916.1.5 範例开发手记 42016.1.6 进阶与提高 42016.2 折半查找 42116.2.1 範例功能演示 42216.2.2 开发思路指引 42216.2.3 专家难点解析 42216.2.4 设计过程详解 42316.2.5 範例开发手记 42416.2.6 进阶与提高 42416.3 分块查找 42616.3.1 範例功能演示 42616.3.2 开发思路指引 42616.3.3 专家难点解析 42616.3.4 设计过程详解 42816.3.5 範例开发手记 42916.3.6 进阶与提高 42916.4 哈希查找 43116.4.1 範例功能演示 43116.4.2 开发思路指引 43116.4.3 专家难点解析 43116.4.4 设计过程详解 43316.4.5 範例开发手记 43516.4.6 进阶与提高 436第17章 数据压缩 44117.1 RLE算法实现数据压缩 44217.1.1 範例功能演示 44217.1.2 开发思路指引 44217.1.3 专家难点解析 44217.1.4 设计过程详解 44317.1.5 範例开发手记 44517.1.6 进阶与提高 44517.2 LZW算法实现数据压缩 44717.2.1 範例功能演示 44717.2.2 开发思路指引 44717.2.3 专家难点解析 44717.2.4 设计过程详解 44817.2.5 範例开发手记 45117.2.6 进阶与提高 451第18章 图形编程 455视频讲解:45分钟18.1 绘製折线图 45618.1.1 範例功能演示 45618.1.2 开发思路指引 45618.1.3 专家难点解析 45618.1.4 设计过程详解 45818.1.5 範例开发手记 46018.1.6 进阶与提高 46018.2 绘製饼状图 46218.2.1 範例功能演示 46218.2.2 开发思路指引 46218.2.3 专家难点解析 46218.2.4 设计过程详解 46418.2.5 範例开发手记 46518.2.6 进阶与提高 46618.3 绘製条形图 46718.3.1 範例功能演示 46718.3.2 开发思路指引 46718.3.3 专家难点解析 46818.3.4 设计过程详解 46918.3.5 範例开发手记 47118.3.6 进阶与提高 47118.4 绘製玫瑰花 47318.4.1 範例功能演示 47318.4.2 开发思路指引 47318.4.3 专家难点解析 47318.4.4 设计过程详解 47418.4.5 範例开发手记 47918.4.6 进阶与提高 47918.5 选单界面设计 48118.5.1 範例功能演示 48118.5.2 开发思路指引 48118.5.3 专家难点解析 48118.5.4 设计过程详解 48218.5.5 範例开发手记 48818.5.6 进阶与提高 489第19章 档案的高级套用 491视频讲解:55分钟19.1 创建档案 49219.1.1 範例功能演示 49219.1.2 开发思路指引 49219.1.3 专家难点解析 49219.1.4 设计过程详解 49319.1.5 範例开发手记 49319.1.6 进阶与提高 49419.2 档案的複製 49419.2.1 範例功能演示 49519.2.2 开发思路指引 49519.2.3 专家难点解析 49519.2.4 设计过程详解 49519.2.5 範例开发手记 49619.2.6 进阶与提高 49719.3 删除档案 49819.3.1 範例功能演示 49819.3.2 开发思路指引 49819.3.3 专家难点解析 49819.3.4 设计过程详解 49919.3.5 範例开发手记 50019.3.6 进阶与提高 50019.4 重命名档案 50319.4.1 範例功能演示 50319.4.2 开发思路指引 50319.4.3 专家难点解析 50319.4.4 设计过程详解 50419.4.5 範例开发手记 50419.4.6 进阶与提高 50519.5 档案加密 50619.5.1 範例功能演示 50619.5.2 开发思路指引 50619.5.3 专家难点解析 50719.5.4 设计过程详解 50719.5.5 範例开发手记 50919.5.6 进阶与提高 509第20章 综合实验(四)--五子棋游戏开发 511视频讲解:28分钟20.1 概述 51220.2 需求分析 51220.3 系统设计 51220.3.1 设计目标 51220.3.2 开发及运行环境 51220.4 程式预览 51220.5 graphics.h档案 51320.6 设计思路 51620.7 预处理 51720.7.1 档案引用 51720.7.2 宏定义 51720.8 声明变数 51720.9 函式声明 51820.10 主要功能实现 51820.10.1 主函式 51820.10.2 开始游戏 52020.10.3 绘製棋盘 52020.10.4 绘製棋子 52120.10.5 清除棋子 52120.10.6 游戏过程 52220.10.7 判断胜负结果 52820.11 小结 530第5篇 项 目 实 战第21章 网路通信系统 533视频讲解:37分钟21.1 网路通信系统概述 53421.1.1 开发背景 53421.1.2 需求分析 53421.1.3 功能结构图 53421.2 技术攻关 53521.2.1 TCP/IP协定 53521.2.2 IP位址 53621.2.3 数据包格式 53721.2.4 建立连线 53821.2.5 套接字型档函式 53921.3 网路通信系统主程式 54321.4 点对点通信 54621.5 伺服器中转通信 55421.6 程式调试与错误处理 56121.7 小结 564第22章 图书管理系统(MySQL) 567视频讲解:32分钟22.1 概述 56822.1.1 需求分析 56822.1.2 开发工具选择 56822.2 系统设计 56822.2.1 系统目标 56822.2.2 系统功能结构 56922.2.3 系统预览 56922.2.4 开发及运行环境 57022.3 资料库设计 57022.3.1 安装MySQL资料库 57022.3.2 启动MySQL资料库 57422.3.3 创建资料库 57422.3.4 数据表结构 57522.4 C语言开发资料库程式的流程 57622.5 C语言操作MySQL资料库 57822.5.1 MySQL常用资料库操作函式 57822.5.2 连线MySQL数据 57922.5.3 查询图书表记录 58022.5.4 插入图书表记录 58322.5.5 修改图书表记录 58422.5.6 删除图书表记录 58522.6 档案引用 58622.7 变数和函式定义 58722.8 主要功能模组设计 58722.8.1 显示主选单信息 58722.8.2 显示所有图书信息 58922.8.3 添加图书信息 59222.8.4 修改图书信息 59922.8.5 删除图书信息 60622.8.6 查询图书信息 61122.9 程式调试及错误处理 61322.9.1 解决创建数据表为一个档案的问题 61322.9.2 在创建数据表时,最后一句结尾没有标点 61422.10 小结 61