C++程序设计教案课件_第1页
C++程序设计教案课件_第2页
C++程序设计教案课件_第3页
C++程序设计教案课件_第4页
C++程序设计教案课件_第5页
已阅读5页,还剩47页未读 继续免费阅读

下载本文档

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

文档简介

高级语言程序设计2-1

课程简介:学习一门必须熟练掌握的、用来与计算机进行“沟通”、指挥计算机为我们做事情的程序设计语言,是其他多门必修课程的前导课程。该学期主要学习C++语言非面向对象部分的内容,其中包括表达式、各种语句、分支与循环处理、数组与结构、函数及其应用等。

本课程非常重要!一定要下功夫学好!

1 高级语言程序设计2-1课程简介:学习教学用书及参考书

教学用书:高等教育出版社,《高级语言C++程序设计》,刘璟编著,(p1-306,17.3元)。 参考书:

(1)清华大学出版社,《C++程序设计教程》,钱能主编,(p1-468,39.5元)。2教学用书及参考书 教学用书:高等教育出版社,《高级语参考书

(2)电子工业出版社,《C++语言程序设计》,吕风翥编著,(p1-415,33元)。(3)高等教育出版社,《高级语言C++程序设计编程范例与精解》,周玉龙刘璟编著,(p1-561,39元,2003年4月第1版)。(4)南开大学出版社,《C++实用编程技术百例精编与妙解》,周玉龙编著,(p1-461,41元,2004年1月第1版)。

3参考书(2)电子工业出版社,《C++语言程序设计》,第1章C++语言概述

1.0计算机基础知识(补充)1.1计算机程序设计语言的发展1.2面向对象语言及其特点1.3C++简单程序实例1.4简单实例程序中的语法点1.5执行C++程序4第1章C++语言概述1.0计算机基础知识(补充1.0计算机基础知识(补充)

1.0.1计算机组成(硬件)1.0.2数的进制(二进制、八进制、十六进制)1.0.3不同数制间的转换1.0.4存储器单元与机器指令51.0计算机基础知识(补充)1.0.1计算机组1.0.1计算机组成

(硬件,Hardware)1.存储器(RAM-RandomAccessMemory):存储程序指令和数据。 2.中央处理器(CPU-CentralProcessingUnit):又可细分为控制器(CU)和运算器(ALU),即,CPU=CU+ALU。 3.输入输出设备(I/O-Input/Output):也称外部设备,负责对数据和程序进行输入与输出。61.0.1计算机组成

(硬件,Hardware)附注:(1)控制器(CU-ControlUnit):控制和协调各个部件正常运行。(2)运算器(ALU-ArithmeticLogicUnit):进行算术和逻辑运算。 另外:相对应的计算机软件(Software)包括系统软件(如,操作系统、编译程序等)和应用软件。 硬件--“看得见,摸得着”; 软件--“看不见,摸不着”。

7附注:(1)控制器(CU-ControlUni

数据和指令均使用字节(序列)来存储

计算机只认二进制数(以二进制形式存储的代码或数据)。就是说,在计算机中,数据和指令均使用字节(序列)来存储。

不同的计算机系统、不同类型的数据、或不同的指令所使用的字节数以及表达形式可能互不相同。8 数据和指令均使用字节(序列)来存储 计算机只认二进

2.存储器单元(也称存储单元)

存储单元:按字节安排。

存储地址:顺序号,为每个存储单元指定一个序码(号码)。9 2.存储器单元(也称存储单元) 9

3.机器指令

计算机设计者把计算机可以完成的动作编辑成一个机器指令表,并为每种动作赋予一个二进制代码,通常由指令码(操作码)和内存地址(操作数)来构成。通过机器指令来编写的程序称为机器语言程序。

10 3.机器指令 计算机设计者把计算机可以完成的动作编机器语言程序示例

例如,使用“机器语言”编出的做一次加法“TOTAL=PRICE+TAX”的程序为:156C//取6C内容送寄存器5166D//取6D内容送寄存器6 5056 //把二值相加,结果送寄存器0306E//把寄存器0中的结果送地址6EC000//停机11机器语言程序示例 例如,使用“机器语言”编出的做一次加

4、内存中机器指令的执行

计算:5+15=?(1)将0010H存储单元的数据(5)取出,存放在ALU。(2)将0011H存储单元的数据(15)取出,与ALU的数据相加,运算结果存放在ALU。(3)将ALU中的数据(20)存放到0012H存储单元。(4)停止执行

计算机依赖机器指令运行,机器指令以及各种被处理的数据都以二进制形式存储。12 4、内存中机器指令的执行 计算:5+15=?12

1.1计算机程序设计语言的发展

1.1.1机器语言与汇编语言1.1.2高级语言1.1.3面向对象的语言13 1.1计算机程序设计语言的发展 13

1.1.1机器语言与汇编语言计算机刚问世时,它的“能耐”还比较小,只能“看懂”或“理解”程序员用原始的机器指令书写的所谓机器语言程序。

汇编语言将机器指令映射为一些易于看懂、易于记忆的助记符,如ADD,SUB,MOV等。但若要运行(执行)用汇编语言写成的源程序时,必须先运行一个叫做汇编程序系统(Assembler)的软件,由它首先把汇编语言源程序转换为具有相同功能的机器指令程序,然后再运行机器指令程序,得到所需的结果。14 1.1.1机器语言与汇编语言计算机刚问世

1.1.2高级语言之所以称其为高级语言,是相对于机器语言与汇编语言来说,编程人员对它们的理解、记忆以及使用都要容易的多。高级语言屏蔽了诸多的机器细节问题,提高了语言的抽象层次,更加接近于人们的思维方式以及自然语言。

应用较广泛的几种高级语言是:FORTRAN、ALGOL、COBOL、BASIC、PASCAL、C、LISP、PROLOG等。15 1.1.2高级语言之所以称其为高级语言,

编译程序系统(Compiler)的作用

与对待汇编语言源程序相同,用高级语言写成的源程序也不能被计算机去直接执行,也必须先运行一个叫做编译程序系统(Compiler)的软件,由它首先把高级语言源程序编译转换为目标程序,然后再经过连接而成为具有相同功能的可执行程序(机器指令程序),最后再运行该可执行程序(机器指令程序),方可得到所需的结果。16 编译程序系统(Compiler)的作用 与对待汇编

1.1.3面向对象的语言上述高级语言(非面向对象的语言)存在的主要问题是程序中的数据与操作分离,从而不能有效地组成与自然界中的具体事物紧密对应的程序成分。而面向对象的编程语言将客观事物看作是具有属性和行为的一个统一的整体--对象。通过抽象找出同一类对象的共同属性和行为,从而形成类(class);通过类的继承与派生,可以方便地描述客观世界中存在的事物(即对象)间的那种“父类”与“子类”属性和行为的继承关系,从而能够很方便地实现程序代码的可重用问题。17 1.1.3面向对象的语言上述高级语言(非

目前常用的面向对象语言

目前,应用最广的面向对象语言是在C语言基础上扩充出来的C++语言,而科研前沿目前用的最多的要属Microsoft公司的VisualC++6.0(简称VC6.0),它是基于Windows窗口规范的一个C++的具体实现版本。

其它面向对象的编程语言还有Smalltalk语言、Simula67语言、以及LISP家族的面向对象语言等等。18 目前常用的面向对象语言 目前,应用最广的面向对象语

1.2面向对象语言及其特点

1.2.1面向过程的SP结构化程序设计方法和面向对象的OOP程序设计方法 1.2.2C++语言对面向对象方法的支持19 1.2面向对象语言及其特点 19

1.2.1面向过程的SP结构化程序设计方法和面向对象的OOP程序设计方法

1.面向过程的SP结构化程序设计方法

结构化程序设计的基本思想是:采用自顶向下、逐步求精的设计方法和单入口单出口的控制结构;其程序结构是按功能划分为若干个基本模块(函数),各模块的功能相对独立,而且模块之间的关系尽可能地简单,另外通过使用参数机制来规范程序模块间的调用接口;每一模块的内部均由顺序、选择和循环三种基本结构来组成。面向过程的SP结构化程序设计方法存在着一个主要缺点:数据和处理数据的操作过程(处理函数)是相互独立的实体,当数据结构改变时,所有相关的处理过程(函数)都要进行相应的修改,从而使程序的可重用性明显变差。20 1.2.1面向过程的SP结构化程序设计方法和面向对象的

2.面向对象的OOP程序设计方法

面向对象程序设计正是要弥补面向过程的SP结构化程序设计方法的那一主要缺点,它将数据以及对这些数据进行操作的方法(处理过程)放在一起,形成一个相互依存、不可分离的整体--对象。通过对事物的抽象找出同一类对象的共同属性(静态特征)和行为(动态特征),从而形成类。类是面向对象程序设计方法中的程序主体,即是说,程序结构将划分为若干类的基本模块,类中的大多数数据只能用本类的方法进行处理,以保障程序模块的独立性以及数据的安全性。类通过一个简单的公共对外接口与外界发生联系,对象与对象之间通过消息进行通讯。

面向对象程序设计的三大特征是:封装性、继承性、多态性。21 2.面向对象的OOP程序设计方法

面向

1.2.2C++语言对面向对象方法的支持

C++语言是一种面向对象的程序设计语言,它对面向对象的程序设计方法进行了较全面的支持。

1.支持数据封装

C++语言中的类(class)是支持数据封装的工具。通过类(class)类型对所要处理的问题进行抽象描述,从而将逻辑上相关的数据与函数进行封装。22 1.2.2C++语言对面向对象方法的支持

2.支持继承性

C++语言允许单继承和多继承。所谓多继承,就是从多个父类(基类)那儿继承属性和行为特征。另外,如有必要,派生类还可以生成它自己的派生类。即是说,根据需要,类之间可形成多层次的派生以及继承关系。

3.支持多态性

允许对函数和运算符进行重载体现出一种多态性。通过在基类及其派生类间对虚函数进行使用体现出另一种多态性。23 2.支持继承性23

1.3C++简单程序实例

1.在屏幕上显示一句话

#include<iostream.h>voidmain(void){ cout<<"Helloworld!"<<endl;}

程序执行后的输出结果为:Helloworld!24 1.3C++简单程序实例 1.在屏幕上显示一句话2

2.求两个数的和与积#include<iostream.h>voidmain(){ inta,b,sum,prod; a=3; b=15; sum=a+b; prod=a*b; cout<<"Thesumis"<<sum<<endl; cout<<"Theprodis"<<prod<<endl;}

25 2.求两个数的和与积#include<iostrea

程序执行后的输出结果为:Thesumis18Theprodis45

26 26

3.计算圆面积与周长#include<iostream.h>voidmain(){ constfloatpai=3.14; floatradius; cout<<"Enterradius:"; cin>>radius; floatarea=pai*radius*radius; cout<<"\nTheareaofcircleis"; cout<<area<<endl; floatcircum=2*pai*radius; cout<<"Thecircumofcircleis"<<circum<<endl;}

27 3.计算圆面积与周长#include<iostrea

程序执行后的输出结果为:Enterradius:2.5

Theareaofcircleis19.625Thecircumofcircleis15.728 程序执行后的输出结果为:28

1.4简单实例程序中的语法点

1.

main函数是所有C++程序所必须的。最简单的合法C++程序是:

main(){}它没有错误,但什么事都不做。

2.以双斜杠('//')开头直到行末的全体(符号)称为注解。注解将被当作空格处理。C++还允许使用第二种注解方式:以有序双符号'/*'开始(往后),直到第一次遇见有序双符号'*/'为止的全体(符号)也称为注解。第二种注解方式可以占一行至任意多行。29 1.4简单实例程序中的语法点 1.main

3.程序中涉及的数据,以常量和变量的形式出现,变量的值在程序执行中可以被改变。常量又分为字面常量和有名常量,如3与15等都为字面常量,而通过“constfloatpai=3.14;”说明的pai则被称为有名常量,它们的值在程序中均不可改变。

常量和变量都具有各自的数据类型。C++的四种基本数据类型为:int、float、char、void,它们分别代表整型(int),浮点型(float),字符型(char),以及无值型(void)。

30 3.程序中涉及的数据,以常量和变量的形式出现

程序中用到的所有变量以及有名常量都必须在使用前先说明其数据类型。通过如下格式的语句来说明一批(如n个)变量的数据类型: <数据类型名><变量名1>,...,<变量名n>;变量名由用户任起,但要求满足以下C++标识符的语法:标识符是由字母或下划线开头的后跟0到任意多个字母、数字或下划线所组成的符号串。除变量名外,程序员为有名常量、用户自定义类型、函数及其参数、类、对象等各种成分所起的名字也都必须是一个标识符。31 程序中用到的所有变量以及有名常量都必须在使用

4.每个C++程序都是一个符号的序列。C++语言的基本符号由数字(0--9)、大小写英文字母(A--Z,a--z)、以及包括空格在内的特殊符号组成。由符号构成单词,由单词构成语句,由语句构成程序(相当于文章)。特殊符号可充当运算符(如:+-*/><=!等)、分割符(如:,;:{}等)。另外,下划线、空格、句点等也属于特殊符号。32 4.每个C++程序都是一个符号的序列。C++

5.C++语言的单词主要分为以下五种:关键字(也称保留字,如,int、float、const等),标识符(如,变量名及有名常量名等各种名字),字面常量(如,43、3.14等),运算符(如,+、=、*等),分割符(如,{、}、;等)。每一个C++关键字(保留字)都具有自己特定的使用含义,用户程序中不可再将它们用作自定义标识符。C++预定义的关键字均由小写字母构成,今后将在不同章节陆续用到那些关键字(注意,对于某一个具体的编译实现来说,可能还会再扩充一些不同的关键字,使用时请留意)。请参看书p33的表2.2(其中列出了C++基本关键字)。33 5.C++语言的单词主要分为以下五种:关键

6.C++语言的基本语句主要分为以下几种:数据说明(定义)语句、赋值语句、表达式语句、流程控制语句、复合语句等。如,语句“inta,b,sum,prod;”为数据说明(定义)语句,它说明a、b、sum及prod为4个int型(整型)变量,程序中可将它们当作4个整型数据来使用。而语句“sum=a+b;”则为赋值语句,负责算出a+b之值并把结果值赋给变量sum。34 6.C++语言的基本语句主要分为以下几种:数

7.数据的输入输出是每个实用程序必不可少的组成部分。“输入”向程序提供要加工的初始数据,而“输出”则将运算结果显示(或保存)到某个指定文件中。

C++含有两个特殊文件,一个为标准流对象cin,它代表键盘,是C++的标准输入设备;而另一个为标准流对象cout,它代表屏幕,是C++的标准输出设备。

35 7.数据的输入输出是每个实用程序必不可少的

往cout(即屏幕)上输出信息时,通过“插入”运算符“<<”(也称输出运算符)来实现,如,语句“cout<<"Thesumis"<<sum;”的执行将首先在屏幕上显示出字符串常量:“Thesumis”,而后显示sum变量的当前值。从cin(即键盘)上输入信息时,通过“提取”运算符“>>”(也称抽取或输入运算符)来实现,如,语句“cin>>radius;”的执行将等待用户从键盘输入一个浮点数,而后系统将该数赋值给变量radius。36 往cout(即屏幕)上输出信息时,通过“插入”

8.字符串常量(简称为字符串)是由双引号括起来的字符序列。双引号为定界符,不属于字符串常量的一部分。虽然字符串中的每个字符在内存中只占1个字节,但整个字符串所占内存的字节数却为字符串的长度加一。是因为系统自动在每个字符串常量的末字符后加上了一个“空字符”(作为结束标志)。系统使用转义字符‘\0’来表示“空字符”。注意,字符‘A’在内存占1个字节,而字符串“A”则占2个字节。往cout(即屏幕)上输出字符串常量可以对用户起到提示作用。对字符串的处理通常与字符数组和指针有关。37 8.字符串常量(简称为字符串)是由双引号括起

1.5执行C++程序

一.一般步骤每一个C++程序从输入计算机到执行(运行)都要按照如下的步骤来进行:=>编辑=>编译=>连接=>运行。

1.编辑:借助某个编辑器把程序代码输入到计算机中。

2.编译:借助编译器把源程序编译成目标程序,通常生成扩展名为.obj的目标文件。

3.连接:用连接器将编译成功的目标文件与库文件等连接成为一个可执行文件。可执行文件的扩展名为.exe。

4.运行:执行上述连接成功的.exe可执行文件。38 1.5执行C++程序 一.一般步骤38书P51的图2.2

39书P51的图2.239书P52的图2.3

40书P52的图2.340二.在VC6.0集成开发环境下执行C++程序的最简单步骤--详细用法请参看书p288的附录A

首先启动并运行VC6.0,进入到它的集成开发环境窗口。接着创建工程并输入源程序代码。其操作步骤为:“File”→“New”→“Projects”→“Win32ConsoleApplication”→(右上处第二行)“Location”文本框中填入如“d:\mydir”→(右上处第一行)“Projectname”文本框中填入如“proj1”→“OK”→“Finish”→“OK”→“Project”→“AddToProject”→“New”→“C++SourceFile”→(右中处)“File”文本框中填入如“exe1”的文件名(此时系统将使用exe1.cpp的文件来保存所键入的源程序)→“OK”→键入具体程序。41二.在VC6.0集成开发环境下执行C+例如:#include<iostream.h>voidmain(){ cout<<"Helloworld!"<<endl;}

注意:在“Location”文本框中填入如“d:\mydir”,这是假设准备在d磁盘的mydir文件夹即子目录下存放与工程工作区相关的所有文件及其相关信息(当d磁盘上不存在mydir文件夹时,系统将自动创建出该名字的文件夹。若准备指定其他位置,则要在此处填入其相关“路径”),当然也可通过点击其右部的“…”按钮去选择并指定另外的已存在文件夹位置。42例如:42最后对所输入的程序进行编译、链接而后运行(得出结果)。此3个步骤所使用的菜单命令依次为: “Build”→“Compiler…”; “Build”→“Build…”; “Build”→“Execute…”。

程序执行结束后,可通过“File”→“CloseWorkspace”关闭相关的工作区窗口,从而结束了一个程序从输入到执行的全过程,而重新回到刚刚启动VC6.0时的那一个初始画面(窗口)。43最后对所输入的程序进行编译、链接而后运行(得出结果若要打开某个已关闭的工作区Workspace去再一次修改或执行其相关程序时,可通过“File”→“OpenWorkspace”,并在“查找范围”处指定具体的工程文件夹(如,“mydir”下的“proj1”),而后通过鼠标单击选定“proj1.dsw”,再单击右下角处的“打开”。注:打开某个已关闭工作区Workspace的另一种常用方法是,通过“资源管理器”找到相关的工程文件夹,如“mydir”下的“proj1”,选定该文件夹下的“proj1.dsw”,双击该文件。44若要打开某个已关闭的工作区Workspace去再一次例:从编程到运行一个完整程序编程序,从键盘输入整数x、y,计算出x2+x–y以及w=2πx+πy2,并将结果显示在屏幕上。45例:从编程到运行一个完整程序45【程序编制】#include<iostream.h>voidmain(){ intx,y;doublew; constdoublepai=3.1416; cout<<"Inputx,y:"; cin>>x>>y; cout<<"x*x+x-y="<<x*x+x-y<<endl;

w=2*pai*x+pai*y*y; cout<<"w="<<w<<endl;}46【程序编制】#include<iostream.h>4【调试运行】若要输入并运行第二个程序(比如准备仍在“d:\mydir”文件夹下,再单独创建一个叫做proj2的工程工作区,并使用exe2.cpp文件来存放源程序),则要再一次重复类似于示例一的操作步骤:“File”→“New”→“P

温馨提示

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

评论

0/150

提交评论