在定义一个关系结构时,应该说明______。A.字段、数据项及数据项的值B.属性名、属性数据类型及位数C.
在定义一个关系结构时,应该说明______。
A.字段、数据项及数据项的值
B.属性名、属性数据类型及位数
C.关系名、关系类型及作用
D.记录名、记录类型及内容
在定义一个关系结构时,应该说明______。
A.字段、数据项及数据项的值
B.属性名、属性数据类型及位数
C.关系名、关系类型及作用
D.记录名、记录类型及内容
在定义一个关系结构时,应该说明()。
A.字段、数据项及数据项的值
B.属姓名、属性数据类型及位数
C.关系名、关系类型及作用
D.记录名、记录类型及内容
A.一个表中最多只能有一个主键约束,有多个外键约束
B.一个表中最多有一个外键约束,一个主键约束
C.在定义主键外键约束时,应该首先定义主键约束,然后定义外键约束
D.在定义主键外键约束时,应该首先定义外键约束,然后定义主键约束
A.一个表中最多只能有一个主键约束,多个外键约束
B.一个表中最多只能有一个外键约束,一个主键约束
C.在定义主键和外键约束时,应该首先定义主键约束,然后定义外键约束
D.在定义主键和外键约束时,应该首先定义外键约束,然后定义主键约束
A.在制定工作分解结构的过程中制定漏掉的需求
B.修改范围说明书并开始执行
C.遵循变更管理流程
D.与项目发起人碰面重新定义产品需求
A.一个表中最多只能有一个主键约束,有多个外键约束
B.一个表中最多只有一个外键约束,有一个主键约束
C.在定义主键外键约束时,可以先定义主键约束,也可以先定义外键约束
D.在定义主键外键约束时,应该首先定义外键约束,然后定义主键约束
阅读以下说明和C代码(代码13-4),将应填入(n)处的字句写在对应栏内。
【说明】
在一公文处理系统中,开发者定义了一个公文结构OfficeDoc,其中定义了公文应该具有的属性。当公文的内容或状态发生变化时,与之相关联的DocExplorer结构的值都需要发生改变。一个OfficeDoc结构能够关联一组DocExplorer结构。当OfficeDoc结构的内容或状态发生变化时,所有与之相关联的DocExplorer结构都将被更新,这种应用被称为观察者模式。以下代码采用C语言实现,能够正确编译通过。
【代码13-4】
include<stdio.h>
define OBS_MAXNUM 20 /*一个OfficeDoc变量最多能够关联的DocExplorer变量的个数*/
typedef void((1) )(struc OffieeDoc*, struct DoeExplorer*)I;
struct DocExplorer{
func update;/*DocExplorer结构采用的更新函数*/
/*其它的结构字段省略*/
};
struet OffieeDoc{
(2) myObs[OBS_MAXNUM];
/*存储所有与OfficeDoc相关联的DocExplorer结构指针*/
int index;/*与OffieeDoc结构变量相关联的DoeExplorer结构变量的个数*/
};
void attaeh(struct OfficeDoc*doc, struct DocExplorer*ob){
/*关联Observer结构ob与OffieeDoe结构doe*/
int loop=0;
if(doc->index>=OBS_MAXNUM||ob==NULL)return;
for(loop=0, loop<doc->index; loop++)
if(doc->myObs[loop]==ob)return;
doc->myObs[doe->index]=ob;
doc->index++;
}
void detaeh(struct OfficeDoc*doc, struct DocExplorer*ob){
/*解除doc结构与ob结构间的关联*/
int loop;
if(ob==NULL)return;
for(loop=0;loop<doc->index; loop++){
if(doe->myObs[loop]==ob){
if(loop<=doc->index-2)
doc->myObs[loop]=doc->myObs[(3)];
doc->myObs[doc->index-1]=NULL;
doc->index——;
breack;
}
}
}
void updatel(struct OfficeDoe*doe, struct DoeExplorer *ob){
/*更新ob结构的值,更新代码省略*/
} void update2(struct OffieeDoc*doc,struet DocExplorer *ob){
/*更新ob结构的值,更新代码省略*/
}
void notifyObs(struct OfficeDoc* doc){
/*当doc结构的值发生变化时,通知与之关联的所有DocExplorer结构变量*/
int loop;
for(loop=0; loop<doc->index; loop++){
(doc->myObs[loop])->update((4));
}
}
void main(){
struct OfficeDoc doc; /*定义一了OfficeDoe变量*/
struct DocExplorer explorer1, explorer2; /*定义两个DocExplorer变量*/
/*初始化与OfficeDoc变量相关的DocExplorer变量个数为0*/
doc.index=0;
explorer1.update=update1; /*设置explorer1变量的更新函数*/
explorer2. update=update2; /*设置explorer2变量的更新函数*/
attach(&doc, &explorer1); /*关联explorer1与doc对象*/
attach(&doc, &explorer2); /*关联explorer2与doc对象*/
/*其它代码省略*/
(5); /*通知与OfficeDoe相关的所有DoeExploer变量*/
return;
}
说明:堆数据结构定义如下。对于n个元素的关键字序列(a1,a2,...,an),当且仅当满足下列关系时称其为堆:在一个堆中,若堆顶元素为最大元素,则称为大顶堆;若堆顶元素为最小元素,则称为小顶堆。堆常用完全二叉树表示,图8.11是一个大顶堆的例子。堆数据结构常用于优先队列中,以维护由一组元素构成的集合。对应于两类堆结构,优先队列也有最大优先队列和最小优先队列,其中最大优先队列采用大顶堆,最小优先队列采用小项堆。以下考虑最大优先队列。假设现已建好大顶堆A,且已经实现了调整堆的函数heapify(A,n,index)。下面将C代码中需要完善的3个函数说明如下。
(1)heapMaximum(A):返回大顶堆A中的最大元素。
(2)heapExtractMax(A):去掉并返回大顶堆A的最大元素,将最后一个元素"提前"到堆顶位置,并将剩余元素调整成大顶堆。(
3)maxHeapInsert(A,key):把元素key插入到大顶堆A的最后位置,再将A调整成大顶堆。优先队列采用顺序存储方式,其存储结构定义如下:C代码:
A.数据流图B.E-R图C.状态-迁移图D.加工规格说明A.定义软件的主要结构元素及其之间的关系B.确定软件涉及的文件系统的结构及数据库的表结构C.描述软件与外部环境之间的交互关系,软件内模块之间的调用关系D.确定软件各个模块内部的算法和数据结构
为了保护您的账号安全,请在“简答题”公众号进行验证,点击“官网服务”-“账号验证”后输入验证码“”完成验证,验证成功后方可继续查看答案!