附录_C语言快速入门与计算机二级备考

  • 这是计算机二级考试中也会考到,但不包含在C语言之内的知识,作为选择题出现,了解即可

软件设计工具

系统结构图

  • 使用图示简单地描述系统的结构,以下面的图片为例

  • 最大扇出数:系统结构中一个模块直接调用的最多下层模块数目,在此系统中为3(功能2能直接调用3个功能模块)
  • 最大扇入数同理,是一个模块可以直接调用的上层模块数目,在此系统中为2(功能3.1可以调用2两个上层模块)
  • 深度:即系统层数,该系统为3(层1:某系统;层2:功能1/2/3;层3:功能2.1/2.2/2.3/3.1/3.2)
  • 宽度:最大的一层包含的功能数,在该系统中为5(第三层含有5个功能模块)

算法流程图

  • 使用图示简单地描述算法过程
系统流程图
N-S流程图
  • 由上至下执行语句

  • 三角表示判断条件,对应的一侧三角形下是满足此判断后执行的语句

  • Γ形方框表示当满足此条件时进入循环,L形方框则是进入循环直到满足此条件时退出

其他

  • 软件设计工具还有:PAD、HIPO、判定表、PDL伪码、ER图等

    注意:DFD数据流图属于结构化方法的需求分析工具,不是软件设计工具


特殊概念

数据结构

  • 队列/循环队列

    先进先出的数据结构,队头取用元素,队尾追加元素

    循环队列使用两个指针,队头指针front与队尾rear,它们反应了出队与入队操作次数

    • 例如:初始状态front=rear=m(指向同一个元素表示队列为空或满),则初始状态队列有m个元素,front=30,rear=10,表示入队10次,出队30次,那么剩余元素为m-20个
  • 先进后出的数据结构,元素的出入都从栈顶进行

    当用指针构建带链栈时,栈顶指针top用来反映栈中元素变化情况

    • 入栈时在栈顶插入一个新元素,top指向新结点,每压入一个元素,top指针上移一位:例如,一个栈的存储空间为[1:60],初始状态top=61,当压入N个元素后指向61-N,比如说经过一系列入栈和出栈后,top=25,那么栈中元素个数为61-25=36
    • 出栈时取出栈顶元素,并把top指向此时的第一个结点
    • 如果top=bottom!=NULL,则此时栈中元素个数为1(这与循环链表不同),如果两者都为NULL则栈中元素为零
  • 树/二叉树
    • 对于树,有重要概念:,节点的度表示一个结点的子结点的个数,树的度指的是树中所有节点度的最大值,为0的结点称为叶子结点

    • 每个根结点最多只有两个子结点的树称为二叉树

      二叉树中度为0的结点总比度为2的结点多一个

    • 树中的节点数等于树中所有节点的度之和再加1

      例如:树的度为3,且有9个度为3的结点和20个叶子结点,没有度为1的结点

      9×3+?×2+20×0=9+?+20+1,得度为2的结点有3个

      有时通过度算出的结点总数与题目所描述的结点数不同,这就证明没有这样的树

算法

  • 查找
    • 顺序查找:依次检测每个元素,最坏情况下需要的次数与线性表元素个数相同
    • 二分查找:在最坏情况下,目标值位于列表的最边缘或不在列表中。每次查找范围缩小一半,因此最坏情况下的查找次数为 log⁡2(n) ,二分查找只适用于顺序存储的有序表,即线性表中元素按值非递减排列
  • 排序

    假设线性表长度为n,在最坏情况下(整个表完全逆序):

    • 冒泡排序:需要n/2次从前往后扫描与n/2次从后往前扫描,总共比较n(n-1)/2次,时间复杂度为O(n2)
    • 快速排序:类似冒泡排序,同样是通过元素的交换消除逆序,选择一个基准元素,表一分为二,然后递归地对子列表进行排序,每一次交换都会产生新的逆序最坏比较次数同冒泡排序,但平均较快,比较次数为O(n(logn))
    • 简单插入排序:将未排序部分的第一个元素插入已经排序的部分,直到列表排序完成,最坏情况也需要n(n-1)/2
    • 希尔排序:对简单插入排序作改进,将整个序列分割为若干小序列分别进行插入排序加快速度,需要O(n1.5) ,没有快速排序快,但最坏情况下需要的比较次数最低
    • 堆排序:将元素建成堆,然后反复地从堆中取出最大/小元素直到堆完成排序,其比较次数固定,为O(nlog2n)

数据库

数据库的特征

  • 数据库系统DBS包含了数据库DB和数据库管理系统DBMS

  • 数据库系统自文件系统发展而来,两者都以数据文件的形式组织数据

  • 区别在于数据库系统在文件系统的基础上加入了DBMS进行管理

    数据库管理系统允许用户创建、读取、更新和删除数据库中的数据

    DBMS提供了一个接口,使用户能够通过结构化查询语言(SQL)与数据库进行交互

  • 由此数据库系统有如下特点:

    • 数据的继承性
    • 数据的高共享和低冗余性
    • 数据独立性:不会因为系统数据储存结构与数据逻辑变化而影响应用程序
    • 数据统一管理和控制
  • 数据库模型可分为:层次模型(树型结构表示的关系便是这一类)、网状模型、关系模型、面向对象模型等

  • 数据模型从抽象上描述了数据库系统的特征,包括数据结构、数据约束、数据操作三部分

表与项

  • 是数据库中用来组织和存储相关数据的结构

    每个表都有一个唯一的名称,并且由多个列(字段)组成

  • (字段)是表中的列,每个字段都有一个名称和一个数据类型,用于定义存储在其中的数据的类型和格式

  • 例如图书管理系统,由书籍表、作者表、借阅表等组成,书籍表就用于储存所有书籍的信息,这些信息分为多个字段

    每个表中包含项,例如书籍表包含书籍编号、书名、作者等信息,这些信息对应不同的数据类型

  • 表中通常设定某个字段为键,通过这些键可以确定其他字段的值,因此数据库中的数据项之间存在联系,任意两个表之间也存在联系

    例如:每本书编号唯一,以此为书的键,联系其书名、作者等其他字段

数据库设计

  • 将现实世界中的数据结构化为关系数据库中的表(即关系)

  • 设计因素
    1. 实体和属性:识别现实世界中的实体(如人、地点、物品等)以及它们的属性(如姓名、地址、价格等)。
    2. 关系:确定实体之间的关系(如一对多、多对多等)。
    3. 主键和外键:为每个关系(表)定义主键,以唯一标识表中的每一行。同时,使用外键来建立表与表之间的关系。
    4. 规范化:通过规范化过程来消除数据冗余和不一致性,提高数据的一致性和完整性。
    5. 性能考虑
  • 具体过程如下:

    需求分析
    • 识别用户需要存储的数据类型、数据之间的关系以及对数据的操作需求
    概念设计
    • 需求分析的结果转化为一个高层次的数据模型,得到一张ER图(实体关系图)
    逻辑设计
    • 把ER图转换为关系数据库中的表和字段,定义主键、外键和其他约束
    物理设计
    • 如何在物理存储设备上实现逻辑设计的结果,包括选择合适的存储结构、索引策略、分区策略等,得到一份详细的物理数据库设计文档

关系运算

  • 此处内容具体介绍可见: https://keelii.com/2017/02/19/basic-operations-of-relation-algebra

  • 交集/并集/差/积/除
    • 取交集/并集的操作同一般的集合运算
    • 作差:S1-S2,即剔除掉S1中S2有的关系
    • 作积得笛卡尔积,除法是是此过程的逆预算
  • 自然连接><

    两个关系表中查找具有相同属性(列)值的行,并将这些行合并成一个新的关系表

  • 投影π与选择σ
    • 投影:从R表中选择指定的属性组(列),建立新表

    • 选择:从R表中选出符合条件的元组(行)

  • 象集(选择+投影)

    例如:表示学生选修课程的关系模式是SC(S,G),其中S为课程号,G为成绩

    当需要检索课程号为2且成绩不合格的学生时,表达式为:πS#C#=2^G<60(SC))

    学号为2,即C#=2;不及格,即G<60;两个条件并列,用^连接

    σ将SC中符合条件的关系选中,投影πS#将这些选中的S#列出

  • 关系运算中的条件
    • 比较运算符,如<和>等
    • 多个条件使用逻辑运算进行条件连接,^条件并列,V为或者,~为否
  • 依赖关系

    关系模式中主键的符号后跟有#,而能够单独确定外键的主键,称为存在对主属性的部分依赖

    例如:学生的学号S#可以确定这个学生的其他信息,如姓名Sn,成绩G等,将姓名对学号的依赖表示为S#->Sn


其他

  • I/O接口

    CPU与外设之间的数据交换(外部设备的互联不通过IO实现)必须通过接口来完成,作用有:

    设置数据的寄存、缓冲逻辑,以适应CPU与外设之间的速度差异

    能够进行信息格式的转换,例如:串行和并行的转换;够协调CPU和外设两者在信息的类型和电平的差异;协调时序差异

    地址译码设备选择功能

    设置中断和DMA控制逻辑

  • 主机

    计算机系统中,一般所说的主机指的是中央处理器和主存

  • 软件测试
    • 单元测试(涉及编码和详细涉及说明书)->集成测试->验收测试(确认测试)->系统测试
  • 对象
    • 对象即描述该对象属性的数据和可以对这些数据施加所有操作封装在一起构造的统一体,实现机制为封装

posted on   无术师  阅读(4)  评论(0编辑  收藏  举报

相关博文:
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了

统计

点击右上角即可分享
微信分享提示