文档库 最新最全的文档下载
当前位置:文档库 › 计算机软件技术基础 (5)

计算机软件技术基础 (5)

计算机软件技术基础 (5)
计算机软件技术基础 (5)

第5章数据库技术5.1 数据库基本概念

5.1.1 数据库技术与数据库系统

1. 数据库管理技术

图5.1 人工管理下程序与数据之间的关系

图5.2 文件系统管理下程序与数据之间的关系

图5.3 数据库管理阶段程序与数据之间的关系

2. 数据库管理系统

3. 数据库系统的构成

计算机软件技术基础(第二版)

图5.4 数据库系统的层次结构

图5.5 访问数据库中数据的过程

5.1.2 数据描述

1. 信息的存在形态

图5.6 “教师”记录型与“教师”文件的示意图2. 实体间的联系

计算机软件技术基础(第二版) 5.1.3 数据模型

1. 层次模型

图5.7 学校行政机构的层次模型2. 网状模型

图5.8 学校教学情况的网状模型3. 关系模型

图5.9 关系例

计算机软件技术基础(第二版)

图5.10 “学生选课”关系的二维表

图5.11 关系ER

5.2 关系代数

1. 并运算(union)

图5.12 关系的并运算例

计算机软件技术基础(第二版) 2. 差运算(difference)

图5.13 关系的差运算例

3. 交运算(intersection)

图5.14 关系的交运算例

4. 笛卡儿积(Cartesian product)

5. 选择运算(selection)

计算机软件技术基础(第二版)

图5.15 关系的笛卡儿积例

计算机软件技术基础(第二版)

图5.19 关系SNM=R\7. 连接运算(join)

图5.20 关系R和关系S

图5.21 关系R和关系S连接运算R\=\S后的结果8. 自然连接运算(natural join)

图5.22 关系R和关系S自然连接运算RS后的结果

计算机软件技术基础(第二版)

图5.25 关系T和关系P

图5.26 TP与关系TP

计算机软件技术基础(第二版) 5.3 数据库设计

5.3.1 数据库设计的基本概念

5.3.2 数据库设计的过程

1. 需求分析

2. 概念结构设计

图5.27 描述实体集联系的E-R图

图5.28 多个实体集联系的E-R图

图5.29 同一个实体集内实体联系的E-R图

计算机软件技术基础(第二版)

图5.30 实体属性的E-R图

图5.31 实体集之间联系属性的E-R图

图5.32 简单的分E-R图

计算机软件技术基础(第二版)

图5.33 商店管理的初步E-R图

图5.34 商店管理的基本E-R图3. 逻辑结构设计

图5.35 实体职工转换为关系

4. 物理结构设计

5.3.3 数据字典

1. 数据字典的作用

2. 数据字典的内容

5.4 关系数据库语言SQL

5.4.1 SQL语言概述

1. SQL语言的功能与特点

计算机软件技术基础(第二版)

3. SQL的语句结构

4. SQL的命令分类

5.4.2 数据库定义

1. 表、视图和索引

计算机软件技术基础(第二版)

2. 表的建立、修改和删除

3. 视图的建立、修改和删除

5.4.3 数据查询

1. 单表查询

2. 多表查询

3. 附加子句

计算机软件技术基础(第二版)

5.4.4 数据修改

1. 数据的插入

2. 数据的修改

3. 数据的删除

4. 视图的修改

5.4.5 数据控制

1. 授权

5.4.6 嵌入式SQL

1. 概述

2. 不用游标的DML语句

计算机软件技术基础(第二版)

习题

5.1 数据管理技术的发展经历了哪几个阶段?各个阶段与计算机技术的发展有何关系?

5.2 数据库技术的主要特点是什么?它与传统的文件系统有何本质的区别?

5.3 数据的逻辑独立性的含义是什么?数据的物理独立性的含义是什么?

5.4 举例说明实体集之间一对一、一对多、多对多的联系。

5.5 关系模型与格式化模型比较有哪些主要优点?

5.6 在关系模型中,一个关系是一张二维表,任意一张二维表是否就是一个关系?为什么?

5.7 设有一关系S如图5.36所示。分别写出符合下列要求的关系运算式和运算结果。

图5.36 关系S

(1) 找出平均分在85分(包含85分)以上的所有记录。

(2) 列出满足总分在270分(包含270分)以上的学生的学号、姓名、总分和平均分。

5.8 数据库设计过程包括哪几个阶段?各阶段的主要工作是什么?

5.9 什么是E-R图?利用E-R图进行数据库概念结构设计分为哪几步?

5.10 数据库的逻辑结构设计主要完成什么任务?把概念模型转换为关系模型时需要做哪些工作?

5.11 假设一个图书出版社的行政组织可以分为编辑、出版、发行3部分,包括若干个编辑室,几个录入排版组,几个定点印刷厂,若干图书发行员和几个图书仓库。其中:

(1) 每个编辑室有若干名编辑,他们负责组稿、编辑加工、发稿,且每人有规定的任务量。

(2) 每个录入排版组有若干名职工,他们负责书稿的录入与排版工作,书稿排版有时间要求,每个人的录入排版有数量(字数)和质量要求。

(3) 若干名发行员负责图书的征订和发行工作,每人有规定的任务。

(4) 几个定点印刷厂负责图书的印刷,一个印刷厂可承印多种图书,但同一种图书不会在几个印刷厂印刷。

(5) 若干个仓库存放未销售出去的图书,一个仓库能存放多种图书,但同一种图书不能放在几个仓库中。

根据以上信息,设计一个出版社管理系统的概念模型。要求画出分E-R图、初步E-R图和

计算机软件技术基础(第二版)

基本E-R图。

5.12 什么是数据字典?它在数据库中的作用是什么?

最新计算机软件技术基础(第三版)习题答案

第一章 1.1什么是信息?信息与数据的区别和联系在何处? 信息定义之一:信息是现实世界中存在的客观实体、现象、关系进行描述的数据。 信息定义之二:信息是经过加工后并对实体的行为产生影响的数据。 与数据的区别和联系: 数据定义:数据是现实世界客观存在的实体或事物的属性值,即指人们听到的事实和看到的景象。 我们把这些数据收集起来,经过处理后,即得到人们需要的信息。 信息和数据的关系可以归结为: 1.信息是有一定含义的数据。 2.信息是经过加工(处理)后的数据。 3.信息是对决策有价值的数据。 1.2信息有哪些基本属性? z信息的基本属性有: 1.事实性。 2.等级性。 3.可压缩性。 4.可扩散性。 5.可传输性。 6.共享性。 7.增值性和再生性。 8.转换性。 1.3计算机的主要特点是什么? 计算机最主要的特点是: 1.高速自动的操作功能。 2.具有记忆的能力。 3.可以进行各种逻辑判断。 4.精确高速的计算能力。 1.5完整的计算机系统应该包括哪几部分? 目前最完整的计算机系统学说认为由五部分组成: 1.人员 2.数据 3.设备 4.程序 5.规程 1.6什么是计算机硬件?什么是计算机软件? 硬件:泛指实际存在的物理设备,包括计算机本身及其外围设备。 微型计算机的硬件系统:主机、外存储器、输入设备、输出设备、微机的系统总线。 软件:是指计算机程序、方法、规则的文档以及在计算机上运行它时所必须的数据。 计算机软件一般分为系统软件和应用软件。 1.8 软件技术发展的几个阶段各有什么特点?它与硬件的关系如何? 第一阶段:高级语言阶段 特点:这一时期,编译技术代表了整个软件技术,软件工作者追求的主要目的是设计和实现在控制结构和数据结构方面表现能力强的高级语言。但在这一时期内,编译系统主要是靠手工编制,自动化程度很低。 硬件关系:此时期计算机的硬件要求仅能用机器指令来编制可运行的程序。

重庆邮电大学-软件技术基础--实验报告(耿道渠)

《软件技术基础》实验报告 实验名称:顺序表的操作 班级学号姓名 第9 周星期 2 、5,6 节成绩 一、实验目的: 1、掌握顺序表结构的实现方式; 2、掌握顺序表常用算法的实现; 3、熟悉利用顺序表解决问题的一般思路; 4、参照给定的顺序表的程序样例,验证给出的顺序表的常见算法,领会顺序表结构的优点和不足。 二、实验内容: 1、设计一个静态数组存储结构的顺序表,要求编程实现如下任务:(1)建立一个顺序表,首先依次输人整数数据元素(个数根据需要键盘给定)。 (2)删除指定位置的数据元素(指定元素位置通过键盘输入),再依次显示删除后的顺序表中的数据元素。 (3)查找指定数据的数据元素(指定数据由键盘输入),若找到则显示位置,若没有找到则显示0。 2、使用顺序表实现一个电话本的管理程序,电话本中的每条记录包括学号、姓名、手机号码和固定电话四项。要求实现菜单、初始化、添加、删除和显示等功能。 三、实验结果:

四、实验中遇到的问题及解决方法: 第一次编写C++,感觉力不从心,回去多看看PPT。

五、实验心得体会: 对顺序表的一些常用语句不熟悉,对顺序表的整体思路理解不深刻以后要加强练习 附:源程序(自行编写或修改的程序。若为修改程序请注明修改部分的功能,若为书上实例则可不附。) #include #include #include #include #define MAXSIZE 20 using namespace std; int num; typedef struct { string student_number; string name; string tel; string home_phone; int id; } TEL; void shuaxin(TEL *); void delet(TEL *);

计算机软件基础(二)第五章

第五章 11.测试过程分成3个步骤进行,( )不属于测试过程。 A.模块测试 B.联合测试 C.验收测试 D.用户测试 12.判断表的内容是( ) A.对象、条件和操作 B.具体操作 C.对象 D.组合 13.软件设计的任务是将用户的要求转换成一个具体的设计方案,通常可分为( )和详细设计两个步骤。 A.总体设计 B.控制流设计 C.数据流设计 D.程序结构设计 14.在软件系统的生命周期中的分析阶段产生的文档是( ) A.详细设计报告 B.模块说明书 C.用户使用手册 D.系统说明书 15.数据词典的结构是由顶向下、逐步分解的( ) A.分层结构 B.数据结构 C.控制结构 D.有序结构 17.在软件开发的设计阶段进行工作,主要依据的是() A.模块说明书 B.数据说明书 C.系统说明书 D.设计说明书 18.一个软件方法通常应该规定() A.工作步骤、文档格式、时间进度 B.文档格式、评价标准、时间进度 C.工作步骤、评价标准、时间进度 D.工作步骤、文档格式、评价标准 19.在软件开发中“变换分析”技术的功能是从数据流图() A.设计顶层 B.设计底层 C.导出模块结构图 D.导出数据字典 20.在采用SD方法进行软件开发时,块间联系应该尽量是() A.特征连接 B.数据连接 C.控制连接 D.内容连接 17.研究软件方法的目的是使软件开发过程() A.规范化 B.自动化 C.工程化 D.具体化 18.对象的抽取方法不包括 ...() A.一般化和继承 B.集约化 C.组合化 D.实例化 19.实施应用软件程序编写的主要依据是() A.系统说明书 B.数据说明书 C.模块说明书 D.数据流程图 20.软件测试的白盒法采用了() A.等价分类法 B.语言覆盖 C.因果图法 D.错误推测法 17.在软件开发过程中,产生系统说明书是在() A.分析阶段 B.设计阶段 C.编写阶段 D.测试阶段

计算机软件技术基础课后题答案

数据结构习题答案 第一节概论 一、选择题 1.要求同一逻辑结构的所有数据元素具有相同的特性,这意味着( )。 A.数据元素具有同一的特点 *B.不仅数据元素包含的数据项的个数要相同,而且对应数据项的类型要一致 C.每个数据元素都一样 D.数据元素所包含的数据项的个数要相等 2.数据结构是一门研究非数值计算的程序设计问题中计算机的( (1) )以及它们之间的( (2) )和运算的学科。 (1) A.操作对象 B.计算方法 *C.物理存储D.数据映像 (2) A.结构 *B.关系 C.运算 D.算法3.数据结构被形式地定义为(D,R),其中D是( (1) )的有限集合,R是D上( (2) )的有限集合。 (1) A.算法 *B.数据元素 C.数据操作D.逻辑结构 (2)A.操作 B.映像 C.存储 *D.关系4.在数据结构中,从逻辑上可以把数据结构分为( )。A.动态结构和静态结构 B.紧凑结构和非紧凑结构*C.线性结构和非线性结构 D.部结构和外部结构5.线性表的顺序存储结构是一种( )的存储结构。

*A.随机存取 B.顺序存取 C.索引存取 D.Hash 存取 6.算法分析的目的是( )。 A.找出数据结构的合理性 B.研究算法中的输入和输出的关系 *C.分析算法的效率以求改进 D.分析算法的易懂性和文档性 7.计算机算法指的是( (1) ),它必须具备输入、输出和( (2) )等五个特征。 (1) A.计算方法 B.排序方法 *C.解决某一问题的有限运算序列 D.调度方法 (2) A.可行性、可移植性和可扩充性 *B.可行性、确定性和有穷性 C.确定性,有穷性和稳定性 D.易读性、稳定性和安全性 8.线性表若采用链表存储结构,要求存中可用存储单元的地址( )。 A.必须是连续的 B.部分必须是连续的 C.一定是不连续的 *D.连续不连续都可以 9.在以下的叙述中,正确的是( )。 A.线性表的线性存储结构优于链式存储结构*B.二维数组是它的每个数据元素为一个线性表的线性表 C.栈的操作方式是先进先出 D.队列的操作方式是先进后出 10.根据数据元素之间关系的不同特性,以下四类基本的逻辑结构反映了四类基本的数据组织形式,其中解释错误的是( )。

软件技术基础重点总结

第一章 1.算法的基本要素:一是要做哪些事(算法对数据的操作)二是决定做这些事情的先后顺序(控制结构) 2.算法的基本特征:(1)能行性(2)确定性(3)有穷性(4)拥有足够的情报 3.算法评价的标准(算法的复杂度主要包括):时间复杂度和空间复杂度 4.算法的时间复杂度:执行算法所需要的计算工作量算法的空间复杂度:执行这个算法所需要的内存空间 5.用算法在执行过程中所需基本运算的执行次数来度量算法的工作量 6.算法所执行的基本运算次数与问题规模相关 7.对于一个固定规模,算法所执行的基本运算次数可能与特定的输入有关用①平均性态(平均时间复杂度)②最坏情况复杂性(最坏时间复杂度)来描述 第二章 1.数据结构研究的主要问题:①分析数据的特征②选择逻辑结构和物理存储结构③在存储结构的基础上实现对数据的操作 2.数据逻辑结构指数据元素前后件的关系,与它们在计算机中的存储位置无关;数据的逻辑结构在计算机存储空间中的存放形式称为数据的存储结构(也称数据的物理结构) 3.常用的存储结构有顺序、链接、索引等存储结构 4. 5. 6.线性表:n(n≥0)个数据元素的有限序列线性表特点:均匀性 有序性除了第一个元素, 每一个元素都有一个前驱,除了最后一个元素每个元素都有一个后继 7.线性表中所有元素所占的存储空间是连续的线性表中的各数据元素在存储空间中是按逻辑顺序依次存放 8.顺序表:将线性表中的元素相继存放在一个连续的存储空间中;存储结构:数组;特点:线性表的顺序存储方式。逻辑上相邻,物理上相邻;存取方式:随机存取。 9.栈是限定仅在表尾进行插入和删除运算的线性表,表尾称为栈顶(top),表头称为栈底(bottom)。 10.栈的物理存储可以用顺序存储结构,也可以用链式存储结构。 11.队列:一种特殊的线性表,遵守FIFO(First In First Out)规则。队列的数据元素重视从表末尾加入,从表头取出。队列的物理存储可以用顺序存储结构,也可用链式存储结构。 12. front 13.循环队列区分队空队满长采用两种方法①增加一个标志位S;S=0 队空 S=1且rear==front 队满 14.程序中front==(rear+1)%MAXSIZE来判断队满 15.二叉树的性质:①在二叉树的第i层上至多有2^(i-1)个结点(i≥1)②深度为k的二叉树至多有2^k -1个结点(k≥1)③对任何一颗二叉树T,如果其叶结点数为n0,度为2的结点数为n2,则n0=n2+1④具有n个结点的二叉树,其深度至少为log2 n+1⑥在编号完全的完全二叉树中,编号为i的结点,若存在做孩子,则其编号为2i;若存在有孩子,则其编号为2i+1;若存在父结点,则其编号为i/2 16.图是对结点的前驱和后继个数不加限制的数据结构。有向图:图中每条边都是顶点的有序对。无向图:图中每条边都是顶点的无序对。 17.顶点间的关系边可描述为顶点的偶对,边是无序的。弧:顶点间的边是有序的。弧头:弧的终点(方向前方)。弧尾:弧的起始点称为弧尾(方向后方)。Vx(弧尾)→Vy弧头 18.无向图中:顶点的度是以该顶点为一个端点的边的条数。有向图中有入度和出度。 19.路径:从顶点Vx到顶点Vy的顶点序列称为从Vx到Vy的路径。路径的长度是该路径上边或弧的数目。 20.连通图:在无向图中,若每一对顶点间都有路径,称此图是连通图。 第三章 1.平均查找长度(ASL):与关键字进行比较的平均次数。它是用来评价一个算法好坏的一个依据。顺序查找优点对结点的逻辑次序和存储结构无要求;缺点ASL较长。 2.二分查找的先决条件是查找表中的数据元素必须有序。优点:ASL≤log2 n;缺点:因要求有序,所以对所有数据元素按大小排序是非常费时的操作。 3.分块查找又称索引顺序查找,这是顺序查找的一种改进方法。优点:插入、删除操作方便;只要找到对应的块,在块中任意位置操作均可。缺点:索引表增加了辅助存储空间。 4.哈希查找也成为散列查找,哈希查找则是通过计算存储地址的方法进行查找的。 在哈希元素(地址)求解过程中,不同关键字值对应到同一个存储地址的现象称为冲突。即关键字K1≠K2,但哈希函数值H(K1)=H(K2)。处理冲突的方法:开放定址法Hi=(H(key)+di) MOD m,再哈希法,链地址法。线性探测再散列di=1,2,…m-1 二次探测再散列di=1^2,-1^2,2^2,…+k^2,-k^2(k≤m/2) 5.快速排序法又被称为“分区交换排序”。按某种方法选取一个元素K,以它为分界点,用交换的方法将序列分为两个部分:比该值小的放在左边,否则在右边。形成{左子序列}K{右子序列}再分别对左右两部分实施上述分解过程。 6.插入排序基本思想:边插入边排序,保证子序列中是排好序的。每次处理将无需数列的第一个元素与有序数列的元素从后往前逐个进行比较,找出插入位置,将该元素插入到有序数列的合适位置中。插入算法比较次数和交换次数约为n^2/2,因此其时间复杂度为O(n^2),该算法基本稳定,数据基本有序,插入排序速度块。 7.希尔排序是对直接插入排序的改进方法。排序间隔n/2^k k=1,2,…… 8.选择排序:每次从待排序的记录中选出关键字最小(或最大)的记录,顺序放在已有序的记录序列的最后(或最前)面,直到全部数列有序。9.堆定义:hi≥h2i,hi≥h2i+1 hi≤h2i hi小于等于h2i+1从最后一个非终端结点开始往前逐步调整,让每个双亲不大于(或不小于)子女,直到根结点为止。 10.二分法查找效率高,顺序法可以采用链表存储结构,操作灵活,最好是既有二分法的高效率,又有链表灵活性的查找方法。解决之道:二叉排序树。 11.二叉排序树:二叉树为空,或者是具有下列性质的二叉树:如根结点的左子树不空,则左子树所有结点是值均小于根结点值;如根结点的右子树不空,则右子树所有结点是值均小于根结点值;根结点的左右子树也分别是二叉排序树。 第四章 1.操作系统是控制和管理计算机硬件和软件资源、合理组织计算机工作流程、方便用户使用计算机响应速度而设计的一套程序的集合。功能:文件管理,进程管理,存储器管理,设备管理,作业管理。 2.程序是为解决某个问题用计算机语言或命令设计、编写的一系列指令的有序集合。 3.进程就是程序的一次执行过程,是系统进行资源分配和调度的一个独立单元。进程的状态运行状态、就绪状态、等待状态。①处于就绪状态的进程一旦分配到CPU,就转为运行状态。 ②处于等待状态的进程,当需要等待某个时间发生才能继续运行时,则转为等待状态;或者由于分配给它的时间片用完,就让出CPU而转为就绪状态。③处于等待状态的进程,如果它等待的时间已经发生,即条件得到满足,就转为就绪状态。 4.线程是一个程序内部的顺序控制流(独立执行的流)。但线程并不是程序,它自己并不能运行,必须在程序中才能运行。 5.存储器(Memory)能接收数据、保存数据、并能根据命令提供这些数据的装置。 第五章 1.数据库:长期存储在计算机内的、有组织的、可共享的数据集合。特点:数据按一定的数据模型组织、描述和存储;具有较小的冗余度;较高的数据独立性和易扩展性;可为各种用户共享。 2.数据结构是对实体类型和实体间联系的表达和实现,描述系统的静态特性;数据操作是在数据结构之上允许执行的操作集合,包括对数据库的检索和更新(插入、删除、修改)操作,描述系统的动态特性;数据完整性约束是数据及其联系所具有的制约和依赖规则,以保证数据库中数据的正确性、有效性和相容性。 3.ER图中的四个基本成分:矩形框,表示实体类型;菱形框,表示联系类型;椭圆形框,表示实体类型和联系类型的属性(下划线表示键);直线,联系类型与其涉及的实体类型之间以直线连接,并在直线端部标上联系的种类(1:1, 1:N, M:N) 4.关系的三类完整性约束:实体完整性、参照完整性和用户定义完整性。完整约束条件是数据模型的一个重要组成部分,它保证数据库中数据与现实世界的一致性;实体完整性:元组在组成主键的属性上不能有空值;参照完整性(引用完整性):不允许引用不存在的元组;用户定义的完整性(域完整性) 5.视图的作用? ①视图能够简化用户的操作②视图使用户能以多种角度看待同一数据③视图对重构数据库提供了一定程度的逻辑独立性⑤视图能够对机密数据提供安全保护 6.数据库设计步骤? ①需求分析②概念结构的设计③逻辑结构的设计④物理结构的设计 7.sql语言 ①建立一个“学生选课”表SC,它由学号Sno、课程号Cno,修课成绩G组成,其中(Sno, Cno)为主码。 CREATE TABLE SC( Sno CHAR(5) , Cno CHAR(3) , G int, Primary key (Sno, Cno)); ②增加列基本格式 ALTER TABLE 表名ADD 列名类型; ALTER TABLE S ADD ADDRESS V ARCHAR (30) 修改列基本格式 ALTER TABLE 表名MODIFY 列名类型; ALTER TABLE S MODIFY SA SMALLINT; 删除列基本格式 ALTER TABLE 表名DROP 列名; ALTER TABLE S DROP UNIQUE(Sn); ③DISTINCT短语的作用范围是所有目标列 查询选修课程的各种成绩SELECT DISTINCT Cno,Grade FROM SC; ④查询所有(不)姓刘学生的姓名、学号和性别。 SELECT Sname,Sno,Ssex FROM Student WHERE Sname (NOT)LIKE ‘刘%’; ⑤使用谓词IS NULL 或IS NOT NULL,“IS NULL” 不能用“= NULL” 代替 查询缺少成绩的学生的学号和相应的课程号。 SELECT Sno,Cno FROM SC WHERE Grade IS NULL; ⑥使用ORDER BY子句可以按一个或多个属性列排序升序:ASC;降序:DESC;缺省值为升序 查询选修了3号课程的学生的学号及其成绩,查询结果按分数降序排列。 SELECT Sno,Grade FROM SC WHERE Cno= ' 3 ' ORDER BY Grade DESC; ⑦查询有3门以上课程是90分以上的 学生的学号及(90分以上的)课程数 SELECT Sno, COUNT(*) FROM SC WHERE Grade>=90 WHERE是选择记录的条件; GROUP BY Sno HA VING是选择分组的条件,且 HA VING COUNT(*)>=3; 必须和GROUP BY一起使用 ⑧求学生学号、姓名、选修课程名、成绩。 SELECT Student.Sno,Sname,Cname,Grade FROM Student,Course,SC WHERE Student.Sno=SC.Sno AND https://www.wendangku.net/doc/571768870.html,o=https://www.wendangku.net/doc/571768870.html,o;

软件技术基础教学大纲

《软件技术基础》教学大纲 课程编号:23000840 适用专业:电子信息类(非计算机专业) 学时数: 40 学分数: 2.5 开课学期:第4学期 先修课程:《C语言》 考核方式:笔试(闭卷) 执笔者:沈晓峰编写日期:2015年3月审核人(教学副院长): 一、课程性质和目标 授课对象:电子信息工程专业大学二年级本科生 课程类别:学科拓展课程 教学目标: 本课程是针对工科电子信息类本科生开设的一门学科拓展课程。着重培养学生在软件设计领域的基本素质,基本方法和设计理念。授课对象为大学二年级学生,课程任务是通过本课程的学习和相关实验的练习,使学生掌握数据结构、操作系统等软件技术的基本理论知识,具有一定的软件开发能力。 二、教学内容和要求 1、课堂理论教学要求和学时安排(32学时) 1)C程序设计(4学时) (1)C语言回顾,指针的基本概念、运算方法和使用(2学时)。 (2)结构体的基本概念和使用方法(2学时)。 2)数据结构(20学时) (1)数据结构的基本概念(2学时):理解数据结构的基本概念;理解线性和非线性结构的概念。 (2)线性数据结构(9学时):理解表、栈、队列等线性数据结构的概念,存储方式及基于不同存储方式的相关操作的实现方法。 a.理解表的概念及顺序表的存储特点,掌握其创建、插入、删除等实现方法(2 学时); b.掌握单链表、双链表、循环链表的创建、插入、删除方法(2学时); c.理解栈的概念及结构特点,掌握顺序栈及链栈的出栈、入栈操作的实现方法 (2学时);

d.理解队列的概念及特点,掌握顺序、循环队列的创建、出队、入队、判空、判满等操作。掌握链队列的创建及出队、入队(2学时); e.理解数组的概念及二维数组的存放方式,掌握对称矩阵及稀疏矩阵的压缩存储方法(1学时)。 (3)非线性数据结构(5学时):了解典型非线性数据结构的基本概念、存储和访问方式。 a.理解二叉树、满二叉树、完全二叉树的概念及基本性质(1学时); b.掌握二叉树的三种遍历算法、树和二叉树的转换方法(2学时); c.理解图的基本概念及性质,掌握图的邻接矩阵、邻接图存储方式(2学时)。 (4)结构查找和排序(4学时):理解查找和排序的基本概念,掌握三种查找(顺序、二分、分块)和三种排序(简单插入,简单选择和冒泡)方法和实现。 3)操作系统(8学时) (1)操作系统的基本概念(2学时):了解操作系统的基本概念,操作系统发展的历 程和现代操作系统的基本特征。 (2)处理机管理(4学时);理解进程、进程的状态、描述方式、进程控制的手段, 进程的同步和互斥,进程通信和死锁等基本概念,理解进程调度的相关方法。 (3)作业管理(2学时):理解作业、作业的状态、描述方式、作业控制的手段,等 基本概念,理解作业调度的相关方法。 通过这一章的学习同学们应该理解一个用户作业提交给计算机之后,操作系统控制计算机来执行该用户作业的基本流程。 2、实验安排(8学时) 共设置5组实验,分为上机实验和课外实验两部分:上机实验包括两个实验,课外实验包括3个实验,详细实验内容见实验教学大纲。 三、考核方式 课程最后成绩构成包括:期末考试卷面成绩(70%),平时成绩(10%),实验成绩(20%)。 实验部分的考核包含上机实验和课外实验,实验成绩采用实验出勤、实验考核、实验报告和实验程序验证相结合的方式给出。 四、教材和参考资料 1、教材 《软件技术基础》,黄迪明,电子科技大学出版社,1998年 2、参考资料

N计算机硬件基础第5章习题参考答案

计算机硬件基础 第五章习题的参考答案 1.选择题 (1)通常在外设接口中,往往有( D )端口才能满足和协调外设工作要求。 A)数据 B)数据、控制 C)控制、缓冲D) 数据、控制、状态 (2)独立I/O端口的编址方式中,端口地址范围是(C)。 A) 0-128 B)00-FFH C)0000-FFFFH D) 000-FFFH 注:16进制要用字母H后缀结尾 (3)8259A是 ( C )。 A)可编程控制器B)总线仲裁器 C)可编程中断控制器 D) 可编程DMA控制器 (4)微处理器与外设传送数据过程中,只需要硬件完成而不需要软件支持的方式是:( A )。 A)DMA B)无条件 C)查询 D) 中断 (5)在程序控制方式传送中,( A )传送可以提高系统的工作效率。A)中断B)无条件 C)查询 D)前三项

(6)采用条件传送方式时,必须要有( C )。 A)中断逻辑B)请求信号C)状态端口 D)类型号前三项 (7)下面哪一个中断的优先级最高:( A )。 A)NMI中断B)INTR中断 C)单步中断 D)断点中断 注:这里“端点中断”应该为“断点中断”。 这道题目出的得不合适,属于概念混淆。中断优先级只在“硬件中断”里比较才有意义。前两个属于硬件中断,后两个属于软件中断。NMI代表不可屏蔽中断, INTR属于可屏蔽中断 (8)用DMA方式传送数据时,是由( C )控制的。 A)CPU B)软件C)硬件控制器 D) CPU+软件 (9)传输数据时,占用CPU时间最长的方式是( A )。 A)查询B)中断 C)DMA D) IOP 注:不知道这个IOP的含义。应该是查询。 (10)微处理器从启动外设直到外设就绪的时间间隔内,一直执行主层(程)序,直到外设要求服务时才终止,此种传送方式是( C )。A)DMA D)无条件 C)中断 D)查询

《计算机软件技术基础》试题答案

《计算机软件技术基础》试题 1.线性表的链式存储结构与顺序存储结构相比优点是 CD 。 A. 所有的操作算法实现简单 B. 便于随机存取 C. 便于插入和删除 D. 便于利用零散的存储器空间 2.线性表是具有n 个 C 的有限序列。 A. 表元素 B. 字符 C. 数据元素 D. 数据项 E. 信息项 3.若长度为n 的线性表采用顺序存储结构,在其第I 个位置插入一个新元素的算法的时间复杂度为 C 。(1≤I ≤n+1) A. O(0) B. O(1) C. O(n) D. O(n 2 ) 4.设A 是一个线性表(a 1,a 2,…,a n ),采用顺序存储结构,则在等概率的前提下,平均每插入一个元素需要移动的元素个数为 B ,平均每删除一个元素需要移动的元素个数为 A ;若元素插在a i 与a i+1之间(0≤I ≤n-1)的概率为 ) 1() (2+-n n i n ,则平均每插入一个 元素所要移动的元素个数为 C ; A. 21 -n B. 2n C. 3 12+n D. 4 13+n 5.下列函数中,按它们在∞→n 时的无穷大阶数,最大的是 D 。 A. log n B. nlog n C. 2n/2 D. n!

6.将下图所示的s所指结点加到p所指的结点之后,其语句应为: D 。 A. s->next=p+1; p->next=s; B. (*p).next=s; (*s).next=(*p).next; C. s->next=p->next; p->next=s->next; D. s->next=p->next; p->next=s; 7.将两个各有n个元素的有序表归并为一个有序表时,其最少的比较次数是 A 。 A. n B. 2n-1 C. n-1 D. 2n 8.下面的程序段是合并两个无头结点链表(ha和 hb)为一个无头结点链表ha的过程,作为参数的两个链表都是按结点的data域由大到小链接的。合并后新链表的结点仍按此方式链接。请填写下述空框,使程序能正确运行。 1. #define NULL 0 typedef struct node{ int data; struct node *next; }node, linklisttype; void combine(linklisttype *ha, linklisttype *hb){ linklisttype *h, *p; h = (linklisttype *)malloc(sizeof(linklisttype)); h->next = NULL; p = h;

软件技术基础教学大纲资料

软件技术基础》教学大纲 课程编号: 23000840 适用专业:电子信息类(非计算机专业) 学时数: 40学分数: 2.5 开课学期:第4 学期 先修课程: 《C 语言》 考核方式:笔试(闭卷) 执笔者:沈晓峰编写日期:2015 年3月审核人(教学副院长): 一、课程性质和目标授课对象:电子信息工程专业大学二年级本科生课程类别:学科拓展课程教学目标: 本课程是针对工科电子信息类本科生开设的一门学科拓展课程。着重培养学生在软件设计领域的基本素质,基本方法和设计理念。授课对象为大学二年级学生,课程任务是通过本课程的学习和相关实验的练习,使学生掌握数据结构、操作系统等软件技术的基本理论知识,具有一定的软件开发能力。 二、教学内容和要求 1、课堂理论教学要求和学时安排(32 学时) 1) C 程序设计(4 学时) (1)C 语言回顾,指针的基本概念、运算方法和使用( 2 学时)。 (2)结构体的基本概念和使用方法(2 学时)。 2)数据结构(20 学时) (1)数据结构的基本概念(2 学时):理解数据结构的基本概念;理解线性和非线性结构的概念。 (2)线性数据结构(9 学时):理解表、栈、队列等线性数据结构的概念,存储方式及基于不同存储方式的相关操作的实现方法。 a. 理解表的概念及顺序表的存储特点,掌握其创建、插入、删除等实现方法(2 学时); b. 掌握单链表、双链表、循环链表的创建、插入、删除方法( 2 学时); c. 理解栈的概念及结构特点,掌握顺序栈及链栈的出栈、入栈操作的实现方法 (2 学时); d. 理解队列的概念及特点,掌握顺序、循环队列的创建、出队、入队、判空、判满等操作。掌握链 队列的创建及出队、入队(2 学时); e. 理解数组的概念及二维数组的存放方式,掌握对称矩阵及稀疏矩阵的压缩存储方法 (1 学时)。

计算机软件技术基础作业

第二章数据结构概述 一、选择题 1.在数据结构中,从逻辑上可以把数据结构分为( C )。 A.动态结构和静态结构B.紧凑结构和非紧凑结构C.线性结构和非线性结构D.内部结构和外部结构 2.线性表的顺序存储结构是一种( A )的存储结构。 A.随机存取B.顺序存取C.索引存取D.Hash存取 3.计算机算法指的是( C ),它必须具备输入、输出和( B )等五个特征。 (1) A.计算方法B.排序方法C.解决某一问题的有限运算序列D.调度方法 (2) A.可行性、可移植性和可扩充性B.可行性、确定性和有穷性C.确定性,有穷性和稳定性D.易读性、稳定性和安全性 4.线性表若采用链表存储结构,要求内存中可用存储单元的地址( D )。 A.必须是连续的B.部分必须是连续的C.一定是不连续的D.连续不连续都可以 5.根据数据元素之间关系的不同特性,以下四类基本的逻辑结构反映了四类基本的数据组织形式,其中解释错误的是( A )。 A.集合中任何两个结点之间都有逻辑关系但组织形式松散B.线性结构中结点按逻辑关系依次排列形成一条“锁链”C.树形结构具有分支、层次特性,其形态有点像自然界中的树D.图状结构中的各个结点按逻辑关系互相缠绕,任何两个结点都可以邻接 二、判断题 ×1.数据元素是数据的最小单位。 √2.数据结构是带有结构的数据元素的集合。 √3.数据结构、数据元素、数据项在计算机中的映像分别称为存储结构、结点、数据域。 ×4.数据项是数据的基本单位。 √5.数据的逻辑结构是指各数据元素之间的逻辑关系,是用户按使用需要建立的。 √6.数据的物理结构是数据在计算机中实际的存储形式。 ×7.算法和程序没有区别,所以在数据结构中二者是通用的。 三、填空题 1.所谓数据的逻辑结构指的是数据元素之间的____逻辑关系_____。 2,数据结构是相互之间存在一种或多种特定关系的数据元素的集合,它包括三方面的内容______数据的逻辑结构、数据的存储结构、对数据施加的操作_。3.数据的逻辑结构包括__集合结构___、_____线性结构___、____树型结构_____和__图状结构_____四种类型。 4.在线性结构中,开始结点_____没有______前驱结点,其余每个结点有且只有_____一个______个前驱结点。 5.算法的五个重要特性是__可行性___、___确定性___、___有穷性___、___输入__、___输出__。 6.下列程序段的时间复杂度是_____O(n)____。 for (i=1;i<=n;i++) A[i,i]=0; 7.存储结构是逻辑结构的_____物理______实现。

软件技术基础-文本整理

软件技术基础 第一章计算机进制系统 1.计算机中数据的单位 a、在计算机内部,数据都是以二进制的形式存储和运算的。 b、位(bit) ,简写b,比特,计算机存储数据的最小单位。 c、字节(byte),简写B,1B=8bit,计算中数据处理的最基本单位。 d、字:通常由一个或若干个字节组成。 e、数的换算关系: 1Byte=8bit,1KB=1024B,1MB=1024KB,1GB=1024MB。 字长由计算机型号不同而异,常用字长有8、16、32、64位。一般情况下,IBM PC/XT的字长为8位,80286微机字长为16位,80386/80486微机字长为32位,Pentium4系列微机字长为64位。 2.进位计数制 计算机中采用二进制主要原因: a、电路简单 b、工作可靠 c、简化运算 d、逻辑性强 3、计算机中常用的几种计数制 数码:一个数制中表示基数数值大小的不同数字符号。如,八进制有8个数码:0、 1、2、3、4、5、6、7。 基数:一个数值所使用的数码的个数。如,八进制的基数为8,二进制的基数为2。 位权:一个数值中某一位上的1所表示数值的大小。如,八进制的123,1的位权是64,2的位权是8,3的位权是1。 4.十进制(Decimal) 特点: a、有10个数码:0、1、2、3、4、5、6、7、8、9。 b、基数:10 c、逢十加一(加法运算),借一当十(减法运算) d、按权展开式。对于任意一个n位整数和m位小数的十进制数D,均可按权 展开。 例如:将十进制数456.24写成按权展开式形式为: 456.24=4*102+5*101+6*100+2*10-1+4*10-2 5.二进制(Binary) 特点: a、有2个数码:0、1 b、基数:2 c、逢二进一(加法运算),借一当二(减法运算) d、按权展开式,对于任意一个n位整数和m位小数的二进制数D,均可按权 展开。 例如:把(11001.101)2写成展开式,它表示的十进制数为:

计算机软件技术基础实验报告Word版

计算机软件基础实验报告 姓名学号实验目的 1. 掌握C语言程序设计方法,并学会上机调试。 2. 熟悉Huffman编码源程序,并构造Huffman树。 实验内容 1.试设计一算法,从包括n个元素的数组中,求最大和最小元素,并使得当n 个元素为有序排列时,元素之间的比较次数仅为n-1次。 2.在给出的Huffman编码源程序基础上,要求画出Huffman树,求出与等长编 码相比时的压缩比。 实验要求 1.根据实验内容编写算法,并用 C 语言进行程序设计。 2. 将所编程序在计算机上调试通过,并全面测试。 实验结果 1.以一个含有8个元素的一维数组{1,2,3,5,7,8,9,12}为例,设计程序如下: #include int maxArray(int x ,int y); int minArray(int x ,int y); int main(void) { int i = 0 ; int array[8]={ 1,2,3,5,7,8,9,12} ; printf; do { scanf("%d",&array[i]); i++; } while(i < 8); int maxTemp = array[0]; int minTemp = array[0]; int maxIndex = 0; int minIndex = 0; for(i=1;i<8;i++)

maxTemp = maxArray(array[i] , maxTemp); minTemp = minArray(array[i] , minTemp); } for(i=0;i<8;i++) { if (maxTemp == array[i]) { maxIndex = i; } if (minTemp == array[i]) { minIndex = i; } } printf; return 0; } 运行结果如下: 2.Huffman编码源程序 #include #include #include #include #include typedef struct {unsigned int weight; //结点权值 unsigned int parent,lchild,rchild; //结点的父指针,左右孩子指针 }HTNode,*HuffmanTree; //动态分配数组存储哈夫曼树 typedef char **HuffmanCode; //动态分配数组存储哈夫曼编码表 void CreateHuffmanTree(HuffmanTree &,unsigned int*,int ); //生成哈夫曼树 void HuffmanCoding(HuffmanTree,HuffmanCode &,int ); //对哈夫曼树

计算机软件技术基础知识点储备

计算机软件技术基础知识点储备

第一章:概述 1、程序=算法+数据结构 2、算法的几个基本特征:能行性确定性有穷性拥有足够的情报 3、算法的复杂度主要包括:时间复杂度和空间复杂度 第二章:数据结构 1、逻辑结构:数据集合中各数据元素之间所固有的逻辑关系(集合结构、线性结构、树形结构、图状结构),可以看作是从具体问题抽象出来的数据模型。 2、物理(存储)结构:在对数据进行处理时,各数据元素在计算机中的存储关系,可分为以下四种:顺序存储结构(存储空间连续)、链式存储结构、索引结构、散列结构 3、数据结构的运算是指对数据结构中的结点进行操作的集合,包括插入、删除、更新、检索、排序等。 4、数据元素是数据的基本单位 5、有时数据元素可由若干个数据项(数据的属性)组成,在这种情况下,数据项组成的数据元素称为记录,数据项是具有独立含义的最小标识单位,不可分割 6、顺序存储结构:通常定义一维数组来表示线性表的顺序存储空间 7、顺序表的插入 异常处理:(m为线性表的空间大小,n为线性表的长度<=m,插入的位置为i,i表示在第i个元素之前插入) ⑴当存储空间已满(即n=m)时为上溢错误,不能进行插入,算法结束; ⑵当i>n时,认为在最后一个元素之后(即第n+1个元素之前)插入; ⑶当i<1时,认为在第1个元素之前插入 函数的代码实现: void insert(int *v,int m,int n,int i, int b) { int k; if(n==m) cout<<”出现上溢错误!”<

if(i>n) i=n+1; if(i<1) i=1; for(k=n;k>=i;k--) { v[k]=v[k-1]; v[i-1]=b; n=n+1; } } 8、顺序表的删除 异常处理: ⑴当线性表为空(即n=0)时为下溢错误,不能进行删除,算法结束; ⑵当i<1或i>n时,认为不存在该元素,不进行删除。 函数的代码实现: void delete(int *v, int m,int n, int i) { int k; if(n==0) cout<<”出现下溢错误!”<n)) cout<<”线性表里不存在该元素,不进行删除操作!”<

软件技术基础实验报告

《计算机软件技术基础》实验报告 专业_____________ 年级_____________ 学号_____________ 学生姓名_____________ 指导老师_____________ 南华大学计算机学院编

【实验报告】

I 实验要求 1.每次实验中有若干习题,每个学生至少应该完成其中的两道习题。 2.上机之前应作好充分的准备工作,预先编好程序,经过人工检查无误后,才能上机,以提高上机效率。 3.独立上机输入和调试自己所编的程序,切忌抄袭、拷贝他人程序。 4.上机结束后,应整理出实验报告。书写实验报告时,重点放在调试过程和小节部分,总结出本次实验中的得与失,以达到巩固课堂学习、提高动手能力的目的。 实验一线性表 【实验目的】 1.熟悉VC环境,学习如何使用C语言实现线性表的两种存储结构。 2.通过编程、上机调试,进一步理解线性表的基本概念,熟练运用C语言实现线性表基本操作。 3.熟练掌握线性表的综合应用问题。 【实验内容】 必做: 1.一个线性表有n个元素(n

大学计算机基础第五章

大学计算机基础第五章 第五章软件技术基础 1.程序设计语言 (1)机器语言和汇编语言 由计算机硬件系统可以识别的指令组成的语言称为机器语言。汇编语言是将机器指令映射为一些可以被人读懂的助记符。由于计算机只能识别机器语言,所以汇编语言通常需要通过汇编程序翻译为机器语言。汇编语言的翻译软件称为汇编程序,它可以将程序员写的助记符直接转换为机器指令,然后由计算机去识别和执行。用机器语言编写的程序是计算机可以直接执行的程序。 用机器语言编写的程序,代码长度短,执行效率高。但是,这种语言的缺点也很明显。最主要的是编写机器语言程序必须要熟知CPU 的指令代码,编写程序既不方便,又容易出错,调试查错也非常困难。而且编写的程序只能在特定的机器上运行,没有通用性。 (2)高级语言 高级语言源程序翻译为指令代码有两种做法:编译或者解释。编译通过编译程序来完成。解释则是通过解释程序完成。解释的结果产生可以直接执行的指令。编译的结果是得到目标程序。目标程序也是要经过连接才会得到可执行程序目前应用比较广泛的几种高级语言由FORTRAN/BASIC/PASCAL/C等。 (3)面向对象的语言 (4)未来的语言 2、语言处理程序语言处理程序是把源程序翻译成机器语言的程序,可分为三种:汇编程序、编译程序和解释程序。 (1)汇编程序把汇编语言源程序翻译成机器语言程序的程序称为汇编程序,翻译的过程称为汇编。汇编程序在翻译源程序时,总是对源程序从头到尾一个符号一个符号地进行阅读分析,一般用两遍扫描完成对源程序的加工转换工作。汇编语言在翻译的同时,还对各种形式的错误进行检查和分析,并反馈给用户,以便修改。反汇编程序也是一种语言处理程序,它的功能与汇编程序相反,它能把机器语言程序转换成汇编语言程序。 (2)编译程序编译程序是把高级语言源程序(如Fortran、Pascal、C 等)翻译

相关文档
相关文档 最新文档