内容简介
本书是《C语言课程设计案例精编》的第3版,在保持了前两版风格的基础上,根据读者的反馈,对部分内容进行了更新。本书内容丰富,案例经典,涵盖了游戏开发、文件操作、网络编程、仿Windows应用程序开发等范畴,分为五篇,共16章,涉及14个经典案例。
在基础知识篇中,使用两章的篇幅,重点介绍了后面章节中将要涉及的知识点;在游戏开发篇中,介绍了俄罗斯方块、推箱子、打字游戏的设计和实现;在文件操作篇中,介绍了目前应用十分广泛的学生选课管理系统、图书管理系统、教师人事管理系统的设计与实现;在网络编程篇中,介绍了Ping、TCP、UDP三个网络协议的设计和实现;在仿Windows应用程序篇中,介绍了进程调度模拟器、画图板、电子时钟、简易计算器、文本编辑器这5个小应用程序的设计和实现。
本书从实践性和应用性角度出发,按照软件开发的流程,贯彻了从设计到实现的案例分析模式,内容组织合理、分析详细、通俗易懂。
本书适合本科和高职高专院校计算机、机械、电子、自动化等专业的学生作为进行课程设计的参考教材,也可作为C语言爱好者的参考读物。
第3版前言
C语言是一种目前国际上十分流行的计算机高级编程语言,因其具有简洁、使用方便且功能强大的特点,而深受编程人员的喜爱。它既适合作为系统描述语言编写系统软件,也适合用来编写应用软件。
本书是清华大学出版社全国高等院校应用型创新规划教材·计算机系列教材之一,前两版出版至今,已受到读者的广泛好评。第3版在保持了前一版风格的基础上,根据读者的反馈,对部分内容进行了更新和修订,以达到与时俱进、满足读者需求的目的。本书是一本实践性和应用性很强的C语言实用教材,精心选取了14个经典案例。通过这些案例,不但可使读者对C语言的基础知识和数据结构的应用有深刻的理解,而且可帮助读者掌握软件开发的方法和技巧。
全书分为五篇,共16章,案例涵盖了游戏开发、文件操作、网络编程、仿Windows应用程序开发等范畴。
第一篇 基础知识。将使用两章的篇幅,来重点介绍后面章节中会涉及的知识点。这些知识点包括C语言的特点、编译工具、基本语法、图形操作、文件操作、网络编程、中断等。
第二篇 游戏编程。将介绍俄罗斯方块、推箱子、打字游戏的设计和实现,帮助读者理解游戏开发的思想和原理、熟悉C语言图形模式下的编程。
第三篇 文件操作。介绍目前应用十分广泛的学生选课管理系统、图书管理系统、教师人事管理系统的设计与实现。一方面帮助读者理解管理系统开发的原理及流程,另一方面,帮助读者加深对C语言文件操作和数据结构等知识的了解。
第四篇 网络编程。将通过Ping、TCP、UDP三个网络协议的设计与实现,使读者明白利用Winsock进行网络程序开发的原理和方法。
第五篇 仿 Windows应用程序。将介绍进程调度模拟器、画图板、电子时钟、简易计算器、文本编辑器这5个小应用程序的设计与实现,帮助读者对C语言有一个比较全面、深入的综合理解,掌握鼠标编程、菜单制作等较高级知识点。
本书的每个案例程序的开发都使用了软件工程的方法,遵循了"分析→设计→编码→运行调试"的路线,内容组织合理、分析详细、通俗易懂,适合本科和高职高专院校计算机、机械、电子、自动化等专业的学生作为进行课程设计的参考教材,也可作为C语言爱好者的读物。
除了第四篇中的三个程序(都为纯C代码)在VC 6.0中(因为TC中没有需要的头文件) 调试通过以外,其余所有程序都在Turbo C 2.0或Win-TC中测试通过。
本书由吴启武、张建军、姜灵芝编写,书中有些案例借鉴了互联网上相关程序的设计思想,在此,对http://www.pudn.com网站的源代码提供者表示衷心的感谢。
由于经验不足等原因,书中难免有疏漏之处,敬请读者朋友批评指正。作者希望本书能作为一朵美丽的小花开在计算机丛书的百花园中,不求争芳夺艳,只求增光添彩。
编 者
第2版前言
C语言是目前国际上比较流行的计算机高级编程语言之一,因其简洁、使用方便且具备强大的功能而受到编程人员的普遍青睐。它既适合作为系统描述语言,也可用来编写系统软件,还可用来编写应用软件。
从使用范围、功能效率等方面归纳C语言的特点,主要有以下几点。
(1) C语言功能强大、适用范围广。
(2) 用C语言编写的程序非常简洁。
(3) C语言可直接操作硬件。
(4) C语言可移植性好,基本上不用修改就可用于其他型号的计算机操作系统。
为了帮助读者深入理解C语言的各项知识点,熟练掌握利用C语言进行程序设计的原理和方法,我们特编著了此书。对语言的学习应重在实践,因为只有实践才是检验学习效果的最好方法。基于此,我们精心编制了14个案例,通过这些案例,不但可使读者对C语言的基础知识和数据结构的应用有深刻的理解,而且还可以帮助读者掌握软件开发的方法与技巧。
针对C语言的特点,本书共分为5篇。
第一篇基础知识。我们使用两章的篇幅重点介绍了后面章节中涉及的知识点。这些知识点包括C语言的特点、编译工具、基本语法、图形操作、文件操作、网络编程和中断等。
第二篇游戏编程。在本篇中,我们介绍了俄罗斯方块、推箱子和五子棋等游戏的设计和实现,帮助读者理解游戏开发的思想和原理、熟悉C语言图形模式下的编程。
第三篇文件操作。在本篇中,我们介绍了学生成绩管理系统、工资管理系统和电话簿管理系统的设计与实现,一方面帮助读者理解管理系统开发的原理及流程,另一方面帮助读者加深对C语言文件操作、数据结构等知识的了解。
第四篇网络编程。在本篇中,我们通过Ping、TCP和UDP这3个网络协议的设计与实现,使读者掌握利用Winsock进行网络程序开发的原理及方法。
第五篇仿Windows应用程序。在本篇中,我们介绍了万年历、画图板、电子时钟、简易计算器和文本编辑器这5个小应用程序的设计与实现,使读者对C语言有一个较全面、深入的综合理解,掌握鼠标编程、菜单制作等较深入的知识点。
在本书中,每个案例程序的开发都使用了软件工程的方法,即遵循了"分析→设计→编码→运行调试"的路线。
除了第四篇中的3个程序(都为纯C代码)在Visual C6.0中调试通过以外(因为TC中没有需要的头文件),其余所有程序都在Turbo C 2.0或Win-TC中调试通过。
本书主要由姜灵芝和余键编写,书中有些案例借鉴了互联网上相关程序的设计思想,在此对相关网站的源代码提供者表示衷心的感谢。
由于时间、经验及水平的原因,书中难免有不足之处,敬请读者朋友批评指正。
编 者
第1版前言
C语言是一种目前国际上流行的计算机高级编程语言,因其简洁、使用方便且又不失强大的功能而受到编程人员的普遍青睐。它既适合作为系统描述语言,又可用来编写系统软件,还可用来编写应用软件。
本书是清华大学出版社高等院校课程设计案例精编系列教材之一,第一版出版至今已受到读者的广泛好评。第二版在保持了前一版风格的基础上,根据读者的反馈对部分内容进行了更新和修订,以达到与时俱进、满足读者需求的目的。本书是一本实践性和应用性很强的C语言实用教材,通过精心选取的14个经典案例,不但可使读者对C语言的基础知识和数据结构的应用有深刻的理解,而且可以帮助读者掌握软件开发的方法与技巧。
全书分为5篇,共16章,案例涵盖了游戏开发、文件操作、网络编程、仿Windows应用程序开发等范畴。
第一篇:基础知识。我们使用两章的篇幅来重点介绍后面章节中将涉及的知识点。这些知识点包括C语言的特点、编译工具、基本语法、图形操作、文件操作、网络编程、中断等。
第二篇:游戏编程。在本篇中,我们将介绍俄罗斯方块、推箱子、五子棋游戏的设计和实现,帮助读者理解游戏开发的思想和原理,熟悉C语言图形模式下的编程。
第三篇:文件操作。在本篇中,我们介绍了目前应用十分广泛的学生成绩管理系统、图书管理系统、酒店客房管理系统的设计与实现。一方面帮助读者理解管理系统开发的原理及流程,另一方面帮助读者加深对C语言文件操作和数据结构等知识的了解。
第四篇:网络编程。在本篇中,我们将通过Ping、TCP、UDP这3个网络协议的设计与实现,使读者明白如何利用Winsock进行网络程序开发的原理及方法。
第五篇:仿Windows应用程序。在本篇中,我们将介绍进程调度模拟器、画图板、电子时钟、简易计算器、文本编辑器这5个小应用程序的设计与实现,帮助读者对C语言有一个较全面、深入的综合理解,掌握鼠标编程、菜单制作等较高级的知识点。
全书每个案例程序的开发都使用了软件工程的方法,即遵循了分析→设计→编码→运行调试的路线,内容组织合理、分析详细、通俗易懂,适合作为本科、高职高专院校计算机、机械、电子、自动化等专业的学生进行课程设计的参考教材,也可作为C语言爱好者的读物。
除了第四篇中的3个程序(都为纯C代码)在VC 6.0中调试通过以外(因为TC中没有需要的头文件),其余所有程序都在Turbo C 2.0或Win-TC中测试通过。
本书由吴启武、刘勇、王俊峰和薛欣编写,孙景辉、孙守凯、张坤、武晶晶、张静、汪梅婷、穆志维参与了本书的程序编写与调试工作,书中有些案例借鉴了互联网上相关程序的设计思想,在此对http://www.programsalon.com网站的源代码提供者表示衷心的感谢。
由于时间、经验及水平的原因,书中难免有不足之处,敬请读者朋友批评指正。希望本书能作为一朵美丽的奇葩开在计算机丛书的百花园里,不求争芳夺艳,只求增光添彩。
编 者
目录
第一篇 基础知识第1章 C语言概述 31.1 C语言的出现及发展 31.2 C语言的特点 31.3 Turbo C集成环境介绍 41.4 Win-TC集成环境介绍 81.4.1 Win-TC的特点 81.4.2 Win-TC的使用 91.4.3 Win-TC的面板设置 111.5 C语言基本语法概述 141.5.1 数据类型、运算符和表达式 141.5.2 程序设计结构 161.5.3 数组 181.5.4 函数 191.5.5 编译预处理 211.5.6 指针 231.5.7 结构体 261.6 小结 27第2章 基础知识回顾 292.1 图形知识 292.1.1 图形模式的初始化 292.1.2 屏幕颜色相关函数 302.1.3 图形窗口和图形屏幕函数 312.1.4 画图函数 322.1.5 封闭图形的填充 342.1.6 图形模式下的文本输出 352.2 文件操作知识 372.2.1 文件的打开与关闭 372.2.2 文件的读写 382.2.3 文件的状态 402.2.4 文件的定位 402.3 Windows网络编程知识 412.3.1 常用协议报头 412.3.2 Winsock基础 442.3.3 套接字选项 522.3.4 名字解析 542.4 中断知识 562.4.1 中断类型与中断函数 562.4.2 鼠标编程 592.5 小结 61第二篇 游戏编程第3章 俄罗斯方块游戏 653.1 设计目的 653.2 功能描述 653.3 总体设计 663.3.1 功能模块设计 663.3.2 数据结构设计 683.3.3 函数功能描述 713.4 程序实现 723.4.1 源码分析 723.4.2 运行结果 90第4章 推箱子游戏 934.1 设计目的 934.2 功能描述 934.3 总体设计 934.3.1 功能模块设计 934.3.2 数据结构设计 964.3.3 函数功能描述 964.4 程序实现 994.4.1 源码分析 994.4.2 运行结果 119第5章 打字游戏 1215.1 设计目的 1215.2 功能描述 1215.3 总体设计 1225.3.1 功能模块设计 1225.3.2 数据结构设计 1245.3.3 函数功能描述 1255.4 程序实现 1275.4.1 源码分析 1275.4.2 运行结果 135第三篇 文件操作第6章 学生选课管理系统 1396.1 设计目的 1396.2 功能描述 1396.3 总体设计 1406.3.1 功能模块设计 1406.3.2 数据结构设计 1456.3.3 函数功能描述 1466.4 程序实现 1496.4.1 源码分析 1496.4.2 运行结果 1846.5 小结 188第7章 图书管理系统 1897.1 设计目的 1897.2 功能描述 1897.3 总体设计 1907.3.1 功能模块设计 1907.3.2 数据结构设计 1957.3.3 函数功能描述 1977.4 程序实现 2007.4.1 源码分析 2007.4.2 运行结果 2277.5 小结 234第8章 教师人事管理系统 2358.1 设计目的 2358.2 功能描述 2358.3 总体设计 2368.3.1 功能模块设计 2368.3.2 数据结构设计 2398.3.3 函数功能描述 2408.4 程序实现 2428.4.1 源码分析 2428.4.2 运行结果 2578.5 小结 261第四篇 网络编程第9章 Ping程序设计 2659.1 设计目的 2659.2 功能描述 2659.3 总体设计 2669.3.1 功能模块设计 2669.3.2 数据结构设计 2699.3.3 函数功能描述 2709.4 程序实现 2729.4.1 源码分析 2729.4.2 运行结果 283第10章 TCP程序设计 28910.1 设计目的 28910.2 功能描述 28910.3 总体设计 29010.3.1 功能模块设计 29010.3.2 数据结构设计 29310.3.3 函数功能描述 29410.4 程序实现 29610.4.1 源码分析 29610.4.2 运行结果 306第11章 UDP程序设计 31111.1 设计目的 31111.2 功能描述 31111.3 总体设计 31211.3.1 功能模块设计 31211.3.2 数据结构设计 31611.3.3 函数功能描述 31711.4 程序实现 31911.4.1 源码分析 31911.4.2 运行结果 331第五篇 仿Windows应用程序第12章 进程调度模拟器 33912.1 设计目的 33912.2 功能描述 34012.3 总体设计 34112.3.1 功能模块设计 34112.3.2 数据结构设计 34312.3.3 函数功能描述 34412.4 程序实现 34512.4.1 源码分析 34512.4.2 运行结果 355第13章 画图板 35913.1 设计目的 35913.2 功能描述 35913.3 总体设计 36013.3.1 功能模块设计 36013.3.2 数据结构设计 36213.3.3 函数功能描述 36213.4 程序实现 36413.4.1 源码分析 36413.4.2 运行结果 392第14章 电子时钟 39714.1 设计目的 39714.2 功能描述 39714.3 总体设计 39814.3.1 功能模块设计 39814.3.2 数据结构设计 40114.3.3 函数功能描述 40114.4 程序实现 40214.4.1 源码分析 40214.4.2 运行结果 409第15章 简易计算器 41115.1 设计目的 41115.2 功能描述 41115.3 总体设计 41215.3.1 功能模块设计 41215.3.2 数据结构设计 41415.3.3 函数功能描述 41515.4 程序实现 41715.4.1 源码分析 41715.4.2 运行结果 433第16章 文本编辑器 43516.1 设计目的 43516.2 功能描述 43516.3 总体设计 43716.3.1 功能模块设计 43716.3.2 数据结构设计 44416.3.3 函数功能描述 44516.4 程序实现 44716.4.1 源码分析 44716.4.2 运行结果 471附录 477参考文献 483