前 言
“高级语言程序设计”是信息类专业的基础必修课程,虽然国内外本课程教材较多,但大都侧重于编程语言的语言要素和编程技巧,而忽略了学生思维能力、实际工程问题的系统分析设计和整体解决方案设计能力的培养与训练,在实际教学过程中容易出现“从数学思维到计算思维转换难”“注重语言要素,弱化算法思维和工程能力”等问题,学生存在“听得懂课、编不来程”的尴尬。
纵观信息类专业的程序设计课程,要求学生掌握面向过程程序设计的基本框架、结构化程序设计思想和方法等,能针对求最大最小值、均值、数的分解、统计、排序、查找等具体问题进行合适的建模和编程实现;在相关工程知识的支持下,能够针对小型问题,使用自顶向下、逐步求精、模块化、穷举、试探等程序设计思想进行分析和求解,具有一定的计算思维能力;能够选择使用适当的开发环境包括操作系统和C语言开发工具等完成小规模C/C++语言程序的设计与调试,具有初步的编程能力。
本书着眼于计算思维和程序设计能力的培养,以问题驱动方式逐步建构学生的编程知识和能力体系,提高学生的建模与编程实现能力,促进成果导向的课程目标达成。本书共分为8章,各章的主要内容说明如下。
第 1 章为绪论。从一个简单的程序入手,让学生清楚程序的架构、算法的表述以及计算机执行程序的过程和简单工作原理。
第 2 章讲述程序设计基础。从顺序结构入手,不纠结复杂的数据类型和输入/输出控制,通过包括顺序、分支、循环等三种基本结构的实现方式,详细阐述统计问题、穷举、迭代、随机数应用以及字符图案打印等算法思想。
第 3 章讲述函数。从求三角形面积出发,阐述函数的作用及分类、函数定义及参数传递的基本方法等,重点讲述函数调用的执行过程以及递归函数的基本思想。
第 4 章讲述数组。从同类型批量数据存储的角度,阐述一维数组和二维数组的使用方法,重点讲述以函数方式操作数组数据的方法,以及其中所涉及的排序、查找、字符串处理等算法。
第 5 章讲述指针。以按需分配内存空间为例引入指针的概念,通过指针对一维数组(含字符串)、二维数组的操作以及动态内存分配等,强化学生对计算机内存存储数据的理解。
第 6 章讲述结构体及其应用。以学生基本信息管理为例,引入结构体的基本概念及其应用,以结构体数组强化学生利用程序设计进行数据管理的基本思想,结构体与指针的结合也将引出另外一种数据存储结构,将介绍链表以及链表的应用。
第 7 章讲述文件操作。本书以标准C中关于文件的操作为蓝本,以文件的应用为出发点,重点阐述了文件操作的基本步骤。
第 8 章为综合应用。以学生基本信息管理为例,详细阐述了一个系统从分析到设计、再到编码实现的全过程。
参加本书编写的作者拥有十多年的计算机程序设计语言教学经验和丰富的心得与体会,并参加了所在学校计算机科学与技术专业的工程教育专业认证的顶层设计、教学实施、评价和持续改进。本书内容广泛、重点突出,在编写上采用了问题导向、循序渐进、逐步展开的方法,精心设计了大量示例,以加深学生对程序设计思想的理解,提高学生利用程序设计思想和计算思维来分析问题和解决问题的能力。本书同时配备有多媒体课件、例题源代码以及用于学生训练的习题供下载。
本书由李益才、鲁云平主编,王家伟、姚雪梅、曹娟等共同编写。具体编写分工如下:第1章、第3章由王家伟编写,第2章、附录及最后的统稿由鲁云平完成,第4章由曹娟编写,第5章、第6章由李益才完成,第7章由姚雪梅编写,第8章由鲁云平、王家伟、李益才共同完成。本书的编写还得到了作者的各级领导和同仁的关心与支持,在此一并表示感谢。
限于编者水平,书中不当之处敬请广大读者批评指正,以使本书能得到不断完善。
编 者