计算机数据库(经济会计类)五讲计算机软件技术基础随堂讲义_第1页
计算机数据库(经济会计类)五讲计算机软件技术基础随堂讲义_第2页
计算机数据库(经济会计类)五讲计算机软件技术基础随堂讲义_第3页
计算机数据库(经济会计类)五讲计算机软件技术基础随堂讲义_第4页
计算机数据库(经济会计类)五讲计算机软件技术基础随堂讲义_第5页
已阅读5页,还剩33页未读 继续免费阅读

下载本文档

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

文档简介

1、第五章 计算机软件技术基础,硬件是计算机系统的基础,但没有软件的计算机是无法工作的。计算机能广泛地应用于各个领域完全是因为有了丰富的计算机软件。 本章将学习计算机软件和计算机软件开发的相关知识,如什么是软件,程序设计语言的分类及构成、数据结构与算法、软件开发过程等。,需要编写应用软件,如何让计算机按我们的意志行事?,5.1 计算机软件系统,5.1.1 软件的概念与特点,软件是由程序、数据及其相关文档三部分组成。, 程序:按照事先设计的功能和性能要求执行的计算机指令序列。 数据:使程序能够正常操纵信息的数据结构。 文档:与程序开发、维护和使用有关的资料。,5.1 计算机软件系统,5.1.2 软件

2、的分类,软件可以按功能、工作方式、服务对象进行划分,其中按软件功能可划分为:, 支撑软件:又称为软件开发环境。是介于系统软件和应用软件之间的中间层软件,是支撑各种软件的开发与维护的软件。, 应用软件:针对特定领域开发,为特定目的服务的软件。, 系统软件:能与计算机硬件紧密配合,使计算机系统的各个部件、相关的软件和数据协调、高效工作。,5.1 计算机软件系统,计算机软件系统中所包括的各种软件之间的关系不是并列的,而是有一定的层次关系。,5.1.3 计算机软件的层次结构,系统软件,支撑软件,应用软件,5.2 程序设计语言,计算机的本质是“程序的机器”,程序和指令的思想是计算机系统中最基本的概念。只

3、有懂得程序设计,才能懂得计算机,真正了解计算机是怎样工作的。,什么人需要学程序设计,比尔盖茨说 最 终 用 户 Office等 程序开发人员-Visual Basic等 系统开发人员-Visual C+等,你听过用过哪些编程语言?,BASIC、VB、VB.NET C、VC+、C# FORTRAN PASCAL、Delphi COBOL Java ,5.2 程序设计语言,简单讲,程序设计就是用计算机语言编写程序。,程序 = 算法 + 数据结构,编写计算机程序时使用的语言称为程序设计语言(Programming Language),程序设计语言分为机器语言、汇编语言和高级语言三种。,对数据操作的步

4、骤,如何表示、组织和存储数据,算法是程序的灵魂,不掌握算法就无法编写出程序。 语言是实现算法的工具,是外壳,是表现形式。 要做到二者的高度统一。,5.2 程序设计语言,5.2.1 机器语言,机器语言是唯一能被计算机直接理解和执行的程序设计语言,属低级语言。机器语言的一条语句就是一条指令,机器指令的格式如下:,例如:计算256+16结果的机器代码如下(以十六进制表示):,5.2 程序设计语言,5.2.2 汇编语言,为了解决机器语言难记忆、可读性差的缺点,人们把机器指令中的操作码和操作数用英文助记符来表示,这种助记符语言称为汇编语言,也属于低级语言。,汇编语言编写的程序属于符号程序,计算机不能直接

5、识别和执行,必须翻译成计算机能识别的机器指令后才能在计算机上执行,其翻译过程如下:,5.2 程序设计语言,5.2.3 高级语言,高级语言是一类程序设计语言的统称,它采用接近人类自然语言的表示方法,并遵循一定的语法规则来编写程序。,实现求整数的绝对值的程序段:,int intVar, result; scanf(“%d”, ,5.2 程序设计语言,高级语言程序的翻译和执行过程如下:,高级语言编写的程序也属于符号程序,不能直接在计算机上执行,必须通过程序的翻译才能执行,其翻译成指令代码的方法主要有编译和解释两种。,5.2 程序设计语言,5.2 程序设计语言,5.2.4 程序设计语言的构成,程序设计

6、语言的构成主要包括以下几个方面:,(1) 数据类型,基本数据类型:是由程序设计语言内置的,其特点是不能再分解为其它的类型。在主流的程序设计语言中一般包括:整数类型、实数类型、字符类型、布尔类型等。 构造数据类型:是由基本数据类型按照某种方式组合构成的。常见的构造数据类型有:数组类型、记录类型(结构体) 等等。,(2) 运算符和表达式,在程序设计中使用表达式可完成各种各样的运算。表达式通常包括:常量、变量、运算符和函数调用等。,5.2 程序设计语言,(3) 语句,程序是对计算机要执行的操作的描述,高级语言源程序的基本组成单位就是语句。 语句按功能可以分为两类: 用于描述操作运算的语句,如赋值语句

7、; 用于控制操作运算流程的语句,如分支控制语句。,(4) 控制结构, 顺序结构,按照语句出现的先后顺序依次执行。 分支结构,根据给定条件判断,决定程序执行的顺序。 循环结构,循环(重复)是计算机解题的一个重要特征。,5.2 程序设计语言,(5) 输入/输出,高级程序设计语言中通常以函数或语句的形式提供输入输出操作。现代高级程序设计语言通常都提供通过窗口、文本框、按钮、组合框、图表等图形组件进行输入输出。,(6) 子程序,子程序就是将需要重复使用的程序段或分解的子问题编写成一个独立的子程序,当程序中需要使用子程序时,再对其进行调用。 子程序有两种:函数(Function)和过程(Procedur

8、e),它们的主要区别是函数有返回值,而过程不能有返回值。,5.3 数据结构,5.3.1 什么是数据,数据是对客观事物的描述,对计算机来说,数字、字符、图形、色彩、声音等都是数据。 数据元素是组成数据的基本单位。一个数据元素可以是一个单个数据也可以由若干个数据项组成,数据项是数据不可分割的最小单位。,例:公司员工数据的存储(一个员工信息可以构造一个一维数组的数据结构),数据项,数据元素,5.3 数据结构,5.3.2 数据结构研究的内容,数据结构指的是数据间的相互关系。数据结构研究的内容包括:数据的逻辑结构、物理结构和数据结构运算。,(1)数据的逻辑结构,数据元素之间的逻辑上的相互关系称为数据的逻

9、辑结构,它描述数据的组织形式。,元素之间是一对一关系 例如:公司员工数据表中每个成员关系,元素之间是多对多关系 例如:华农与周边地区的位置关系,元素之间是一对多关系 例如:一对夫妇和他们的全部子孙,元素之间是松散关系 例如:自然数的全体,5.3 数据结构,(2) 数据的物理结构,数据在计算机存储器中的存储方式,称为数据的物理结构或存储结构。它包括:, 顺序存储方式,把逻辑上相邻的数据元素存储在物理上相邻的存储单元中。 链式存储方式,每个结点分为数据域和指针域两部分,数据域存储数据元素,指针域存储与该结点具有逻辑关系的结点的地址。 索引存储方式,数据元素存放在一个不连续存储区域里。再建一个附加的

10、索引表,索引表中的第i项表示第i个元素的存储地址。 散列存储方式,数据元素均匀地分布在连续的存储区域里,用散列函数计算各结点的存储地址。,5.3 数据结构,例如:线性表是一种逻辑结构,若采用顺序存储方式,可称其为顺序表;若采用链式存储方法,可称其为链表;若采用散列存储方法,可称其为散列表。,右图为某学生各科成绩表分别采用顺序和链式存储的情形。前者存储在一片连续空间,后者则存储在非连续空间。,5.3 数据结构,(3) 数据结构的运算,数据结构的运算是定义在数据逻辑结构上的操作,如插入、删除、查找、排序等。,比如一张表格,可能需要进行查找、增加、修改、删除记录等,进行这样的操作已不是加减乘除这样一

11、些算术运算,在数据结构中,运算常常涉及算法的问题。,5.3 数据结构,5.3.3 常见数据结构介绍 (了解),(1) 数组,数组属于线性数据结构,是在计算机内存中使用一组连续的存储单元保存数据类型相同的一组数据,这些数据拥有相同的变量名,称为数组名。,5.3 数据结构,(2) 链表,链表(Linked List)是采用链式存储的线性表。线性链表的结点由数据域和指针域两个部分组成,数据域存储数据元素,指针域存储一个指向直接后继结点的指针。,5.3 数据结构,(3) 二叉树,二叉树是一种常用的非线性数据结构,其定义为:二叉树是一个结点的集合,该集合或者为空,或者满足下面两个条件: 有且仅有一个称为

12、根的结点。 其它结点分为两个互不相交的集合T1、T2。T1和T2均为二叉树,并且在T1和T2之间存在顺序关系(T1在T2之前),分别称为根的左子树和右子树。,二叉树的5种基本形态,5.3 数据结构,二叉树的存储结构,5.3 数据结构,遍历二叉树,遍历二叉树是非常重要的一种运算。“遍历”的含义是对结构中的每个数据都访问一次且仅访问一次。可以有三种访问路径: 前序遍历:访问根结点;前序遍历左子树;前序遍历右子树 中序遍历:中序遍历左子树;访问根结点;中序遍历右子树 后序遍历:后序遍历左子树;后序遍历右子树;访问根结点, 前序遍历:A B D E F G C 中序遍历:D B F E G A C 后

13、序遍历:D F G E B C A,5.4 算法,5.4.1 算法的基本概念,算法是指为解决给定问题而需实施的有穷操作步骤的描述。,5.4.2 算法的描述方法,(1) 用自然语言描述算法 (2) 用流程图描述算法 (3) 使用伪代码描述算法 (4) 用程序设计语言描述算法,算法的描述方法有以下四种:,5.4 算法,5.4.3 查找算法(了解),查找(Searching)也称检索,设表F中有n个结点,Ki是记录Ri的关键字,现给定关键字K,在F中寻找关键字与K相同的结点R的过程,叫做查找。,(1) 顺序查找,顺序查找是线性表的最简单的查找算法。它是用给定的值与表中的每个结点的关键字逐个进行比较运

14、算,若找到相等的关键字则查找成功,否则查找失败。 顺序查找算法的优点是适用范围广,对线性表中结点逻辑次序无关,即不要求按关键字排序。对线性表的物理存储结构也没有要求,顺序存储与链式存储均可。,5.4 算法,(2) 折半查找,折半查找的基本思想是: 先取表的中间位置的结点关键字与所给定的关键字进行比较,如果相等,则查找成功。如果给定值比该结点的关键字大,则所找结点在表的后半部分;否则所找结点在表的前半部分,然后再把选定的部分表的中间结点的关键字与给定关键字进行比较。如此反复进行,直到查找成功或者查找失败为止。,5.4 算法,例:,5.4 算法,5.4.4 排序算法(了解),排序(Sort)是数据

15、处理中的一种重要运算,它的功能是将一组数据元素(或记录)从任意序列排列成一个按关键字排序的序列。 按照排序过程中涉及的存储器的不同将排序分为内部排序和外部排序两类,其中内部排序是指整个排序过程都在内存中进行的排序。,5.4 算法,(1) 直接插入排序,算法的基本思想如下: 开始时,把第一个记录看成是已经排好序的子序列,这时子序列中只有一个记录; 从第二个记录起到最后一个记录,依次将每个记录与前面子序列的记录按关键字比较,确定记录插入的位置; 将记录插入到子序列中,子序列记录个数加1,直至子序列长度与待排序列长度相等时结束。,5.4 算法,(1) 直接插入排序,5.4 算法,5.4.4 排序算法

16、(了解),(2) 冒泡排序,冒泡排序的算法思想是: 将第n个记录的关键字与将第n-1个记录的关键字进行比较,若为逆序则将两个记录进行位置的交换,否则保持原来顺序; 将第n-1个记录的关键字与将第n-2个记录的关键字进行比较; 重复上述排序过程,直到全部关键字均比较一遍; 上面三步的比较交换过程称为第一趟排序,其结果是使关键字最小的记录被交换到了第1个记录的位置,完成一趟排序; 第二趟排序从第n个记录到第2个记录进行同样的操作,结果是使关键字次小的记录被交换到了第2个记录的位置; 依次类推,第i趟排序是从第n个记录到第i个记录依次比较交换。,5.4 算法,(2) 冒泡排序,5.5 软件工程简介,

17、5.5.1 软件工程提出,早期,在软件开发过程中出现了许多严重阻碍软件发展的问题,主要表现在以下几个方面: 软件开发无计划性。 软件开发过程无规范。 软件产品无评测手段。,1990年电气电子工程师协会(IEEE)给出了软件工程的一个定义:“软件工程是把系统化的、规范的、可度量的方法应用于软件开发、运行和维护的过程,也就是把工程化运用于软件工程,并对这样的方法进行研究”。,5.5 软件工程简介,5.5.2 软件生命周期, 制定计划:确定要开发软件系统的总体目标。 需求分析:对要开发软件提出的需求进行分析并给出详细定义。 软件设计:设计人员首先进行概要设计,然后进行详细设计,为程序代码的编写打下基

18、础。 程序编码:使用程序设计语言把软件设计转换成计算机可以接受的程序代码,也称为软件实现。 软件测试:测试是保证软件质量的重要手段。 运行与维护:软件交付后就进入它的运行时期,在这个过程中可能由于多方面的原因需要对软件进行修改,称为软件的维护。,与其它工业产品一样,软件产品也有一个生产、使用和消亡的过程,称为软件生命周期。软件生命周期分为六个步骤:,5.5 软件工程简介,5.5.3 软件开发模型,软件开发模型也叫软件过程模型,是软件系统开发项目总貌的一种描述,它是从软件项目计划的制定到软件最后停止使用的整个过程的结构框架。 到目前为止,已经提出了多种软件生命周期模型,如:瀑布模型、螺旋模型、演化模型、喷泉模型等。,5.5 软件工程简介,软件开发方法主要包括以下两种:,(1) 结构化开发方法,结构化方

温馨提示

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

评论

0/150

提交评论