大学计算机专业C与C++程序设计语言开设探讨

大学计算机科学专业的程序设计语言课程,一般分为必修和选修两种。C和C++都作为必修课;而VB和Java等一般作为选修课。现在大多数高校计算机科学专业开设程序设计语言课程的顺序都是,先开C语言,再开C++语言。然而,我们在教学实践中发现,学生学习C语言程序设计,接受了“自顶向下,逐步求精”的模块化程序设计思想,在学习C++语言时,对C++语言的特色:类和模板所提供和支持的“自底向上”的面向对象程序设计思想,很难适应、理解、接受和掌握。同时,由于课时的压缩,两门语言都要开设,学时更显不足,致使学生两门语言课程都没有充分的时间学通、学透;更有甚者,正常的教学内容不能完成,学生一知半解、似懂非懂,课程的难点知识没有时间讲和学。这种结果直接影响后续课程(比如,数据结构)的学习;同时学生动手开发软件的能力也将受到影响。


大学计算机专业C与C++程序设计语言开设探讨


本文在分析比较C和C++程序设计语言异同的基础上,结合多年的教学实践经验,提出在大学计算机科学专业中,直接开设C++程序设计语言,不再开设C语言的观点。并根据作者的教学实践经验,给出直接开设C++时,教学内容、教材选择和开设时间的建议。

2程序设计语言C与C++的比较


大学计算机专业C与C++程序设计语言开设探讨


2.1C与C++的共性

C++是C的增强版,是在C的基础上增加了数据抽象和面性对象的程序设计这些新特点,很自然C++拥有C语言的基本功能。它支持结构化的程序设计,任何用C写的程序都可以在C++环境下运行。

在C和C++语言中,标识符、变量、常量、基本数据类型、指针、表达式、运算符的优先级等的规定都相同。枚举类型和结构体类型的定义方法也相同。关系和逻辑运算、条件语句、循环语句这些控制流语句的定义和使用也都相同。C和C++中数组的定义和使用相同。函数的定义与调用基本相同,只是C++引入了引用参数。也正是由于引用参数的引入,使得C++的使用比C更方便。关于动、静态变量及其范围的规定在C和C++中相同。因此。可以说,C语言所拥有的功能,C++都有,而且也是C++的基本部分。但是,C++比C具有更强的功能,具有C所没有的特性――数据的抽象和支持面向对象的程序设计。同时,关于枚举变量,结构体变量的声明C++的语法约定更简洁方便。

2.2C与C++的不同

C与C++在程序设计的思想与规模、动态存储管理、文件使用、枚举和结构体类型、输入和输出,以及程序注释等方面存在差异。C++不仅具有C的所有功能,可以实现所有C语言所能实现的功能,而且C++的功能更强大,使用更简洁方便。因此,使用C语言设计程序所能解决的实际问题,使用C++语言设计程序也一定能够解决,而且实现起来更方便。

2.3C++的特色

C++最大的特色是提供了数据的抽象和实现数据抽象类型的机制――类,以及支持面向对象程序设计的封装、继承和多态等特性。由于类的出现,使得C++中的数据类型不再局限于系统所提供的固有类型,用户可以根据自己的实际需要设计创建新的数据类型。同时,由于类的使用,使得数据和操作被封装在具体的类中,实现了信息的隐藏。C++提供了两种构造新类的方法:继承和构成。这两种构造方法使得C++具有面向对象程序设计的特性。C++还提供了虚函数机制,这使得类的操作可以实现动态邦定。C++中的重载机制使得C++的使用更方便快捷和人性化。C++的模板使得C++具有多态特性。另外,C++的异常处理机制使得程序的调试变得容易和方便。还有C++的虚基类,使得它非常适合用来开发面向对象的程序。

C++中的引用类型,使得函数的参数可以采用引用参数,避免了C语言中函数参数的单向值传递所带来的弊端。而且使用起来非常方便。

C++还提供了作用域限定运算符(::),该运算符可用于解决名称冲突。还可用于指定标识符的有效范围,如名称空间中标识符的使用。

标准C++还支持名称空间[3~5],除了系统提供的标准名称空间std外,用户还可以定义自己的名称空间。名称空间的使用给程序设计带来了很大的方便。

C++的上述诸特色,显示了C++不仅能实现C程序设计语言所支持的结构化程序设计,而且还支持面向对象的程序设计。可以开发出更大更复杂的应用软件。

以上C与C++的比较可见,C++的基本部分与C语言基本相同,而且C++的语法相对于C语言的语法更简洁方便易使用。因此,C++完全可代替C来完成程序设计,完全可以在大学计算机科学专业的本科生中直接开设C++程序设计语言课程,而不用先开设C语言,再开C++。这样,可以将节省出一部分学时分给C++课程,使得C++的学时更充足些,学生也掌握地更好些。

3程序设计语言C与C++开设建议

通过以上的分析比较,可见在高校计算机科学专业程序设计语言课程的开设中,可以不用开设C程序设计语言,而直接开设C++语言程序设计。

C++的教学内容应该包括:基本知识部分:程序设计与问题解决概述;C++语法、语义以及程序开发过程;数值类型、表达式与输出;程序输入与软件设计过程;条件、逻辑表达式与选择控制;循环;函数;作用域和生命期;高级控制结构;固有数据类型和用户定义的简单数据类型。C++高级知识部分:结构体、数据抽象和类;数组;基于数组的表;面向对象的软件开发;指针、动态数据和引用类型;链结构;模板与异常;递归。

C++课程开设时间放在一年级第二学期比较适宜。因为学生在第一学期已经学习了一些关于计算机的入门知识,对计算机科学有了一定的了解,这时开设C++程序设计语言,学生接受起来比较自然。而且直接学习C++语言,没有别的计算机语言的影响,学习起来更易于接受。C++的课时建议为周学时4,以保证学生有足够的学习、吸收和消化知识的时间。另外,这个学期开设C++可为学生后续专业课程(如,数据结构)的学习做铺垫。更重要的是作为计算机科学专业的本科生,在当前的形势下掌握C++这一通用的编成语言,不仅为将来的发展奠定良好基础;也为今后参与社会竞争打下坚实基础。


大学计算机专业C与C++程序设计语言开设探讨


有想要学习C/C++编程的可以关注私信小编“编程”二字交流 ,领取免费资料。

"


分享到:


相關文章: