本书较全面的讲述了C语言程序设计方法及Win32 API窗体编程技术,使得学生具备从程序设计到软件实现的能力。全书包括三个部分, 第一部分C语言基础理论篇, 主要阐述C语言程序设计的基础知识及计算机算法的初步内容; 第二部分Windows与C语言篇, 主要介绍了Window环境下的C界面编程; 第三部分项目实训篇包括10-12章, 在前两部基础上通过3个实训项目的训练提高学生的分析问题和实际动手解决问题的能力。
(1)首先,本书是一本以项目开发案例为导向、面向工作应用的软件开发类图书,内容兼顾了C语言程序设计方法及Win32API窗体编程技术,架起让学生从程序设计走向软件开发的桥梁;
(2)其次,本书的项目案例按照“由浅入深、循序渐进”的原则设置,让学生切身感受到软件开发并非只是枯燥的语法和陌生的术语,从而激发学生学习软件的兴趣,让学生变被动学习为自主自发学习;
(3)*后,本书的项目开发案例过程完整,不但适合在学习软件开发时作为小型项目开发的参考书,而且可以作为毕业设计的案例参考书。
本书是一本以项目开发案例为导向、面向工作应用的软件开发类教材,内容兼顾了C语言程序设计方法及Win32API窗体编程技术,架起让学生从程序设计走向软件开发的桥梁。项目案例按照“由浅入深、循序渐进”的原则设置,让学生切身感受到软件开发给工作带来实实在在的用处和方便,并非只是枯燥的语法和陌生的术语,从而激发学生学习编程的兴趣,让学生变被动学习为自主自发学习。项目开发案例过程完整,不但适合在学习软件开发时作为小型项目开发的参考书,而且可以作为毕业设计的案例参考书。
本书全面介绍了C语言软件开发人员应该掌握的各项技术,内容突出“基础”“全面”“深入”的特点,同时强调“实战”效果,使得学生具备从程序设计方法到软件开发能力的一个飞跃,满足了企业对可迅速上手的软件开发人才的迫切需求。本书以项目开发案例为导向,面向软件开发,着重培养学生C语言与Windows编程的能力,通过实训项目的训练提高学生分析问题和实际动手解决问题的能力。
本书以通俗易懂的语言,丰富多彩的实例,详细介绍了使用C语言在Windows下进行程序开发所应该掌握的各方面知识。本书共分为如下两部分内容。
1.C语言程序设计
C语言是一门通用计算机编程语言,应用广泛。C语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。“C语言程序设计”课程是高等学校计算机类专业的专业基础课,也是很多非计算机专业理科学生的必修课。本书第1部分涵盖了C语言的基本知识点以及经典的编程算法,独具匠心的编程技巧使程序更加完善,对C语言和程序设计的基本概念和要点讲解透彻,全面而深入。
2.Windows下的C编程
Windows编程作为搭建程序员与计算机的“桥梁”,引领着无数程序员走过了改变世界的过程。本书第2部分重点介绍了Windows编程的基本知识点,帮助读者掌握可视化界面设计、WindowsAPI方法编程、事件驱动程序运行方式等基本Windows编程方法,形成基本的编程架构思想,为以后的编程之路打下坚实的基础。
本书条理清晰、通俗易懂、实用性与可操作性强,理论与实践完美结合。每章都配有大量实用案例。每个实例代码都配有相应的运行结果截图,效果直观。试图从解决实际问题的角度出发,通过大量的典型实例,强化算法设计的基本方法,沿着由问题带出算法,由算法带出程序设计语言的思路讲述程序设计中的各个知识点。本书所有案例,都可从清华大学出版社网站免费下载。
在本书成稿之际,我要感谢清华大学出版社的鼎力相助,感谢责任编辑白立军老师,感谢编辑老师们严谨审校与精心编排。同时本书参考了国内外大量文献,借鉴了一些网络上不知名作者的素材,在此谨向这些国内外作者表示诚挚的感谢和崇高的敬意。
*后,我要特别致谢一届又一届的同学们,是你们用问题构建了本书的案例,也是你们的编程热情使得代码更加完善,谨以此书献给追求卓越的莘莘学子们,献给参与本书文本与代码校验工作的吕志强、刘帅帅、张晓强、王纪刚、王文喜、张红艳以及李烁等同学们。
由于编者水平有限,书中难免存在错误与不足,敬请读者批评指正。愿本书与读者一起成长,感谢读者对本书的厚爱与支持。
曲海平于山东烟台
2017年1月
第1部分C语言程序设计第1章C语言程序设计介绍/3
1.1C语言简介/3
1.2C语言编程平台——Visual C++ 6.0简介/4
1.2.1Visual C++ 6.0界面介绍/4
1.2.2创建项目文件/6
1.2.3程序调试/8
1.3数据的类型与运算符/9
1.3.1常量/9
1.3.2变量/11
1.3.3运算符/12
1.4数据的输入输出/14
1.4.1输出函数printf/14
1.4.2输入函数scanf/15
1.5本章小结/16第2章基本控制结构/17
2.1顺序结构/17
2.2选择结构/19
2.2.1if选择结构/19
2.2.2switch多分支选择结构/24
2.2.3选择结构程序设计/27
2.3循环结构/28
2.3.1while循环结构/29
2.3.2dowhile循环结构/30
2.3.3for循环结构/32
2.3.4循环嵌套/35
2.4综合实训/37
2.5本章小结/41第3章数组/42
3.1数组简介/42
3.1.1数组定义及声明/42
3.1.2数组的初始化/43
3.2数组的程序设计/44
3.2.1数值问题/44
3.2.2矩阵问题/46
3.2.3图形问题/51
3.2.4排序与查找/53
3.3字符数组与字符串/56
3.3.1字符串简介/56
3.3.2字符串函数/57
3.3.3字符串程序设计/58
3.4综合实训/60
3.5本章小结/66第4章函数/68
4.1函数简介/68
4.1.1函数的定义/68
4.1.2函数的调用/69
4.1.3函数的声明/71
4.2函数参数/73
4.2.1普通变量作为函数参数/73
4.2.2数组作为函数参数/75
4.3嵌套调用和递归调用/80
4.3.1嵌套调用/80
4.3.2递归调用/81
4.4C语言变量/83
4.4.1全局变量和局部变量/83
4.4.2变量的存储方式/84
4.5综合实训/95
4.6本章小结/100第5章指针/101
5.1指针与数组/101
5.1.1指向一维数组的指针/101
5.1.2指向多维数组的指针/105
5.1.3指向数组的指针/106
5.2指针与函数/107
5.2.1指针作为函数调用的参数/107
5.2.2数组名作为函数调用的参数/109
5.2.3函数指针——指向函数的指针/111
5.2.4指针函数——返回值为指针的函数/115
5.3指针与字符串/117
5.3.1字符指针与字符数组/117
5.3.2字符指针程序设计/119
5.4指针数组与多重指针/120
5.4.1指针数组/120
5.4.2多重指针/122
5.5动态分配内存/123
5.6综合实训/128
5.7本章小结/137第6章结构体/138
6.1结构体的定义与使用/138
6.1.1结构体的建立/138
6.1.2结构体类型变量的定义/139
6.1.3结构体变量的使用/140
6.2学生信息管理系统/143
6.2.1设计要求/143
6.2.2功能模块/143
6.2.3程序代码/144
6.2.4程序运行结果/160
第2部分Windows下的C编程第7章Windows下的C编程基础/165
7.1Windows下工程的建立/165
7.2Windows编程的基础函数/167
7.2.1Windows程序的入口——WinMain
函数/167
7.2.2Windows的printf——MessageBox
函数/168
7.2.3Windows中的输出函数/170
7.3Windows程序框架/171
7.4综合实训/176
7.5本章小结/179第8章子窗口控件、菜单与对话框/181
8.1子窗口控件/181
8.1.1消息传递机制/181
8.1.2static控件/182
8.1.3按钮/184
8.1.4编辑框/191
8.2菜单/193
8.2.1菜单的概念/193
8.2.2菜单的建立/193
8.3对话框/198
8.3.1模态对话框/198
8.3.2非模态对话框/203
8.4综合实训/205
8.5本章小结/219第9章Windows编程综合设计/220
9.1俄罗斯方块/220
9.1.1游戏介绍/220
9.1.2功能实现/221
9.1.3窗口实现/223
9.1.4程序代码/226
9.22048游戏/236
9.2.1游戏介绍/236
9.2.2功能实现/237
9.2.3界面显示/240
9.2.4程序代码/244