计算机专业C与C++程序设计研究论文
本文首先介绍了大学计算机学院C语言相关程序设计课程建设的现状。然后,基于C语言的相互推导,提出了将C语言从高校计算机课程体系中剔除的基础课程,并将其整合为一门C++程序设计课程供学生学习,并对课程内容、参考资料和课时安排给出了建议。
关键词:C语言;C++语言;编程;编排
高校的C语言教学总是遵循先学C语言再学C++的顺序,随着C++标准的不断升级和改革,这种顺序越来越不适应。早期的C++属于多面语言,即可以像C一样进行模块化的面向过程编程,也可以像Java一样进行抽象的面向对象编程。当时老师考虑的是让学生先从简单易懂的面向过程的编程思路开始学习C语言编程,掌握面向过程的编程方法后再从C语言延伸到C++,然后再学习面向对象的编程。但是,在面向对象编程占据应用市场绝对主导地位的情况下,让学生从面向过程开始是浪费学习时间。另外,C++和C的初级语法思想完全一致,浪费了课时,耽误了更重要的核心课程的学习。
1编程语言C和C++的比较
* * *的1.1C和C++。一般来说,把C++看成是C的增强版,这当然是不对的。在设计之初,C++语言的设计者为了保证自己的语言会引起开发者的注意,就兼容了C的语法,这自然使得C++使用C的编程方法进行编程,这也导致了很多人对两种语言的关系有了错误的认识。同时,由于C语言本身的优越性,C++在定义自身时也沿袭了C语言的许多优秀性质。基本的数据结构是一致的。C和C++的基本数据类型是以变量和常量来划分的,包括字符型、整型、长整型、单精度浮点型和双精度浮点型,但C++增加了布尔型。复合数据结构也有数组、多维数组、结构、枚举类型和* * *同构,但是C++增加了一个字符串类型来代替C语言中的字符数组,功能更加强大和方便。在语法上,声明、赋值、循环、选择的结构和实现是一致的,而且C++虽然提倡用类和对象的概念来设计程序结构,但也支持函数体结构的程序设计结构。而且C语言中函数的赋值是间接的,使用C语言函数时指针总会有各种瑕疵,但是C++的函数体可以使用引用参数,这就使得C++的函数体比C有用,一般来说,在C++标准下,用户完全可以使用C语法编程,没有任何bug。同时,C++自身优越的设置和标准,使其设计能力比C强数倍,是目前市场上大型程序开发的首选语言。
1.2C和C++不一样。在上一节中,介绍了C++和C的基本语法之间的差异。这些不同都是C++的作者在C的基础上修改的结果,为了让C++标准下的面向过程编程比简单的C更方便,但C++诞生之初,是一种向上使用面向对象编程思想的高级编程语言。它的封装性、继承性、多态性和对象唯一性是C++成为强大的高级语言的重要原因,这是C语言所不具备的。所以C能实现的程序用C++就能实现而且实现起来更方便,C不能实现的程序也可以用C++实现。
1.3C++的特点。继上一节之后,C++和C的最大区别,也是C++本身最值得夸耀的特点,就是面向对象的编程思想。这种思想使得C++语言设计的程序成为类和对象的有机结合。这种组合的代码比面向过程的函数体架构的代码可读性更强,开发和使用都很容易,后续的维护人员也不用花更多的脑筋去理解之前代码的含义。类和对象的设计思想使得开发者之间的工作更加独立,双方只需要知道对方编写的类的功能和数据。这个特性被称为良好的封装。开发人员不需要知道彼此的代码是如何实现的,甚至在此基础上就可以保证良好的代码健壮性。因为引入了类,所以也引入了更高级的作用域机制。类的作者经常严格限制自己类中数据的范围,以防止其他合作者未经授权修改和使用自己类中的数据。想要知道一个类中的数据或者使用一个类中的数据的伙伴只能通过一个方法来实现,这个方法带有一个由类的作者定义的检查机制。这将使多人共同开发的大型项目的稳定性和安全性达到比用C语言开发时更高的水平。同时,类的概念中还有一个高级的设定,就是继承,接口的概念就是从这个继承中延伸出来的。有了可继承的接口和类,开发人员在迭代程序的瀑布式开发过程时,可以很好地利用自己开发的源代码,也可以借用其他项目的源代码,因为只要学会科学地使用继承机制,不仅可以节省程序员的代码时间,还可以减少审核之前代码时的错误和歧义。与继承机制结合使用的是多态性。C语言中一次定义的函数灵活性差,一个特定的函数只能满足一个特定程序定义的要求。重用曾经的源代码几乎是不可能的。我们刚才说的继承机制,让C++开发者重用源代码成为了一种习惯,但是不可避免的修改问题被摆上了台面,多态机制也就应运而生了。多态机制使得一个类不仅可以继承其他类,还可以在这个类的体中自由使用父类的数据和方法,同时可以用这个类中新的定义和代码覆盖父类的数据定义和方法。这使得程序员在想使用父类的数据和方法时,可以更自由地继承它们,但在不想全部使用时,可以添加多态性机制来覆盖它们。这样代码之间的复用率就变得非常客观,节省了大量的开发时间和成本。
2编程语言C和C++的建议
C++课程的内容应该安排如下:第一部分是讲授C++的基本语法,让学生在DOS命令行下编写输入输出程序,了解编程的基本概念和思想。此时应同时进行C和C++的双向语法教学,为学生将来进入高年级后选择方向打下基础。这部分用半个学期是最合适的,而且这个时候不教学生什么是面向对象,什么是面向过程,主要是让学生用基本语法进行最基本的编程探索。第二部分,在学生有了基本的编程知识后,把数据结构的内容放入课程中,用半个学期的时间教学生用C++实现的各种常见的数据结构。并结合实际开发项目中的代码作为阅读补充,让学生理解数据结构的知识对程序开发的意义,然后把简化的小项目作为课堂的主要内容,让学生用实际代码理解那些枯燥的数学定理和概念。而且在实现数据结构的过程中,不可避免的会面对一些更高级的C++语法和概念。总的来说,在大一课堂上花一个学期的时间,让学生对基础编程有一个很好的了解和深入的认识,是非常值得和有效的。第三部分,学生有了数据结构的基础和C++的基本语法之后,要面对一些实际的开发项目和问题。当然,实际问题还是需要老师简化。其主要目的是让学生掌握C++的高级特性和实际软件开发的过程和思路,并教给学生基本的算法。这部分比较难,同学们要用一个学期的时间去掌握,慢慢熟悉。第四部分,在学生对C++语言和数据结构与算法有了基本的介绍后,再进行课堂教学意义不大。大二上学期要开设一门课程设计实验课,让学生从小到大完成几个难度较大的项目,循序渐进地掌握基本的实践开发技能和思维。
参考
李罗。计算机程序设计的多应用开发与实现[J].工业与技术论坛,2015 (14): 54-55。
邓伟,何坤,钱,等.深度优先多基因表达式的程序设计[J].模式识别与人工智能,2013 (9): 819-828。
[3]万希源,王霞人。对非计算机专业本科生计算机程序设计课程改革的思考[J].计算机工程与科学,2014 (Z 1): 56-59。
;