第01章C和C++概述_第1页
第01章C和C++概述_第2页
第01章C和C++概述_第3页
第01章C和C++概述_第4页
第01章C和C++概述_第5页
已阅读5页,还剩15页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第1章 C/C+概述 计算机组成:软件+硬件 计算机语言:机器语言、汇编语言、高级语言 程序设计方法:面向过程POP、面向对象OOP C/C+历史 C/C+开发步骤 VC 6.0集成环境介绍 第一个C语言程序1.1 了解计算机通俗地讲,计算机是个“超级工具”,是个能执行命令的电子设备。几乎所有的计算机都遵循冯诺伊曼的“存储运行”结构,有以下基本功能:输入、输出、存储、执行算术和逻辑运算。计算机主要由硬件和软件两大部分组成,首先看一下什么是硬件。冯.诺依曼结构:计算机运算器控制器存储器主机:I/O设备:键盘、显示器等中央处理器CPU1.1.1 计算机硬件计算机的硬件主要有中央处理器(CPU, C

2、entral Processing Unit)、内存(或称主存、随机处理器、RAMRandom Access Memory)、输入/输出设备(Input/Output Devices)和外部存储设备(Secondary Storage,多数为具备海量存储能力的硬盘)下图说明了计算机的硬件结构。1.1.2 计算机软件软件是能完成特定功能的程序,软件大体上可以分为两类: (1)系统软件系统软件是用来控制计算机,管理计算机上的资源,使计算机的硬件有效起作用的。在系统启动时装载入内存的程序集合称为操作系统,没有操作系统的计算机什么也干不了,操作系统除了进行内存管理、文件管理和输入输出管理外,一般都提供

3、了很多系统级的服务供用户调用。但不要认为操作系统程序是多么的高深莫测,从本质上所,它也是用程序设计语言写出来的。只要你掌握了程序设计的原理和硬件系统的相关知识,你甚至可以写出自己的操作系统。除了操作系统外,设备驱动程序和其他一些管理工具也可以归入系统软件的范畴。DOS,WINDOWS,UNIX,LINUX(2)应用软件尽管系统软件虽然能有效处理计算机的内部功能,协助计算机使用外围设备,但却没有把计算机转化成可以写报告,练打字,看电影等多用途的机器,想要实现这些功能,需要安装应用软件。应用软件程序面向特定的应用,如WORD用来处理文字,EXCEL用来记录数据,还有供娱乐的游戏程序等等。1.2 程

4、序设计语言语言在人类的交流中的作用无可取代,要想交流通畅,有共同的语言是首要条件,打个比方,一个中国人想和一个英国人聊天,光靠比划手势是不行的,有两条路可以选,要么学习英语,要么找一个翻译。计算机程序设计同样如此,计算机是无生命无知觉的机器,不懂人类的语言,不管是汉语还是英语,计算机都不会接受,人类要想和其交流,让计算机完成特定的任务,必须解决“语言”的问题。同样,人类和计算机交流同样有两条路:要么学习机器语言,要么找一个“翻译”。机器语言是什么,“翻译”又是什么,下面将给出解答。机器语言汇编语言高级语言(又分为:面向过程、面向对象)编程语言编程语言表示形式表示形式特点特点高级语言(C语言)a

5、=b+1简洁,易懂,易记汇编语言mov 0 x0804a01c,eaxadd 0 x01,eaxmov eax,0 x0804a018机器语言a1 1c a0 04 0883 c0 01a3 18 a0 04 08晦涩,难懂,难记1.2.1 机器语言 计算机是一种电子设备,计算机处理的是数字信号。数字信号采用0和1记录信息,那么计算机的语言,称为机器语言(Machine Language),自然也就是0和1序列。数字0和1称为二进制数据(Binary Digit),或者称为位(Bit),这种0和1的序列就称为二进制代码。 即便是完成相近的功能,不同的计算机的设计者也可能会采用不同的二进制代码集

6、来表示程序指令,换句话说,不同的计算机使用的机器语言并不一定相同,不过可以肯定的是,现代计算机都是以二进制代码的形式存储和处理数据的。1.2.2 汇编语言 汇编语言(Assembly Language)的出现简化了程序员的工作,在汇编语言中,用便于记忆的方法定义程序指令,表1给出了汇编语言指令机器语言指令的对应关系。 1.2.3 高级语言既然机器语言和汇编语言都是计算机可以理解的语言,用其可以完全控制计算机的行为,那么为什么人们还要创造并使用高级程序设计语言呢?因为机器语言和汇编语言都是低级语言,是面向机器的,与具体的计算机相关。学习起来困难,编程效率也低,可读性、可维护性也差。还是举个例子,

7、一个说普通话的北京人想要去欧洲旅行,可是他不懂任何一门欧洲语言;恰好,一个说粤语的广东人也去欧洲旅行,而且,他懂得德语、英语、法语、西班牙语等所有欧洲语言,他们结伴同行。北京人想要同欧洲人交流,有两种方式:一是学习各种欧洲语言,然后同各个国家的人直接交流;二是让广东人当翻译,将自己的意思讲给欧洲人听,并将欧洲人的回答反馈给自己。如果您是那个北京人,您选择哪种方式?我想答案是确定的,肯定要请广东人当翻译。虽然普通话和粤语也有一定的差异,但是比起同欧洲语言的差异来,这种差异小了很多。况且,如果直接同欧洲人交流,需要学习多少门语言?高级语言和计算机的关系,与北京人的语言和欧洲人的关系相似。高级语言编

8、写的程序借助于编译器就可以在特定的机器上运行,不同的欧洲人相当于不同的计算机,广东人相当于编译器,粤语相当于计算机高级语言。1.2.4 程序要素:数据结构和算法 计算机程序规定了计算机要执行哪些动作及这些动作应当按什么顺序来执行,如同菜谱规定了厨师做菜的材料和步骤。一个程序主要有以下两个要素: 数据结构:即数据的存储形式,程序用到的信息。 算法:操作步骤,对操作的描述,程序用什么方法解决问题。 著名的计算机科学家Nikiklaus Wirth提出了一个公式: 程序 数据结构 算法。1.2.5 面向过程的程序设计(POP)在60年代计算机发展的初期,计算机和编程是少数聪明人的玩具,程序员可以根据

9、自己的喜好随心所欲地进行程序设计,大多数程序代码组织混乱,可以说只有作者本人可以看懂,被称为“意大利面条式编程”,随着计算机的发展和程序规模的不断扩大,一大堆的问题凸现出来:程序质量低下,进度延误,预算严重超支,这就是“软件危机”。为此,人们提出了结构化程序设计方法,探讨了面向过程编程的3种基本结构,即顺序、分支和循环,大大提高了程序的清晰度和可靠性,在一定程度上缓解了“软件危机”。结构化程序设计方法建立在Bohm、Jacopini证明的结构定理的基础上,结构定理指出:任何程序逻辑都可以用顺序、选择和循环等3种基本结构来表示,如所示。1.2.6 面向对象的程序设计(OOP)面向对象的程序与结构

10、化的程序不同,由C+编写的结构化的程序是由一个个的函数组成的,而由C+编写的面向对象的程序是由一个个的对象组成的,对象之间通过消息而相互作用。在结构化的程序设计中,我们要解决某一个问题,就是要确定这个问题能够分解为哪些函数,数据能够分解为哪些基本的类型,如int、double等。也就是说,思考方式是面向机器结构的,不是面向问题的结构,需要在问题结构和机器结构之间建立联系。面向对象的程序设计方法的思考方式是面向问题的结构,它认为现实世界是由对象组成的。面向对象的程序设计方法解决某个问题,要确定这个问题是由哪些对象组成的,对象间的相互关系是什么。1.3 C/C+概述 C语言是1972年贝尔实验室为

11、写unix操作系统在B语言的基础上编写的 1978年发布C Program Language 1989年ANSI组织发布 C89标准 1999年发布C99标准 C+语言是贝尔实验室在C语言的基础上,借鉴simula语言面向对象的机制,于80年代初开发出来的一种过程性和对象性结合的程序设计语言,最初称为“带类的C”,1983年更名为“C+”1.3.1 C+语言发展历程最初,Stroustrup使用了一个C+到C的编译器程序,将C+源代码翻译成C代码,然后通过标准的C编译器将其转化成二进制代码,随着C+的日渐普及,才出现了独立的C+编译器,直接将C+代码编译成目标代码,这种方式,突出了C+“由C语

12、言而来,却不同于C语言”的独立地位。C+灵活而强大的功能,很快就受到了计算机软件厂商的青睐,并不断对C+进行细化,促进了C+的发展。虽然多数公司和科研单位都希望自己的C+版本能和其他版本兼容,但如果没有一个标准的出台,这将很难做到。为此,美国国家标准局在1990年设立了一个委员会(ANSI X3J16),专门负责C+标准的制定。ANSI/ISO C+国际标准第一版于1998年正式发布,2003年又发布了C+国际标准第二版,新的标准是对第一版的整理修订错误,减少歧义等,并没有改变语言特性,本书所有介绍和实例代码都是基于新的C+国际标准的。1.3.2 C+语言特点 C+语言是以C语言为基础扩充、发

13、展起来的一种优秀的通用程序设计语言,它保存了C语言的紧凑、灵活、高效和移植性好的特点,又吸收了其他程序设计语言的优秀特性,从simula中吸收了类的机制,从Algol中吸收了运算符重载、引用和在局部的任何地方声明变量,综合了Ada的类属和异常处理机制。 C+语言是C语言的一个超集,它是一门混合型的语言,既支持传统的结构化程序设计,又支持面向对象的程序设计,这是C+语言成功流行的一个重要原因。1.3.3 C/C+程序开发基本过程1.编辑(Edit):使用文本编辑工具录入程序代码,生成源程序*.c,*.cpp;2.编译(Compile):语法分析查错,翻译生成目标程序*.obj;3.链接(Link

14、):与其它目标程序或库链接装配,生成可执行程序*.exe;4.执行(Run):运行最终的可执行文件。如:cl.exe a.c f.c注:cl.exe位于C:Program FilesMicrosoft Visual StudioVC98Bin 目录下1.4 C+开发环境的搭建 C+的流行使得许多软件厂商都提供了自己的C+集成开发环境,称为C+ IDE。著名的有Borland公司的C+ Builder(BCB),Microsoft公司的Visual C+(VC)等等。所谓集成开发环境,在同一个环境下,能够完成C+源程序的编写、连编、运行和调试。 对初学者而言,不要被VC、BCB、BC(Borla

15、nd C+)、MC(Microsoft C+)、TC(Turbo C+)等词汇所迷惑他们都是集成开发环境,而我们要学的是一门语言。 本文以Windows操作系统下流行的C+集成开发环境Visual C+ 6(VC6)+sp6为示例开发环境,所有示例代码都在(Windows XP+VC6/Windows 2000+VC6)下编译通过。 1.4.1 Visual C+ 6开发环境简介 Visual C+ 6集成开发环境,被划分成4个主要区域:菜单和工具栏、工作区窗口、代码编辑窗口和输出窗口,如图1.4所示。1.4.2 开发步骤1.创建工程:打开VC6.0FileNewProjects然后按照左图进

16、行选择An empty project(空项目)。2.创建文件:FileNewFiles然后按照右图进行。1.5 第一个C程序第一个程序:在屏幕上显示Hello World按照1.4节的介绍建立工程,添加源代码文件HelloWorld.cpp,见代码1 1: /1-1/*文件名:example101.cpp功 能:输出Hello,World*/#include /编译预处理:头文件int main()/主函数printf(Hello,Worldn); /输出Hello,World并换行return 0;/返回1.6 小结本章主要讲述计算机和程序设计的基本概念、方法,并简单介绍了C+语言的特点以及Visual C+集成开发环境的使用。面向过程的结构化程序设计和面向对象的程序设计是两种主要的程序设计方法。结构化程序设计主张只采用顺

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论