题目内容 (请给出正确答案)
[主观题]

阅读下列说明以及图10-7和图10-8,回答问题1、问题2和问题3。 [说明] 某高等院校的教学管理具有选课

阅读下列说明以及图10-7和图10-8,回答问题1、问题2和问题3。

[说明]

某高等院校的教学管理具有选课管理和成绩管理两大功能。选课管理主要完成以下工作:(1)录入与生成新学期课程表;(2)学生选课注册;(3)查询,学生、教师、教学管理员可以查询课程表,获得课程信息、学生选课信息和学生、教师信息;(4)选课注册信息的统计与报表生成。成绩管理主要的功能为: (1)成绩录入:教学管理员录入学生考试成绩;(2)成绩查询:教师、教学管理员可以查询学生考试成绩。。学生只允许查询自己的考试成绩,不允许查询他人的成绩;(3)成绩统计与报表生成:教学管理员进行成绩统计,打印统计报表。把学生选课注册信息传送给财务系统,以便计算学生应交纳的费用。

根据需要,系统设计的用例有“选课管理”、“成绩管理”、“查询课程信息”、“选课注册”、“管理开设课程”等用例。其中部分用例说明如下:

“查询课程信息”:学生、教师或教学管理员启动查询课程信息时,该用例开始运行。根据输入的查询要求(查询主题或关键字),显示有关的课程信息;

“选课注册”。当学生登录进行选课注册时,该用例开始运行,它提供了选择课程、注册、修改注册、删除注册等功能。学生登录需要用户标识(ID)和口令;

“管理开设课程”。 当教学管理员登录系统进行产生选课信息操作时, 该用例开始运行。 它首先检查用户标识(ID)和口令,然后从数据库中取出学生的选课注册数据,按照要求进行分类统计,生成选课注册报表。

活动者“学生”与用例“选课注册”的交互关系如下:当“学生”登录系统进入选课注册活动时,首先要输入用户标识(ID)和口令,经系统的“注册表单”接口对象验证,如果正确无误,则“学生”可以进行查询活动或选课活动,否则拒绝进入。若“学生”发出“查询”请求,系统的“选课注册表单”接口对象响应信息给“学生”,及发送增加或删除学生选课数据的消息。 “开设课程”对象响应该消息,找出数据库中的相关数据,增加或删除学生的姓名和所选的课程名,或做相应的修改,并把增加或删除学生课操作成功或失败的信息反馈给“选课注册表单”接口对象,“选课注册表单”接口对象再反馈给“学生”。如果“学生”按下“确认”键,则选课操作得到确认,发出提交请求。“选课注册表单”接口对象响应该请求,并发出“存储”消息。“开设课程”对象响应“存储”消息,进行数据库存储操作,选课数据存入数据库。若“学生”结束选课,发出“退出”系统请求,“注册表单”接口对象响应请求,关闭系统。

图10-7为系统的顶层UML用例图。图10-8为选课注册顺序图。

阅读下列说明以及图10-7和图10-8,回答问题1、问题2和问题3。 [说明] 某高等院校的教学管理

用例图解释了活动者与用例之间的交互关系。根据系统设计说明,将系统的顶层用例图补充完整。

查看答案
如搜索结果不匹配,请 联系老师 获取答案
您可能会需要:
您的账号:,可能会需要:
您的账号:
发送账号密码至手机
发送
更多“阅读下列说明以及图10-7和图10-8,回答问题1、问题2和…”相关的问题

第1题

从下列的3道式题(试题五至试题七)中任选1道解答。 如果解答的试题数超过1道,则题号小的1道解答有

从下列的3道式题(试题五至试题七)中任选1道解答。

如果解答的试题数超过1道,则题号小的1道解答有效。

阅读以下说明和C++码,将应填入(n)处的字名写在的对应栏内。

[说明] 利用c++的各种控制语句编写一个万年历程序,要求:显示任何年份的日历,日历以月份顺序排列,每月以星期顺序排列,类似于一般挂历上的格式。本程序包含如下两个函数:Leap ()用于判定指定的年份是闰年,Week ()用于计算year年份的1月1日是星期几,其判定规则为:

(1) 如果year 年份为1994年,则为星期六。

(2) 如果year 年份大于1994年,则星期值weekno 按下列公式计算:

differ=(year-1994)*(365%6)+(year-1993)/4-(year-2001)/100+(year-2001)/400 date=6+differ%7

weekno=(date6)? date-7:date

(3) 如果year 年份小于1994年,则星期值weekno 按下列公式计算:

differ=(1994-year)*(365%7)+(1996-year)/4-(2001-year)/100+(2000-year)/400 weekno=6-dder%7

include "iostream. h"

include "iomanip. h"

int leap(int n)

{

if( (1) )

return 0

else

return 1;

}

int week( int year )

{

int a1, differ, date, weekno;

if (year = = 1994)

a1 =0;

else if (year > 1994)

a1=1;

else a1= -1;

switch(a1)

{

case 0: return 6; break;

case 1:

{

(2)

date = 6 + differ% 7; weekno = ( date > 6) ? date - 7 date;

}

return weekno; break;

case - 1:

{

differ = ( 1994 - year) * (365%7) + (1996 - year)/4 - (2001 - year)/100 + (2000 - year)/400;

weekno =6-differ%7; } return weekno; break;

}

}

void main( )

}

int i,year,m2,n,j;

cout < < “Please input 某年数:”;

cin> >year;

if ( ! leap(year) )

(3);

else

m2 =28;

int month [12]: {31 ,m2,31,30,31,30,31,31,30,31,30,31 };

(4)

for ( i=0; i<12; i+ + )

{

cout< < < <end1< <setw(4*n) < <";

for(j=1 ;j< =month [i] ;j+ +)

{

cout< <setw(4) < <j;

n+ +;

if(n> =7)

{

(5)

cout < < end1;

}

}

}

}

点击查看答案

第2题

指出UML中全局、局部、参数、自我、投票、广播、创建、注销和临时9个约束对于链接角色、消息和对象的作用

点击查看答案

第3题

数据流图12-3中缺少了与“增加职工记录3.2”加工相关的数据流,请采用说明中的词汇给出此数据流

数据流图12-3中缺少了与“增加职工记录3.2” 加工相关的数据流,请采用说明中的词汇给出此数据流名称,并请出此数据流的起点和终点。

(2)数据流图12-4中还应依赖哪些文件?并指出相关数据流方向。

点击查看答案

第4题

请至少写出4种服务器端实现技术。

点击查看答案

第5题

阅读以下说明及图,回答问题。【说明】 Web页面与数据库的连接是Web数据库的基本要求。目前基于Web数

阅读以下说明及图,回答问题。

【说明】

Web页面与数据库的连接是Web数据库的基本要求。目前基于Web数据库的连接方案主要有服务器端方案和客户端方案两种类型。服务器端方案的实现技术有ASP等,客户端方案的实现技术有JDBC、DHTML等。其中,ASP是微软开发的脚本语言技术,嵌入在 IIS中,因此,ASP成为大部分用户的首选脚本语言。图13-10给出了ASP的工作原理。

ASP属于服务器端方案还是客户端方案?ASP的工作原理图中(1)、(2)应是什么?

点击查看答案

第6题

阅读下列说明和相关的类图,回答问题。【说明】 在一栋m层楼的大厦里,用电梯内和每个楼层的按钮来控

阅读下列说明和相关的类图,回答问题。

【说明】

在一栋m层楼的大厦里,用电梯内和每个楼层的按钮来控制n部电梯的运作。当按下电梯内按钮请求电梯在指定楼层停下时,按钮指示灯亮,当电梯到达指定楼层时,指示灯熄灭。除了大厦的最底层和最高层之外,每层楼都有两个按钮分别指示电梯上行和下行,当这两个按钮之一被按下时相应的指示灯亮,当电梯到达此楼层时灯熄灭,电梯向要求的方向移动。当电梯无升降运动时,关门并停止在当前楼层。

软件设计师火云龙采用面向对象分析的方法,经过三次逐步求精设计之后,得到如图 13-19所示的类图。

【问题1】

按钮类有一个重要的属性,请将该属性填入图13-19中的(a)处。

【问题2】

识别关联的多重性是面向对象建模重要的一步,请根据题目说明填空(1)~(6)。

【问题3】

软件设计师火云龙在初步设计类时,将门(的状态)作为电梯的属性,后经思考,将电梯门设计成一个独立的类,这么做的好处是什么?

软件设计师火云龙在初步设计类时,并没有设计“请求”类,后来又加入了该类,这么做的原因是什么?

点击查看答案

第7题

阅读以下说明和C++代码,将应填入(n)处。[说明] 在一公文处理系统中,开发者定义了一个公文类Office

阅读以下说明和C++代码,将应填入(n)处。

[说明]

在一公文处理系统中,开发者定义了一个公文类OfficeDoc,其中定义了公文具有的属性和处理公文的相应方法。当公文的内容或状态发生变化时,关注此OfficeDoc类对象的相应的DocExplorer对象都要更新其自身的状态。一个OfficeDoc对象能够关联一组 DocExplorer对象。当OfficeDoc对象的内容或状态发生变化时,所有与之相关联的 DocExplorcr对象都将得到通知,这种应用被称为观察者模式。以下代码写在一个C++源文件中,能够正确编译通过。

[C++代码]

include <iostream>

const OBS_MAXNUM=20;//最多与OfficeDoc对象相关联的DocExplorer对象的个数

(1);

class DocExplorer{ //关注OfficeDoc公文对象的类

public:

DocExplorer( (2) *doc); //构造函数

(3) void update(OfficeDoc *doc)=0;//更新自身状态的函数

//其他相关属性和方法省略

};

class OfficeDoc{ //公文类

private:

DocExplorer *myObs[OBS_MAXNUM];

//关注此公文类的DocExplorer类对象指针数组

int index; //与OfficeDoc对象关联的DocExplorer对象的个数

public:

OfficeDoe()

index=0;

}

void attach(DocExplorer *o){

//将一DoeExplorer对象与OfficeDoe对象相关联

if(index >=OBS_MAXNUM ||o=NULL)return;

for(int loop=0; loop<index; loop++)

if(myObs[loop]==o) return;

myObs[index]=o;

index++;

}

void detaeh(DocExplorer *o){

//接触某DoeExplorer对象与OfficeDoc对象的关联

if(0==NULL) return;

for(int loop=0; loop<index; loop++){

if(myObs[loop]==o){

if(loop<=index-2)myObs[loop]=myObs[index-1];

myObs[index-1]=NULL;

index--;

break;

}

}

}

private:

void notifyObs(){ //通知所有的DocExplorer对象更改自身状态

for(int loop=0; loop<index; loop++){

myObs[loop]->(4); //DocExplorer对象更新自身状态

}

}

//其他公文类的相关属性和方法

};

DocExplorer::DocExplorer(OfficeDoc *doc){//DocExplorer 类对象的构造函数

doc->(5); //将此DocExplorer对象与doc对象相关联

}

点击查看答案

第8题

阅读下列函数说明、图和C代码,将应填入(n)处的字句。[说明] 散列文件的存储单位称为桶(BUCKET)。假

阅读下列函数说明、图和C代码,将应填入(n)处的字句。

[说明]

散列文件的存储单位称为桶(BUCKET)。假如一个桶能存放m个记录,当桶中已有 m个同义词(散列函数值相同)的记录时,存放第m+1个同义词会发生“溢出”。此时需要将第m+1个同义词存放到另一个称为“溢出桶”的桶中。相对地,称存放前m个同义词的桶为“基桶”。溢出桶和基桶大小相同,用指针链接。查找指定元素记录时,首先在基桶中查找。若找到,则成功返回,否则沿指针到溢出桶中进行查找。

例如:设散列函数为Hash(Key)=Key mod 7,记录的关键字序列为15,14,21,87,97,293,35,24,149,19,63,16,103,77,5,153,145,356,51,68,705,453,建立的散列文件内容如图4-1所示。

[图4-1]

为简化起见,散列文件的存储单位以内存单元表示。

函数InsertToHashTable(int NewElemKey)的功能是:将元素NewEIemKey插入散列桶中,若插入成功则返回0,否则返回-1。

采用的散列函数为Hash(NewElemKey)=NewElemKey % P,其中P为设定的基桶数目。

函数中使用的预定义符号如下:

define NULLKEY -1 /*散列桶的空闲单元标识*/

define P 7 /*散列文件中基桶的数目*/

define ITEMS 3 /*基桶和溢出桶的容量*/

typedef struct BucketNode{ /*基桶和溢出桶的类型定义*/

int KcyData[ITEMS];

struct BucketNode *Link;

}BUCKET;

BUCKET Bucket[P]; /*基桶空间定义*/

[函数]

int lnsertToHashTable(int NewElemKey){

/*将元素NewElemKey插入散列桶中,若插入成功则返回0,否则返回-1*/

/*设插入第一个元素前基桶的所有KeyData[]、Link域已分别初始化为NULLKEY、

NULL*/

int Index; /*基桶编号*/

int i,k;

BUCKET *s,*front,*t;

(1) ;

for(i=0; i<ITEMS;i++)/*在基桶查找空闲单元,若找到则将元素存入*/

if(Bucket[Index].KeyData[i]=NULLKEY){

Bucket[Index].KeyData[i]=NewElemKey; break;

}

if( (2) ) return 0;

/*若基桶已满,则在溢出桶中查找空闲单元,若找不到则申请新的溢出桶*/

(3) ; t=Bucket[Index].Link;

if(t!=NULL) {/*有溢出桶*/

while (t!=NULL){

for(k=0; k<ITEMS; k++)

if(t->KeyData[k]=NULLKEY){/*在溢出桶链表中找到空闲单元*/

t->KeyData[k]=NewElemKey; break;

}/*if*/

front=t;

if( (4) )t=t->Link;

else break;

}/*while*/

}/*if*/

if( (5) ) {/*申请新溢出桶并将元素存入*/

s=(BUCKET*)malloe(sizeof(BUCKET));

if(!s) return-1;

s->Link=NULL;

for(k=0; k<ITEMS; k++)

s->KeyData[k]=NULLKEY;

s->KeyData[0]=NewElemKey;

(6) ;

}/*if*/

return 0;

}/*InsertToHashTable*/

点击查看答案

第9题

阅读以下算法说明和问题模型图,根据要求回答问题1、问题2。 [说明] 某大学城图书馆需要在无线阅览

阅读以下算法说明和问题模型图,根据要求回答问题1、问题2。

[说明]

某大学城图书馆需要在无线阅览厅的某些位置上放置无线接入点AP(Access Poin)。假设每个无线 AP覆盖范围的半径是6米,因此必须使得每台笔记本电脑上的无线网卡到某个无线AP的直线距离不超过6米。为了简化问题,假设所有无线网卡在同一直线上,并且无线AP沿该直线放置。该问题可以建模为如图1-13所示,其中直线表示无线网卡所在的直线,实心正方形表示无线网卡。现采用贪心策略实现用尽可能少的无线AP覆盖所有的无线网卡。

实现贪心算法的流程如图1-14所示。其中,①d[i](1≤i≤N)表示第i张无线网卡到通道A端的距离,N表示无线网卡的总数,无线网卡的编号按照无线网卡到通道A端的距离从小到大进行编号:②s[k]表示第k(k≥1)个无线AP到通道A端的距离。算法结束后k的值为无线AP的总数。

请填补图1-14流程图中(1)~(4)空缺处的内容。

点击查看答案

第10题

使用[说明]中给出的词汇,将数据流图10-2中的(5)~(8)补充完整。

点击查看答案
热门考试 全部 >
相关试卷 全部 >
账号:
你好,尊敬的上学吧用户
发送账号至手机
密码将被重置
获取验证码
发送
温馨提示
该问题答案仅针对搜题卡用户开放,请点击购买搜题卡。
马上购买搜题卡
我已购买搜题卡, 登录账号 继续查看答案
重置密码
确认修改
谢谢您的反馈

您认为本题答案有误,我们将认真、仔细核查,
如果您知道正确答案,欢迎您来纠错

警告:系统检测到您的账号存在安全风险

为了保护您的账号安全,请在“上学吧”公众号进行验证,点击“官网服务”-“账号验证”后输入验证码“”完成验证,验证成功后方可继续查看答案!

微信搜一搜
上学吧
点击打开微信
警告:系统检测到您的账号存在安全风险
抱歉,您的账号因涉嫌违反上学吧购买须知被冻结。您可在“上学吧”微信公众号中的“官网服务”-“账号解封申请”申请解封,或联系客服
微信搜一搜
上学吧
点击打开微信