前言



编者在多年的教学实践中发现,虽然市面上有大量C++语言程序设计的教材或参考书,网上也有丰富的学习资源,但还有一部分学生对C++语言望而却步。究其原因,这部分学生往往最初对计算机编程感到神秘,充满好奇,已经产生了学习编程语言的兴趣,但通过一段时间的学习后却止步于烦琐的语法细节,不能体会到满满的成就感。针对这种情况,在教学过程中,我们尝试首先关注学生的学习兴趣,从精选的程序案例出发,让学生眼见为实地看到程序的运行结果,然后引出相关的知识点,从而理解所学内容的意义和整体的逻辑关系,一步一步地引导学生建立程序设计的思想。
本书用简单的小程序,对前后知识点建立联系,让读者体会到知识点并不孤立。在书中,相同功能案例可以用不同的方法、不同的语句实现,通过这种方法使读者学习语法规则和掌握多种思考方法。例如编写“输入年份,判断年份是否为闰年”的程序,这个简单的功能在第2章“数据类型和运算符”中引入,目的是让读者学习和理解关系运算符、逻辑运算符和条件运算符,理解表达式运算结果的数据类型,通过输入一个数据、经过一个表达式直观地看到判断结果。在第3章介绍语句的分支结构时,学生使用条件语句,同样能清晰地完成闰年判断功能,同时掌握条件语句的语法规则和语句的执行流程。在第4章通过函数的定义,把判断年份是否为闰年的功能封装成函数,使用起来更加方便、简洁。通过此封装过程,介绍函数的定义格式和函数调用的三种方式。再如,对于案例“计算天数——根据日期计算该日期是本年度的第多少天”,在第3章介绍多分支语句——开关语句时,用开关语句编写程序实现功能,从而引入了开关语句的语法规则。在同一章中还用第二种方法完成同样的功能,巩固循环语句的语法格式。在第6章“结构类型”中,自定义日期结构类型后,同样完成“计算天数”功能,语法格式、语句内容却截然不同。紧接着在第7章“类和对象”中,对日期类型进一步封装,不仅封装了数据,还封装了对数据的操作,即处理数据的函数,那么“计算天数”的程序就换成了另一个模样。通过这样的方式让读者理解,即使数据类型不同,思考方式不同,编写代码不同,也能做到殊途同归,实现同一个功能。学习程序设计语言不要死记硬背,应该在熟练掌握语法规则、掌握基本语句结构的基础上,坚持动手编写程序,不断上机调试,灵活运用。通过程序案例的不断完善,前后贯通。让同一个程序案例不断地提高设计要求,从简单到复杂,从多个维度、多种结构,循序渐进,对比学习。在程序案例融入的语法和语句规则中,掌握更多应该注意的细节。
本书主要是想让读者在有趣的程序案例中,学习枯燥乏味的语法规则和语句结构,在拓展训练中进一步巩固学习内容,在编程操作过程中收获到学以致用的成就感,深入浅出地引导读者入门。全书包含24个案例,用于引出新知识点的学习;包含71个示例,有的用于引出新内容,有的是有助于读者对本节内容的巩固和提高;本书还包含200多幅图,有助于读者更形象、更直观地理解概念、过程、运行结果。本书在编写过程中注重细节,图文并茂,深入浅出,书中包含详细的代码注释,分析运行过程中计算机的内存单元的变化等实现机制,尽量把需要注意的事项、不好理解的地方,以图文的形式呈现给读者。在目前各大学压缩学时的情况下,即使课时不多,学生也能够有兴趣在课外跟着教程完成案例的学习和操作。每个章节知识点难度逐步加大,整个教程内容也循序渐进,协调统一,同一个内容会在不同的章节出现,一步一步进行完善和提高,让学生既不会感到晦涩难懂,又有兴趣读下一章节的内容。在学习过程中如果读者在理解知识点的过程中遇到困难,建议不要纠结于某个地方,以免自己沉浸在无尽的挫败感中,感觉垂头丧气。这时应往后学习,通常学习了后面的知识点或其他章节的内容后,就能理解前面的内容了。学习是一个循环的过程,在循环反复中一些难点问题慢慢就迎刃而解了。
不管学习哪种程序设计语言,读不会,看不会,只能练会。多做一些上机练习,才能更好地体会语法规则和语句结构。在程序调试运行时,不要怕遇到错误,有时候没有错误,还要人为地进行语句的添加、删除或修改,看看这样处理后出现什么运行结果。像医生看病一样,多见识错误,就是在积累经验,在错误中不断成长,越挫越勇,最终达到用计算机语言与计算机进行自由沟通,指挥计算机精准正确地响应你的要求。当然,不要期待学完这本书就达到这个程度,C++语言是基本功,不要小看书中这些小的案例,“不积跬步,无以至千里”,只有扎扎实实地练就过硬的本领,才有能力攀登计算机领域的高峰。
本书是2021—2022年度河北省高等教育教学改革研究与实践项目“面向创新能力培养的数据计算与数据分析类课程教学改革与实践——以数学类专业为例”(项目编号2021GJJG552)的结题成果,由唐山师范学院冯玉芬、周树功、母景琴和詹胜四位老师合作编写完成。编者从事多年C++程序设计语言的教学工作,有丰富的项目开发经验。冯玉芬主要负责第1~8章的编写,母景琴负责第9章的编写,詹胜负责第10章的编写工作,周树功负责第11章的编写。
对于编者而言,撰写一部教材既是一项琐碎而繁重的任务,也是乐在其中的劳动。在学生的期盼下,尽管我们已经竭力争取让本书严谨和完美,但是书中仍然会存在错误和不当之处,欢迎各界专家和读者朋友给予宝贵意见,以利于我们改进和提高,我们对此不胜感激。

编者2023年1月