




已阅读5页,还剩2页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
浅谈重要的计算机程序设计语言C+摘要C+语言是在C语言的基础上逐步发展和完善起来的,而C是吸收了其他语言的一些优点逐步成为实用性很强的一门语言。本文现简要介绍了计算机程序设计语言的发展历程,由此引出C+的诞生,接着主要介绍了C+的一些特点并且较为详细介绍了一个功能强大的可视化软件开发工具Visual C+,最后阐述了一些关于C+未来的发展前景。关键词程序设计语言 C+ 诞生 特点 未来发展 Visual C+ 技术特点1 引言自从1946年世界上第一台数字计算机问世以来,计算机应用领域不断扩大,计算机技术高速发展,尤其是近年来的计算机软件和硬件日新月异,作为计算机应用的一种软件程序设计语言,也得到了不断地扩充,几乎每年都有新的程序设计语言问世,而原先的设计语言也不断的更新换代。C+语言是在C语言的基础上逐步发展和完善起来的,而C是吸收了其他语言的一些优点逐步成为实用性很强的一门语言。2 C+的诞生早在20世纪60年代,Martin Richards为便于软件人员开发系统软件设计出了BCPL语言。1970年,Ken Thompson在吸收BCPL语言优点的基础上设计了B(Basic Combined ProgrammingLanguage)语言,但B语言功能有限。1972年,美国贝尔实验室的Dennis Ritchie和BrianKemighan根据B语言开发设计出了C语言。最初,发明c语言的目的是用它来代替汇编语言为小型机DEC-11编写UNIX操作系统。后来,随着UNIX操作系统的推广,C语言被越来越多的程序设计人员所了解和使用。到20世纪70年代末,C语言已经凭借其如下独有的优势风靡了全世界的程序设计领域:(1)语言结构化、简洁紧凑,使用灵活方便。(2)具有丰富的运算符和数据类型。(3)兼有汇编语言与高级语言的特点,接口开放,适合开发系统软件。(4)程序的运行效率高,代码的可移植性好。然而,随着C语言的广泛应用,它的一些不足也受到了人们的关注,如:(1)类型检查机制相对较弱,这使得程序中的一些错误不能及时被发现。(2)缺少支持代码重用的语言结构,因此为一个程序设计的模块很难再用于其他程序。(3)没有面向对象技术的支持,不适合开发大型软件,当程序的规模大到一定程度时,维护工作会变得相当复杂。为了满足开发大规模程序的需要,1980年贝尔实验室的Bjame Stroustrup和他的同事们开始对C语言进行改进和扩充,把Simula67(一种早期的面向对象语言)中类的概念引入到C语言,并将改进后的C语言称为“带类的C”(C with class),1983年正式命名为C+(C Plus Plus)。1985年由Bjame Stroustrup编写的C+程序设计语言一书出版,标志着c+1.0版本的诞生。此后,贝尔实验室于1989年和1993年分别推出了c+2.0版本和C+3.0版本。就目前学习C+而言,可以认为他是一门独立的语言;他并不依赖C语言,我们可以完全不学C语言,而直接学习C+。根据C+编程思想(Thinking in C+)一书所评述的,C+与C的效率往往相差在正负5%之间。所以有人认为在大多数场合C+ 完全可以取代C语言。 3 C+的特点C+并不是对C语言功能的简单改善和扩充,而是一种本质性革新。C+之所以能得到广泛应用,除了继承C语言的一些特点之外,还具有一下几方面特点:1.C语言是C+的一个超集,大多数的c语言编码略作修改或不做修改就可以在C+的集成环境下运行或调试。这对于继承或开发当前已在广泛使用的软件是非常重要的,可节省大量的人力物力。2.C+是一种面向的程序设计语言,它使得程序的各个模块的独立性更强,程序的可读性和可理解性更好,程序代码的结构性更加合理。这对于设计调试一些大型软件有非常重大的意义。3.用C+设计的程序可扩充性更强。一方面,在软件开发的前期,对整个要解决的问题很难全部弄清楚,开发人员只能够根据自己的理解进行程序的结构设计;而到软件开发的后期,开发人员往往发现自己的理解不准确或不全面,这时就需要改变程序的结构或功能,这就需要程序设计语言要具有较强的可扩充性。另一方面,已开发的软件,随着时间的推移,还要求扩充新的功能。C+具有扩充性能的特点对于编写大的软件是非常重要的。4功能强大的可视化软件开发工具Visual C+4.1 Visual C+简单介绍Visual C+是一个功能强大的可视化软件开发工具。自1993年Microsoft公司推出Visual C+1.0后,随着其新版本的不断问世,Visual C+已成为专业程序员进行软件开发的首选工具。Visual C+6.0不仅是一个C+编译器,而且是一个基于Windows操作系统的可视化集成开发环境(integrated development environment,IDE)。Visual C+6.0由许多组件组成,包括编辑器、调试器以及程序向导AppWizard、类向导Class Wizard等开发工具。 这些组件通过一个名为Developer Studio的组件集成为和谐的开发环境。Visual C+的三个主要组成部分:1.Developer Studio,这是一个集成开发环境,我们日常工作的99%都是在它上面完成的,再加上它的标题赫然写着“Microsoft Visual C+”,所以很多人理所当然的认为,那就是Visual C+了。其实不然,虽然Developer Studio提供了一个很好的编辑器和很多Wizard,但实际上它没有任何编译和链接程序的功能。同样,Developer Studio并不是专门用于VC,它也同样用于VB,VJ,VID等Visual Studio家族的其他同胞兄弟。 2.MFC。从理论上来讲,MFC也不是专用于Visual C+,Borland C+,C+Builder和Symantec C+同样可以处理MFC。同时,用Visual C+编写代码也并不意味着一定要用MFC,只要愿意,用Visual C+来编写SDK程序,或者使用STL,ATL,一样没有限制。不过,Visual C+本来就是为MFC打造的,Visual C+中的许多特征和语言扩展也是为MFC而设计的,所以用Visual C+而不用MFC就等于抛弃了Visual C+中很大的一部分功能。但是,Visual C+也不等于MFC。3.Platform SDK。这才是Visual C+和整个Visual Studio的精华和灵魂,虽然我们很少能直接接触到它。大致说来,Platform SDK是以Microsoft C/C+编译器为核心,配合MASM,辅以其他一些工具和文档资料。上面说到Developer Studio没有编译程序的功能,那么这项工作是由谁来完成的呢?是CL,是NMAKE,和其他许许多多命令行程序,这些我们看不到的程序才是构成Visual Studio的基石。4.2 VC+的技术特点4.2.1 应用程序框架的构成使用VC的一般过程有如下三步:(1)使用APPWIZARD生成应用程序框架;(2)使用资源管理器定义所需各种资源;(3)使用CLASSWIZARD完成自定义类建立和代码书写。这三者之间工作在统一的VC集成平台上,有一定联系,用户可以方便的进行任务切换。使用APPWIZARD来创建VC的应用程序框架,它会自动生成应用程序所需要的各种类、文件和一些资源,其中包括:主应用类、主窗口类、主文档类、主视图类和各种子类。用户可以在此基础上,添加、修改和编辑各种所对应的代码。它所建立的应用程序有二种形式:一是基于对话框的,二是基于多文档的。其所对应的视图也有二种形式:一是一般视图CVIEW,一是有滚动条功能的视图CSCROLLVIEW。这在建立框架时,由用户选择。这样一种灵活的框架为软件开发人员带来极大便利。简化了WINDOWS程序设计,使得不必从头书写程序、不必记忆数百个系统类和消息,而集中精力于程序设计。它较之BORLANDC+上OWL,确有强大之处。4.2.2 文档与视图工作机制在所生成的应用程序框架中,包含有一种高级机制,这就是文档与视图机制。(1)文档概念 文档实际上就是存放应用数据的容器,一个文档不仅能够记录数据体的当前数值,而且提供操作数据的成员函数,实际上文档是用类来实现的,类本身就是一个含有数据成员和操作函数的封闭体。在应用程序框架中,已经生成了一个主文档类,除了使用它外,我们还可以根据需要定义许多用户文档类。每个文档可以单独创作、打开、保存和关闭。(2)视图概念 视图是对文档的映射和使用,是访问应用数据的入口,通过视图与文档数据进行交互作用,一个文档可以有多个不同视图。(3)文档与试图作用机制 文档只是保存数据和提供操作,只有视图才允许用户与文档数据交互作用。因此必须用视图来实现数据的显示、更新和使用。添加文档使用文件菜单的新建,而增加视图使用窗口菜单的新建命令。(4)文档与视图分离的优点 在VC较早版本中并无文档与视图概念,引入它使得数据定义和数据使用分离,用户只需定义一次文档,而可以以不同形式的视图使用。这使软件结构更为合理、管理更为方便和维护更为容易。 例如,在主文档HqzDoc中有一数据成员CstringStringData,在主视图某一函数中要使用它只需要添加如下代码:HqzDoc#pDoc=GetDocument();ASS-VALID(pDoc);Pdoc-StringData=“中华人民共和国”;4.2.3 对象管理和消息驱动机制 在VC基本类库MFC中,有一百多个系统类,为用户提供了较为完善、齐全的开发WINDOWS应用程序的环境。MFC完整封装了WINDOWS API函数,简化了WINDOWS程序设计。(1)MFC具有一定层次性MFC类库构成具有一定继承关系和虚拟多态功能的体系结构。每个类中都有大量属性成员和成员函数,用户通过使用类数据和类操作,完成所需功能。如下图:类名功能CDC设备管理CDIALOG对话框CFILE文件处理CSCROLLVIEW滚动视图CDOCUMENT文档CBUTTON按钮CMENU菜单CMETAFLLE元文件(2)MFC提供自动消息处理装置每一WINDOWS消息直接映射到一个要执行的成员函数上,在VC中,可以使用资源管理器以可视化形式定义各种对象,如对话框、按钮、菜单、工具栏等,而对每一个对象要规定他的消息处理行为。每一行为对应一个消息处理函数,也叫脚本程序SCRIPT,由MFC对所有对象和行为进行自动管理。4.2.4 脚本(SCRIPT)程序的编写通过以上讨论可以看出,开发人员的最后一大任务就是编写脚本程序。在VC中通过一些交互操作,有系统创建相应的类,程序员的重点是对对象的每一行为编写消息处理函数。编写代码时:一是要充分利用MFC类库所提供的强大功能;二是注意要与面向对象的风格保持一致。4.2.5 图形处理功能VC提供的功能十分丰富,这里只讨论一下它的图形处理功能。(1)所涉及的类主要是CDC类,或CCLIENTDC类和CPAINTDC类,其中所包含的图形处理函数应有尽有,如画线、画圆及各种图形函数。(2)CDC构成主要有:画笔CPEN、画刷CBRUSH、颜色、字体CFONT、位图CBITMAP、绘图模式等。(3)绘图既可以编程实现,又可以实现鼠标绘图。通过控制LBUTTON、RBUTTON的按下、释放、移动和拖放,完成鼠标自由作图。(4)图形打印和预览由视图自动控制完成,开发人员只要对视图的几个打印处理函数作简单扩充即可。其主要控制函数有:ONBEGINPRINTING()、ONDRAW()和ONENDPRINTING()等。VC完成简化了设备管理,视图中所有输出,皆可自动预览和打印,形成完全与设备无关的编程环境。这类似于DELPHI语言的画布功能。4.2.6 菜单、工具栏、对话框等使用技术 使用资源管理器,可以以可视形式定义所需的各种类型的资源。如对话框、菜单、各种控件、控件的各种属性等,VC提供的控件是非常丰富的。这与Visual Basic、Visual Foxpro等是十分想象的。其中对多媒体控件的支持、数据库控件的支持、OLE控件的支持、及网络控件的支持等,使得在其之上可以开发出具有高性能的软件。5 C+的发展以及前景5.1 C+的发展C+语言发展大概可以分为三个阶段:第一阶段从80年代到1995年。这一阶段C+语言基本上是传统类型上的面向对象语言,并且凭借着接近C语言的效率,在工业界使用的开发语言中占据了相当大份额;第二阶段从1995年到2000年,这一阶段由于标准模板库(STL)和后来的Boost等程序库的出现,泛型程序设计在C+中占据了越来越多的比重性。当然,同时由于Java、C#等语言的出现和硬件价格的大规模下降,C+受到了一定的冲击;第三阶段从2000年至今,由于以Loki、MPL等程序库为代表的产生式编程和模板元编程的出现,C+出现了发展历史上又一个新的高峰,这些新技术的出现以及和原有技术的融合,使C+已经成为当今主流程序设计语言中最复杂的一员。 5.2 C+的前景对于目前的应用程序正在从基于独立的操作系统传向基于internet平台。我们以前开发应用程序都是依赖于平台的功能调用,而现在internet编程却最不想关心的就是某一个平台的调用,我们最迫切需要的就是一种与各种平台调用无关的语言,这中语言只注重程序逻辑的设计而不涉及平台的调用。而我们熟悉的c/c+却恰恰不是为这个而设计的。c/c+的最初设计目的是为了设计unix产生一种介于汇编和高级语言之间的一种开发高效而性能不低的语言。他要比其他任何高级语言都要关心系统的物理结构,因此,使得涉及了系统物理内存的管理的指针带来了更多的不稳定性。所以,如果你开发系统底层的东西,需要极好的兼容性和稳定性,应该首选Visual C+。我们可以只调用Windows的各种API,不用MFC。如果写传统的Windows桌面应用程序,Visual C+的MFC框架是正统的选择。但是,如果你为企业开发数据库、信息管理系统等高层应用,而且有比较紧的期限限制,选C+相关的另一种软件C+ Builder比较好。在未来对于面向Internet的编程中,有人说c+是几乎没有优势可言。跨平台的电子商务软件最害怕顾及各种平台之间的天差地别的系统调用,最害怕由于内存泄漏而crash。c+的优势在这里却成为了劣势。即使在windows平台上开发基于
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年智能网联汽车燃料电池管理技术考核试卷
- 难点解析-人教版八年级物理上册第5章透镜及其应用综合测试试题(含详解)
- 2025年新能源行业储能系统锂电池双碳目标政策合规考核试卷
- 2025年数据库系统工程师《大数据处理技术》混合云环境下分布式数据库部署策略考核试卷
- 解析卷-人教版八年级上册物理《物态变化》章节练习试卷(含答案解析)
- 考点解析人教版八年级物理上册第5章透镜及其应用-生活中的透镜专题测评试卷(详解版)
- 考点解析-人教版八年级物理上册第6章质量与密度-密度综合练习试题(解析版)
- 考点解析人教版八年级物理上册第4章光现象-光的色散综合练习试卷(含答案详解)
- 全体教师大会上副校长讲话:警惕!7个教学环节正在吞噬课堂质量-从备课到教研的破局之道
- 2024年船舶尾气排放监测技术考核试卷
- 2024-2025学年广东省深圳市高二上学期第一次月考数学检测试题(含解析)
- 【MOOC】中国传统艺术-篆刻、书法、水墨画体验与欣赏-哈尔滨工业大学 中国大学慕课MOOC答案
- 2024-2025华为ICT大赛(实践赛)-网络赛道理论考试题库大全-中(多选题)
- 数据中心运维服务投标方案
- 语文-安徽省鼎尖名校(安徽小高考)2025届高三11月联考试卷和答案
- 膜结构车棚施工方案
- 《浅论鲁迅小说中塑造的女性形象》11000字(论文)
- 2025年九省联考新高考 物理试卷(含答案解析)
- 北师大版五年级上册数学全册单元教材分析
- 环境卫生学-练习题(有答案)
- 二次结构阶段危险源清单(房建)
评论
0/150
提交评论